Contract Overview
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
Multicall2
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at hecoinfo.com on 2022-01-17 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; library Roles { struct Role { mapping(address => bool) bearer; } function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract Multicall2 { using Roles for Roles.Role; event WhitelistAdminAdded(address indexed account); event WhitelistAdminRemoved(address indexed account); Roles.Role private _whitelistAdmins; constructor() public { _addWhitelistAdmin(_msgSender()); } struct Call { address target; bytes callData; } function tryAggregate(bool requireSuccess, Call[] memory calls) public onlyWhitelistAdmin { for (uint256 i = 0; i < calls.length; i++) { (bool success, bytes memory ret) = calls[i].target.call( calls[i].callData ); if(requireSuccess) { require(success, string(ret)); } } } modifier onlyWhitelistAdmin() { require( isWhitelistAdmin(_msgSender()), "WhitelistAdminRole: caller does not have the WhitelistAdmin role" ); _; } function isWhitelistAdmin(address account) public view returns (bool) { return _whitelistAdmins.has(account); } function addWhitelistAdmin(address account) public onlyWhitelistAdmin { _addWhitelistAdmin(account); } function _addWhitelistAdmin(address account) internal { _whitelistAdmins.add(account); emit WhitelistAdminAdded(account); } function removeWhitelistAdmin(address account) public onlyWhitelistAdmin { _whitelistAdmins.remove(account); emit WhitelistAdminRemoved(account); } function _msgSender() internal view returns (address) { return msg.sender; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminRemoved","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelistAdmin","outputs":[],"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":"tryAggregate","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061002161001c610026565b61002a565b61018f565b3390565b61004281600061007960201b6102661790919060201c565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b61008382826100ce565b156100a95760405162461bcd60e51b81526004016100a090610116565b60405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166100f65760405162461bcd60e51b81526004016100a09061014d565b506001600160a01b03166000908152602091909152604090205460ff1690565b6020808252601f908201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604082015260600190565b60208082526022908201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604082015261737360f01b606082015260800190565b6107318061019e6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80636897e974146100515780637362d9c814610066578063bb5f747b14610079578063bce38bd7146100a2575b600080fd5b61006461005f366004610388565b6100b5565b005b610064610074366004610388565b610127565b61008c610087366004610388565b61015a565b6040516100999190610509565b60405180910390f35b6100646100b03660046103b6565b61016c565b6100c06100876102b2565b6100e55760405162461bcd60e51b81526004016100dc90610601565b60405180910390fd5b6100f06000826102b6565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6101326100876102b2565b61014e5760405162461bcd60e51b81526004016100dc90610601565b610157816102fe565b50565b60006101668183610340565b92915050565b6101776100876102b2565b6101935760405162461bcd60e51b81526004016100dc90610601565b60005b815181101561026157600060608383815181106101af57fe5b6020026020010151600001516001600160a01b03168484815181106101d057fe5b6020026020010151602001516040516101e991906104ed565b6000604051808303816000865af19150503d8060008114610226576040519150601f19603f3d011682016040523d82523d6000602084013e61022b565b606091505b509150915084156102575780826102555760405162461bcd60e51b81526004016100dc9190610514565b505b5050600101610196565b505050565b6102708282610340565b1561028d5760405162461bcd60e51b81526004016100dc90610547565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b3390565b6102c08282610340565b6102dc5760405162461bcd60e51b81526004016100dc9061057e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610309600082610266565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b60006001600160a01b0382166103685760405162461bcd60e51b81526004016100dc906105bf565b506001600160a01b03166000908152602091909152604090205460ff1690565b600060208284031215610399578081fd5b81356001600160a01b03811681146103af578182fd5b9392505050565b600080604083850312156103c8578081fd5b823580151581146103d7578182fd5b915060208381013567ffffffffffffffff808211156103f4578384fd5b818601915086601f830112610407578384fd5b813581811115610415578485fd5b610422848583020161065f565b81815284810190848601875b848110156104dc57813587016040818e03601f1901121561044d57898afd5b610457604061065f565b89820135610464816106e6565b8152604082013588811115610477578b8cfd5b8083019250508d603f83011261048b578a8bfd5b898201356104a061049b82610686565b61065f565b8181528f60408386010111156104b4578c8dfd5b6104c4828d8301604087016106aa565b828c015250855250928701929087019060010161042e565b50979a909950975050505050505050565b600082516104ff8184602087016106b6565b9190910192915050565b901515815260200190565b60006020825282518060208401526105338160408501602087016106b6565b601f01601f19169190910160400192915050565b6020808252601f908201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604082015260600190565b60208082526021908201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6040820152606560f81b606082015260800190565b60208082526022908201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604082015261737360f01b606082015260800190565b602080825260409082018190527f57686974656c69737441646d696e526f6c653a2063616c6c657220646f657320908201527f6e6f742068617665207468652057686974656c69737441646d696e20726f6c65606082015260800190565b60405181810167ffffffffffffffff8111828210171561067e57600080fd5b604052919050565b600067ffffffffffffffff82111561069c578081fd5b50601f01601f191660200190565b82818337506000910152565b60005b838110156106d15781810151838201526020016106b9565b838111156106e0576000848401525b50505050565b6001600160a01b038116811461015757600080fdfea26469706673582212202a6cda2f7572fe3168d21fe7c666996ad576e0f15f7cb3cac96ac52be31c44cf64736f6c634300060c0033
Deployed ByteCode Sourcemap
813:1691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2233:170;;;;;;:::i;:::-;;:::i;:::-;;1955:116;;;;;;:::i;:::-;;:::i;1822:125::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1195:406;;;;;;:::i;:::-;;:::i;2233:170::-;1672:30;1689:12;:10;:12::i;1672:30::-;1650:144;;;;-1:-1:-1;;;1650:144:0;;;;;;;:::i;:::-;;;;;;;;;2317:32:::1;:16;2341:7:::0;2317:23:::1;:32::i;:::-;2365:30;::::0;-1:-1:-1;;;;;2365:30:0;::::1;::::0;::::1;::::0;;;::::1;2233:170:::0;:::o;1955:116::-;1672:30;1689:12;:10;:12::i;1672:30::-;1650:144;;;;-1:-1:-1;;;1650:144:0;;;;;;;:::i;:::-;2036:27:::1;2055:7;2036:18;:27::i;:::-;1955:116:::0;:::o;1822:125::-;1886:4;1910:29;1886:4;1931:7;1910:20;:29::i;:::-;1903:36;1822:125;-1:-1:-1;;1822:125:0:o;1195:406::-;1672:30;1689:12;:10;:12::i;1672:30::-;1650:144;;;;-1:-1:-1;;;1650:144:0;;;;;;;:::i;:::-;1324:9:::1;1319:275;1343:5;:12;1339:1;:16;1319:275;;;1378:12;1392:16;1412:5;1418:1;1412:8;;;;;;;;;;;;;;:15;;;-1:-1:-1::0;;;;;1412:20:0::1;1451:5;1457:1;1451:8;;;;;;;;;;;;;;:17;;;1412:71;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1377:106;;;;1503:14;1500:83;;;1562:3:::0;1546:7;1538:29:::1;;;;-1:-1:-1::0;;;1538:29:0::1;;;;;;;;:::i;:::-;;1500:83;-1:-1:-1::0;;1357:3:0::1;;1319:275;;;;1195:406:::0;;:::o;194:178::-;272:18;276:4;282:7;272:3;:18::i;:::-;271:19;263:63;;;;-1:-1:-1;;;263:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;337:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;337:27:0;360:4;337:27;;;194:178::o;2411:90::-;2483:10;2411:90;:::o;380:183::-;460:18;464:4;470:7;460:3;:18::i;:::-;452:64;;;;-1:-1:-1;;;452:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;527:20:0;550:5;527:20;;;;;;;;;;;:28;;-1:-1:-1;;527:28:0;;;380:183::o;2079:146::-;2144:29;:16;2165:7;2144:20;:29::i;:::-;2189:28;;-1:-1:-1;;;;;2189:28:0;;;;;;;;2079:146;:::o;571:235::-;670:4;-1:-1:-1;;;;;700:21:0;;692:68;;;;-1:-1:-1;;;692:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;778:20:0;:11;:20;;;;;;;;;;;;;;;571:235::o;2104:241:-1:-;;2208:2;2196:9;2187:7;2183:23;2179:32;2176:2;;;-1:-1;;2214:12;2176:2;72:20;;-1:-1;;;;;9495:54;;10156:35;;10146:2;;-1:-1;;10195:12;10146:2;2266:63;2170:175;-1:-1;;;2170:175::o;2352:538::-;;;2516:2;2504:9;2495:7;2491:23;2487:32;2484:2;;;-1:-1;;2522:12;2484:2;1001:6;988:20;10302:5;9407:13;9400:21;10280:5;10277:32;10267:2;;-1:-1;;10313:12;10267:2;2574:60;-1:-1;2699:2;2684:18;;;2671:32;2723:18;2712:30;;;2709:2;;;-1:-1;;2745:12;2709:2;2857:6;2846:9;2842:22;;;313:3;306:4;298:6;294:17;290:27;280:2;;-1:-1;;321:12;280:2;368:6;355:20;2723:18;8173:6;8170:30;8167:2;;;-1:-1;;8203:12;8167:2;390:101;2699:2;;8240:6;8236:17;8301:15;390:101;:::i;:::-;519:21;;;576:14;;;;551:17;;;-1:-1;656:254;681:6;678:1;675:13;656:254;;;751:17;;739:30;;2516:2;1622:19;;;-1:-1;;1622:19;1618:30;1615:2;;;-1:-1;;1651:12;1615:2;1679:20;2516:2;1679:20;:::i;:::-;2699:2;739:30;;72:20;97:33;124:5;97:33;:::i;:::-;1758:75;;2516:2;1911:18;;1898:32;1939:30;;;1936:2;;;-1:-1;;1972:12;1936:2;2062:6;739:30;2047:22;;;;1157:3;1138:17;2047:22;1138:17;1134:27;1124:2;;-1:-1;;1165:12;1124:2;2699;2047:22;;1199:20;1234:64;1249:48;1290:6;1249:48;:::i;:::-;1234:64;:::i;:::-;1318:6;1311:5;1304:21;1422:3;2516:2;1413:6;2047:22;1404:16;;1401:25;1398:2;;;-1:-1;;1429:12;1398:2;1449:41;1483:6;2699:2;1380:5;1376:16;2516:2;2047:22;1342:17;1449:41;:::i;:::-;1999:16;;;1992:84;-1:-1;776:71;;-1:-1;861:14;;;;889;;;;703:1;696:9;656:254;;;-1:-1;2478:412;;2765:109;;-1:-1;2478:412;-1:-1;;;;;;;;2478:412::o;5234:271::-;;3168:5;8748:12;3279:52;3324:6;3319:3;3312:4;3305:5;3301:16;3279:52;:::i;:::-;3343:16;;;;;5368:137;-1:-1;;5368:137::o;5512:210::-;9407:13;;9400:21;2962:34;;5633:2;5618:18;;5604:118::o;5729:310::-;;5876:2;5897:17;5890:47;3516:5;8748:12;9187:6;5876:2;5865:9;5861:18;9175:19;3610:52;3655:6;9215:14;5865:9;9215:14;5876:2;3636:5;3632:16;3610:52;:::i;:::-;1622:19;10060:14;-1:-1;;10056:28;3674:39;;;;9215:14;3674:39;;5847:192;-1:-1;;5847:192::o;6046:416::-;6246:2;6260:47;;;3950:2;6231:18;;;9175:19;3986:33;9215:14;;;3966:54;4039:12;;;6217:245::o;6469:416::-;6669:2;6683:47;;;4290:2;6654:18;;;9175:19;4326:34;9215:14;;;4306:55;-1:-1;;;4381:12;;;4374:25;4418:12;;;6640:245::o;6892:416::-;7092:2;7106:47;;;4669:2;7077:18;;;9175:19;4705:34;9215:14;;;4685:55;-1:-1;;;4760:12;;;4753:26;4798:12;;;7063:245::o;7315:416::-;7515:2;7529:47;;;5049:2;7500:18;;;9175:19;;;5085:34;9215:14;;;5065:55;5154:34;5140:12;;;5133:56;5208:12;;;7486:245::o;7738:256::-;7800:2;7794:9;7826:17;;;7901:18;7886:34;;7922:22;;;7883:62;7880:2;;;7958:1;;7948:12;7880:2;7800;7967:22;7778:216;;-1:-1;7778:216::o;8333:321::-;;8476:18;8468:6;8465:30;8462:2;;;-1:-1;;8498:12;8462:2;-1:-1;1622:19;8552:17;-1:-1;;8548:33;8639:4;8629:15;;8399:255::o;9562:145::-;9643:6;9638:3;9633;9620:30;-1:-1;9699:1;9681:16;;9674:27;9613:94::o;9716:268::-;9781:1;9788:101;9802:6;9799:1;9796:13;9788:101;;;9869:11;;;9863:18;9850:11;;;9843:39;9824:2;9817:10;9788:101;;;9904:6;9901:1;9898:13;9895:2;;;9781:1;9960:6;9955:3;9951:16;9944:27;9895:2;;9765:219;;;:::o;10097:117::-;-1:-1;;;;;9495:54;;10156:35;;10146:2;;10205:1;;10195:12
Swarm Source
ipfs://2a6cda2f7572fe3168d21fe7c666996ad576e0f15f7cb3cac96ac52be31c44cf
Age | Block | Fee Address | Jailed | Incoming |
---|