ETH Price: $3,631.05 (-5.58%)

Contract

0xa5F565650890fBA1824Ee0F21EbBbF660a179934
Transaction Hash
Method
Block
From
To
0x23a172b81294865932024-12-19 1:32:4310 secs ago1734571963IN
Reservoir: Relay Receiver
0.000223264608031 ETH0.0000009699940.00146532
0x2aa3e7991294865932024-12-19 1:32:4310 secs ago1734571963IN
Reservoir: Relay Receiver
0.0001 ETH0.0000009737920.0015822
0x531f0d051294865842024-12-19 1:32:2528 secs ago1734571945IN
Reservoir: Relay Receiver
0.000103 ETH0.0000008556580.00085794
0x703965011294865612024-12-19 1:31:391 min ago1734571899IN
Reservoir: Relay Receiver
0.000228829883823 ETH0.0000009382140.00150161
0x0f8802c01294865592024-12-19 1:31:351 min ago1734571895IN
Reservoir: Relay Receiver
0.000109966109083 ETH0.0000009454920.00172454
0x048926f21294865482024-12-19 1:31:131 min ago1734571873IN
Reservoir: Relay Receiver
0.000678720670648 ETH0.0000008011820.00172594
0x98c5cb401294865382024-12-19 1:30:532 mins ago1734571853IN
Reservoir: Relay Receiver
0.000198335824763 ETH0.0000008413980.00130559
0x20d59d931294865102024-12-19 1:29:572 mins ago1734571797IN
Reservoir: Relay Receiver
0.9467 ETH0.0000007494870.00192333
0xf8ac9a881294864982024-12-19 1:29:333 mins ago1734571773IN
Reservoir: Relay Receiver
0.000564793473535 ETH0.000000835490.00143506
0xda1a2cad1294864682024-12-19 1:28:334 mins ago1734571713IN
Reservoir: Relay Receiver
0.000586426411069 ETH0.0000007783750.00156104
0x68614ba81294864572024-12-19 1:28:114 mins ago1734571691IN
Reservoir: Relay Receiver
0.000023 ETH0.0000007543740.00082621
0x7e9cc0f41294864522024-12-19 1:28:014 mins ago1734571681IN
Reservoir: Relay Receiver
0.000309 ETH0.00000071020.00082414
0x3fdc52d81294864462024-12-19 1:27:495 mins ago1734571669IN
Reservoir: Relay Receiver
0.00141880163395 ETH0.0000006691450.00172714
0xe0eb4a221294864452024-12-19 1:27:475 mins ago1734571667IN
Reservoir: Relay Receiver
0.000098 ETH0.0000006691790.0017282
0xb63ec0f11294864372024-12-19 1:27:315 mins ago1734571651IN
Reservoir: Relay Receiver
0.00043 ETH0.0000007082560.00151092
0x4529bd7a1294864362024-12-19 1:27:295 mins ago1734571649IN
Reservoir: Relay Receiver
0.0001 ETH0.0000007153860.0017293
0x80e48bc71294864332024-12-19 1:27:235 mins ago1734571643IN
Reservoir: Relay Receiver
0.000220444500584 ETH0.0000007054380.0014246
0x23ecb5b01294864242024-12-19 1:27:055 mins ago1734571625IN
Reservoir: Relay Receiver
0.0300000004 ETH0.0000008517620.00120313
0x9e2edb641294864212024-12-19 1:26:595 mins ago1734571619IN
Reservoir: Relay Receiver
0.0003 ETH0.0000008703960.00173232
0xf0c494661294863932024-12-19 1:26:036 mins ago1734571563IN
Reservoir: Relay Receiver
0.000241658263284 ETH0.0000006851670.0013448
0x2757815f1294863842024-12-19 1:25:457 mins ago1734571545IN
Reservoir: Relay Receiver
0.000088 ETH0.0000006692160.00084977
0x0be5f4b01294863842024-12-19 1:25:457 mins ago1734571545IN
Reservoir: Relay Receiver
0.000106941311159 ETH0.0000006986620.00175163
0x1ede21071294863722024-12-19 1:25:217 mins ago1734571521IN
Reservoir: Relay Receiver
0.000209 ETH0.0000006941550.00085493
0xe931d1cd1294863632024-12-19 1:25:037 mins ago1734571503IN
Reservoir: Relay Receiver
0.00008 ETH0.0000006901370.00131879
0x6ff00bdc1294863502024-12-19 1:24:378 mins ago1734571477IN
Reservoir: Relay Receiver
0.000267 ETH0.0000005811830.00086634
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1294865932024-12-19 1:32:4311 secs ago1734571963
Reservoir: Relay Receiver
0.000223264608031 ETH
1294865932024-12-19 1:32:4311 secs ago1734571963
Reservoir: Relay Receiver
0.0001 ETH
1294865842024-12-19 1:32:2529 secs ago1734571945
Reservoir: Relay Receiver
0.000103 ETH
1294865612024-12-19 1:31:391 min ago1734571899
Reservoir: Relay Receiver
0.000228829883823 ETH
1294865592024-12-19 1:31:351 min ago1734571895
Reservoir: Relay Receiver
0.000109966109083 ETH
1294865482024-12-19 1:31:131 min ago1734571873
Reservoir: Relay Receiver
0.000678720670648 ETH
1294865382024-12-19 1:30:532 mins ago1734571853
Reservoir: Relay Receiver
0.000198335824763 ETH
1294865102024-12-19 1:29:572 mins ago1734571797
Reservoir: Relay Receiver
0.9467 ETH
1294864982024-12-19 1:29:333 mins ago1734571773
Reservoir: Relay Receiver
0.000564793473535 ETH
1294864682024-12-19 1:28:334 mins ago1734571713
Reservoir: Relay Receiver
0.000586426411069 ETH
1294864572024-12-19 1:28:114 mins ago1734571691
Reservoir: Relay Receiver
0.000023 ETH
1294864522024-12-19 1:28:014 mins ago1734571681
Reservoir: Relay Receiver
0.000309 ETH
1294864462024-12-19 1:27:495 mins ago1734571669
Reservoir: Relay Receiver
0.00141880163395 ETH
1294864452024-12-19 1:27:475 mins ago1734571667
Reservoir: Relay Receiver
0.000098 ETH
1294864372024-12-19 1:27:315 mins ago1734571651
Reservoir: Relay Receiver
0.00043 ETH
1294864362024-12-19 1:27:295 mins ago1734571649
Reservoir: Relay Receiver
0.0001 ETH
1294864332024-12-19 1:27:235 mins ago1734571643
Reservoir: Relay Receiver
0.000220444500584 ETH
1294864242024-12-19 1:27:055 mins ago1734571625
Reservoir: Relay Receiver
0.0300000004 ETH
1294864212024-12-19 1:26:595 mins ago1734571619
Reservoir: Relay Receiver
0.0003 ETH
1294863932024-12-19 1:26:036 mins ago1734571563
Reservoir: Relay Receiver
0.000241658263284 ETH
1294863842024-12-19 1:25:457 mins ago1734571545
Reservoir: Relay Receiver
0.000088 ETH
1294863842024-12-19 1:25:457 mins ago1734571545
Reservoir: Relay Receiver
0.000106941311159 ETH
1294863722024-12-19 1:25:217 mins ago1734571521
Reservoir: Relay Receiver
0.000209 ETH
1294863632024-12-19 1:25:037 mins ago1734571503
Reservoir: Relay Receiver
0.00008 ETH
1294863502024-12-19 1:24:378 mins ago1734571477
Reservoir: Relay Receiver
0.000267 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

[{"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.