Skip to main content

Signature

IB20.sol

Description

Moves amount from from to to in a single admin operation. totalSupply does not change. Emits, in order, Transfer(from, to, amount), Memo(caller, memo), and Seized(caller, from, to, amount). A memo of bytes32(0) is permitted. This is not a burn and not a mint. After the call, to is an ordinary holder and can transfer, burn, or hold the tokens. Seize skips allowance and the transfer policies (TRANSFER_SENDER_POLICY, TRANSFER_RECEIVER_POLICY). It uses two dedicated policy scopes instead: SEIZE_EXEMPT_POLICY is inverted: when the scope is unset (ID 0, always-allow), every account is authorized and therefore no account is seizable. Attach a blocklist and add the holder to make them seizable. SEIZE_RECEIVER_POLICY defaults to always-allow when unset, so an unconfigured token accepts any destination.

Parameters

Reverts

Events

Emitted on success, in this order:
  1. Transfer(from, to, amount)
  2. Memo(caller, memo)
  3. Seized(caller, from, to, amount): topic0: 0xa9aec5d8b86e2fa2fd6ac3af62f2622e3dfdab1967d4cbbb56a5df7d74cb887c

Access Control

SEIZE_ROLE gates this function. The SEIZE pausable feature provides a second switch: a caller holding SEIZE_ROLE still cannot seize while SEIZE is paused.

Example

Usage Example
AccountNotSeizable selector: 0x91dbbc8d. This error fires when the holder scope is unset or the holder is not on the attached blocklist, not when the holder is on a transfer blocklist. Transfer and seize scopes are independent.