Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Multicall
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/**
*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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.