Skip to main content

ClearingOps

Asset Tokenization Studio Team

ClearingOps - Orchestrator for clearing creation operations

Library that owns the creation phase of the clearing protocol: deferred transfers, redeems, and hold creations; per-partition allowance bookkeeping; ABAF (Accumulative Balance Adjustment Factor) synchronisation; and emission of the cleared-creation events. The post-creation lifecycle (approve, cancel, reclaim, dispatch, balance restoration) lives in the sibling ClearingLifecycleOps library.

Deployed once as a separate contract. Facets call via DELEGATECALL. All functions mutate state through StorageWrappers and emit clearing- specific events. Cleared funds are held in a separate balance ledger until the clearing operation is resolved. ABAF adjustments are applied atomically before any operation execution to ensure balance integrity. Extracted from a single monolithic library to keep deployed bytecode below the EIP-170 24 KiB runtime cap.

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​

NameTypeDescription
operator indexedaddressAddress that submitted the clearing operation.
tokenHolder indexedaddressAddress of the holder whose tokens are to be placed under hold.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
holdIHoldTypes.HoldHold parameters that will be used on approval.
expirationDateuint256Unix timestamp after which the clearing operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData 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​

NameTypeDescription
operator indexedaddressAddress that submitted the clearing operation on behalf of the holder.
tokenHolder indexedaddressAddress of the holder whose tokens are to be placed under hold.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
holdIHoldTypes.HoldHold parameters that will be used on approval.
expirationDateuint256Unix timestamp after which the clearing operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData provided by the operator.

ClearedOperatorHoldByPartition​

event ClearedOperatorHoldByPartition(address indexed operator, address indexed tokenHolder, bytes32 partition, uint256 clearingId, IHoldTypes.Hold hold, uint256 expirationDate, bytes data, bytes operatorData)

Emitted when an authorised operator schedules a hold creation through the clearing flow.

Parameters​

NameTypeDescription
operator indexedaddressAccount that invoked the clearing hold creation (the operator).
tokenHolder indexedaddressAddress whose balance is being committed to the hold.
partitionbytes32Partition under which the hold is scheduled.
clearingIduint256Identifier assigned to the queued clearing operation.
holdIHoldTypes.HoldHold parameters that will be created on approval.
expirationDateuint256Expiration of the clearing operation itself.
databytesArbitrary payload attached to the clearing operation.
operatorDatabytesOperator-supplied payload accompanying the request.

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​

NameTypeDescription
operator indexedaddressAuthorised operator that submitted the clearing operation.
tokenHolder indexedaddressAddress of the holder whose tokens are pending redemption.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
amountuint256Token quantity pending redemption.
expirationDateuint256Unix timestamp after which the operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData 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​

NameTypeDescription
operator indexedaddressAuthorised operator that submitted the clearing operation.
tokenHolder indexedaddressAddress of the holder whose tokens are pending transfer.
to indexedaddressIntended recipient of the tokens upon approval.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
amountuint256Token quantity pending transfer.
expirationDateuint256Unix timestamp after which the operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData 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​

NameTypeDescription
operator indexedaddressAddress that submitted the clearing operation.
tokenHolder indexedaddressAddress of the holder whose tokens are pending redemption.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
amountuint256Token quantity pending redemption.
expirationDateuint256Unix timestamp after which the operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData 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​

NameTypeDescription
operator indexedaddressAddress that submitted the clearing operation on behalf of the holder.
tokenHolder indexedaddressAddress of the holder whose tokens are pending redemption.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
amountuint256Token quantity pending redemption.
expirationDateuint256Unix timestamp after which the operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData 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​

NameTypeDescription
operator indexedaddressAddress that submitted the clearing operation.
tokenHolder indexedaddressAddress of the holder whose tokens are pending transfer.
to indexedaddressIntended recipient of the tokens upon approval.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
amountuint256Token quantity pending transfer.
expirationDateuint256Unix timestamp after which the operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData 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​

NameTypeDescription
operator indexedaddressAddress that submitted the clearing operation on behalf of the holder.
tokenHolder indexedaddressAddress of the holder whose tokens are pending transfer.
to indexedaddressIntended recipient of the tokens upon approval.
partitionbytes32ERC-1400 partition the tokens belong to.
clearingIduint256Sequential identifier for the registered operation.
amountuint256Token quantity pending transfer.
expirationDateuint256Unix timestamp after which the operation may be reclaimed.
databytesCaller-supplied data attached to the operation.
operatorDatabytesData provided by the operator.

Transfer​

event Transfer(address indexed from, address indexed to, uint256 value)

Emitted whenever tokens move between accounts, are minted, or are burned.

Parameters​

NameTypeDescription
from indexedaddressSource account (zero address on mint).
to indexedaddressDestination account (zero address on burn).
valueuint256Amount of tokens transferred.

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.

Errors​

InsufficientBalance​

error InsufficientBalance(address account, uint256 balance, uint256 value, bytes32 partition)

Thrown when a transfer or redemption is attempted with insufficient partition balance.

Parameters​

NameTypeDescription
accountaddressThe account whose balance was checked.
balanceuint256The actual balance available.
valueuint256The amount that was requested.
partitionbytes32The partition that was checked.

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).

InvalidHoldAmount​

error InvalidHoldAmount()

Reverts when a hold is created with a zero or otherwise invalid amount.

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.

SnapshotIdDoesNotExists​

error SnapshotIdDoesNotExists(uint256 snapshotId)

Thrown when the requested snapshot identifier has never been taken on this token.

Parameters​

NameTypeDescription
snapshotIduint256The unrecognised snapshot identifier that was supplied.

SnapshotIdNull​

error SnapshotIdNull()

Thrown when a snapshot identifier of zero is supplied; zero is reserved and never assigned to a valid snapshot.