Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
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
Contract Source Code (Solidity)
/** *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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.