ProtectedClearingByPartitionFacet
Asset Tokenization Studio Team
ProtectedClearingByPartitionFacet
Diamond facet that registers the protectedClearingRedeemByPartition and protectedClearingTransferByPartition selectors under RESOLVER_KEY_PROTECTED_CLEARING_BY_PARTITION on the Diamond proxy.
Composed via ProtectedClearingByPartition for behaviour and IStaticFunctionSelectors for selector advertisement. Exposes two external selectors.
Methods
getStaticFunctionSelectors
function getStaticFunctionSelectors() external pure returns (bytes4[])
Gets all function selectors of a facet
Returns
| Name | Type | Description |
|---|---|---|
| _0 | bytes4[] | Face functions selectors |
getStaticInterfaceIds
function getStaticInterfaceIds() external pure returns (bytes4[])
Gets all interfaces ids of a facet.
Returns
| Name | Type | Description |
|---|---|---|
| _0 | bytes4[] | Face interface ids |
getStaticResolverKey
function getStaticResolverKey() external pure returns (bytes32 staticResolverKey_)
Gets the static resolver key
Returns
| Name | Type | Description |
|---|---|---|
| staticResolverKey_ | bytes32 | Static resolver key |
initializeProtectedClearingByPartition
function initializeProtectedClearingByPartition() external nonpayable
Initialises the protected-clearing-by-partition capability on the token.
Callable once; subsequent calls revert with FacetAlreadyRegistered. Requires DEFAULT_ADMIN_ROLE. Called by the factory during deployment.
protectedClearingRedeemByPartition
function protectedClearingRedeemByPartition(IClearingTypes.ProtectedClearingOperation _protectedClearingOperation, uint256 _amount, bytes _signature) external nonpayable returns (bool success_, uint256 clearingId_)
Parameters
| Name | Type | Description |
|---|---|---|
| _protectedClearingOperation | IClearingTypes.ProtectedClearingOperation | undefined |
| _amount | uint256 | undefined |
| _signature | bytes | undefined |
Returns
| Name | Type | Description |
|---|---|---|
| success_ | bool | undefined |
| clearingId_ | uint256 | undefined |
protectedClearingTransferByPartition
function protectedClearingTransferByPartition(IClearingTypes.ProtectedClearingOperation _protectedClearingOperation, uint256 _amount, address _to, bytes _signature) external nonpayable returns (bool success_, uint256 clearingId_)
Parameters
| Name | Type | Description |
|---|---|---|
| _protectedClearingOperation | IClearingTypes.ProtectedClearingOperation | undefined |
| _amount | uint256 | undefined |
| _to | address | undefined |
| _signature | bytes | undefined |
Returns
| Name | Type | Description |
|---|---|---|
| success_ | bool | undefined |
| clearingId_ | uint256 | undefined |
Events
ClearedHoldByPartition
event ClearedHoldByPartition(address indexed operator, address indexed tokenHolder, bytes32 partition, uint256 clearingId, IHoldTypes.Hold hold, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a token holder registers a clearing-guarded hold creation on a partition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that submitted the clearing operation. |
tokenHolder indexed | address | Address of the holder whose tokens are to be placed under hold. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| hold | IHoldTypes.Hold | Hold parameters that will be used on approval. |
| expirationDate | uint256 | Unix timestamp after which the clearing operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearedHoldFromByPartition
event ClearedHoldFromByPartition(address indexed operator, address indexed tokenHolder, bytes32 partition, uint256 clearingId, IHoldTypes.Hold hold, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a clearing-guarded hold creation is registered on behalf of a token holder via holdFromByPartition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that submitted the clearing operation on behalf of the holder. |
tokenHolder indexed | address | Address of the holder whose tokens are to be placed under hold. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| hold | IHoldTypes.Hold | Hold parameters that will be used on approval. |
| expirationDate | uint256 | Unix timestamp after which the clearing operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearedOperatorRedeemByPartition
event ClearedOperatorRedeemByPartition(address indexed operator, address indexed tokenHolder, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when an operator registers a clearing-guarded redemption using operator-level permissions.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Authorised operator that submitted the clearing operation. |
tokenHolder indexed | address | Address of the holder whose tokens are pending redemption. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| amount | uint256 | Token quantity pending redemption. |
| expirationDate | uint256 | Unix timestamp after which the operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearedOperatorTransferByPartition
event ClearedOperatorTransferByPartition(address indexed operator, address indexed tokenHolder, address indexed to, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when an operator registers a clearing-guarded transfer using operator-level permissions.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Authorised operator that submitted the clearing operation. |
tokenHolder indexed | address | Address of the holder whose tokens are pending transfer. |
to indexed | address | Intended recipient of the tokens upon approval. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| amount | uint256 | Token quantity pending transfer. |
| expirationDate | uint256 | Unix timestamp after which the operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearedRedeemByPartition
event ClearedRedeemByPartition(address indexed operator, address indexed tokenHolder, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a token holder registers a clearing-guarded redemption on a partition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that submitted the clearing operation. |
tokenHolder indexed | address | Address of the holder whose tokens are pending redemption. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| amount | uint256 | Token quantity pending redemption. |
| expirationDate | uint256 | Unix timestamp after which the operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearedRedeemFromByPartition
event ClearedRedeemFromByPartition(address indexed operator, address indexed tokenHolder, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a clearing-guarded redemption is registered on behalf of a token holder via redeemFromByPartition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that submitted the clearing operation on behalf of the holder. |
tokenHolder indexed | address | Address of the holder whose tokens are pending redemption. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| amount | uint256 | Token quantity pending redemption. |
| expirationDate | uint256 | Unix timestamp after which the operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearedTransferByPartition
event ClearedTransferByPartition(address indexed operator, address indexed tokenHolder, address indexed to, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a token holder registers a clearing-guarded transfer on a partition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that submitted the clearing operation. |
tokenHolder indexed | address | Address of the holder whose tokens are pending transfer. |
to indexed | address | Intended recipient of the tokens upon approval. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| amount | uint256 | Token quantity pending transfer. |
| expirationDate | uint256 | Unix timestamp after which the operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearedTransferFromByPartition
event ClearedTransferFromByPartition(address indexed operator, address indexed tokenHolder, address indexed to, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a clearing-guarded transfer is registered on behalf of a token holder via transferFromByPartition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that submitted the clearing operation on behalf of the holder. |
tokenHolder indexed | address | Address of the holder whose tokens are pending transfer. |
to indexed | address | Intended recipient of the tokens upon approval. |
| partition | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier for the registered operation. |
| amount | uint256 | Token quantity pending transfer. |
| expirationDate | uint256 | Unix timestamp after which the operation may be reclaimed. |
| data | bytes | Caller-supplied data attached to the operation. |
| operatorData | bytes | Data provided by the operator. |
ClearingActivated
event ClearingActivated(address indexed operator)
Emitted when the clearing feature is enabled for the token.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address of the administrator that activated clearing. |
ClearingDeactivated
event ClearingDeactivated(address indexed operator)
Emitted when the clearing feature is disabled for the token.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address of the administrator that deactivated clearing. |
ClearingOperationApproved
event ClearingOperationApproved(address indexed operator, address indexed tokenHolder, bytes32 indexed partition, uint256 clearingId, enum IClearingTypes.ClearingOperationType clearingOperationType, bytes operationData)
Emitted when a pending clearing operation is approved and the underlying token operation is executed.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that approved the operation. |
tokenHolder indexed | address | Address of the holder whose tokens were pending. |
partition indexed | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier of the approved operation. |
| clearingOperationType | enum IClearingTypes.ClearingOperationType | Discriminant indicating the kind of operation approved. |
| operationData | bytes | Encoded data forwarded to the underlying token call. |
ClearingOperationCanceled
event ClearingOperationCanceled(address indexed operator, address indexed tokenHolder, bytes32 indexed partition, uint256 clearingId, enum IClearingTypes.ClearingOperationType clearingOperationType)
Emitted when a pending clearing operation is cancelled before it expires.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that cancelled the operation. |
tokenHolder indexed | address | Address of the holder whose tokens were pending. |
partition indexed | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier of the cancelled operation. |
| clearingOperationType | enum IClearingTypes.ClearingOperationType | Discriminant indicating the kind of operation cancelled. |
ClearingOperationReclaimed
event ClearingOperationReclaimed(address indexed operator, address indexed tokenHolder, bytes32 indexed partition, uint256 clearingId, enum IClearingTypes.ClearingOperationType clearingOperationType)
Emitted when an expired clearing operation is reclaimed, releasing the locked tokens back to the holder.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Address that reclaimed the operation. |
tokenHolder indexed | address | Address of the holder whose tokens were pending. |
partition indexed | bytes32 | ERC-1400 partition the tokens belong to. |
| clearingId | uint256 | Sequential identifier of the reclaimed operation. |
| clearingOperationType | enum IClearingTypes.ClearingOperationType | Discriminant indicating the kind of operation reclaimed. |
ProtectedClearedRedeemByPartition
event ProtectedClearedRedeemByPartition(address indexed operator, address indexed tokenHolder, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a protected clearing redeem operation is successfully created for a partition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | The address that initiated the protected clearing operation. |
tokenHolder indexed | address | The address of the token holder executing the clearing. |
| partition | bytes32 | The partition identifier for this clearing operation. |
| clearingId | uint256 | The unique identifier assigned to this clearing operation. |
| amount | uint256 | The amount cleared. |
| expirationDate | uint256 | The expiration timestamp for the clearing operation. |
| data | bytes | The operation data associated with the clearing. |
| operatorData | bytes | Additional operator-specific data. |
ProtectedClearedTransferByPartition
event ProtectedClearedTransferByPartition(address indexed operator, address indexed tokenHolder, address indexed to, bytes32 partition, uint256 clearingId, uint256 amount, uint256 expirationDate, bytes data, bytes operatorData)
Emitted when a protected clearing transfer operation is successfully created for a partition.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | The address that initiated the protected clearing operation. |
tokenHolder indexed | address | The address of the token holder executing the clearing. |
to indexed | address | The address to transfer tokens to. |
| partition | bytes32 | The partition identifier for this clearing operation. |
| clearingId | uint256 | The unique identifier assigned to this clearing operation. |
| amount | uint256 | The amount cleared. |
| expirationDate | uint256 | The expiration timestamp for the clearing operation. |
| data | bytes | The operation data associated with the clearing. |
| operatorData | bytes | Additional operator-specific data. |
ProtectedClearingByPartitionInitialized
event ProtectedClearingByPartitionInitialized()
Emitted once when the protected-clearing-by-partition capability is initialised on a token.
Fires exclusively from initializeProtectedClearingByPartition.
Errors
AccountHasNoRole
error AccountHasNoRole(address account, bytes32 role)
Thrown when an account does not hold a required role.
Parameters
| Name | Type | Description |
|---|---|---|
| account | address | The account that lacks the role. |
| role | bytes32 | The 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
| Name | Type | Description |
|---|---|---|
| configId | bytes32 | Resolver-proxy configuration whose operational status was checked. |
| versionId | uint256 | Configuration version whose operational status was checked. |
ClearingIsActivated
error ClearingIsActivated()
Thrown when an administration action requires clearing to be inactive but it is currently enabled.
ClearingIsDisabled
error ClearingIsDisabled()
Thrown when a clearing-dependent operation is attempted while the clearing feature is disabled on the token.
Deactivated
error Deactivated()
Thrown when an operation guarded by onlyActivated is attempted on a token whose deactivation flag has already been set.
ExpirationDateNotReached
error ExpirationDateNotReached()
Thrown when an action requires the clearing operation to have expired (e.g., a reclaim attempt) but the expiration timestamp has not yet passed.
ExpirationDateReached
error ExpirationDateReached()
Thrown when an action requires the clearing operation to still be within its validity window but its expiration timestamp has already passed.
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
| Name | Type | Description |
|---|---|---|
| facetId | bytes32 | Identifier of the offending facet. |
| lastVersion | uint256 | Last version recorded for that facet at the time of the check. |
InvalidClearingAmount
error InvalidClearingAmount()
Thrown when the token amount supplied for a clearing operation is invalid (e.g., zero or exceeding the holder's available balance).
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).
PartitionsAreUnProtected
error PartitionsAreUnProtected()
Reverts when a protected-mode operation is attempted but partitions are not currently protected.
UnrecognizedResolverProxyVersion
error UnrecognizedResolverProxyVersion(bytes8 _resolverProxyVersion)
Thrown when the provided proxy version does not match any BLR compatible standard.
Parameters
| Name | Type | Description |
|---|---|---|
| _resolverProxyVersion | bytes8 | proxy version that is not compatible with the BLR. |
WalletRecovered
error WalletRecovered()
Thrown when attempting to recover a wallet that has already been recovered.
WrongClearingId
error WrongClearingId()
Thrown when the supplied clearingId does not correspond to an existing or active clearing operation for the given holder and partition.
WrongExpirationTimestamp
error WrongExpirationTimestamp()
Reverts when an expiration timestamp is invalid.
Used for expired, past, or otherwise unacceptable expiration values.
ZeroAddressNotAllowed
error ZeroAddressNotAllowed()
Reverts when the zero address is supplied where it is not permitted.
Prevents invalid account, contract, or recipient references.