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);