Robinhood MainnetChain ID: 4663
Contract detail

t2Timelock

t2Timelock is a verified Robinhood Chain smart contract at 0x3ad3c8cc…c9590bed with 0 indexed transactions.

Address type
Smart contract
Transactions
0
History coverage
No indexed activity found
Emitted events
5
Verification
Verified
Compiler
0.8.36+commit.8a079791
Verification match
full
Creation transaction
0xac0e474d…3145b94e
Created at block
#28456177
Language
solidity
EVM version
osaka
License
none
Compiler optimization
Enabled · 1000 runs
Verified contract

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity 0.8.36;
import "@openzeppelin/contracts/governance/TimelockController.sol";
contract t2Timelock is TimelockController {
    error ZeroLaunchFingerprint();
    bytes32 public immutable launchFingerprint;
    constructor(
        uint256 minDelay_,
        address[] memory proposers_,
        address[] memory executors_,
        address admin_,
        bytes32 launchFingerprint_
    ) TimelockController(minDelay_, proposers_, executors_, admin_) {
        if (launchFingerprint_ == bytes32(0)) revert ZeroLaunchFingerprint();
        if (_composeLaunchDigest(launchFingerprint_) == bytes32(0)) revert ZeroLaunchFingerprint();
        launchFingerprint = launchFingerprint_;
    }
    function launchId() external view returns (bytes32) {
        if (_composeLaunchDigest(launchFingerprint) == bytes32(0)) revert ZeroLaunchFingerprint();
        return launchFingerprint;
    }

    function operationReady(bytes32 operationId) external view returns (bool) {
        return isOperationReady(operationId);
    }

    function minimumDelay() external view returns (uint256) {
        return getMinDelay();
    }
    function _foldMulmodPrime(bytes32 acc) private pure returns (bytes32) {
        return bytes32(mulmod(uint256(acc), 0xff51afd7ed558ccd, type(uint256).max - 188));
    }

    function _foldShiftXorWide(bytes32 acc) private pure returns (bytes32) {
        return bytes32(uint256(acc) ^ (uint256(acc) >> 128));
    }

    function _foldShiftXorLow(bytes32 acc) private pure returns (bytes32) {
        unchecked { return bytes32(uint256(acc) ^ (uint256(acc) << 31)); }
    }

    function _foldKeccakPacked(bytes32 acc) private pure returns (bytes32) {
        return keccak256(abi.encodePacked(acc));
    }

    function _foldKeccakPadded(bytes32 acc) private pure returns (bytes32) {
        return keccak256(abi.encode(acc));
    }

    function _composeLaunchDigest(bytes32 acc) private pure returns (bytes32) {
        return _foldKeccakPadded(_foldKeccakPacked(_foldShiftXorLow(_foldShiftXorWide(_foldMulmodPrime(acc)))));
    }
}