Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- MultiSend
- Optimization enabled
- false
- Compiler version
- v0.7.6+commit.7338295f
- EVM Version
- default
- Verified at
- 2022-11-09T09:11:14.866698Z
Contract source code
// Sources flattened with hardhat v2.2.1 https://hardhat.org// File contracts/libraries/MultiSend.sol// SPDX-License-Identifier: LGPL-3.0-onlypragma solidity >=0.7.0 <0.9.0;/// @title Multi Send - Allows to batch multiple transactions into one./// @author Nick Dodson - <nick.dodson@consensys.net>/// @author Gonçalo Sá - <goncalo.sa@consensys.net>/// @author Stefan George - <stefan@gnosis.io>/// @author Richard Meissner - <richard@gnosis.io>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/// @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 otherwisefunction multiSend(bytes memory transactions) public payable {require(address(this) != multisendSingleton, "MultiSend should only be called via delegatecall");// solhint-disable-next-line no-inline-assemblyassembly {let length := mload(transactions)let i := 0x20for {// 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.
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"multiSend","inputs":[{"type":"bytes","name":"transactions","internalType":"bytes"}]}]
Contract Creation Code
0x60a060405234801561001057600080fd5b503073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505060805160601c6102756100646000398060e052506102756000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610183576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806102106030913960400191505060405180910390fd5b805160205b8181101561020a578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101cd57600181146101dd576101e8565b6000808585888a5af191506101e8565b6000808585895af491505b5060008114156101f757600080fd5b8260550187019650505050505050610188565b50505056fe4d756c746953656e642073686f756c64206f6e6c792062652063616c6c6564207669612064656c656761746563616c6ca26469706673582212205c784303626eec02b71940b551976170b500a8a36cc5adcbeb2c19751a76d05464736f6c63430007060033
Deployed ByteCode
0x60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b7f000000000000000000000000a238cbeb142c10ef7ad8442c6d1f9e89e07e776173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610183576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806102106030913960400191505060405180910390fd5b805160205b8181101561020a578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101cd57600181146101dd576101e8565b6000808585888a5af191506101e8565b6000808585895af491505b5060008114156101f757600080fd5b8260550187019650505050505050610188565b50505056fe4d756c746953656e642073686f756c64206f6e6c792062652063616c6c6564207669612064656c656761746563616c6ca26469706673582212205c784303626eec02b71940b551976170b500a8a36cc5adcbeb2c19751a76d05464736f6c63430007060033