Skip to main content

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

Parameters

Reverts

  • ContractPaused(SEIZE) when SEIZE is paused.
  • AccessControlUnauthorizedAccount when the caller does not hold SEIZE_ROLE.
  • InvalidReceiver when to == address(0).
  • AccountNotSeizable when from is currently authorized under SEIZE_HOLDER_POLICY.
  • PolicyForbids(SEIZE_RECEIVER_POLICY, ...) when to is not authorized under SEIZE_RECEIVER_POLICY.
  • InsufficientBalance when from’s balance is below amount.

Access control

SEIZE_ROLE gates seizure calls.

Policy interaction

Checks SEIZE_HOLDER_POLICY for the holder and SEIZE_RECEIVER_POLICY for the destination.

Example