Scroll Sepolia Testnet

Contract

0x40A2aCCbd92BCA938b02010E17A5b8929b49130D

Overview

ETH Balance

Scroll Sepolia LogoScroll Sepolia LogoScroll Sepolia Logo0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Multi Send34079262024-03-26 1:30:03193 days ago1711416603IN
0x40A2aCCb...29b49130D
0 ETH0.00001550.13455292
Multi Send34078992024-03-26 1:25:24193 days ago1711416324IN
0x40A2aCCb...29b49130D
0 ETH0.000031020.13455292
Multi Send34075762024-03-26 0:33:50193 days ago1711413230IN
0x40A2aCCb...29b49130D
0 ETH0.000024210.13455292
Multi Send34070792024-03-25 23:14:57193 days ago1711408497IN
0x40A2aCCb...29b49130D
0 ETH0.000034250.13455292
Multi Send28605232024-01-23 14:33:11256 days ago1706020391IN
0x40A2aCCb...29b49130D
0 ETH0.0094754965.4392547
Multi Send28603282024-01-23 13:58:24256 days ago1706018304IN
0x40A2aCCb...29b49130D
0 ETH0.0093921765.4392547
Multi Send21254192023-11-07 13:13:05333 days ago1699362785IN
0x40A2aCCb...29b49130D
0 ETH0.002817897.6143807
Multi Send20188172023-11-02 18:49:05338 days ago1698950945IN
0x40A2aCCb...29b49130D
0 ETH0.001016087.6143807
Multi Send16706062023-10-17 14:44:07354 days ago1697553847IN
0x40A2aCCb...29b49130D
0 ETH0.003835041
Multi Send3895172023-09-01 10:19:41400 days ago1693563581IN
0x40A2aCCb...29b49130D
0 ETH0.000234681.9008

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
66693202024-09-19 12:41:5016 days ago1726749710
0x40A2aCCb...29b49130D
0 ETH
65671062024-09-08 10:38:1827 days ago1725791898
0x40A2aCCb...29b49130D
0 ETH
45728842024-06-11 12:32:37116 days ago1718109157
0x40A2aCCb...29b49130D
0 ETH
41796552024-05-02 13:49:55156 days ago1714657795
0x40A2aCCb...29b49130D
0 ETH
39975592024-04-24 5:00:19164 days ago1713934819
0x40A2aCCb...29b49130D
0 ETH
39974702024-04-24 4:55:51164 days ago1713934551
0x40A2aCCb...29b49130D
0 ETH
39974082024-04-24 4:52:44164 days ago1713934364
0x40A2aCCb...29b49130D
0 ETH
39973062024-04-24 4:47:35164 days ago1713934055
0x40A2aCCb...29b49130D
0 ETH
39880402024-04-23 21:00:12165 days ago1713906012
0x40A2aCCb...29b49130D
0 ETH
39569832024-04-22 18:53:14166 days ago1713811994
0x40A2aCCb...29b49130D
0 ETH
39569622024-04-22 18:52:11166 days ago1713811931
0x40A2aCCb...29b49130D
0 ETH
39569252024-04-22 18:50:19166 days ago1713811819
0x40A2aCCb...29b49130D
0 ETH
39569182024-04-22 18:49:58166 days ago1713811798
0x40A2aCCb...29b49130D
0 ETH
39568922024-04-22 18:48:39166 days ago1713811719
0x40A2aCCb...29b49130D
0 ETH
39568802024-04-22 18:48:02166 days ago1713811682
0x40A2aCCb...29b49130D
0 ETH
39567482024-04-22 18:41:18166 days ago1713811278
0x40A2aCCb...29b49130D
0 ETH
39567172024-04-22 18:39:45166 days ago1713811185
0x40A2aCCb...29b49130D
0 ETH
39566642024-04-22 18:37:04166 days ago1713811024
0x40A2aCCb...29b49130D
0 ETH
39566532024-04-22 18:36:30166 days ago1713810990
0x40A2aCCb...29b49130D
0 ETH
39566212024-04-22 18:34:53166 days ago1713810893
0x40A2aCCb...29b49130D
0 ETH
39565852024-04-22 18:33:04166 days ago1713810784
0x40A2aCCb...29b49130D
0 ETH
39565702024-04-22 18:32:18166 days ago1713810738
0x40A2aCCb...29b49130D
0 ETH
39564202024-04-22 18:24:46166 days ago1713810286
0x40A2aCCb...29b49130D
0 ETH
39563782024-04-22 18:22:40166 days ago1713810160
0x40A2aCCb...29b49130D
0 ETH
39562572024-04-22 18:16:33166 days ago1713809793
0x40A2aCCb...29b49130D
0 ETH
View All Internal Transactions
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

Contract Source Code (Solidity Standard Json-Input format)

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
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

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.