Skip to main content

TransferByPartitionFacet

Asset Tokenization Studio Team

TransferByPartitionFacet

Diamond facet exposing token-holder-initiated partition transfers.

Registers one selector: transferByPartition. All business logic is provided by the {TransferByPartition} abstract contract.

Methods​

getStaticFunctionSelectors​

function getStaticFunctionSelectors() external pure returns (bytes4[])

Gets all function selectors of a facet

Returns​

NameTypeDescription
_0bytes4[]Face functions selectors

getStaticInterfaceIds​

function getStaticInterfaceIds() external pure returns (bytes4[])

Gets all interfaces ids of a facet.

Returns​

NameTypeDescription
_0bytes4[]Face interface ids

getStaticResolverKey​

function getStaticResolverKey() external pure returns (bytes32 staticResolverKey_)

Gets the static resolver key

Returns​

NameTypeDescription
staticResolverKey_bytes32Static resolver key

initializeTransferByPartition​

function initializeTransferByPartition() external nonpayable

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

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

transferByPartition​

function transferByPartition(bytes32 _partition, IERC1410Types.BasicTransferInfo _basicTransferInfo, bytes _data) external nonpayable returns (bytes32)

Parameters​

NameTypeDescription
_partitionbytes32undefined
_basicTransferInfoIERC1410Types.BasicTransferInfoundefined
_databytesundefined

Returns​

NameTypeDescription
_0bytes32undefined

Events​

AuthorizedOperator​

event AuthorizedOperator(address indexed operator, address indexed tokenHolder)

Emitted when an operator is authorised to manage all partitions of a token holder.

Parameters​

NameTypeDescription
operator indexedaddressNewly authorised operator address.
tokenHolder indexedaddressToken holder who granted the authorisation.

AuthorizedOperatorByPartition​

event AuthorizedOperatorByPartition(bytes32 indexed partition, address indexed operator, address indexed tokenHolder)

Emitted when an operator is authorised for a specific partition of a token holder.

Parameters​

NameTypeDescription
partition indexedbytes32Partition the authorisation applies to.
operator indexedaddressNewly authorised operator address.
tokenHolder indexedaddressToken holder who granted the authorisation.

IssuedByPartition​

event IssuedByPartition(bytes32 indexed partition, address indexed operator, address indexed to, uint256 value, bytes data)

Emitted when new tokens are issued into a partition.

Parameters​

NameTypeDescription
partition indexedbytes32Partition the tokens were issued into.
operator indexedaddressAddress that performed the issuance.
to indexedaddressRecipient of the issued tokens.
valueuint256Token quantity issued.
databytesCaller-supplied data attached to the issuance.

RedeemedByPartition​

event RedeemedByPartition(bytes32 indexed partition, address indexed operator, address indexed from, uint256 value, bytes data, bytes operatorData)

Emitted when tokens are redeemed from a partition.

Parameters​

NameTypeDescription
partition indexedbytes32Partition the tokens were redeemed from.
operator indexedaddressAddress that performed the redemption.
from indexedaddressToken holder whose tokens were redeemed.
valueuint256Token quantity redeemed.
databytesCaller-supplied data attached to the redemption.
operatorDatabytesOperator-supplied data attached to the redemption.

RevokedOperator​

event RevokedOperator(address indexed operator, address indexed tokenHolder)

Emitted when an operator's authorisation over all partitions of a token holder is revoked.

Parameters​

NameTypeDescription
operator indexedaddressOperator whose authorisation was revoked.
tokenHolder indexedaddressToken holder who revoked the authorisation.

RevokedOperatorByPartition​

event RevokedOperatorByPartition(bytes32 indexed partition, address indexed operator, address indexed tokenHolder)

Emitted when an operator's authorisation for a specific partition of a token holder is revoked.

Parameters​

NameTypeDescription
partition indexedbytes32Partition the revocation applies to.
operator indexedaddressOperator whose authorisation was revoked.
tokenHolder indexedaddressToken holder who revoked the authorisation.

TransferByPartition​

event TransferByPartition(bytes32 indexed fromPartition, address operator, address indexed from, address indexed to, uint256 value, bytes data, bytes operatorData)

Emitted when tokens are transferred from one partition to another or within the same partition.

Parameters​

NameTypeDescription
fromPartition indexedbytes32Source partition.
operatoraddressAddress that initiated the transfer.
from indexedaddressToken holder whose balance decreased.
to indexedaddressRecipient whose balance increased.
valueuint256Token quantity transferred.
databytesCaller-supplied data.
operatorDatabytesOperator-supplied data.

TransferByPartitionInitialized​

event TransferByPartitionInitialized()

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

Fires exclusively from initializeTransferByPartition.

Errors​

AccountHasNoRole​

error AccountHasNoRole(address account, bytes32 role)

Thrown when an account does not hold a required role.

Parameters​

NameTypeDescription
accountaddressThe account that lacks the role.
rolebytes32The role that is not held.

AssetNotOperational​

error AssetNotOperational(bytes32 configId, uint256 versionId)

Raised by InitializerStorageWrapper.checkOperational (and the related isConfigVersionOperational helper) when an operation is attempted on a configuration version that has not yet been marked operational.

Parameters​

NameTypeDescription
configIdbytes32Resolver-proxy configuration whose operational status was checked.
versionIduint256Configuration version whose operational status was checked.

Deactivated​

error Deactivated()

Thrown when an operation guarded by onlyActivated is attempted on a token whose deactivation flag has already been set.

FacetAlreadyRegistered​

error FacetAlreadyRegistered(bytes32 facetId, uint256 lastVersion)

Raised when an initialiser tries to register a facet that already has a non-zero last registered version (i.e. the facet is being re-initialised on a fresh install).

Parameters​

NameTypeDescription
facetIdbytes32Identifier of the offending facet.
lastVersionuint256Last version recorded for that facet at the time of the check.

InvalidPartition​

error InvalidPartition(address account, bytes32 partition)

Thrown when an account does not hold or is not associated with the specified partition.

Parameters​

NameTypeDescription
accountaddressAddress that was checked.
partitionbytes32Partition that was not found for the account.

IsPaused​

error IsPaused()

Thrown when an operation that requires the token to be unpaused is attempted while the token is paused (own flag or any external pause contract).

NotAllowedInMultiPartitionMode​

error NotAllowedInMultiPartitionMode()

Thrown when a single-partition operation is attempted on a multi-partition token.

PartitionNotAllowedInSinglePartitionMode​

error PartitionNotAllowedInSinglePartitionMode(bytes32 partition)

Thrown when a multi-partition operation specifies a partition not permitted in single-partition mode.

Parameters​

NameTypeDescription
partitionbytes32The disallowed partition supplied by the caller.

PartitionsAreProtectedAndNoRole​

error PartitionsAreProtectedAndNoRole(address account, bytes32 role)

Reverts when a transfer is attempted while partitions are protected and the caller does not hold the required partition role.

Parameters​

NameTypeDescription
accountaddressThe caller lacking the required role.
rolebytes32The role that would have been needed to proceed.

TokenHolderNotFound​

error TokenHolderNotFound(address tokenHolder)

Thrown when an operation targets a token holder address that has no registered balance.

Parameters​

NameTypeDescription
tokenHolderaddressThe address that was not found.

Unauthorized​

error Unauthorized(address operator, address tokenHolder, bytes32 partition)

Thrown when the caller is not an authorised operator for the token holder on the given partition.

Parameters​

NameTypeDescription
operatoraddressAddress that attempted the operation.
tokenHolderaddressToken holder whose tokens were targeted.
partitionbytes32Partition on which authorisation was checked.

UnrecognizedResolverProxyVersion​

error UnrecognizedResolverProxyVersion(bytes8 _resolverProxyVersion)

Thrown when the provided proxy version does not match any BLR compatible standard.

Parameters​

NameTypeDescription
_resolverProxyVersionbytes8proxy version that is not compatible with the BLR.

WalletRecovered​

error WalletRecovered()

Thrown when attempting to recover a wallet that has already been recovered.

ZeroPartition​

error ZeroPartition()

Thrown when the zero bytes32 value is supplied as a partition identifier.

ZeroValue​

error ZeroValue()

Thrown when a zero token amount is supplied to an operation that requires a positive value.