Overview
ETH Balance
ETH Value
$0.00Latest 25 from a total of 108 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Multi Send | 17346430 | 47 hrs ago | IN | 0 ETH | 0.00001119 | ||||
| Multi Send | 17341877 | 2 days ago | IN | 0 ETH | 0.00000136 | ||||
| Multi Send | 16995516 | 6 days ago | IN | 0 ETH | 0.00000137 | ||||
| Multi Send | 16994628 | 6 days ago | IN | 0 ETH | 0.00000141 | ||||
| Multi Send | 16994158 | 6 days ago | IN | 0 ETH | 0.0000014 | ||||
| Multi Send | 16738396 | 9 days ago | IN | 0 ETH | 0.00000295 | ||||
| Multi Send | 16651188 | 10 days ago | IN | 0 ETH | 0.00000691 | ||||
| Multi Send | 16287388 | 14 days ago | IN | 0 ETH | 0.00000178 | ||||
| Multi Send | 16121711 | 16 days ago | IN | 0 ETH | 0.00000609 | ||||
| Multi Send | 15521069 | 23 days ago | IN | 0 ETH | 0.00000431 | ||||
| Multi Send | 15436225 | 24 days ago | IN | 0 ETH | 0.00000166 | ||||
| Multi Send | 15183790 | 27 days ago | IN | 0 ETH | 0.00000472 | ||||
| Multi Send | 15013654 | 28 days ago | IN | 0 ETH | 0.00002038 | ||||
| Multi Send | 14986538 | 29 days ago | IN | 0 ETH | 0.00000259 | ||||
| Multi Send | 14853635 | 30 days ago | IN | 0 ETH | 0.00000151 | ||||
| Multi Send | 14579427 | 34 days ago | IN | 0 ETH | 0.00000388 | ||||
| Multi Send | 14405421 | 36 days ago | IN | 0 ETH | 0.00000169 | ||||
| Multi Send | 14403825 | 36 days ago | IN | 0 ETH | 0.00000284 | ||||
| Multi Send | 14241886 | 37 days ago | IN | 0 ETH | 0.00000154 | ||||
| Multi Send | 13930227 | 41 days ago | IN | 0 ETH | 0.00000338 | ||||
| Multi Send | 13907159 | 41 days ago | IN | 0 ETH | 0.0000084 | ||||
| Multi Send | 13892217 | 41 days ago | IN | 0 ETH | 0.00000307 | ||||
| Multi Send | 13723093 | 43 days ago | IN | 0 ETH | 0.00000174 | ||||
| Multi Send | 13721838 | 43 days ago | IN | 0 ETH | 0.00000416 | ||||
| Multi Send | 13684987 | 44 days ago | IN | 0 ETH | 0.0000017 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | ||||
|---|---|---|---|---|---|---|---|
| 17498641 | 5 hrs ago | 0 ETH | |||||
| 17465076 | 14 hrs ago | 0 ETH | |||||
| 17376781 | 39 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17346430 | 47 hrs ago | 0 ETH | |||||
| 17341877 | 2 days ago | 0 ETH | |||||
| 17341877 | 2 days ago | 0 ETH |
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
// 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
* @notice The guard logic is not required here as this contract doesn't support nested delegate calls
* @author Stefan George - @Georgi87
* @author Richard Meissner - @rmeissner
*/
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
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"bytes","name":"transactions","type":"bytes"}],"name":"multiSend","outputs":[],"stateMutability":"payable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5061019a806100206000396000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea26469706673582212208d297bb003abee230b5dfb38774688f37a6fbb97a82a21728e8049b2acb9b73564736f6c63430007060033
Deployed Bytecode
0x60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea26469706673582212208d297bb003abee230b5dfb38774688f37a6fbb97a82a21728e8049b2acb9b73564736f6c63430007060033
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.