Overview
ETH Balance
0.000144522836747647 ETH
Eth Value
$0.49 (@ $3,360.70/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x405c2c09e31385a0b6fe09c0d01ed3436b39f5f167a0b9244444e803a5b5feed | Multi Send | (pending) | 3 days ago | IN | 0.0019999999 ETH | (Pending) | |||
0x3a6a51bf3c5513010f0ba253d76d21c5d876a1abfa21d2bdc82c04d8ebb15a3a | Multi Send | (pending) | 3 days ago | IN | 0.0017033042 ETH | (Pending) | |||
0x25965ec877594575439190a10432da830cd1490fb811c8491cf6ab0eb5510bda | Multi Send | (pending) | 3 days ago | IN | 0.0018 ETH | (Pending) | |||
0x52db6b92c72c1ca2c5c10ded900a237cd57ce60f00f6a39e8035e2bfdffede6a | Multi Send | (pending) | 3 days ago | IN | 0.0022812616 ETH | (Pending) | |||
0x7c565e0a25c26145f49516a6c713840aacaf28514868af484b065761f230c33d | Multi Send | (pending) | 3 days ago | IN | 0.0009999999 ETH | (Pending) | |||
Multi Send | 20176187 | 2 hrs ago | IN | 49.99999999 ETH | 0.00223618 | ||||
Multi Send | 20175331 | 5 hrs ago | IN | 0.00499999 ETH | 0.00103899 | ||||
Multi Send | 20175275 | 5 hrs ago | IN | 0.00049999 ETH | 0.00109677 | ||||
Multi Send | 20174503 | 7 hrs ago | IN | 0.00000399 ETH | 0.0005773 | ||||
Multi Send | 20174415 | 8 hrs ago | IN | 49.99999999 ETH | 0.00078754 | ||||
Multi Send | 20174375 | 8 hrs ago | IN | 3.99999999 ETH | 0.00054977 | ||||
Multi Send | 20173489 | 11 hrs ago | IN | 19.99999999 ETH | 0.00061646 | ||||
Multi Send | 20173254 | 12 hrs ago | IN | 0.50999999 ETH | 0.00063143 | ||||
Multi Send | 20173229 | 12 hrs ago | IN | 0.48999999 ETH | 0.00072479 | ||||
Multi Send | 20173216 | 12 hrs ago | IN | 0.27999999 ETH | 0.00076247 | ||||
Multi Send | 20173191 | 12 hrs ago | IN | 0.30999999 ETH | 0.00080683 | ||||
Multi Send | 20171948 | 16 hrs ago | IN | 0.02499999 ETH | 0.0008865 | ||||
Multi Send | 20170266 | 22 hrs ago | IN | 49.99599999 ETH | 0.00254011 | ||||
Multi Send | 20169670 | 24 hrs ago | IN | 0.21999999 ETH | 0.00242195 | ||||
Multi Send | 20168179 | 29 hrs ago | IN | 0.90093934 ETH | 0.00104453 | ||||
Multi Send | 20167471 | 31 hrs ago | IN | 19.99999999 ETH | 0.00189012 | ||||
Multi Send | 20167466 | 31 hrs ago | IN | 39.99999999 ETH | 0.00188689 | ||||
Multi Send | 20165917 | 36 hrs ago | IN | 0.20253843 ETH | 0.00120139 | ||||
Multi Send | 20165911 | 36 hrs ago | IN | 0.22356853 ETH | 0.00115564 | ||||
Multi Send | 20165881 | 36 hrs ago | IN | 1.99999999 ETH | 0.00117275 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
20176187 | 2 hrs ago | 0.00003155 ETH | ||||
20176187 | 2 hrs ago | 49.99996844 ETH | ||||
20175331 | 5 hrs ago | 0.00000304 ETH | ||||
20175331 | 5 hrs ago | 0.00499695 ETH | ||||
20175275 | 5 hrs ago | 0.00000304 ETH | ||||
20175275 | 5 hrs ago | 0.00049695 ETH | ||||
20174503 | 7 hrs ago | 0.00000196 ETH | ||||
20174503 | 7 hrs ago | 0.00000203 ETH | ||||
20174415 | 8 hrs ago | 0.00003144 ETH | ||||
20174415 | 8 hrs ago | 49.99996855 ETH | ||||
20174375 | 8 hrs ago | 0.00003152 ETH | ||||
20174375 | 8 hrs ago | 3.99996847 ETH | ||||
20173489 | 11 hrs ago | 0.00000303 ETH | ||||
20173489 | 11 hrs ago | 19.99999696 ETH | ||||
20173254 | 12 hrs ago | 0.00003143 ETH | ||||
20173254 | 12 hrs ago | 0.50996856 ETH | ||||
20173229 | 12 hrs ago | 0.00003137 ETH | ||||
20173229 | 12 hrs ago | 0.48996862 ETH | ||||
20173216 | 12 hrs ago | 0.0000319 ETH | ||||
20173216 | 12 hrs ago | 0.27996809 ETH | ||||
20173191 | 12 hrs ago | 0.00003141 ETH | ||||
20173191 | 12 hrs ago | 0.30996858 ETH | ||||
20171948 | 16 hrs ago | 0.00004271 ETH | ||||
20171948 | 16 hrs ago | 0.02495728 ETH | ||||
20170266 | 22 hrs ago | 0.0000358 ETH |
Loading...
Loading
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.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: LGPL-3.0-only pragma solidity ^0.8.0; /** * @notice Modified from https://github.com/safe-global/safe-contracts/blob/main/contracts/libraries/MultiSend.sol * * @dev Modification was to ensure this is called from an EOA, rather than enforcing the * `delegatecall` usage as in the original contract. */ contract MultiSend { address private immutable multisendSingleton; constructor() { multisendSingleton = address(this); } /** * @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 payable { require(msg.sender.code.length == 0, "MultiSend should only be called via EOA"); // 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) } 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)) } } } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"transactions","type":"bytes"}],"name":"multiSend","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b503060805260805161022061002d600039600050506102206000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b610036610031366004610139565b610038565b005b333b1561009b5760405162461bcd60e51b815260206004820152602760248201527f4d756c746953656e642073686f756c64206f6e6c792062652063616c6c65642060448201526676696120454f4160c81b606482015260840160405180910390fd5b805160205b8181101561011e578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146100e557600181146100f557610100565b6000808585888a5af19150610100565b6000808585895af491505b508061010b57600080fd5b50508060550185019450505050506100a0565b505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561014b57600080fd5b813567ffffffffffffffff8082111561016357600080fd5b818401915084601f83011261017757600080fd5b81358181111561018957610189610123565b604051601f8201601f19908116603f011681019083821181831017156101b1576101b1610123565b816040528281528760208487010111156101ca57600080fd5b82602086016020830137600092810160200192909252509594505050505056fea26469706673582212203a98476913f6497f1e14c2a098f4f736f686478bc4777a4604ca864cd23dae8d64736f6c63430008110033
Deployed Bytecode
0x60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b610036610031366004610139565b610038565b005b333b1561009b5760405162461bcd60e51b815260206004820152602760248201527f4d756c746953656e642073686f756c64206f6e6c792062652063616c6c65642060448201526676696120454f4160c81b606482015260840160405180910390fd5b805160205b8181101561011e578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146100e557600181146100f557610100565b6000808585888a5af19150610100565b6000808585895af491505b508061010b57600080fd5b50508060550185019450505050506100a0565b505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561014b57600080fd5b813567ffffffffffffffff8082111561016357600080fd5b818401915084601f83011261017757600080fd5b81358181111561018957610189610123565b604051601f8201601f19908116603f011681019083821181831017156101b1576101b1610123565b816040528281528760208487010111156101ca57600080fd5b82602086016020830137600092810160200192909252509594505050505056fea26469706673582212203a98476913f6497f1e14c2a098f4f736f686478bc4777a4604ca864cd23dae8d64736f6c63430008110033
Loading...
Loading
Loading...
Loading
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.