Signature
IB20.sol
Description
Movesamount 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:Transfer(from, to, amount)Memo(caller, memo)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.