Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xe3cc16Cffa085C78e5D8144C74Fa97e4Fe53d68d
Balance 0 ETH
Nonce 1
Code Size 862 bytes
Indexed Transactions 1 (24,437,42524,437,425)
Gas Used (indexed) 263,780
External Etherscan · Sourcify

Contract Bytecode

862 bytes
0x6080604052600436101561001257600080fd5b60003560e01c80631ba0e812146100cb5763ffa1ad741461003257600080fd5b346100c65760003660031901126100c65760408051906100528183610306565b602082527f4d756c7469526563656976655769746847617344726f704f66662d302e302e316020830152805180926020825280519081602084015260005b8281106100af5750506000828201840152601f01601f19168101030190f35b602082820181015187830187015286945001610090565b600080fd5b60603660031901126100c65760043567ffffffffffffffff81116100c6576100f79036906004016102d5565b60243567ffffffffffffffff81116100c6576101179036906004016102d5565b6044356001600160a01b038116939192908490036100c6578282036102bd57909236829003601e1901919060005b8581101561023957600581901b878101356001600160a01b03811691600091839003610221578784101561022557850135868112156102215785019182359267ffffffffffffffff841161021d57602001833603811361021d57813b1561021d578291849183604460405180988196829563f953cec760e01b845260206004850152816024850152848401378181018301849052601f01601f191681010301925af1801561021057906001939291610200575b505001610145565b61020991610306565b88806101f8565b50604051903d90823e3d90fd5b8280fd5b5080fd5b634e487b7160e01b82526032600452602482fd5b503461024157005b600080808034855af13d156102b8573d67ffffffffffffffff81116102a25760405190610278601f8201601f191660200183610306565b8152600060203d92013e5b1561028a57005b634913b37360e11b6000526004523460245260446000fd5b634e487b7160e01b600052604160045260246000fd5b610283565b50630135ce2d60e31b60005260045260245260446000fd5b9181601f840112156100c65782359167ffffffffffffffff83116100c6576020808501948460051b0101116100c657565b90601f8019910116810190811067ffffffffffffffff8211176102a25760405256fea26469706673582212203ac49255d300e0247651969f4206a6663fe1277458ef068b762168a30488508564736f6c634300081c0033

Verified Source Code Full Match

Compiler: v0.8.28+commit.7893614a EVM: london Optimization: Yes (200 runs)
MultiReceiveWithGasDropOff.sol 41 lines
// SPDX-License-Identifier: Apache 2
pragma solidity ^0.8.19;

import "./interfaces/IMultiReceiveWithGasDropOff.sol";
import "./interfaces/IReceiveMessage.sol";

string constant multiReceiverWithGasDropOffVersion = "MultiReceiveWithGasDropOff-0.0.1";

/// @title MultiReceiveWithGasDropOff
/// @author Executor Project Contributors.
/// @notice The MultiReceiveWithGasDropOff contract is a shim contract that does multiple message receives in a single call and drops off gas at the specified address.
contract MultiReceiveWithGasDropOff is IMultiReceiveWithGasDropOff {
    string public constant VERSION = multiReceiverWithGasDropOffVersion;

    // ==================== External Interface ===============================================

    /// @inheritdoc IMultiReceiveWithGasDropOff
    function receiveMessages(address[] calldata contracts, bytes[] calldata messages, address payeeAddress)
        external
        payable
    {
        if (contracts.length != messages.length) {
            revert InvalidParameters(contracts.length, messages.length);
        }

        uint256 len = contracts.length;
        for (uint256 idx = 0; idx < len;) {
            IReceiveMessage(contracts[idx]).receiveMessage(messages[idx]);
            unchecked {
                idx++;
            }
        }

        if (msg.value > 0) {
            (bool dropOffSuccessful,) = payable(payeeAddress).call{value: msg.value}("");
            if (!dropOffSuccessful) {
                revert DropOffFailed(payeeAddress, msg.value);
            }
        }
    }
}
IMultiReceiveWithGasDropOff.sol 15 lines
// SPDX-License-Identifier: Apache 2
pragma solidity ^0.8.19;

interface IMultiReceiveWithGasDropOff {
    error InvalidParameters(uint256, uint256);
    error DropOffFailed(address, uint256);

    /// @notice Receive a series of messages on the specified contracts and do gas drop off if necessary.
    /// @param contracts An array of contracts to receive messages.
    /// @param messages An array of messages to be received, in lock-step with contracts.
    /// @param payeeAddress The address to receive the gas drop off.
    function receiveMessages(address[] calldata contracts, bytes[] calldata messages, address payeeAddress)
        external
        payable;
}
IReceiveMessage.sol 8 lines
// SPDX-License-Identifier: Apache 2
pragma solidity ^0.8.19;

interface IReceiveMessage {
    /// @notice Receive an attested message.
    /// @param encodedMessage The attested message.
    function receiveMessage(bytes memory encodedMessage) external;
}

Read Contract

VERSION 0xffa1ad74 → string

Write Contract 1 functions

These functions modify contract state and require a wallet transaction to execute.

receiveMessages 0x1ba0e812
address[] contracts
bytes[] messages
address payeeAddress

Top Interactions

AddressTxnsSentReceived
0x520559de...fa0E 1 1

Recent Transactions

CSV
|
Hash Method Block Age From/To Value Txn Fee Type
0xe2854d51...66e76e 0x1ba0e812 24,437,425 IN 0x520559de...fa0E 0 ETH EIP-1559