ETH Price: $2,043.12 (+1.03%)

Contract

0xC936Fb76df2d8a030d8030f984f4C3510bE0D96E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Multicall

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-04-11
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
pragma experimental ABIEncoderV2;


/// @title Multicall - Aggregate results from multiple read-only function calls
/// @author Nick Johnson <arachnid@notdot.net>

contract Multicall {
    struct Call {
        address target;
        bytes callData;
    }

    modifier OnlyAllowed {
        require(allowed[msg.sender] == true, "user not allowed to execute multicall");
        _;
    }

    mapping(address => bool) public allowed;
    address owner;

    constructor(){
        allowed[msg.sender] = true;
        owner = msg.sender;
    }

    function addAllowed(address addressToAdd) public {
        require(msg.sender == owner);
        allowed[addressToAdd] = true;
    }

    function aggregate(Call[] memory calls) public OnlyAllowed 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;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"addressToAdd","type":"address"}],"name":"addAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall.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":[{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"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"}]

608060405234801561001057600080fd5b50336000818152602081905260409020805460ff1916600190811790915580546001600160a01b03191690911790556107388061004e6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806386d516e81161006657806386d516e814610105578063a8b0574e1461010d578063cb8523c614610122578063d63a8e1114610137578063ee82ac5e146101575761009e565b80630f28c97d146100a3578063252dba42146100c157806327e86d6e146100e25780634d2301cc146100ea57806372425d9d146100fd575b600080fd5b6100ab61016a565b6040516100b8919061057c565b60405180910390f35b6100d46100cf3660046103e1565b61016e565b6040516100b89291906105ca565b6100ab610324565b6100ab6100f83660046103c0565b610337565b6100ab610344565b6100ab610348565b61011561034c565b6040516100b8919061055d565b6101356101303660046103c0565b610350565b005b61014a6101453660046103c0565b61038b565b6040516100b89190610571565b6100ab610165366004610529565b6103a0565b4290565b3360009081526020819052604081205460609060ff1615156001146101ae5760405162461bcd60e51b81526004016101a590610585565b60405180910390fd5b439150825167ffffffffffffffff8111156101d957634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561020c57816020015b60608152602001906001900390816101f75790505b50905060005b835181101561031e5760008085838151811061023e57634e487b7160e01b600052603260045260246000fd5b6020026020010151600001516001600160a01b031686848151811061027357634e487b7160e01b600052603260045260246000fd5b60200260200101516020015160405161028c9190610541565b6000604051808303816000865af19150503d80600081146102c9576040519150601f19603f3d011682016040523d82523d6000602084013e6102ce565b606091505b5091509150816102dd57600080fd5b808484815181106102fe57634e487b7160e01b600052603260045260246000fd5b602002602001018190525050508080610316906106bb565b915050610212565b50915091565b6000610331600143610674565b40905090565b6001600160a01b03163190565b4490565b4590565b4190565b6001546001600160a01b0316331461036757600080fd5b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b60006020819052908152604090205460ff1681565b4090565b80356001600160a01b03811681146103bb57600080fd5b919050565b6000602082840312156103d1578081fd5b6103da826103a4565b9392505050565b600060208083850312156103f3578182fd5b67ffffffffffffffff8084351115610409578283fd5b8335840185601f82011261041b578384fd5b80358281111561042d5761042d6106ec565b61043a848583020161064a565b81815284810190838601875b8481101561051a5781358601601f196040828e0382011215610466578a8bfd5b604051604081018181108b82111715610481576104816106ec565b60405261048f838c016103a4565b815260408301358a8111156104a2578c8dfd5b8084019350508d603f8401126104b6578b8cfd5b8a8301358a8111156104ca576104ca6106ec565b6104da8c84601f8401160161064a565b92508083528e60408286010111156104f0578c8dfd5b80604085018d85013782018b018c9052808b01919091528552509287019290870190600101610446565b50909998505050505050505050565b60006020828403121561053a578081fd5b5035919050565b6000825161055381846020870161068b565b9190910192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526025908201527f75736572206e6f7420616c6c6f77656420746f2065786563757465206d756c746040820152641a58d85b1b60da1b606082015260800190565b600060408201848352602060408185015281855180845260608601915060608382028701019350828701855b8281101561063c57878603605f190184528151805180885261061d81888a0189850161068b565b601f01601f1916969096018501955092840192908401906001016105f6565b509398975050505050505050565b60405181810167ffffffffffffffff8111828210171561066c5761066c6106ec565b604052919050565b600082821015610686576106866106d6565b500390565b60005b838110156106a657818101518382015260200161068e565b838111156106b5576000848401525b50505050565b60006000198214156106cf576106cf6106d6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212200457fca6c996cd4ffb18355156c3f096bc4f8ea428c58bf9edfd3b4c721201d164736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806386d516e81161006657806386d516e814610105578063a8b0574e1461010d578063cb8523c614610122578063d63a8e1114610137578063ee82ac5e146101575761009e565b80630f28c97d146100a3578063252dba42146100c157806327e86d6e146100e25780634d2301cc146100ea57806372425d9d146100fd575b600080fd5b6100ab61016a565b6040516100b8919061057c565b60405180910390f35b6100d46100cf3660046103e1565b61016e565b6040516100b89291906105ca565b6100ab610324565b6100ab6100f83660046103c0565b610337565b6100ab610344565b6100ab610348565b61011561034c565b6040516100b8919061055d565b6101356101303660046103c0565b610350565b005b61014a6101453660046103c0565b61038b565b6040516100b89190610571565b6100ab610165366004610529565b6103a0565b4290565b3360009081526020819052604081205460609060ff1615156001146101ae5760405162461bcd60e51b81526004016101a590610585565b60405180910390fd5b439150825167ffffffffffffffff8111156101d957634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561020c57816020015b60608152602001906001900390816101f75790505b50905060005b835181101561031e5760008085838151811061023e57634e487b7160e01b600052603260045260246000fd5b6020026020010151600001516001600160a01b031686848151811061027357634e487b7160e01b600052603260045260246000fd5b60200260200101516020015160405161028c9190610541565b6000604051808303816000865af19150503d80600081146102c9576040519150601f19603f3d011682016040523d82523d6000602084013e6102ce565b606091505b5091509150816102dd57600080fd5b808484815181106102fe57634e487b7160e01b600052603260045260246000fd5b602002602001018190525050508080610316906106bb565b915050610212565b50915091565b6000610331600143610674565b40905090565b6001600160a01b03163190565b4490565b4590565b4190565b6001546001600160a01b0316331461036757600080fd5b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b60006020819052908152604090205460ff1681565b4090565b80356001600160a01b03811681146103bb57600080fd5b919050565b6000602082840312156103d1578081fd5b6103da826103a4565b9392505050565b600060208083850312156103f3578182fd5b67ffffffffffffffff8084351115610409578283fd5b8335840185601f82011261041b578384fd5b80358281111561042d5761042d6106ec565b61043a848583020161064a565b81815284810190838601875b8481101561051a5781358601601f196040828e0382011215610466578a8bfd5b604051604081018181108b82111715610481576104816106ec565b60405261048f838c016103a4565b815260408301358a8111156104a2578c8dfd5b8084019350508d603f8401126104b6578b8cfd5b8a8301358a8111156104ca576104ca6106ec565b6104da8c84601f8401160161064a565b92508083528e60408286010111156104f0578c8dfd5b80604085018d85013782018b018c9052808b01919091528552509287019290870190600101610446565b50909998505050505050505050565b60006020828403121561053a578081fd5b5035919050565b6000825161055381846020870161068b565b9190910192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526025908201527f75736572206e6f7420616c6c6f77656420746f2065786563757465206d756c746040820152641a58d85b1b60da1b606082015260800190565b600060408201848352602060408185015281855180845260608601915060608382028701019350828701855b8281101561063c57878603605f190184528151805180885261061d81888a0189850161068b565b601f01601f1916969096018501955092840192908401906001016105f6565b509398975050505050505050565b60405181810167ffffffffffffffff8111828210171561066c5761066c6106ec565b604052919050565b600082821015610686576106866106d6565b500390565b60005b838110156106a657818101518382015260200161068e565b838111156106b5576000848401525b50505050565b60006000198214156106cf576106cf6106d6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212200457fca6c996cd4ffb18355156c3f096bc4f8ea428c58bf9edfd3b4c721201d164736f6c63430008000033

Deployed Bytecode Sourcemap

228:1907:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:122;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;775:428;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1498:126::-;;;:::i;1234:116::-;;;;;;:::i;:::-;;:::i;1758:126::-;;;:::i;1890:118::-;;;:::i;2014:::-;;;:::i;:::-;;;;;;;:::i;632:135::-;;;;;;:::i;:::-;;:::i;:::-;;469:39;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1356:136::-;;;;;;:::i;:::-;;:::i;1630:122::-;1729:15;;1630:122::o;775:428::-;380:10;843:19;372;;;;;;;;;;;864:25;;372:19;;:27;;:19;:27;364:77;;;;-1:-1:-1;;;364:77:0;;;;;;;:::i;:::-;;;;;;;;;916:12:::1;902:26;;964:5;:12;952:25;;;;;;-1:-1:-1::0;;;952:25:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;939:38;;992:9;988:208;1011:5;:12;1007:1;:16;988:208;;;1046:12;1060:16:::0;1080:5:::1;1086:1;1080:8;;;;;;-1:-1:-1::0;;;1080:8:0::1;;;;;;;;;;;;;;;:15;;;-1:-1:-1::0;;;;;1080:20:0::1;1101:5;1107:1;1101:8;;;;;;-1:-1:-1::0;;;1101:8:0::1;;;;;;;;;;;;;;;:17;;;1080:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1045:74;;;;1142:7;1134:16;;;::::0;::::1;;1181:3;1165:10;1176:1;1165:13;;;;;;-1:-1:-1::0;;;1165:13:0::1;;;;;;;;;;;;;;:19;;;;988:208;;1025:3;;;;;:::i;:::-;;;;988:208;;;;775:428:::0;;;:::o;1498:126::-;1547:17;1599:16;1614:1;1599:12;:16;:::i;:::-;1589:27;1577:39;;1498:126;:::o;1234:116::-;-1:-1:-1;;;;;1330:12:0;;;1234:116::o;1758:126::-;1860:16;;1758:126::o;1890:118::-;1986:14;;1890:118::o;2014:::-;2110:14;;2014:118::o;632:135::-;714:5;;-1:-1:-1;;;;;714:5:0;700:10;:19;692:28;;;;;;-1:-1:-1;;;;;731:21:0;:7;:21;;;;;;;;;;:28;;-1:-1:-1;;731:28:0;755:4;731:28;;;632:135::o;469:39::-;;;;;;;;;;;;;;;;:::o;1356:136::-;1462:22;;1356:136::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;113:2;65:124;;;:::o;194:198::-;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:1991::-;;531:2;574;562:9;553:7;549:23;545:32;542:2;;;595:6;587;580:22;542:2;623:18;681:2;669:9;656:23;653:31;650:2;;;702:6;694;687:22;650:2;758:9;745:23;734:9;730:39;807:7;800:4;796:2;792:13;788:27;778:2;;834:6;826;819:22;778:2;875;862:16;897:2;893;890:10;887:2;;;903:18;;:::i;:::-;943:36;975:2;970;966;962:11;958:20;943:36;:::i;:::-;1013:15;;;1044:12;;;;1076:11;;;1105:6;1120:1238;1134:2;1131:1;1128:9;1120:1238;;;1197:17;;1189:26;;-1:-1:-1;;1292:4:1;1269:16;;;1265:25;;1261:36;1258:2;;;1315:6;1307;1300:22;1258:2;1357:4;1351:11;1405:4;1397:6;1393:17;1464:6;1452:10;1449:22;1444:2;1432:10;1429:18;1426:46;1423:2;;;1475:18;;:::i;:::-;1515:4;1508:24;1560:33;1581:11;;;1560:33;:::i;:::-;1552:6;1545:49;1642:4;1638:2;1634:13;1621:27;1675:2;1667:6;1664:14;1661:2;;;1696:6;1688;1681:22;1661:2;1736:6;1732:2;1728:15;1718:25;;;1783:7;1778:2;1774;1770:11;1766:25;1756:2;;1810:6;1802;1795:22;1756:2;1863;1859;1855:11;1842:25;1890:2;1886;1883:10;1880:2;;;1896:18;;:::i;:::-;1942:47;1985:2;1980;1973:4;1969:2;1965:13;1961:22;1957:31;1942:47;:::i;:::-;1929:60;;2016:2;2009:5;2002:17;2062:7;2055:4;2050:2;2046;2042:11;2038:22;2035:35;2032:2;;;2088:6;2080;2073:22;2032:2;2154;2147:4;2143:2;2139:13;2134:2;2127:5;2123:14;2110:47;2181:14;;2177:23;;2170:39;;;2229:15;;;2222:30;;;;2265:19;;-1:-1:-1;2304:12:1;;;;2336;;;;1152:1;1145:9;1120:1238;;;-1:-1:-1;2377:5:1;;511:1877;-1:-1:-1;;;;;;;;;511:1877:1:o;2393:190::-;;2505:2;2493:9;2484:7;2480:23;2476:32;2473:2;;;2526:6;2518;2511:22;2473:2;-1:-1:-1;2554:23:1;;2463:120;-1:-1:-1;2463:120:1:o;2588:274::-;;2755:6;2749:13;2771:53;2817:6;2812:3;2805:4;2797:6;2793:17;2771:53;:::i;:::-;2840:16;;;;;2725:137;-1:-1:-1;;2725:137:1:o;2867:203::-;-1:-1:-1;;;;;3031:32:1;;;;3013:51;;3001:2;2986:18;;2968:102::o;3075:187::-;3240:14;;3233:22;3215:41;;3203:2;3188:18;;3170:92::o;3267:177::-;3413:25;;;3401:2;3386:18;;3368:76::o;3449:401::-;3651:2;3633:21;;;3690:2;3670:18;;;3663:30;3729:34;3724:2;3709:18;;3702:62;-1:-1:-1;;;3795:2:1;3780:18;;3773:35;3840:3;3825:19;;3623:227::o;4037:1074::-;;4273:2;4262:9;4258:18;4303:6;4292:9;4285:25;4329:2;4367;4362;4351:9;4347:18;4340:30;4390:6;4425;4419:13;4456:6;4448;4441:22;4494:2;4483:9;4479:18;4472:25;;4557:2;4551;4543:6;4539:15;4528:9;4524:31;4520:40;4506:54;;4595:2;4587:6;4583:15;4616:4;4629:453;4643:6;4640:1;4637:13;4629:453;;;4708:22;;;-1:-1:-1;;4704:36:1;4692:49;;4764:13;;4806:9;;4828:24;;;4865:61;4806:9;4900:15;;;4887:11;;;4865:61;:::i;:::-;4992:2;4969:17;-1:-1:-1;;4965:31:1;4953:44;;;;4949:53;;;-1:-1:-1;5060:12:1;;;;5025:15;;;;4665:1;4658:9;4629:453;;;-1:-1:-1;5099:6:1;;4234:877;-1:-1:-1;;;;;;;;4234:877:1:o;5116:251::-;5186:2;5180:9;5216:17;;;5263:18;5248:34;;5284:22;;;5245:62;5242:2;;;5310:18;;:::i;:::-;5346:2;5339:22;5160:207;;-1:-1:-1;5160:207:1:o;5372:125::-;;5440:1;5437;5434:8;5431:2;;;5445:18;;:::i;:::-;-1:-1:-1;5482:9:1;;5421:76::o;5502:258::-;5574:1;5584:113;5598:6;5595:1;5592:13;5584:113;;;5674:11;;;5668:18;5655:11;;;5648:39;5620:2;5613:10;5584:113;;;5715:6;5712:1;5709:13;5706:2;;;5750:1;5741:6;5736:3;5732:16;5725:27;5706:2;;5555:205;;;:::o;5765:135::-;;-1:-1:-1;;5825:17:1;;5822:2;;;5845:18;;:::i;:::-;-1:-1:-1;5892:1:1;5881:13;;5812:88::o;5905:127::-;5966:10;5961:3;5957:20;5954:1;5947:31;5997:4;5994:1;5987:15;6021:4;6018:1;6011:15;6037:127;6098:10;6093:3;6089:20;6086:1;6079:31;6129:4;6126:1;6119:15;6153:4;6150:1;6143:15

Swarm Source

ipfs://0457fca6c996cd4ffb18355156c3f096bc4f8ea428c58bf9edfd3b4c721201d1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.