Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 20210208 | 149 days ago | IN | 0 ETH | 0.00137534 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TierProviderV2
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import "./TierProviderBase.sol"; /// @title TierProviderV2 /// @custom:security-contact [email protected] contract TierProviderV2 is TierProviderBase { /// @inheritdoc ITierProvider function getTierIds() public pure override returns (uint16[] memory tiers_) { tiers_ = new uint16[](3); tiers_[0] = LibTiers.TIER_SGX; tiers_[1] = LibTiers.TIER_GUARDIAN_MINORITY; tiers_[2] = LibTiers.TIER_GUARDIAN; } /// @inheritdoc ITierProvider function getMinTier(uint256) public pure override returns (uint16) { return LibTiers.TIER_SGX; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import "../../common/LibStrings.sol"; import "./ITierProvider.sol"; /// @title TierProviderBase /// @custom:security-contact [email protected] abstract contract TierProviderBase is ITierProvider { /// @inheritdoc ITierProvider function getTier(uint16 _tierId) public pure virtual override returns (ITierProvider.Tier memory) { if (_tierId == LibTiers.TIER_OPTIMISTIC) { return ITierProvider.Tier({ verifierName: "", validityBond: 125 ether, // TKO contestBond: 250 ether, // TKO cooldownWindow: 1440, //24 hours provingWindow: 15, // 15 minutes maxBlocksToVerifyPerProof: 0 }); } if (_tierId == LibTiers.TIER_SGX) { return ITierProvider.Tier({ verifierName: LibStrings.B_TIER_SGX, validityBond: 125 ether, // TKO contestBond: 820 ether, // =250TKO * 6.5625 cooldownWindow: 1440, //24 hours provingWindow: 60, // 1 hours maxBlocksToVerifyPerProof: 0 }); } if (_tierId == LibTiers.TIER_SGX_ZKVM) { return ITierProvider.Tier({ verifierName: LibStrings.B_TIER_SGX_ZKVM, validityBond: 250 ether, // TKO contestBond: 1640 ether, // =500TKO * 6.5625 cooldownWindow: 1440, //24 hours provingWindow: 240, // 4 hours maxBlocksToVerifyPerProof: 0 }); } if (_tierId == LibTiers.TIER_GUARDIAN_MINORITY) { return ITierProvider.Tier({ verifierName: LibStrings.B_TIER_GUARDIAN_MINORITY, validityBond: 250 ether, // TKO contestBond: 1640 ether, // =500TKO * 6.5625 cooldownWindow: 240, // 4 hours provingWindow: 2880, // 48 hours maxBlocksToVerifyPerProof: 0 }); } if (_tierId == LibTiers.TIER_GUARDIAN) { return ITierProvider.Tier({ verifierName: LibStrings.B_TIER_GUARDIAN, validityBond: 0, // must be 0 for top tier contestBond: 0, // must be 0 for top tier cooldownWindow: 1440, // 24 hours provingWindow: 2880, // 48 hours maxBlocksToVerifyPerProof: 0 }); } revert TIER_NOT_FOUND(); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; /// @title LibStrings /// @custom:security-contact [email protected] library LibStrings { bytes32 internal constant B_AUTOMATA_DCAP_ATTESTATION = bytes32("automata_dcap_attestation"); bytes32 internal constant B_BRIDGE = bytes32("bridge"); bytes32 internal constant B_BRIDGE_WATCHDOG = bytes32("bridge_watchdog"); bytes32 internal constant B_BRIDGED_ERC1155 = bytes32("bridged_erc1155"); bytes32 internal constant B_BRIDGED_ERC20 = bytes32("bridged_erc20"); bytes32 internal constant B_BRIDGED_ERC721 = bytes32("bridged_erc721"); bytes32 internal constant B_CHAIN_WATCHDOG = bytes32("chain_watchdog"); bytes32 internal constant B_ERC1155_VAULT = bytes32("erc1155_vault"); bytes32 internal constant B_ERC20_VAULT = bytes32("erc20_vault"); bytes32 internal constant B_ERC721_VAULT = bytes32("erc721_vault"); bytes32 internal constant B_PROVER_ASSIGNMENT = bytes32("PROVER_ASSIGNMENT"); bytes32 internal constant B_PROVER_SET = bytes32("prover_set"); bytes32 internal constant B_QUOTA_MANAGER = bytes32("quota_manager"); bytes32 internal constant B_SGX_WATCHDOG = bytes32("sgx_watchdog"); bytes32 internal constant B_SIGNAL_SERVICE = bytes32("signal_service"); bytes32 internal constant B_TAIKO = bytes32("taiko"); bytes32 internal constant B_TAIKO_TOKEN = bytes32("taiko_token"); bytes32 internal constant B_TIER_GUARDIAN = bytes32("tier_guardian"); bytes32 internal constant B_TIER_GUARDIAN_MINORITY = bytes32("tier_guardian_minority"); bytes32 internal constant B_TIER_ROUTER = bytes32("tier_router"); bytes32 internal constant B_TIER_SGX = bytes32("tier_sgx"); bytes32 internal constant B_TIER_SGX_ZKVM = bytes32("tier_sgx_zkvm"); bytes32 internal constant B_WITHDRAWER = bytes32("withdrawer"); bytes32 internal constant H_RETURN_LIVENESS_BOND = keccak256("RETURN_LIVENESS_BOND"); bytes32 internal constant H_SIGNAL_ROOT = keccak256("SIGNAL_ROOT"); bytes32 internal constant H_STATE_ROOT = keccak256("STATE_ROOT"); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; /// @title ITierProvider /// @notice Defines interface to return tier configuration. /// @custom:security-contact [email protected] interface ITierProvider { struct Tier { bytes32 verifierName; uint96 validityBond; uint96 contestBond; uint24 cooldownWindow; // in minutes uint16 provingWindow; // in minutes uint8 maxBlocksToVerifyPerProof; // DEPRECATED } error TIER_NOT_FOUND(); /// @dev Retrieves the configuration for a specified tier. /// @param tierId ID of the tier. /// @return Tier struct containing the tier's parameters. function getTier(uint16 tierId) external view returns (Tier memory); /// @dev Retrieves the IDs of all supported tiers. /// Note that the core protocol requires the number of tiers to be smaller /// than 256. In reality, this number should be much smaller. /// @return The ids of the tiers. function getTierIds() external view returns (uint16[] memory); /// @dev Determines the minimal tier for a block based on a random input. /// @param rand A pseudo-random number. /// @return The tier id. function getMinTier(uint256 rand) external view returns (uint16); } /// @dev Tier ID cannot be zero! library LibTiers { /// @notice Optimistic tier ID. uint16 public constant TIER_OPTIMISTIC = 100; /// @notice SGX tier ID. uint16 public constant TIER_SGX = 200; /// @notice SGX + ZKVM tier ID. uint16 public constant TIER_SGX_ZKVM = 300; /// @notice Guardian tier ID with minority approval. uint16 public constant TIER_GUARDIAN_MINORITY = 900; /// @notice Guardian tier ID with majority approval. uint16 public constant TIER_GUARDIAN = 1000; }
{ "remappings": [ "@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/", "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/", "solady/=node_modules/solady/", "forge-std/=node_modules/forge-std/", "ds-test/=node_modules/ds-test/src/", "p256-verifier/=node_modules/p256-verifier/", "forge-safe/=node_modules/forge-safe/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "cancun", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"TIER_NOT_FOUND","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getMinTier","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_tierId","type":"uint16"}],"name":"getTier","outputs":[{"components":[{"internalType":"bytes32","name":"verifierName","type":"bytes32"},{"internalType":"uint96","name":"validityBond","type":"uint96"},{"internalType":"uint96","name":"contestBond","type":"uint96"},{"internalType":"uint24","name":"cooldownWindow","type":"uint24"},{"internalType":"uint16","name":"provingWindow","type":"uint16"},{"internalType":"uint8","name":"maxBlocksToVerifyPerProof","type":"uint8"}],"internalType":"struct ITierProvider.Tier","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTierIds","outputs":[{"internalType":"uint16[]","name":"tiers_","type":"uint16[]"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b506104a68061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063576c3de71461004357806359ab4e23146100ca578063d8cde1c6146100f1575b5f80fd5b6100566100513660046103d6565b610106565b6040516100c191905f60c0820190508251825260208301516bffffffffffffffffffffffff8082166020850152806040860151166040850152505062ffffff606084015116606083015261ffff608084015116608083015260ff60a08401511660a083015292915050565b60405180910390f35b6100de6100d83660046103fe565b5060c890565b60405161ffff90911681526020016100c1565b6100f961032f565b6040516100c19190610415565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915260631961ffff83160161018e5750506040805160c0810182525f8082526806c6b935b8bbd400006020830152680d8d726b7177a80000928201929092526105a06060820152600f608082015260a081019190915290565b60c71961ffff8316016101ed5750506040805160c081018252670e8d2cae4bee6cef60c31b81526806c6b935b8bbd400006020820152682c73c937742c500000918101919091526105a06060820152603c60808201525f60a082015290565b61012b1961ffff8316016102525750506040805160c0810182526c746965725f7367785f7a6b766d60981b8152680d8d726b7177a8000060208201526858e7926ee858a00000918101919091526105a0606082015260f060808201525f60a082015290565b6103831961ffff8316016102c05750506040805160c08101825275746965725f677561726469616e5f6d696e6f7269747960501b8152680d8d726b7177a8000060208201526858e7926ee858a000009181019190915260f06060820152610b4060808201525f60a082015290565b6103e71961ffff8316016103165750506040805160c0810182526c3a34b2b92fb3bab0b93234b0b760991b81525f602082018190529181018290526105a06060820152610b40608082015260a081019190915290565b6040516334130f6160e21b815260040160405180910390fd5b6040805160038082526080820190925260609160208201838036833701905050905060c8815f815181106103655761036561045c565b602002602001019061ffff16908161ffff1681525050610384816001815181106103915761039161045c565b602002602001019061ffff16908161ffff16815250506103e8816002815181106103bd576103bd61045c565b602002602001019061ffff16908161ffff168152505090565b5f602082840312156103e6575f80fd5b813561ffff811681146103f7575f80fd5b9392505050565b5f6020828403121561040e575f80fd5b5035919050565b602080825282518282018190525f9190848201906040850190845b8181101561045057835161ffff1683529284019291840191600101610430565b50909695505050505050565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220ddc73189ede9a20c5757def1db7aac683725c5cc3132116f05b0196c3a59aa2864736f6c63430008180033
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063576c3de71461004357806359ab4e23146100ca578063d8cde1c6146100f1575b5f80fd5b6100566100513660046103d6565b610106565b6040516100c191905f60c0820190508251825260208301516bffffffffffffffffffffffff8082166020850152806040860151166040850152505062ffffff606084015116606083015261ffff608084015116608083015260ff60a08401511660a083015292915050565b60405180910390f35b6100de6100d83660046103fe565b5060c890565b60405161ffff90911681526020016100c1565b6100f961032f565b6040516100c19190610415565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915260631961ffff83160161018e5750506040805160c0810182525f8082526806c6b935b8bbd400006020830152680d8d726b7177a80000928201929092526105a06060820152600f608082015260a081019190915290565b60c71961ffff8316016101ed5750506040805160c081018252670e8d2cae4bee6cef60c31b81526806c6b935b8bbd400006020820152682c73c937742c500000918101919091526105a06060820152603c60808201525f60a082015290565b61012b1961ffff8316016102525750506040805160c0810182526c746965725f7367785f7a6b766d60981b8152680d8d726b7177a8000060208201526858e7926ee858a00000918101919091526105a0606082015260f060808201525f60a082015290565b6103831961ffff8316016102c05750506040805160c08101825275746965725f677561726469616e5f6d696e6f7269747960501b8152680d8d726b7177a8000060208201526858e7926ee858a000009181019190915260f06060820152610b4060808201525f60a082015290565b6103e71961ffff8316016103165750506040805160c0810182526c3a34b2b92fb3bab0b93234b0b760991b81525f602082018190529181018290526105a06060820152610b40608082015260a081019190915290565b6040516334130f6160e21b815260040160405180910390fd5b6040805160038082526080820190925260609160208201838036833701905050905060c8815f815181106103655761036561045c565b602002602001019061ffff16908161ffff1681525050610384816001815181106103915761039161045c565b602002602001019061ffff16908161ffff16815250506103e8816002815181106103bd576103bd61045c565b602002602001019061ffff16908161ffff168152505090565b5f602082840312156103e6575f80fd5b813561ffff811681146103f7575f80fd5b9392505050565b5f6020828403121561040e575f80fd5b5035919050565b602080825282518282018190525f9190848201906040850190845b8181101561045057835161ffff1683529284019291840191600101610430565b50909695505050505050565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220ddc73189ede9a20c5757def1db7aac683725c5cc3132116f05b0196c3a59aa2864736f6c63430008180033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.