Source Code
Overview
SOPH Balance
More Info
ContractCreator
Multichain Info
N/A
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
391986 | 29 days ago | Contract Creation | 0 SOPH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
TimestampAsserter
Compiler Version
v0.8.24-1.0.1
ZkSolc Version
v1.5.0
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import {ITimestampAsserter} from "./ITimestampAsserter.sol"; error TimestampOutOfRange(uint256 currentTimestamp, uint256 start, uint256 end); /// @title TimestampAsserter /// @author Matter Labs /// @custom:security-contact [email protected] /// @dev A contract that verifies if the current block timestamp falls within a specified range. /// This is useful for custom account abstraction where time-bound checks are needed but accessing block.timestamp /// directly is not possible. contract TimestampAsserter is ITimestampAsserter { function assertTimestampInRange(uint256 _start, uint256 _end) external view { if (block.timestamp < _start || block.timestamp > _end) { revert TimestampOutOfRange(block.timestamp, _start, _end); } } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; interface ITimestampAsserter { function assertTimestampInRange(uint256 start, uint256 end) external view; }
{ "viaIR": false, "remappings": [ "@openzeppelin/contracts-v4/=lib/openzeppelin-contracts-v4/contracts/", "@openzeppelin/contracts-upgradeable-v4/=lib/openzeppelin-contracts-upgradeable-v4/contracts/", "ds-test/=lib/openzeppelin-contracts-upgradeable-v4/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable-v4/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable-v4/=lib/openzeppelin-contracts-upgradeable-v4/", "openzeppelin-contracts-v4/=lib/openzeppelin-contracts-v4/" ], "evmVersion": "paris", "outputSelection": { "*": { "*": [ "abi" ] } }, "optimizer": { "enabled": true, "mode": "3", "fallback_to_optimizing_for_size": false, "disable_system_request_memoization": true }, "metadata": {}, "libraries": {}, "detectMissingLibraries": false, "enableEraVMExtensions": false, "forceEVMLA": false }
[{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"TimestampOutOfRange","type":"error"},{"inputs":[{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_end","type":"uint256"}],"name":"assertTimestampInRange","outputs":[],"stateMutability":"view","type":"function"}]
Contract Creation Code
3cda335100000000000000000000000000000000000000000000000000000000000000000100001d651f9e236c91c296396485c901f0b58d8bfa5462dbe305a15df9265900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x00020000000000020000008003000039000000400030043f00000000030100190000006003300270000000130330019700000001022001900000002d0000c13d000000040230008c000000350000413d000000000201043b0000001502200197000000160220009c000000350000c13d000000440230008c000000350000413d0000000002000416000000000202004b000000350000c13d0000002402100370000000000202043b000200000002001d0000000401100370000000000101043b000100000001001d000000170100004100000000001004390000000001000414000000130210009c0000001301008041000000c00110021000000018011001c70000800b02000039004500400000040f0000000102200190000000370000613d000000000101043b0000000104000029000000000241004b0000000203000029000000380000413d000000000231004b000000380000213d0000000001000019000000460001042e0000000001000416000000000101004b000000350000c13d0000002001000039000001000010044300000120000004430000001401000041000000460001042e00000000010000190000004700010430000000000001042f0000001902000041000000800020043f000000840010043f000000a40040043f000000c40030043f0000001a010000410000004700010430000000000001042f00000043002104230000000102000039000000000001042d0000000002000019000000000001042d0000004500000432000000460001042e0000004700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff000000000000000000000000000000000000000000000000000000005b1a0c9100000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000003d5740d900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000080000000000000000000000000000000000000000000000000000000000000000000000000000000003af3b4b319b184bf5a57f4d889ea89af4017fc625c6ce9b57567632ad87dd57d
Loading...
Loading
Loading...
Loading
[ 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.