Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

MulticallUpgradeable

Inherits: Initializable, ContextUpgradeable

Provides a function to batch together multiple calls in a single external call. Consider any assumption about calldata validation performed by the sender may be violated if it's not especially careful about sending transactions invoking multicall. For example, a relay address that filters function selectors won't filter calls nested within a {multicall} operation. NOTE: Since 5.0.1 and 4.9.4, this contract identifies non-canonical contexts (i.e. msg.sender is not {Context-_msgSender}). If a non-canonical context is identified, the following self delegatecall appends the last bytes of msg.data to the subcall. This makes it safe to use with {ERC2771Context}. Contexts that don't affect the resolution of {Context-_msgSender} are not propagated to subcalls.

Functions

__Multicall_init

function __Multicall_init() internal onlyInitializing;

__Multicall_init_unchained

function __Multicall_init_unchained() internal onlyInitializing;

multicall

Receives and executes a batch of function calls on this contract.

Note: oz-upgrades-unsafe-allow-reachable: delegatecall

function multicall(bytes[] calldata data) external virtual returns (bytes[] memory results);