ETH Price: $2,939.93 (-1.97%)
Gas: 4 Gwei

Contract

0x40A2aCCbd92BCA938b02010E17A5b8929b49130D
 

Overview

ETH Balance

0.0000012 ETH

Eth Value

Less Than $0.01 (@ $2,939.93/ETH)

Token Holdings

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
Multi Send197784492024-05-01 23:04:352 hrs ago1714604675IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.001620916
Multi Send197783662024-05-01 22:47:592 hrs ago1714603679IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.004117556.77458302
Multi Send197783312024-05-01 22:40:472 hrs ago1714603247IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.005863055.3653579
Multi Send197782592024-05-01 22:26:233 hrs ago1714602383IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.000789244.91322449
Multi Send197782222024-05-01 22:18:593 hrs ago1714601939IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.003867538
Multi Send197780902024-05-01 21:52:353 hrs ago1714600355IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.001263157
Multi Send197780782024-05-01 21:50:113 hrs ago1714600211IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.003007537.70373407
Multi Send197780342024-05-01 21:41:233 hrs ago1714599683IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.007781298.94158527
Multi Send197778042024-05-01 20:55:114 hrs ago1714596911IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.005478356.97469273
Multi Send197777932024-05-01 20:52:594 hrs ago1714596779IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.001371249.90941481
Multi Send197777792024-05-01 20:50:114 hrs ago1714596611IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.006019927.88937329
Multi Send197777602024-05-01 20:46:234 hrs ago1714596383IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.000373446.57303638
Multi Send197776662024-05-01 20:27:235 hrs ago1714595243IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.003241989.21918571
Multi Send197776602024-05-01 20:26:115 hrs ago1714595171IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.0023484811.16772453
Multi Send197775572024-05-01 20:05:235 hrs ago1714593923IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.0019209113.22933879
Multi Send197774942024-05-01 19:52:475 hrs ago1714593167IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.0028992912
Multi Send197774272024-05-01 19:39:235 hrs ago1714592363IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.0039784417
Multi Send197774252024-05-01 19:38:595 hrs ago1714592339IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.0069341213.83207015
Multi Send197770332024-05-01 18:20:237 hrs ago1714587623IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.0095583316.37696872
Multi Send197768762024-05-01 17:48:597 hrs ago1714585739IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.0013307112
Multi Send197767742024-05-01 17:28:238 hrs ago1714584503IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.006173415
Multi Send197766642024-05-01 17:06:238 hrs ago1714583183IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.002712315.5886671
Multi Send197766022024-05-01 16:53:598 hrs ago1714582439IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.003262939.05660056
Multi Send197765472024-05-01 16:42:478 hrs ago1714581767IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.003812388.99289945
Multi Send197765042024-05-01 16:34:118 hrs ago1714581251IN
Safe: Multi Send Call Only 1.3.0
0 ETH0.00154312.82492935
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
178767082023-08-09 10:19:47266 days ago1691576387
Safe: Multi Send Call Only 1.3.0
0.062 ETH
154450292022-08-31 6:25:37609 days ago1661927137
Safe: Multi Send Call Only 1.3.0
0.03 ETH
154387272022-08-30 6:08:56610 days ago1661839736
Safe: Multi Send Call Only 1.3.0
0.045 ETH
154348622022-08-29 15:18:39611 days ago1661786319
Safe: Multi Send Call Only 1.3.0
0.045 ETH
154081162022-08-25 8:38:42615 days ago1661416722
Safe: Multi Send Call Only 1.3.0
0.05 ETH
154081032022-08-25 8:36:13615 days ago1661416573
Safe: Multi Send Call Only 1.3.0
0.05 ETH
154080792022-08-25 8:30:32615 days ago1661416232
Safe: Multi Send Call Only 1.3.0
0.05 ETH
125042662021-05-25 15:18:401072 days ago1621955920  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSendCallOnly

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license, Audited
File 1 of 1 : MultiSendCallOnly.sol
// 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))
            }
        }
    }
}

Settings
{
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"bytes","name":"transactions","type":"bytes"}],"name":"multiSend","outputs":[],"stateMutability":"payable","type":"function"}]

608060405234801561001057600080fd5b5061019a806100206000396000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea264697066735822122035246402746c96964495cae5b36461fd44dfb89f8e6cf6f6b8d60c0aa89f414864736f6c63430007060033

Deployed Bytecode

0x60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea264697066735822122035246402746c96964495cae5b36461fd44dfb89f8e6cf6f6b8d60c0aa89f414864736f6c63430007060033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Library for call-only transaction batching used in Gnosis Safe

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.