ETH Price: $2,734.25 (+0.97%)

Contract

0x595A9227433b528681583245a4b862D83c863F46
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Broadcast Block210221832024-10-22 16:01:59120 days ago1729612919IN
0x595A9227...83c863F46
0.00024086 ETH0.0026579713.63895514
Broadcast Block210218672024-10-22 14:58:23120 days ago1729609103IN
0x595A9227...83c863F46
0.00024086 ETH0.0028257714.5

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
210221832024-10-22 16:01:59120 days ago1729612919
0x595A9227...83c863F46
0.00024086 ETH
210218672024-10-22 14:58:23120 days ago1729609103
0x595A9227...83c863F46
0.00024086 ETH
210218492024-10-22 14:54:47120 days ago1729608887  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xa105607E...14cFe4304
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
L1Sender

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2024-10-22
*/

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity =0.8.19;

// src/interfaces/ILaPoste.sol

interface ILaPoste {
    struct Token {
        address tokenAddress;
        uint256 amount;
    }

    struct TokenMetadata {
        string name;
        string symbol;
        uint8 decimals;
    }

    struct MessageParams {
        uint256 destinationChainId;
        address to;
        Token token;
        bytes payload;
    }

    struct Message {
        uint256 destinationChainId;
        address to;
        address sender;
        Token token;
        TokenMetadata tokenMetadata;
        bytes payload;
        uint256 nonce;
    }

    function receiveMessage(uint256 chainId, bytes calldata payload) external;
    function sendMessage(MessageParams memory params, uint256 additionalGasLimit) external payable;
}

// src/oracle/L1Sender.sol

/// @notice A module for sending the block hash to the L1 block oracle updater.
contract L1Sender {
    /// @notice The La Poste address.
    address public immutable LA_POSTE;

    /// @notice The L1 block oracle address.
    address public immutable L1_BLOCK_ORACLE_UPDATER;

    /// @notice The error thrown when the block hash is sent too soon.
    error TooSoon();

    constructor(address _l1BlockOracleUpdater, address _laPoste) {
        LA_POSTE = _laPoste;
        L1_BLOCK_ORACLE_UPDATER = _l1BlockOracleUpdater;
    }

    /// @notice Sends the block hash to the L1 block oracle updater.
    function broadcastBlock(uint256 chainId, uint256 additionalGasLimit) external payable {
        if (block.timestamp < currentPeriod() + 1 minutes) revert TooSoon();

        bytes memory payload = abi.encode(block.number - 1, blockhash(block.number - 1), block.timestamp);

        ILaPoste.MessageParams memory params = ILaPoste.MessageParams({
            destinationChainId: chainId,
            to: L1_BLOCK_ORACLE_UPDATER,
            token: ILaPoste.Token({tokenAddress: address(0), amount: 0}),
            payload: payload
        });

        ILaPoste(LA_POSTE).sendMessage{value: msg.value}(params, additionalGasLimit);
    }

    function currentPeriod() internal view returns (uint256) {
        return block.timestamp / 1 weeks * 1 weeks;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_l1BlockOracleUpdater","type":"address"},{"internalType":"address","name":"_laPoste","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"TooSoon","type":"error"},{"inputs":[],"name":"L1_BLOCK_ORACLE_UPDATER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LA_POSTE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"uint256","name":"additionalGasLimit","type":"uint256"}],"name":"broadcastBlock","outputs":[],"stateMutability":"payable","type":"function"}]

Deployed Bytecode

0x6080604052600436106100345760003560e01c8063126d007814610039578063b55b2c4d14610089578063b82325541461009e575b600080fd5b34801561004557600080fd5b5061006d7f000000000000000000000000eac7a85aea083b3710eb477e60ded9aa425b456e81565b6040516001600160a01b03909116815260200160405180910390f35b61009c610097366004610245565b6100d2565b005b3480156100aa57600080fd5b5061006d7f0000000000000000000000008b72ef67ef5a090f650521a7bf85ee8eaebcf4d581565b6100da610224565b6100e590603c61027d565b42101561010557604051636fed7d8560e01b815260040160405180910390fd5b6000610112600143610296565b61011d600143610296565b60408051602081019390935290409082015242606082015260800160408051601f198184030181526080830182528583526001600160a01b037f000000000000000000000000eac7a85aea083b3710eb477e60ded9aa425b456e81166020858101919091528351808501855260008082529181019190915284840152606084018290529151638082b8ad60e01b81529093507f0000000000000000000000008b72ef67ef5a090f650521a7bf85ee8eaebcf4d590911690638082b8ad9034906101ec90859088906004016102a9565b6000604051808303818588803b15801561020557600080fd5b505af1158015610219573d6000803e3d6000fd5b505050505050505050565b600061023362093a8042610345565b6102409062093a80610367565b905090565b6000806040838503121561025857600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b8082018082111561029057610290610267565b92915050565b8181038181111561029057610290610267565b6040815282516040820152600060208085015160018060a01b03808216606086015260408701519150808251166080860152508181015160a085015250606085015160a060c085015280518060e086015260005b8181101561031a57828101840151868201610100015283016102fd565b506101009150600082828701015281601f19601f830116860101935050508381840152509392505050565b60008261036257634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176102905761029061026756fea264697066735822122057369ef7e9d9113f9e6fb39351ea0fbfc43413cfe798935b693ae6da02b0d30264736f6c63430008130033

Deployed Bytecode Sourcemap

980:1317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1132:48;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;1132:48:0;;;;;;;1520:648;;;;;;:::i;:::-;;:::i;:::-;;1044:33;;;;;;;;;;;;;;;1520:648;1639:15;:13;:15::i;:::-;:27;;1657:9;1639:27;:::i;:::-;1621:15;:45;1617:67;;;1675:9;;-1:-1:-1;;;1675:9:0;;;;;;;;;;;1617:67;1697:20;1731:16;1746:1;1731:12;:16;:::i;:::-;1759;1774:1;1759:12;:16;:::i;:::-;1720:74;;;;;;1072:25:1;;;;1749:27:0;;1113:18:1;;;1106:34;1778:15:0;1156:18:1;;;1149:34;1045:18;;1720:74:0;;;-1:-1:-1;;1720:74:0;;;;;;1846:225;;;;;;;;-1:-1:-1;;;;;1930:23:0;1846:225;;1720:74;1846:225;;;;;;;1975:53;;;;;;;1807:36;1975:53;;;;;;;;;;1846:225;;;;;;;;;;2084:76;;-1:-1:-1;;;2084:76:0;;1720:74;;-1:-1:-1;2093:8:0;2084:30;;;;;;2122:9;;2084:76;;1720:74;;2141:18;;2084:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1606:562;;1520:648;;:::o;2176:118::-;2224:7;2251:25;2269:7;2251:15;:25;:::i;:::-;:35;;2279:7;2251:35;:::i;:::-;2244:42;;2176:118;:::o;222:248:1:-;290:6;298;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;-1:-1:-1;;390:23:1;;;460:2;445:18;;;432:32;;-1:-1:-1;222:248:1:o;475:127::-;536:10;531:3;527:20;524:1;517:31;567:4;564:1;557:15;591:4;588:1;581:15;607:125;672:9;;;693:10;;;690:36;;;706:18;;:::i;:::-;607:125;;;;:::o;737:128::-;804:9;;;825:11;;;822:37;;;839:18;;:::i;1194:1181::-;1409:2;1398:9;1391:21;1454:6;1448:13;1443:2;1432:9;1428:18;1421:41;1372:4;1481;1532:2;1524:6;1520:15;1514:22;1572:1;1568;1563:3;1559:11;1555:19;1628:2;1614:12;1610:21;1605:2;1594:9;1590:18;1583:49;1681:2;1673:6;1669:15;1663:22;1641:44;;1749:2;1732:14;1726:21;1722:30;1716:3;1705:9;1701:19;1694:59;;1817:2;1801:14;1797:23;1791:30;1784:4;1773:9;1769:20;1762:60;;1871:2;1863:6;1859:15;1853:22;1912:4;1906:3;1895:9;1891:19;1884:33;1946:14;1940:21;1998:6;1992:3;1981:9;1977:19;1970:35;2023:1;2033:149;2047:6;2044:1;2041:13;2033:149;;;2143:22;;;2139:31;;2133:38;2108:17;;;2127:3;2104:27;2097:75;2062:10;;2033:149;;;2037:3;2201;2191:13;;2253:1;2248:2;2239:6;2228:9;2224:22;2220:31;2213:42;2323:2;2316;2312:7;2307:2;2299:6;2295:15;2291:29;2280:9;2276:45;2272:54;2264:62;;;;2362:6;2357:2;2346:9;2342:18;2335:34;;1194:1181;;;;;:::o;2380:217::-;2420:1;2446;2436:132;;2490:10;2485:3;2481:20;2478:1;2471:31;2525:4;2522:1;2515:15;2553:4;2550:1;2543:15;2436:132;-1:-1:-1;2582:9:1;;2380:217::o;2602:168::-;2675:9;;;2706;;2723:15;;;2717:22;;2703:37;2693:71;;2744:18;;:::i

Swarm Source

ipfs://57369ef7e9d9113f9e6fb39351ea0fbfc43413cfe798935b693ae6da02b0d302

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
Loading...
Loading
[ 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.