Skip to main content

Signature

IB20Asset.sol

Description

Emits Announcement(caller, id, description, uri), executes every entry in internalCalls atomically via self-delegatecall (preserving msg.sender), then emits EndAnnouncement(id). Pass an empty internalCalls array for a notice with no on-chain effect; both events still fire and id is consumed. Indexers pair open and close brackets by id. Every event emitted between the two logs belongs to the announced action. A state-changing call that appears outside this bracket was invoked directly, not through announce.
  • Execution order: emit Announcement → run inner calls → emit EndAnnouncement. If any inner call fails, the whole transaction reverts and id is not consumed.
  • After a successful call, isAnnouncementIdUsed(id) returns true.
  • announce is defined on B20 Asset only. Stablecoin has no announcements.
  • Typical inner calls: updateUIMultiplier, cancelUIMultiplierUpdate, batchMint, mintWithMemo, burnWithMemo.

Parameters

Reverts

A Solidity Panic inside an inner call (for example arithmetic overflow) propagates raw and is not wrapped as InternalCallFailed.

Access Control

OPERATOR_ROLE gates this call. Any other caller reverts AccessControlUnauthorizedAccount. Inner calls keep their own role gates; the operator must hold every role the inner calls require (for example MINT_ROLE for batchMint, BURN_ROLE for burnWithMemo).

Example

Scheduled split wrapped in an announcement
Notice with no inner calls