ETH Price: $1,903.92 (-1.20%)

Contract

0xa5F565650890fBA1824Ee0F21EbBbF660a179934
 
Transaction Hash
Method
Block
From
To
0x02c1a729166879852025-03-17 4:29:4520 mins ago1742185785IN
Reservoir: Relay Receiver
0.00100219 ETH00.0000974
0xad679b9f166874692025-03-17 4:12:3337 mins ago1742184753IN
Reservoir: Relay Receiver
0.00102 ETH00.00009846
0x1c544081166872892025-03-17 4:06:3343 mins ago1742184393IN
Reservoir: Relay Receiver
0.00011299 ETH0.000000030.00110415
0x9375afd3166872822025-03-17 4:06:1943 mins ago1742184379IN
Reservoir: Relay Receiver
0.006 ETH00.00010946
0x4870a52c166870362025-03-17 3:58:0751 mins ago1742183887IN
Reservoir: Relay Receiver
1.927 ETH0.000000040.00130137
0xa4a56c8f166866512025-03-17 3:45:171 hr ago1742183117IN
Reservoir: Relay Receiver
0.012825 ETH00.00010114
0xef93210d166866072025-03-17 3:43:491 hr ago1742183029IN
Reservoir: Relay Receiver
0.007539 ETH00.00010239
0xeac77c9c166865312025-03-17 3:41:171 hr ago1742182877IN
Reservoir: Relay Receiver
0.0047 ETH0.000000030.00119731
0xb3f1ce3f166864152025-03-17 3:37:251 hr ago1742182645IN
Reservoir: Relay Receiver
0.0039 ETH0.000000030.00120022
0x3933993e166856872025-03-17 3:13:091 hr ago1742181189IN
Reservoir: Relay Receiver
0.13493327 ETH00.00009543
0x3f3e1fd0166855112025-03-17 3:07:171 hr ago1742180837IN
Reservoir: Relay Receiver
0.00738818 ETH00.00009594
0xa071c3ff166854832025-03-17 3:06:211 hr ago1742180781IN
Reservoir: Relay Receiver
0.00000306 ETH0.000000030.0011984
0x41679e48166850192025-03-17 2:50:531 hr ago1742179853IN
Reservoir: Relay Receiver
0.00000504 ETH0.000000030.0010985
0x7702aa19166848712025-03-17 2:45:572 hrs ago1742179557IN
Reservoir: Relay Receiver
0.00000964 ETH0.000000030.00109735
0xf0f95522166842112025-03-17 2:23:572 hrs ago1742178237IN
Reservoir: Relay Receiver
0.003874 ETH00.00009949
0x92ce19ae166839392025-03-17 2:14:532 hrs ago1742177693IN
Reservoir: Relay Receiver
0.0007 ETH0.000000030.00109693
0xa76105bf166838682025-03-17 2:12:312 hrs ago1742177551IN
Reservoir: Relay Receiver
0.00163658 ETH0.000000030.00119738
0xdd8c5edb166828042025-03-17 1:37:033 hrs ago1742175423IN
Reservoir: Relay Receiver
0.00145097 ETH00.00010093
0x07421976166827642025-03-17 1:35:433 hrs ago1742175343IN
Reservoir: Relay Receiver
0.00007564 ETH0.000000030.00119395
0x23b8eec7166827252025-03-17 1:34:253 hrs ago1742175265IN
Reservoir: Relay Receiver
0.11 ETH00.00009766
0x5822c39d166826722025-03-17 1:32:393 hrs ago1742175159IN
Reservoir: Relay Receiver
0.00001495 ETH0.000000030.00109301
0xc56759ac166820312025-03-17 1:11:173 hrs ago1742173877IN
Reservoir: Relay Receiver
0.0034 ETH00.00012371
0xf5f8535b166819832025-03-17 1:09:413 hrs ago1742173781IN
Reservoir: Relay Receiver
0.00345267 ETH00.0001241
0x0681ebcf166817912025-03-17 1:03:173 hrs ago1742173397IN
Reservoir: Relay Receiver
0.02008532 ETH0.000000040.00123252
0xda8a20ce166807912025-03-17 0:29:574 hrs ago1742171397IN
Reservoir: Relay Receiver
0.0075689 ETH0.000000030.00116354
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
166883942025-03-17 4:43:236 mins ago1742186603
Reservoir: Relay Receiver
0.00051032 ETH
166883942025-03-17 4:43:236 mins ago1742186603
Reservoir: Relay Receiver
0.00051032 ETH
166879852025-03-17 4:29:4520 mins ago1742185785
Reservoir: Relay Receiver
0.00100219 ETH
166876952025-03-17 4:20:0529 mins ago1742185205
Reservoir: Relay Receiver
0.00051494 ETH
166876952025-03-17 4:20:0529 mins ago1742185205
Reservoir: Relay Receiver
0.00051494 ETH
166874692025-03-17 4:12:3337 mins ago1742184753
Reservoir: Relay Receiver
0.00102 ETH
166872892025-03-17 4:06:3343 mins ago1742184393
Reservoir: Relay Receiver
0.00011299 ETH
166872822025-03-17 4:06:1943 mins ago1742184379
Reservoir: Relay Receiver
0.006 ETH
166870362025-03-17 3:58:0751 mins ago1742183887
Reservoir: Relay Receiver
1.927 ETH
166866512025-03-17 3:45:171 hr ago1742183117
Reservoir: Relay Receiver
0.012825 ETH
166866072025-03-17 3:43:491 hr ago1742183029
Reservoir: Relay Receiver
0.007539 ETH
166865312025-03-17 3:41:171 hr ago1742182877
Reservoir: Relay Receiver
0.0047 ETH
166864542025-03-17 3:38:431 hr ago1742182723
Reservoir: Relay Receiver
0.00056758 ETH
166864542025-03-17 3:38:431 hr ago1742182723
Reservoir: Relay Receiver
0.00056758 ETH
166864152025-03-17 3:37:251 hr ago1742182645
Reservoir: Relay Receiver
0.0039 ETH
166856872025-03-17 3:13:091 hr ago1742181189
Reservoir: Relay Receiver
0.13493327 ETH
166855112025-03-17 3:07:171 hr ago1742180837
Reservoir: Relay Receiver
0.00738818 ETH
166854832025-03-17 3:06:211 hr ago1742180781
Reservoir: Relay Receiver
0.00000306 ETH
166850192025-03-17 2:50:531 hr ago1742179853
Reservoir: Relay Receiver
0.00000504 ETH
166848712025-03-17 2:45:572 hrs ago1742179557
Reservoir: Relay Receiver
0.00000964 ETH
166842112025-03-17 2:23:572 hrs ago1742178237
Reservoir: Relay Receiver
0.003874 ETH
166839392025-03-17 2:14:532 hrs ago1742177693
Reservoir: Relay Receiver
0.0007 ETH
166838682025-03-17 2:12:312 hrs ago1742177551
Reservoir: Relay Receiver
0.00163658 ETH
166834892025-03-17 1:59:532 hrs ago1742176793
Reservoir: Relay Receiver
0.0005 ETH
166834892025-03-17 1:59:532 hrs ago1742176793
Reservoir: Relay Receiver
0.0005 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RelayReceiver

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : RelayReceiver.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

contract RelayReceiver {
    // --- Structs ---

    struct Call {
        address to;
        bytes data;
        uint256 value;
    }

    // --- Errors ---

    error CallFailed();
    error NativeTransferFailed();
    error Unauthorized();

    // --- Events ---

    event FundsForwardedWithData(bytes data);

    // --- Fields ---

    address private immutable SOLVER;

    // --- Constructor ---

    constructor(address solver) {
        SOLVER = solver;
    }

    // --- Public methods ---

    fallback() external payable {
        send(SOLVER, msg.value);
        emit FundsForwardedWithData(msg.data);
    }

    function forward(bytes calldata data) external payable {
        send(SOLVER, msg.value);
        emit FundsForwardedWithData(data);
    }

    // --- Restricted methods ---

    function makeCalls(Call[] calldata calls) external payable {
        if (msg.sender != SOLVER) {
            revert Unauthorized();
        }

        unchecked {
            uint256 length = calls.length;
            for (uint256 i; i < length; i++) {
                Call memory c = calls[i];

                (bool success, ) = c.to.call{value: c.value}(c.data);
                if (!success) {
                    revert CallFailed();
                }
            }
        }
    }

    // --- Internal methods ---

    function send(address to, uint256 value) internal {
        bool success;
        assembly {
            // Save gas by avoiding copying the return data to memory.
            // Provide at most 100k gas to the internal call, which is
            // more than enough to cover common use-cases of logic for
            // receiving native tokens (eg. SCW payable fallbacks).
            success := call(100000, to, value, 0, 0, 0, 0)
        }

        if (!success) {
            revert NativeTransferFailed();
        }
    }
}

Settings
{
  "remappings": [
    "@openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "solady/=lib/solady/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"solver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CallFailed","type":"error"},{"inputs":[],"name":"NativeTransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"FundsForwardedWithData","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"forward","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}],"internalType":"struct RelayReceiver.Call[]","name":"calls","type":"tuple[]"}],"name":"makeCalls","outputs":[],"stateMutability":"payable","type":"function"}]

60a03461007757601f6104e138819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007757516001600160a01b03811681036100775760805260405161044e9081610093823960805181818160ab01528181610139015261037d0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040526004361015610018575b610016610377565b005b6000803560e01c908163d948d4681461003b575063dd4ed8370361000e576100e9565b60203660031901126100e65760043567ffffffffffffffff8082116100e257366023830112156100e25781600401359081116100e25736602482840101116100e2577f936c2ca3b35d2d0b24057b0675c459e4515f48fe132d138e213ae59ffab7f53e916100dc6024926100cf347f00000000000000000000000000000000000000000000000000000000000000006103f3565b60405193849301836101e7565b0390a180f35b8280fd5b80fd5b6020806003193601126101e25760049067ffffffffffffffff9082358281116101e257366023820112156101e25780600401359283116101e2576024810190602436918560051b0101116101e2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101d15760005b83811061017357005b61018661018182868561020f565b6102c4565b805160009081906001600160a01b0316926040938785830151920151918883519301915af16101b3610351565b50156101c2575060010161016a565b51633204506f60e01b81528590fd5b6040516282b42960e81b8152600490fd5b600080fd5b90918060409360208452816020850152848401376000828201840152601f01601f1916010190565b91908110156102315760051b81013590605e19813603018212156101e2570190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604051906060820182811067ffffffffffffffff82111761027d57604052565b610247565b6040519190601f01601f1916820167ffffffffffffffff81118382101761027d57604052565b67ffffffffffffffff811161027d57601f01601f191660200190565b6060813603126101e2576102d661025d565b9080356001600160a01b03811681036101e25782526020908181013567ffffffffffffffff81116101e25781019136601f840112156101e25782359061032361031e836102a8565b610282565b91808352368282870101116101e2578181600092826040980183870137840101528401520135604082015290565b3d15610372573d9061036561031e836102a8565b9182523d6000602084013e565b606090565b6103a1347f00000000000000000000000000000000000000000000000000000000000000006103f3565b7f936c2ca3b35d2d0b24057b0675c459e4515f48fe132d138e213ae59ffab7f53e604051602081523660208201523660006040830137600060403683010152604081601f19601f3601168101030190a1565b60008080938193620186a0f11561040657565b604051633d2cec6f60e21b8152600490fdfea2646970667358221220caf02629fd057cfee0cb6731c8eded184dc558da485e5cc6ee0bccec8e65dd0564736f6c63430008170033000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef

Deployed Bytecode

0x60806040526004361015610018575b610016610377565b005b6000803560e01c908163d948d4681461003b575063dd4ed8370361000e576100e9565b60203660031901126100e65760043567ffffffffffffffff8082116100e257366023830112156100e25781600401359081116100e25736602482840101116100e2577f936c2ca3b35d2d0b24057b0675c459e4515f48fe132d138e213ae59ffab7f53e916100dc6024926100cf347f000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef6103f3565b60405193849301836101e7565b0390a180f35b8280fd5b80fd5b6020806003193601126101e25760049067ffffffffffffffff9082358281116101e257366023820112156101e25780600401359283116101e2576024810190602436918560051b0101116101e2577f000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef6001600160a01b031633036101d15760005b83811061017357005b61018661018182868561020f565b6102c4565b805160009081906001600160a01b0316926040938785830151920151918883519301915af16101b3610351565b50156101c2575060010161016a565b51633204506f60e01b81528590fd5b6040516282b42960e81b8152600490fd5b600080fd5b90918060409360208452816020850152848401376000828201840152601f01601f1916010190565b91908110156102315760051b81013590605e19813603018212156101e2570190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b604051906060820182811067ffffffffffffffff82111761027d57604052565b610247565b6040519190601f01601f1916820167ffffffffffffffff81118382101761027d57604052565b67ffffffffffffffff811161027d57601f01601f191660200190565b6060813603126101e2576102d661025d565b9080356001600160a01b03811681036101e25782526020908181013567ffffffffffffffff81116101e25781019136601f840112156101e25782359061032361031e836102a8565b610282565b91808352368282870101116101e2578181600092826040980183870137840101528401520135604082015290565b3d15610372573d9061036561031e836102a8565b9182523d6000602084013e565b606090565b6103a1347f000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef6103f3565b7f936c2ca3b35d2d0b24057b0675c459e4515f48fe132d138e213ae59ffab7f53e604051602081523660208201523660006040830137600060403683010152604081601f19601f3601168101030190a1565b60008080938193620186a0f11561040657565b604051633d2cec6f60e21b8152600490fdfea2646970667358221220caf02629fd057cfee0cb6731c8eded184dc558da485e5cc6ee0bccec8e65dd0564736f6c63430008170033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef

-----Decoded View---------------
Arg [0] : solver (address): 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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.