Skip to main content

IProtectedByPartition

Asset Tokenization Studio Team

IProtectedByPartition

Interface for protected partition-scoped redemption and transfer operations, gated by a per-partition role and off-chain signature verification.

Single-tier interface with events declared inline. No separate types interface; uses IProtectedPartitions.ProtectionData for cross-facet consistency.

Methods​

initializeProtectedByPartition​

function initializeProtectedByPartition() external nonpayable

Initialises the protected-by-partition capability on the token.

Callable once; subsequent calls revert with FacetAlreadyRegistered. Requires DEFAULT_ADMIN_ROLE. Called by the factory during deployment.

protectedRedeemFromByPartition​

function protectedRedeemFromByPartition(bytes32 _partition, address _from, uint256 _amount, IProtectedPartitions.ProtectionData _protectionData) external nonpayable

Parameters​

NameTypeDescription
_partitionbytes32undefined
_fromaddressundefined
_amountuint256undefined
_protectionDataIProtectedPartitions.ProtectionDataundefined

protectedTransferFromByPartition​

function protectedTransferFromByPartition(bytes32 _partition, address _from, address _to, uint256 _amount, IProtectedPartitions.ProtectionData _protectionData) external nonpayable returns (bytes32)

Parameters​

NameTypeDescription
_partitionbytes32undefined
_fromaddressundefined
_toaddressundefined
_amountuint256undefined
_protectionDataIProtectedPartitions.ProtectionDataundefined

Returns​

NameTypeDescription
_0bytes32undefined

Events​

ProtectedByPartitionInitialized​

event ProtectedByPartitionInitialized()

Emitted once when the protected-by-partition capability is initialised on a token.

Fires exclusively from initializeProtectedByPartition.

ProtectedRedeemedByPartition​

event ProtectedRedeemedByPartition(address indexed operator, address indexed from, uint256 amount, bytes32 partition, IProtectedPartitions.ProtectionData protectionData)

Emitted when a protected redemption completes successfully.

Parameters​

NameTypeDescription
operator indexedaddressThe address that initiated the redemption (msg.sender).
from indexedaddressThe token holder whose tokens are redeemed.
amountuint256The quantity of tokens redeemed.
partitionbytes32The partition from which tokens are redeemed.
protectionDataIProtectedPartitions.ProtectionDataThe protection metadata used for signature verification.

ProtectedTransferredByPartition​

event ProtectedTransferredByPartition(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes32 partition, IProtectedPartitions.ProtectionData protectionData)

Emitted when a protected transfer completes successfully.

Parameters​

NameTypeDescription
operator indexedaddressThe address that initiated the transfer (msg.sender).
from indexedaddressThe token holder whose tokens are transferred.
to indexedaddressThe recipient of the transferred tokens.
amountuint256The quantity of tokens transferred.
partitionbytes32The partition from which tokens are transferred.
protectionDataIProtectedPartitions.ProtectionDataThe protection metadata used for signature verification.

Errors​

ProtectedPartitionRoleRequired​

error ProtectedPartitionRoleRequired(bytes32 partition, address sender)

Raised when an account is not authorised for a protected partition.

The reported sender is resolved through EvmAccessors for forwarding support.

Parameters​

NameTypeDescription
partitionbytes32Partition whose access requirement is not satisfied.
senderaddressEffective caller that lacks the required role.