Overview
APE Balance
APE Value
$0.00More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Multicall2
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; pragma experimental ABIEncoderV2; contract Multicall2 { struct Call { address target; bytes callData; } struct Result { bool success; bytes returnData; } function aggregate(Call[] memory calls) public returns (uint256 blockNumber, bytes[] memory returnData) { blockNumber = block.number; returnData = new bytes[](calls.length); for(uint256 i = 0; i < calls.length; i++) { (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData); require(success, "Multicall aggregate: call failed"); returnData[i] = ret; } } function blockAndAggregate(Call[] memory calls) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) { (blockNumber, blockHash, returnData) = tryBlockAndAggregate(true, calls); } function getBlockHash(uint256 blockNumber) public view returns (bytes32 blockHash) { blockHash = blockhash(blockNumber); } function getBlockNumber() public view returns (uint256 blockNumber) { blockNumber = block.number; } function getCurrentBlockCoinbase() public view returns (address coinbase) { coinbase = block.coinbase; } function getCurrentBlockDifficulty() public view returns (uint256 difficulty) { difficulty = block.difficulty; } function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) { gaslimit = block.gaslimit; } function getCurrentBlockTimestamp() public view returns (uint256 timestamp) { timestamp = block.timestamp; } function getEthBalance(address addr) public view returns (uint256 balance) { balance = addr.balance; } function getLastBlockHash() public view returns (bytes32 blockHash) { blockHash = blockhash(block.number - 1); } function tryAggregate(bool requireSuccess, Call[] memory calls) public returns (Result[] memory returnData) { returnData = new Result[](calls.length); for(uint256 i = 0; i < calls.length; i++) { (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData); if (requireSuccess) { require(success, "Multicall2 aggregate: call failed"); } returnData[i] = Result(success, ret); } } function tryBlockAndAggregate(bool requireSuccess, Call[] memory calls) public returns (uint256 blockNumber, bytes32 blockHash, Result[] memory returnData) { blockNumber = block.number; blockHash = blockhash(block.number); returnData = tryAggregate(requireSuccess, calls); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall2.Call[]","name":"calls","type":"tuple[]"}],"name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall2.Call[]","name":"calls","type":"tuple[]"}],"name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall2.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall2.Call[]","name":"calls","type":"tuple[]"}],"name":"tryAggregate","outputs":[{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall2.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall2.Call[]","name":"calls","type":"tuple[]"}],"name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall2.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052348015600f57600080fd5b506109b98061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806372425d9d1161007157806372425d9d1461013a57806386d516e814610140578063a8b0574e14610146578063bce38bd714610154578063c3077fa914610174578063ee82ac5e1461018757600080fd5b80630f28c97d146100b9578063252dba42146100ce57806327e86d6e146100ef578063399542e9146100f757806342cbb15c146101195780634d2301cc1461011f575b600080fd5b425b6040519081526020015b60405180910390f35b6100e16100dc3660046106f1565b610199565b6040516100c592919061077e565b6100bb610316565b61010a6101053660046107ea565b610329565b6040516100c5939291906108b4565b436100bb565b6100bb61012d3660046108dc565b6001600160a01b03163190565b446100bb565b456100bb565b6040514181526020016100c5565b6101676101623660046107ea565b610341565b6040516100c591906108fe565b61010a6101823660046106f1565b6104f0565b6100bb610195366004610911565b4090565b8051439060609067ffffffffffffffff8111156101b8576101b861050d565b6040519080825280602002602001820160405280156101eb57816020015b60608152602001906001900390816101d65790505b50905060005b83518110156103105760008085838151811061020f5761020f61092a565b6020026020010151600001516001600160a01b03168684815181106102365761023661092a565b60200260200101516020015160405161024f9190610940565b6000604051808303816000865af19150503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b5091509150816102e85760405162461bcd60e51b815260206004820181905260248201527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c656460448201526064015b60405180910390fd5b808484815181106102fb576102fb61092a565b602090810291909101015250506001016101f1565b50915091565b600061032360014361095c565b40905090565b43804060606103388585610341565b90509250925092565b6060815167ffffffffffffffff81111561035d5761035d61050d565b6040519080825280602002602001820160405280156103a357816020015b60408051808201909152600081526060602082015281526020019060019003908161037b5790505b50905060005b82518110156104e9576000808483815181106103c7576103c761092a565b6020026020010151600001516001600160a01b03168584815181106103ee576103ee61092a565b6020026020010151602001516040516104079190610940565b6000604051808303816000865af19150503d8060008114610444576040519150601f19603f3d011682016040523d82523d6000602084013e610449565b606091505b509150915085156104ab57816104ab5760405162461bcd60e51b815260206004820152602160248201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c656044820152601960fa1b60648201526084016102df565b60405180604001604052808315158152602001828152508484815181106104d4576104d461092a565b602090810291909101015250506001016103a9565b5092915050565b6000806060610500600185610329565b9196909550909350915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156105465761054661050d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156105755761057561050d565b604052919050565b80356001600160a01b038116811461059457600080fd5b919050565b600082601f8301126105aa57600080fd5b813567ffffffffffffffff8111156105c4576105c461050d565b8060051b6105d46020820161054c565b918252602081850181019290810190868411156105f057600080fd5b6020860192505b838310156106e757823567ffffffffffffffff81111561061657600080fd5b86016040818903601f1901121561062c57600080fd5b610634610523565b6106406020830161057d565b8152604082013567ffffffffffffffff81111561065c57600080fd5b60208184010192505088601f83011261067457600080fd5b813567ffffffffffffffff81111561068e5761068e61050d565b6106a1601f8201601f191660200161054c565b8181528a60208386010111156106b657600080fd5b81602085016020830137600060208383010152806020840152505080845250506020820191506020830192506105f7565b9695505050505050565b60006020828403121561070357600080fd5b813567ffffffffffffffff81111561071a57600080fd5b61072684828501610599565b949350505050565b60005b83811015610749578181015183820152602001610731565b50506000910152565b6000815180845261076a81602086016020860161072e565b601f01601f19169290920160200192915050565b6000604082018483526040602084015280845180835260608501915060608160051b86010192506020860160005b828110156107dd57605f198786030184526107c8858351610752565b945060209384019391909101906001016107ac565b5092979650505050505050565b600080604083850312156107fd57600080fd5b8235801515811461080d57600080fd5b9150602083013567ffffffffffffffff81111561082957600080fd5b61083585828601610599565b9150509250929050565b600082825180855260208501945060208160051b8301016020850160005b838110156108a857601f19858403018852815180511515845260208101519050604060208501526108916040850182610752565b6020998a019990945092909201915060010161085d565b50909695505050505050565b8381528260208201526060604082015260006108d3606083018461083f565b95945050505050565b6000602082840312156108ee57600080fd5b6108f78261057d565b9392505050565b6020815260006108f7602083018461083f565b60006020828403121561092357600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6000825161095281846020870161072e565b9190910192915050565b8181038181111561097d57634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220950627f421440b6bef3f6c70d1b878192f63708803bdc326ec0a53e76962412464736f6c634300081c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806372425d9d1161007157806372425d9d1461013a57806386d516e814610140578063a8b0574e14610146578063bce38bd714610154578063c3077fa914610174578063ee82ac5e1461018757600080fd5b80630f28c97d146100b9578063252dba42146100ce57806327e86d6e146100ef578063399542e9146100f757806342cbb15c146101195780634d2301cc1461011f575b600080fd5b425b6040519081526020015b60405180910390f35b6100e16100dc3660046106f1565b610199565b6040516100c592919061077e565b6100bb610316565b61010a6101053660046107ea565b610329565b6040516100c5939291906108b4565b436100bb565b6100bb61012d3660046108dc565b6001600160a01b03163190565b446100bb565b456100bb565b6040514181526020016100c5565b6101676101623660046107ea565b610341565b6040516100c591906108fe565b61010a6101823660046106f1565b6104f0565b6100bb610195366004610911565b4090565b8051439060609067ffffffffffffffff8111156101b8576101b861050d565b6040519080825280602002602001820160405280156101eb57816020015b60608152602001906001900390816101d65790505b50905060005b83518110156103105760008085838151811061020f5761020f61092a565b6020026020010151600001516001600160a01b03168684815181106102365761023661092a565b60200260200101516020015160405161024f9190610940565b6000604051808303816000865af19150503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b5091509150816102e85760405162461bcd60e51b815260206004820181905260248201527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c656460448201526064015b60405180910390fd5b808484815181106102fb576102fb61092a565b602090810291909101015250506001016101f1565b50915091565b600061032360014361095c565b40905090565b43804060606103388585610341565b90509250925092565b6060815167ffffffffffffffff81111561035d5761035d61050d565b6040519080825280602002602001820160405280156103a357816020015b60408051808201909152600081526060602082015281526020019060019003908161037b5790505b50905060005b82518110156104e9576000808483815181106103c7576103c761092a565b6020026020010151600001516001600160a01b03168584815181106103ee576103ee61092a565b6020026020010151602001516040516104079190610940565b6000604051808303816000865af19150503d8060008114610444576040519150601f19603f3d011682016040523d82523d6000602084013e610449565b606091505b509150915085156104ab57816104ab5760405162461bcd60e51b815260206004820152602160248201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c656044820152601960fa1b60648201526084016102df565b60405180604001604052808315158152602001828152508484815181106104d4576104d461092a565b602090810291909101015250506001016103a9565b5092915050565b6000806060610500600185610329565b9196909550909350915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156105465761054661050d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156105755761057561050d565b604052919050565b80356001600160a01b038116811461059457600080fd5b919050565b600082601f8301126105aa57600080fd5b813567ffffffffffffffff8111156105c4576105c461050d565b8060051b6105d46020820161054c565b918252602081850181019290810190868411156105f057600080fd5b6020860192505b838310156106e757823567ffffffffffffffff81111561061657600080fd5b86016040818903601f1901121561062c57600080fd5b610634610523565b6106406020830161057d565b8152604082013567ffffffffffffffff81111561065c57600080fd5b60208184010192505088601f83011261067457600080fd5b813567ffffffffffffffff81111561068e5761068e61050d565b6106a1601f8201601f191660200161054c565b8181528a60208386010111156106b657600080fd5b81602085016020830137600060208383010152806020840152505080845250506020820191506020830192506105f7565b9695505050505050565b60006020828403121561070357600080fd5b813567ffffffffffffffff81111561071a57600080fd5b61072684828501610599565b949350505050565b60005b83811015610749578181015183820152602001610731565b50506000910152565b6000815180845261076a81602086016020860161072e565b601f01601f19169290920160200192915050565b6000604082018483526040602084015280845180835260608501915060608160051b86010192506020860160005b828110156107dd57605f198786030184526107c8858351610752565b945060209384019391909101906001016107ac565b5092979650505050505050565b600080604083850312156107fd57600080fd5b8235801515811461080d57600080fd5b9150602083013567ffffffffffffffff81111561082957600080fd5b61083585828601610599565b9150509250929050565b600082825180855260208501945060208160051b8301016020850160005b838110156108a857601f19858403018852815180511515845260208101519050604060208501526108916040850182610752565b6020998a019990945092909201915060010161085d565b50909695505050505050565b8381528260208201526060604082015260006108d3606083018461083f565b95945050505050565b6000602082840312156108ee57600080fd5b6108f78261057d565b9392505050565b6020815260006108f7602083018461083f565b60006020828403121561092357600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6000825161095281846020870161072e565b9190910192915050565b8181038181111561097d57634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220950627f421440b6bef3f6c70d1b878192f63708803bdc326ec0a53e76962412464736f6c634300081c0033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.