ETH Price: $2,590.42 (-1.69%)

Contract

0x40A2aCCbd92BCA938b02010E17A5b8929b49130D

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Multi Send193368352025-01-21 18:01:1021 days ago1737482470IN
0x40A2aCCb...29b49130D
0 ETH0.000158360.399
Multi Send191690612025-01-15 4:24:4728 days ago1736915087IN
0x40A2aCCb...29b49130D
0 ETH0.000013210.0333
Multi Send164789312024-10-01 10:21:11134 days ago1727778071IN
0x40A2aCCb...29b49130D
0 ETH0.000036640.19
Multi Send163759532024-09-27 19:58:39137 days ago1727467119IN
0x40A2aCCb...29b49130D
0 ETH0.000051450.37
Multi Send163087882024-09-25 11:34:35140 days ago1727264075IN
0x40A2aCCb...29b49130D
0 ETH0.00004130.238
Multi Send155697032024-08-30 16:13:54165 days ago1725034434IN
0x40A2aCCb...29b49130D
0 ETH0.000024630.08
Multi Send147328872024-08-01 10:52:26195 days ago1722509546IN
0x40A2aCCb...29b49130D
0 ETH0.00001210.09
Multi Send144378852024-07-22 3:28:32205 days ago1721618912IN
0x40A2aCCb...29b49130D
0 ETH0.000026840.08
Multi Send140317012024-07-07 22:34:10219 days ago1720391650IN
0x40A2aCCb...29b49130D
0 ETH0.000020510.03
Multi Send139927182024-07-06 13:50:54220 days ago1720273854IN
0x40A2aCCb...29b49130D
0 ETH0.000013720.0409
Multi Send133861172024-06-15 8:16:06242 days ago1718439366IN
0x40A2aCCb...29b49130D
0 ETH0.000026750.0848
Multi Send133856632024-06-15 7:53:30242 days ago1718438010IN
0x40A2aCCb...29b49130D
0 ETH0.000019590.0621
Multi Send133856472024-06-15 7:52:42242 days ago1718437962IN
0x40A2aCCb...29b49130D
0 ETH0.000020030.0635
Multi Send133630292024-06-14 12:56:06243 days ago1718369766IN
0x40A2aCCb...29b49130D
0 ETH0.000041640.132
Multi Send133627862024-06-14 12:43:54243 days ago1718369034IN
0x40A2aCCb...29b49130D
0 ETH0.000033750.107
Multi Send133624712024-06-14 12:28:04243 days ago1718368084IN
0x40A2aCCb...29b49130D
0 ETH0.000036270.115
Multi Send133623752024-06-14 12:23:13243 days ago1718367793IN
0x40A2aCCb...29b49130D
0 ETH0.000036270.115
Multi Send133623732024-06-14 12:23:07243 days ago1718367787IN
0x40A2aCCb...29b49130D
0 ETH0.000036590.116
Multi Send133329952024-06-13 11:46:38244 days ago1718279198IN
0x40A2aCCb...29b49130D
0 ETH0.000053940.171
Multi Send133329482024-06-13 11:44:17244 days ago1718279057IN
0x40A2aCCb...29b49130D
0 ETH0.000054880.174
Multi Send133328652024-06-13 11:40:05244 days ago1718278805IN
0x40A2aCCb...29b49130D
0 ETH0.000058040.184
Multi Send133328532024-06-13 11:39:28244 days ago1718278768IN
0x40A2aCCb...29b49130D
0 ETH0.000058040.184
Multi Send133125432024-06-12 18:38:33244 days ago1718217513IN
0x40A2aCCb...29b49130D
0 ETH0.000080010.236
Multi Send133086452024-06-12 15:22:40244 days ago1718205760IN
0x40A2aCCb...29b49130D
0 ETH0.000066830.385
Multi Send133050352024-06-12 12:19:05245 days ago1718194745IN
0x40A2aCCb...29b49130D
0 ETH0.000107890.342
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
1133612023-04-11 14:45:56672 days ago1681224356  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
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",
        "devdoc",
        "userdoc",
        "metadata",
        "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 Gas Used Reward
view all blocks sequenced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.