Bundler3
Inherits: IBundler3
Enables batching multiple calls in a single one.
Transiently stores the initiator of the multicall.
Can be reentered by the last unreturned callee with known data.
Anybody can do arbitrary calls with this contract, so it should not be approved/authorized anywhere.
State Variables
initiator
The initiator of the multicall transaction.
solidity
address public transient initiatorreenterHash
Hash of the concatenation of the sender and the hash of the calldata of the next call to reenter.
solidity
bytes32 public transient reenterHashFunctions
multicall
Executes a sequence of calls.
Locks the initiator so that the sender can be identified by other contracts.
solidity
function multicall(Call[] calldata bundle) external payable;Parameters
| Name | Type | Description |
|---|---|---|
bundle | Call[] | The ordered array of calldata to execute. |
reenter
Executes a sequence of calls.
Useful during callbacks.
Can only be called by the last unreturned callee with known data.
solidity
function reenter(Call[] calldata bundle) external;Parameters
| Name | Type | Description |
|---|---|---|
bundle | Call[] | The ordered array of calldata to execute. |
_multicall
Executes a sequence of calls.
solidity
function _multicall(Call[] calldata bundle) internal;