Signature
IB20.sol
Description
Transfersamount from msg.sender to to. Emits Transfer.
Parameters
Returns
Alwaystrue on success.
Reverts
ContractPaused(TRANSFER)whenTRANSFERis paused.InvalidReceiverwhento == address(0).InvalidSenderwhenmsg.sender == address(0).PolicyForbids(TRANSFER_EXECUTOR_POLICY, ...)whenmsg.senderis not authorized as an executor.PolicyForbids(TRANSFER_SENDER_POLICY, ...)whenmsg.senderis not authorized as a sender.PolicyForbids(TRANSFER_RECEIVER_POLICY, ...)whentois not authorized.InsufficientBalancewhenmsg.sender’s balance is belowamount.
Access Control
Standard ERC-20 caller rules apply. The factory bootstrap bypass suppresses all three policy checks during the creation window; seeIB20Factory.createB20.
Policy Interaction
ChecksTRANSFER_EXECUTOR_POLICY, TRANSFER_SENDER_POLICY, and TRANSFER_RECEIVER_POLICY on every call. The executor check runs even when msg.sender == from, so an executor allowlist can restrict holder-initiated transfers with no self-transfer exemption.
Example
Usage Example