Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- UniswapInterfaceMulticall
- Optimization enabled
- true
- Compiler version
- v0.7.6+commit.7338295f
- Optimization runs
- 200
- EVM Version
- default
- Verified at
- 2024-11-08T12:46:22.140139Z
contracts/UniswapInterfaceMulticall.sol
// SPDX-License-Identifier: MIT
pragma solidity =0.7.6;
pragma abicoder v2;
/// @notice A fork of Multicall2 specifically tailored for the Uniswap Interface
contract UniswapInterfaceMulticall {
struct Call {
address target;
uint256 gasLimit;
bytes callData;
}
struct Result {
bool success;
uint256 gasUsed;
bytes returnData;
}
function getCurrentBlockTimestamp() public view returns (uint256 timestamp) {
timestamp = block.timestamp;
}
function getEthBalance(address addr) public view returns (uint256 balance) {
balance = addr.balance;
}
function multicall(Call[] memory calls) public returns (uint256 blockNumber, Result[] memory returnData) {
blockNumber = block.number;
returnData = new Result[](calls.length);
for (uint256 i = 0; i < calls.length; i++) {
(address target, uint256 gasLimit, bytes memory callData) =
(calls[i].target, calls[i].gasLimit, calls[i].callData);
uint256 gasLeftBefore = gasleft();
(bool success, bytes memory ret) = target.call{gas: gasLimit}(callData);
uint256 gasUsed = gasLeftBefore - gasleft();
returnData[i] = Result(success, gasUsed, ret);
}
}
}
Compiler Settings
{"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}},"optimizer":{"runs":200,"enabled":true},"libraries":{}}
Contract ABI
[{"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":"nonpayable","outputs":[{"type":"uint256","name":"blockNumber","internalType":"uint256"},{"type":"tuple[]","name":"returnData","internalType":"struct UniswapInterfaceMulticall.Result[]","components":[{"type":"bool","name":"success","internalType":"bool"},{"type":"uint256","name":"gasUsed","internalType":"uint256"},{"type":"bytes","name":"returnData","internalType":"bytes"}]}],"name":"multicall","inputs":[{"type":"tuple[]","name":"calls","internalType":"struct UniswapInterfaceMulticall.Call[]","components":[{"type":"address","name":"target","internalType":"address"},{"type":"uint256","name":"gasLimit","internalType":"uint256"},{"type":"bytes","name":"callData","internalType":"bytes"}]}]}]
Contract Creation Code
0x608060405234801561001057600080fd5b5061050f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b91906103da565b60405180910390f35b610077610072366004610280565b61009c565b60405161005b9291906103e3565b61004e61009336600461025f565b610213565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e0610220565b8152602001906001900390816100d85790505b50905060005b835181101561020d57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a9050600080856001600160a01b0316858560405161017691906103be565b60006040518083038160008787f1925050503d80600081146101b4576040519150601f19603f3d011682016040523d82523d6000602084013e6101b9565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101ee57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b6001600160a01b03163190565b604051806060016040528060001515815260200160008152602001606081525090565b80356001600160a01b038116811461025a57600080fd5b919050565b600060208284031215610270578081fd5b61027982610243565b9392505050565b60006020808385031215610292578182fd5b823567ffffffffffffffff808211156102a9578384fd5b818501915085601f8301126102bc578384fd5b8135818111156102c857fe5b6102d58485830201610485565b81815284810190848601875b848110156103af5781358701601f196060828e0382011215610301578a8bfd5b60408051606081018181108b8211171561031757fe5b8252610324848d01610243565b8152818401358c82015260608401358a81111561033f578d8efd5b8085019450508e603f850112610353578c8dfd5b8b8401358a81111561036157fe5b6103718d85601f84011601610485565b93508084528f83828701011115610386578d8efd5b808386018e86013783018c018d90529081019190915285525092870192908701906001016102e1565b50909998505050505050505050565b600082516103d08184602087016104a9565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b8381101561047557898303605f19018552815180511515845286810151878501528801518884018890528051888501819052608061045282828801858c016104a9565b96880196601f91909101601f19169490940190930192509085019060010161040f565b50909a9950505050505050505050565b60405181810167ffffffffffffffff811182821017156104a157fe5b604052919050565b60005b838110156104c45781810151838201526020016104ac565b838111156104d3576000848401525b5050505056fea2646970667358221220f94af2349924117031e34a6a1e7d8f40303336094d2c8a5acb90e8fd313090b464736f6c63430007060033
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b91906103da565b60405180910390f35b610077610072366004610280565b61009c565b60405161005b9291906103e3565b61004e61009336600461025f565b610213565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e0610220565b8152602001906001900390816100d85790505b50905060005b835181101561020d57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a9050600080856001600160a01b0316858560405161017691906103be565b60006040518083038160008787f1925050503d80600081146101b4576040519150601f19603f3d011682016040523d82523d6000602084013e6101b9565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101ee57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b6001600160a01b03163190565b604051806060016040528060001515815260200160008152602001606081525090565b80356001600160a01b038116811461025a57600080fd5b919050565b600060208284031215610270578081fd5b61027982610243565b9392505050565b60006020808385031215610292578182fd5b823567ffffffffffffffff808211156102a9578384fd5b818501915085601f8301126102bc578384fd5b8135818111156102c857fe5b6102d58485830201610485565b81815284810190848601875b848110156103af5781358701601f196060828e0382011215610301578a8bfd5b60408051606081018181108b8211171561031757fe5b8252610324848d01610243565b8152818401358c82015260608401358a81111561033f578d8efd5b8085019450508e603f850112610353578c8dfd5b8b8401358a81111561036157fe5b6103718d85601f84011601610485565b93508084528f83828701011115610386578d8efd5b808386018e86013783018c018d90529081019190915285525092870192908701906001016102e1565b50909998505050505050505050565b600082516103d08184602087016104a9565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b8381101561047557898303605f19018552815180511515845286810151878501528801518884018890528051888501819052608061045282828801858c016104a9565b96880196601f91909101601f19169490940190930192509085019060010161040f565b50909a9950505050505050505050565b60405181810167ffffffffffffffff811182821017156104a157fe5b604052919050565b60005b838110156104c45781810151838201526020016104ac565b838111156104d3576000848401525b5050505056fea2646970667358221220f94af2349924117031e34a6a1e7d8f40303336094d2c8a5acb90e8fd313090b464736f6c63430007060033