Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 44,584 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Multi Send | 21622336 | 16 mins ago | IN | 0 ETH | 0.000602 | ||||
Multi Send | 21622113 | 1 hr ago | IN | 0 ETH | 0.00223212 | ||||
Multi Send | 21622107 | 1 hr ago | IN | 0 ETH | 0.00049845 | ||||
Multi Send | 21622054 | 1 hr ago | IN | 0 ETH | 0.00132459 | ||||
Multi Send | 21622054 | 1 hr ago | IN | 0 ETH | 0.00056274 | ||||
Multi Send | 21622051 | 1 hr ago | IN | 0 ETH | 0.00076404 | ||||
Multi Send | 21621808 | 2 hrs ago | IN | 0 ETH | 0.00144261 | ||||
Multi Send | 21621523 | 2 hrs ago | IN | 0 ETH | 0.0005539 | ||||
Multi Send | 21621169 | 4 hrs ago | IN | 0 ETH | 0.00031584 | ||||
Multi Send | 21620636 | 5 hrs ago | IN | 0 ETH | 0.00024792 | ||||
Multi Send | 21620610 | 6 hrs ago | IN | 0 ETH | 0.00052461 | ||||
Multi Send | 21620107 | 7 hrs ago | IN | 0 ETH | 0.00040283 | ||||
Multi Send | 21619596 | 9 hrs ago | IN | 0 ETH | 0.001063 | ||||
Multi Send | 21619136 | 11 hrs ago | IN | 0 ETH | 0.00045461 | ||||
Multi Send | 21619134 | 11 hrs ago | IN | 0 ETH | 0.00134827 | ||||
Multi Send | 21618943 | 11 hrs ago | IN | 0 ETH | 0.00107962 | ||||
Multi Send | 21618843 | 11 hrs ago | IN | 0 ETH | 0.00434053 | ||||
Multi Send | 21618662 | 12 hrs ago | IN | 0 ETH | 0.00100576 | ||||
Multi Send | 21618313 | 13 hrs ago | IN | 0 ETH | 0.00175166 | ||||
Multi Send | 21618131 | 14 hrs ago | IN | 0 ETH | 0.00642573 | ||||
Multi Send | 21618098 | 14 hrs ago | IN | 0 ETH | 0.0014301 | ||||
Multi Send | 21618047 | 14 hrs ago | IN | 0 ETH | 0.00316043 | ||||
Multi Send | 21618015 | 14 hrs ago | IN | 0 ETH | 0.00209258 | ||||
Multi Send | 21617795 | 15 hrs ago | IN | 0 ETH | 0.00103787 | ||||
Multi Send | 21617639 | 16 hrs ago | IN | 0 ETH | 0.00233504 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21622345 | 14 mins ago | 0 ETH | |||||
21622336 | 16 mins ago | 0 ETH | |||||
21622336 | 16 mins ago | 0 ETH | |||||
21622329 | 17 mins ago | 0 ETH | |||||
21622164 | 50 mins ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622113 | 1 hr ago | 0 ETH | |||||
21622110 | 1 hr ago | 0 ETH | |||||
21622107 | 1 hr ago | 0 ETH | |||||
21622107 | 1 hr ago | 0 ETH | |||||
21622104 | 1 hr ago | 0 ETH | |||||
21622095 | 1 hr ago | 0 ETH | |||||
21622084 | 1 hr ago | 0 ETH | |||||
21622076 | 1 hr ago | 0 ETH | |||||
21622067 | 1 hr ago | 0 ETH | |||||
21622054 | 1 hr ago | 0 ETH | |||||
21622054 | 1 hr ago | 0 ETH | |||||
21622054 | 1 hr ago | 0 ETH | |||||
21622054 | 1 hr ago | 0 ETH |
Loading...
Loading
Contract Name:
MultiSendCallOnly
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion, GNU LGPLv3 license, Audited
Contract Source Code (Solidity Standard Json-Input format)Audit Report
// SPDX-License-Identifier: LGPL-3.0-only pragma solidity >=0.7.0 <0.9.0; /// @title Multi Send Call Only - Allows to batch multiple transactions into one, but only calls /// @author Stefan George - <[email protected]> /// @author Richard Meissner - <[email protected]> /// @notice The guard logic is not required here as this contract doesn't support nested delegate calls contract MultiSendCallOnly { /// @dev Sends multiple transactions and reverts all if one fails. /// @param transactions Encoded transactions. Each transaction is encoded as a packed bytes of /// operation has to be uint8(0) in this version (=> 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 /// @notice The code is for most part the same as the normal MultiSend (to keep compatibility), /// but reverts if a transaction tries to use a delegatecall. /// @notice This method is payable as delegatecalls keep the msg.value from the previous call /// If the calling method (e.g. execTransaction) received ETH this would revert otherwise function multiSend(bytes memory transactions) public payable { // solhint-disable-next-line no-inline-assembly assembly { let length := mload(transactions) let i := 0x20 for { // Pre block is not used in "while mode" } lt(i, length) { // Post block is not used in "while mode" } { // 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) } // This version does not allow delegatecalls case 1 { revert(0, 0) } if eq(success, 0) { revert(0, 0) } // Next entry starts at 85 byte + data length i := add(i, add(0x55, dataLength)) } } } }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": false, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- G0 Group - May 1st, 2021 - Security Audit Report
[{"inputs":[{"internalType":"bytes","name":"transactions","type":"bytes"}],"name":"multiSend","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061019a806100206000396000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea264697066735822122035246402746c96964495cae5b36461fd44dfb89f8e6cf6f6b8d60c0aa89f414864736f6c63430007060033
Deployed Bytecode
0x60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea264697066735822122035246402746c96964495cae5b36461fd44dfb89f8e6cf6f6b8d60c0aa89f414864736f6c63430007060033
Loading...
Loading
Loading...
Loading
OVERVIEW
Library for call-only transaction batching used in Gnosis SafeLoading...
Loading
[ Download: CSV Export ]
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.