Skip to main content
Related concept

Signature

Description

Seizes amount of from’s balance and reassigns it to to in a single admin operation. Emits, in order, Transfer(from, to, amount), Memo(caller, memo), and Seized(caller, from, to, amount). A memo of bytes32(0) is permitted. Dev: Admin operation: skips allowance and the transfer policies. The membership checks are that from is blocked under SEIZE_HOLDER_POLICY and to is authorized under SEIZE_RECEIVER_POLICY. Dev: to is gated by SEIZE_RECEIVER_POLICY, which defaults to always-allow when unset, so an unconfigured token may seize to any destination (a treasury need not be allowlisted). Dev: Reverts with ContractPaused(SEIZE) when SEIZE is paused. Dev: Reverts with AccessControlUnauthorizedAccount when the caller does not hold SEIZE_ROLE. Dev: Reverts with InvalidReceiver when to == address(0). Dev: Reverts with AccountNotSeizable when from is currently authorized under SEIZE_HOLDER_POLICY. Dev: Reverts with PolicyForbids(SEIZE_RECEIVER_POLICY, ...) when to is not authorized under SEIZE_RECEIVER_POLICY. Dev: Reverts with InsufficientBalance when from’s balance is below amount. Param: from Account whose balance is being seized. Param: to Destination address for the seized balance. Param: amount Amount to seize. Param: memo Memo payload.

Access control

SEIZE_ROLE gates seizure calls.

Policy interaction

Checks SEIZE_HOLDER_POLICY for the holder and SEIZE_RECEIVER_POLICY for the destination.

Example