Skip to main content

IBatchController

Asset Tokenization Studio Team

IBatchController

Interface for controller-only batch transfer operations.

Defines the write surface of the BatchControllerFacet diamond facet. The facet exposes privileged batch transfers that move tokens between arbitrary addresses and are gated on the controller/agent roles. Non-privileged batch operations (batchTransfer, batchMint, batchBurn) remain on their own dedicated facets.

Methods​

batchForcedTransfer​

function batchForcedTransfer(address[] _fromList, address[] _toList, uint256[] _amounts) external nonpayable

Batch forced transfer of tokens from multiple source addresses to multiple destinations.

Restricted to accounts holding the controller or agent role. Requires the token to be controllable and operating in single-partition mode. Emits one IController.ControllerTransfer event per element.

Parameters​

NameTypeDescription
_fromListaddress[]Source addresses to debit.
_toListaddress[]Destination addresses to credit.
_amountsuint256[]Amounts to transfer, positionally aligned with _fromList and _toList.

initializeBatchController​

function initializeBatchController() external nonpayable

Initialises the batch controller capability on the token.

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

Events​

BatchControllerInitialized​

event BatchControllerInitialized()

Emitted once when the batch controller capability is initialised on a token.

Fires exclusively from initializeBatchController after the storage write succeeds.