Contract
0x335aaaC2d8a37bB85Ac2DEc944c1bDbaCd012B77
1
Contract Overview
Balance:
0 FTM
My Name Tag:
Not Available
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x9dbfdafaaf8aa967ce4065e16c268096eb760b710fa761a4dee7c35ef7ddf243 | 375685 | 710 days 8 hrs ago | 0x4e59b44847b379578588920ca78fbf26c0b4956c | Contract Creation | 0 FTM |
[ Download CSV Export ]
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
MultiSend
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at FtmScan.com on 2022-10-09 */ /** *Submitted for verification at FtmScan.com on 2021-05-18 */ pragma solidity >=0.5.0 <0.7.0; /// @title Multi Send - Allows to batch multiple transactions into one. /// @author Nick Dodson - <[email protected]> /// @author Gonçalo Sá - <[email protected]> /// @author Stefan George - <[email protected]> /// @author Richard Meissner - <[email protected]> contract MultiSend { bytes32 constant private GUARD_VALUE = keccak256("multisend.guard.bytes32"); bytes32 guard; constructor() public { guard = GUARD_VALUE; } /// @dev Sends multiple transactions and reverts all if one fails. /// @param transactions Encoded transactions. Each transaction is encoded as a packed bytes of /// operation as a uint8 with 0 for a call or 1 for a delegatecall (=> 1 byte), /// to as a address (=> 20 bytes), /// value as a uint256 (=> 32 bytes), /// data length as a uint256 (=> 32 bytes), /// data as bytes. /// see abi.encodePacked for more information on packed encoding function multiSend(bytes memory transactions) public { require(guard != GUARD_VALUE, "MultiSend should only be called via delegatecall"); // solium-disable-next-line security/no-inline-assembly assembly { let length := mload(transactions) let i := 0x20 for { } lt(i, length) { } { // First byte of the data is the operation. // We shift by 248 bits (256 - 8 [operation byte]) it right since mload will always load 32 bytes (a word). // This will also zero out unused data. let operation := shr(0xf8, mload(add(transactions, i))) // We offset the load address by 1 byte (operation byte) // We shift it right by 96 bits (256 - 160 [20 address bytes]) to right-align the data and zero out unused data. let to := shr(0x60, mload(add(transactions, add(i, 0x01)))) // We offset the load address by 21 byte (operation byte + 20 address bytes) let value := mload(add(transactions, add(i, 0x15))) // We offset the load address by 53 byte (operation byte + 20 address bytes + 32 value bytes) let dataLength := mload(add(transactions, add(i, 0x35))) // We offset the load address by 85 byte (operation byte + 20 address bytes + 32 value bytes + 32 data length bytes) let data := add(transactions, add(i, 0x55)) let success := 0 switch operation case 0 { success := call(gas, to, value, data, dataLength, 0, 0) } case 1 { success := delegatecall(gas, to, data, dataLength, 0, 0) } if eq(success, 0) { revert(0, 0) } // Next entry starts at 85 byte + data length i := add(i, add(0x55, dataLength)) } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":false,"inputs":[{"internalType":"bytes","name":"transactions","type":"bytes"}],"name":"multiSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405180807f6d756c746973656e642e67756172642e627974657333320000000000000000008152506017019050604051809103902060008190555061026c8061005c6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638d80ff0a14610030575b600080fd5b6100e96004803603602081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100eb565b005b60405180807f6d756c746973656e642e67756172642e6279746573333200000000000000000081525060170190506040518091039020600054141561017b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806102086030913960400191505060405180910390fd5b805160205b81811015610202578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101c557600181146101d5576101e0565b6000808585888a5af191506101e0565b6000808585895af491505b5060008114156101ef57600080fd5b8260550187019650505050505050610180565b50505056fe4d756c746953656e642073686f756c64206f6e6c792062652063616c6c6564207669612064656c656761746563616c6ca265627a7a7231582011d1395952a8247edbe75f23bd348aa7299f1985aebe5a14c084d03fbd0d11c964736f6c63430005110032
Deployed ByteCode Sourcemap
390:2744:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;390:2744:0;;;;;;;;;;;;;;;;;;;1194:1937;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1194:1937:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1194:1937:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1194:1937:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1194:1937:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1194:1937:0;;;;;;;;;;;;;;;:::i;:::-;;;457:36;;;;;;;;;;;;;;;;;;;1280:5;;:20;;1272:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1473:12;1467:19;1509:4;1527:1586;1541:6;1538:1;1535:13;1527:1586;;;1866:1;1852:12;1848:20;1842:27;1836:4;1832:38;2143:4;2140:1;2136:12;2122;2118:31;2112:38;2106:4;2102:49;2307:4;2304:1;2300:12;2286;2282:31;2276:38;2492:4;2489:1;2485:12;2471;2467:31;2461:38;2688:4;2685:1;2681:12;2667;2663:31;2727:1;2753:9;2785:1;2780:66;;;;2869:1;2864:67;;;;2746:185;;2780:66;2842:1;2839;2827:10;2821:4;2814:5;2810:2;2805:3;2800:44;2789:55;;2780:66;;2864:67;2927:1;2924;2912:10;2906:4;2902:2;2897:3;2884:45;2873:56;;2746:185;;2964:1;2955:7;2952:14;2949:2;;;2979:1;2976;2969:12;2949:2;3086:10;3080:4;3076:21;3073:1;3069:29;3064:34;;1553:1560;;;;;;1527:1586;;;1438:1686;;;:::o
Swarm Source
bzzr://11d1395952a8247edbe75f23bd348aa7299f1985aebe5a14c084d03fbd0d11c9
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|