Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- Multicall
- Optimization enabled
- false
- Compiler version
- v0.8.7+commit.e28d00a7
- EVM Version
- default
- Verified at
- 2024-05-20T14:46:47.348018Z
.sol
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; pragma experimental ABIEncoderV2; /// @title Multicall - Aggregate results from multiple read-only function calls contract Multicall { struct Call { address target; bytes callData; } 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); returnData[i] = ret; } } // Helper functions function getEthBalance(address addr) public view returns (uint256 balance) { balance = addr.balance; } function getBlockHash(uint256 blockNumber) public view returns (bytes32 blockHash) { blockHash = blockhash(blockNumber); } function getLastBlockHash() public view returns (bytes32 blockHash) { blockHash = blockhash(block.number - 1); } function getCurrentBlockTimestamp() public view returns (uint256 timestamp) { timestamp = block.timestamp; } function getCurrentBlockDifficulty() public view returns (uint256 difficulty) { difficulty = block.difficulty; } function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) { gaslimit = block.gaslimit; } function getCurrentBlockCoinbase() public view returns (address coinbase) { coinbase = block.coinbase; } }
Compiler Settings
{"outputSelection":{"*":{"*":["*"],"":["*"]}},"optimizer":{"runs":200,"enabled":false},"libraries":{}}
Contract ABI
[{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"},{"type":"bytes[]","name":"returnData","internalType":"bytes[]"}],"name":"aggregate","inputs":[{"type":"tuple[]","name":"calls","internalType":"struct Multicall.Call[]","components":[{"type":"address","name":"target","internalType":"address"},{"type":"bytes","name":"callData","internalType":"bytes"}]}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"blockHash","internalType":"bytes32"}],"name":"getBlockHash","inputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"coinbase","internalType":"address"}],"name":"getCurrentBlockCoinbase","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"difficulty","internalType":"uint256"}],"name":"getCurrentBlockDifficulty","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"gaslimit","internalType":"uint256"}],"name":"getCurrentBlockGasLimit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"timestamp","internalType":"uint256"}],"name":"getCurrentBlockTimestamp","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"balance","internalType":"uint256"}],"name":"getEthBalance","inputs":[{"type":"address","name":"addr","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"blockHash","internalType":"bytes32"}],"name":"getLastBlockHash","inputs":[]}]
Contract Creation Code
0x608060405234801561001057600080fd5b50610ac2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806372425d9d1161005b57806372425d9d1461012a57806386d516e814610148578063a8b0574e14610166578063ee82ac5e1461018457610088565b80630f28c97d1461008d578063252dba42146100ab57806327e86d6e146100dc5780634d2301cc146100fa575b600080fd5b6100956101b4565b6040516100a2919061073a565b60405180910390f35b6100c560048036038101906100c09190610557565b6101bc565b6040516100d3929190610755565b60405180910390f35b6100e461030f565b6040516100f1919061071f565b60405180910390f35b610114600480360381019061010f919061052a565b610324565b604051610121919061073a565b60405180910390f35b610132610345565b60405161013f919061073a565b60405180910390f35b61015061034d565b60405161015d919061073a565b60405180910390f35b61016e610355565b60405161017b9190610704565b60405180910390f35b61019e600480360381019061019991906105a0565b61035d565b6040516101ab919061071f565b60405180910390f35b600042905090565b60006060439150825167ffffffffffffffff8111156101de576101dd6109fb565b5b60405190808252806020026020018201604052801561021157816020015b60608152602001906001900390816101fc5790505b50905060005b835181101561030957600080858381518110610236576102356109cc565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061026b5761026a6109cc565b5b60200260200101516020015160405161028491906106ed565b6000604051808303816000865af19150503d80600081146102c1576040519150601f19603f3d011682016040523d82523d6000602084013e6102c6565b606091505b5091509150816102d557600080fd5b808484815181106102e9576102e86109cc565b5b60200260200101819052505050808061030190610954565b915050610217565b50915091565b600060014361031e9190610867565b40905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b600045905090565b600041905090565b600081409050919050565b600061037b610376846107aa565b610785565b9050808382526020820190508285602086028201111561039e5761039d610a39565b5b60005b858110156103ec57813567ffffffffffffffff8111156103c4576103c3610a2a565b5b8086016103d189826104a9565b855260208501945060208401935050506001810190506103a1565b5050509392505050565b6000610409610404846107d6565b610785565b90508281526020810184848401111561042557610424610a3e565b5b6104308482856108e1565b509392505050565b60008135905061044781610a5e565b92915050565b600082601f83011261046257610461610a2a565b5b8135610472848260208601610368565b91505092915050565b600082601f8301126104905761048f610a2a565b5b81356104a08482602086016103f6565b91505092915050565b6000604082840312156104bf576104be610a2f565b5b6104c96040610785565b905060006104d984828501610438565b600083015250602082013567ffffffffffffffff8111156104fd576104fc610a34565b5b6105098482850161047b565b60208301525092915050565b60008135905061052481610a75565b92915050565b6000602082840312156105405761053f610a48565b5b600061054e84828501610438565b91505092915050565b60006020828403121561056d5761056c610a48565b5b600082013567ffffffffffffffff81111561058b5761058a610a43565b5b6105978482850161044d565b91505092915050565b6000602082840312156105b6576105b5610a48565b5b60006105c484828501610515565b91505092915050565b60006105d98383610674565b905092915050565b6105ea8161089b565b82525050565b60006105fb82610817565b610605818561083a565b93508360208202850161061785610807565b8060005b85811015610653578484038952815161063485826105cd565b945061063f8361082d565b925060208a0199505060018101905061061b565b50829750879550505050505092915050565b61066e816108ad565b82525050565b600061067f82610822565b610689818561084b565b93506106998185602086016108f0565b6106a281610a4d565b840191505092915050565b60006106b882610822565b6106c2818561085c565b93506106d28185602086016108f0565b80840191505092915050565b6106e7816108d7565b82525050565b60006106f982846106ad565b915081905092915050565b600060208201905061071960008301846105e1565b92915050565b60006020820190506107346000830184610665565b92915050565b600060208201905061074f60008301846106de565b92915050565b600060408201905061076a60008301856106de565b818103602083015261077c81846105f0565b90509392505050565b600061078f6107a0565b905061079b8282610923565b919050565b6000604051905090565b600067ffffffffffffffff8211156107c5576107c46109fb565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156107f1576107f06109fb565b5b6107fa82610a4d565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000610872826108d7565b915061087d836108d7565b9250828210156108905761088f61099d565b5b828203905092915050565b60006108a6826108b7565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561090e5780820151818401526020810190506108f3565b8381111561091d576000848401525b50505050565b61092c82610a4d565b810181811067ffffffffffffffff8211171561094b5761094a6109fb565b5b80604052505050565b600061095f826108d7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156109925761099161099d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a678161089b565b8114610a7257600080fd5b50565b610a7e816108d7565b8114610a8957600080fd5b5056fea264697066735822122067b1d6689653fc4f797f19ead13c467cf517ba5ed4b577fd7604c1b6b39d960864736f6c63430008070033
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106100885760003560e01c806372425d9d1161005b57806372425d9d1461012a57806386d516e814610148578063a8b0574e14610166578063ee82ac5e1461018457610088565b80630f28c97d1461008d578063252dba42146100ab57806327e86d6e146100dc5780634d2301cc146100fa575b600080fd5b6100956101b4565b6040516100a2919061073a565b60405180910390f35b6100c560048036038101906100c09190610557565b6101bc565b6040516100d3929190610755565b60405180910390f35b6100e461030f565b6040516100f1919061071f565b60405180910390f35b610114600480360381019061010f919061052a565b610324565b604051610121919061073a565b60405180910390f35b610132610345565b60405161013f919061073a565b60405180910390f35b61015061034d565b60405161015d919061073a565b60405180910390f35b61016e610355565b60405161017b9190610704565b60405180910390f35b61019e600480360381019061019991906105a0565b61035d565b6040516101ab919061071f565b60405180910390f35b600042905090565b60006060439150825167ffffffffffffffff8111156101de576101dd6109fb565b5b60405190808252806020026020018201604052801561021157816020015b60608152602001906001900390816101fc5790505b50905060005b835181101561030957600080858381518110610236576102356109cc565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061026b5761026a6109cc565b5b60200260200101516020015160405161028491906106ed565b6000604051808303816000865af19150503d80600081146102c1576040519150601f19603f3d011682016040523d82523d6000602084013e6102c6565b606091505b5091509150816102d557600080fd5b808484815181106102e9576102e86109cc565b5b60200260200101819052505050808061030190610954565b915050610217565b50915091565b600060014361031e9190610867565b40905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b600045905090565b600041905090565b600081409050919050565b600061037b610376846107aa565b610785565b9050808382526020820190508285602086028201111561039e5761039d610a39565b5b60005b858110156103ec57813567ffffffffffffffff8111156103c4576103c3610a2a565b5b8086016103d189826104a9565b855260208501945060208401935050506001810190506103a1565b5050509392505050565b6000610409610404846107d6565b610785565b90508281526020810184848401111561042557610424610a3e565b5b6104308482856108e1565b509392505050565b60008135905061044781610a5e565b92915050565b600082601f83011261046257610461610a2a565b5b8135610472848260208601610368565b91505092915050565b600082601f8301126104905761048f610a2a565b5b81356104a08482602086016103f6565b91505092915050565b6000604082840312156104bf576104be610a2f565b5b6104c96040610785565b905060006104d984828501610438565b600083015250602082013567ffffffffffffffff8111156104fd576104fc610a34565b5b6105098482850161047b565b60208301525092915050565b60008135905061052481610a75565b92915050565b6000602082840312156105405761053f610a48565b5b600061054e84828501610438565b91505092915050565b60006020828403121561056d5761056c610a48565b5b600082013567ffffffffffffffff81111561058b5761058a610a43565b5b6105978482850161044d565b91505092915050565b6000602082840312156105b6576105b5610a48565b5b60006105c484828501610515565b91505092915050565b60006105d98383610674565b905092915050565b6105ea8161089b565b82525050565b60006105fb82610817565b610605818561083a565b93508360208202850161061785610807565b8060005b85811015610653578484038952815161063485826105cd565b945061063f8361082d565b925060208a0199505060018101905061061b565b50829750879550505050505092915050565b61066e816108ad565b82525050565b600061067f82610822565b610689818561084b565b93506106998185602086016108f0565b6106a281610a4d565b840191505092915050565b60006106b882610822565b6106c2818561085c565b93506106d28185602086016108f0565b80840191505092915050565b6106e7816108d7565b82525050565b60006106f982846106ad565b915081905092915050565b600060208201905061071960008301846105e1565b92915050565b60006020820190506107346000830184610665565b92915050565b600060208201905061074f60008301846106de565b92915050565b600060408201905061076a60008301856106de565b818103602083015261077c81846105f0565b90509392505050565b600061078f6107a0565b905061079b8282610923565b919050565b6000604051905090565b600067ffffffffffffffff8211156107c5576107c46109fb565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156107f1576107f06109fb565b5b6107fa82610a4d565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000610872826108d7565b915061087d836108d7565b9250828210156108905761088f61099d565b5b828203905092915050565b60006108a6826108b7565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561090e5780820151818401526020810190506108f3565b8381111561091d576000848401525b50505050565b61092c82610a4d565b810181811067ffffffffffffffff8211171561094b5761094a6109fb565b5b80604052505050565b600061095f826108d7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156109925761099161099d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a678161089b565b8114610a7257600080fd5b50565b610a7e816108d7565b8114610a8957600080fd5b5056fea264697066735822122067b1d6689653fc4f797f19ead13c467cf517ba5ed4b577fd7604c1b6b39d960864736f6c63430008070033