Source Code
Overview
S Balance
S Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 56842759 | 56 days ago | Contract Creation | 0 S |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ConstantsManager
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.27;
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {Decimal} from "../common/Decimal.sol";
/**
* @custom:security-contact [email protected]
*/
contract ConstantsManager is Ownable {
// Minimum amount of stake for a validator, i.e., 500000 FTM
uint256 public minSelfStake;
// Maximum ratio of delegations a validator can have, say, 15 times of self-stake
uint256 public maxDelegatedRatio;
// The commission fee in percentage a validator will get from a delegation, e.g., 15%
uint256 public validatorCommission;
// The percentage of fees to burn, e.g., 20%
uint256 public burntFeeShare;
// The percentage of fees to transfer to treasury address, e.g., 10%
uint256 public treasuryFeeShare;
// The percentage of extra rewards to be burned, e.g. 60%
uint256 public extraRewardsBurnRatio;
// the number of epochs that undelegated stake is locked for
uint256 public withdrawalPeriodEpochs;
// the number of seconds that undelegated stake is locked for
uint256 public withdrawalPeriodTime;
// The max amount of rewards released by the network to its stakers every second
uint256 public baseRewardPerSecond;
// The max number of consecutive confirmed blocks a validator can be inactive before irreversibly deactivated
uint256 public offlinePenaltyThresholdBlocksNum;
// The max number of seconds a validator can be inactive before irreversibly deactivated
uint256 public offlinePenaltyThresholdTime;
// The number of epochs to calculate the average uptime ratio from, acceptable bound [10, 87600].
// Is also the minimum number of epochs necessary for deactivation of offline validators.
uint32 public averageUptimeEpochWindow;
// Minimum average uptime ratio in fixed-point format; acceptable bounds [0,0.9].
// Zero to disable validators deactivation by this metric.
uint64 public minAverageUptime;
// The address of the recipient that receives issued tokens
// as a counterparty to the burnt S tokens
address public issuedTokensRecipient;
/**
* @dev Given value is too small
*/
error ValueTooSmall();
/**
* @dev Given value is too large
*/
error ValueTooLarge();
constructor(address owner) Ownable(owner) {}
function updateMinSelfStake(uint256 v) external virtual onlyOwner {
if (v < 100000 * Decimal.unit()) {
revert ValueTooSmall();
}
if (v > 10000000 * Decimal.unit()) {
revert ValueTooLarge();
}
minSelfStake = v;
}
function updateMaxDelegatedRatio(uint256 v) external onlyOwner {
if (v < Decimal.unit()) {
revert ValueTooSmall();
}
if (v > 31 * Decimal.unit()) {
revert ValueTooLarge();
}
maxDelegatedRatio = v;
}
function updateValidatorCommission(uint256 v) external onlyOwner {
if (v > Decimal.unit() / 2) {
revert ValueTooLarge();
}
validatorCommission = v;
}
function updateBurntFeeShare(uint256 v) external onlyOwner {
if (v + treasuryFeeShare > Decimal.unit()) {
revert ValueTooLarge();
}
burntFeeShare = v;
}
function updateTreasuryFeeShare(uint256 v) external onlyOwner {
if (v + burntFeeShare > Decimal.unit()) {
revert ValueTooLarge();
}
treasuryFeeShare = v;
}
function updateExtraRewardsBurnRatio(uint256 v) external virtual onlyOwner {
if (v > Decimal.unit()) {
revert ValueTooLarge();
}
extraRewardsBurnRatio = v;
}
function updateWithdrawalPeriodEpochs(uint256 v) external onlyOwner {
if (v < 2) {
revert ValueTooSmall();
}
if (v > 100) {
revert ValueTooLarge();
}
withdrawalPeriodEpochs = v;
}
function updateWithdrawalPeriodTime(uint256 v) external onlyOwner {
if (v < 3600) {
revert ValueTooSmall();
}
if (v > 30 * 86400) {
revert ValueTooLarge();
}
withdrawalPeriodTime = v;
}
function updateBaseRewardPerSecond(uint256 v) external virtual onlyOwner {
if (v > 32 * Decimal.unit()) {
revert ValueTooLarge();
}
baseRewardPerSecond = v;
}
function updateOfflinePenaltyThresholdTime(uint256 v) external virtual onlyOwner {
if (v < 86400) {
revert ValueTooSmall();
}
if (v > 10 * 86400) {
revert ValueTooLarge();
}
offlinePenaltyThresholdTime = v;
}
function updateOfflinePenaltyThresholdBlocksNum(uint256 v) external onlyOwner {
if (v < 100) {
revert ValueTooSmall();
}
if (v > 1000000) {
revert ValueTooLarge();
}
offlinePenaltyThresholdBlocksNum = v;
}
function updateAverageUptimeEpochWindow(uint32 v) external onlyOwner {
if (v < 10) {
// needs to be long enough to allow permissible downtime for validators maintenance
revert ValueTooSmall();
}
if (v > 87600) {
revert ValueTooLarge();
}
averageUptimeEpochWindow = v;
}
function updateMinAverageUptime(uint64 v) external onlyOwner {
if (v > ((Decimal.unit() * 9) / 10)) {
revert ValueTooLarge();
}
minAverageUptime = v;
}
function updateIssuedTokensRecipient(address v) external onlyOwner {
issuedTokensRecipient = v;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.27; /** * @custom:security-contact [email protected] */ library Decimal { // unit is used for decimals, e.g. 0.123456 function unit() internal pure returns (uint256) { return 1e18; } }
{
"evmVersion": "cancun",
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ValueTooLarge","type":"error"},{"inputs":[],"name":"ValueTooSmall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"averageUptimeEpochWindow","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseRewardPerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burntFeeShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraRewardsBurnRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"issuedTokensRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxDelegatedRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAverageUptime","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSelfStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offlinePenaltyThresholdBlocksNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offlinePenaltyThresholdTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFeeShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"v","type":"uint32"}],"name":"updateAverageUptimeEpochWindow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateBaseRewardPerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateBurntFeeShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateExtraRewardsBurnRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"v","type":"address"}],"name":"updateIssuedTokensRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateMaxDelegatedRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"v","type":"uint64"}],"name":"updateMinAverageUptime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateMinSelfStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateOfflinePenaltyThresholdBlocksNum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateOfflinePenaltyThresholdTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateTreasuryFeeShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateValidatorCommission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateWithdrawalPeriodEpochs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateWithdrawalPeriodTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"validatorCommission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalPeriodEpochs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalPeriodTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
6080604052348015600e575f5ffd5b50604051610b8e380380610b8e833981016040819052602b9160b4565b806001600160a01b038116605857604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b605f816065565b505060df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121560c3575f5ffd5b81516001600160a01b038116811460d8575f5ffd5b9392505050565b610aa2806100ec5f395ff3fe608060405234801561000f575f5ffd5b50600436106101db575f3560e01c8063754e92e311610109578063b6d9edd51161009e578063d475aa941161006e578063d475aa94146103e0578063d9a7c1f9146103e9578063f2fde38b146103f2578063f8d5177e14610405575f5ffd5b8063b6d9edd5146103b2578063b82b8427146103c5578063c5f530af146103ce578063c74dd621146103d7575f5ffd5b80638da5cb5b116100d95780638da5cb5b1461037d5780638f078bfa1461038d57806394c3e914146103a0578063a7786515146103a9575f5ffd5b8063754e92e31461031257806375840fab1461032557806381ffcdf114610357578063866c4b171461036a575f5ffd5b80632e84e8e61161017f5780635a68f01a1161014f5780635a68f01a146102e55780636348ebb8146102ee578063650acd6614610301578063715018a61461030a575f5ffd5b80632e84e8e6146102875780632ee711321461029a5780633fa22548146102ad578063455366a4146102d2575f5ffd5b80632265f284116101ba5780632265f28414610245578063230ec5f71461024e578063256dc572146102615780632bb9fe8d14610274575f5ffd5b8062cc7f83146101df578063165e2639146101fb5780631c25433714610210575b5f5ffd5b6101e8600b5481565b6040519081526020015b60405180910390f35b61020e61020936600461097b565b610418565b005b600c5461022c90640100000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101f2565b6101e860025481565b61020e61025c3660046109a9565b610499565b61020e61026f3660046109c0565b6104cf565b61020e6102823660046109a9565b610545565b61020e6102953660046109a9565b610587565b61020e6102a83660046109a9565b6105da565b600c546102bd9063ffffffff1681565b60405163ffffffff90911681526020016101f2565b61020e6102e03660046109a9565b61061a565b6101e8600a5481565b61020e6102fc3660046109a9565b61066e565b6101e860075481565b61020e6106c3565b61020e6103203660046109e3565b6106d6565b600c5461033f90600160601b90046001600160a01b031681565b6040516001600160a01b0390911681526020016101f2565b61020e6103653660046109a9565b61070b565b61020e6103783660046109a9565b610774565b5f546001600160a01b031661033f565b61020e61039b3660046109a9565b6107eb565b6101e860055481565b6101e860035481565b61020e6103c03660046109a9565b61083c565b6101e860085481565b6101e860015481565b6101e860045481565b6101e860065481565b6101e860095481565b61020e6104003660046109e3565b61087c565b61020e6104133660046109a9565b6108be565b610420610900565b600a610435670de0b6b3a76400006009610a1d565b61043f9190610a3a565b8167ffffffffffffffff16111561046957604051632ad907fb60e01b815260040160405180910390fd5b600c805467ffffffffffffffff909216640100000000026bffffffffffffffff0000000019909216919091179055565b6104a1610900565b670de0b6b3a76400008111156104ca57604051632ad907fb60e01b815260040160405180910390fd5b600655565b6104d7610900565b600a8163ffffffff1610156104ff57604051639a721da360e01b815260040160405180910390fd5b620156308163ffffffff16111561052957604051632ad907fb60e01b815260040160405180910390fd5b600c805463ffffffff191663ffffffff92909216919091179055565b61054d610900565b670de0b6b3a76400006005546105639083610a59565b111561058257604051632ad907fb60e01b815260040160405180910390fd5b600455565b61058f610900565b60648110156105b157604051639a721da360e01b815260040160405180910390fd5b620f42408111156105d557604051632ad907fb60e01b815260040160405180910390fd5b600a55565b6105e2610900565b6105f56002670de0b6b3a7640000610a3a565b81111561061557604051632ad907fb60e01b815260040160405180910390fd5b600355565b610622610900565b610e1081101561064557604051639a721da360e01b815260040160405180910390fd5b62278d0081111561066957604051632ad907fb60e01b815260040160405180910390fd5b600855565b610676610900565b6201518081101561069a57604051639a721da360e01b815260040160405180910390fd5b620d2f008111156106be57604051632ad907fb60e01b815260040160405180910390fd5b600b55565b6106cb610900565b6106d45f61092c565b565b6106de610900565b600c80546001600160a01b03909216600160601b026bffffffffffffffffffffffff909216919091179055565b610713610900565b670de0b6b3a764000081101561073c57604051639a721da360e01b815260040160405180910390fd5b61074f670de0b6b3a7640000601f610a1d565b81111561076f57604051632ad907fb60e01b815260040160405180910390fd5b600255565b61077c610900565b610791670de0b6b3a7640000620186a0610a1d565b8110156107b157604051639a721da360e01b815260040160405180910390fd5b6107c6670de0b6b3a764000062989680610a1d565b8111156107e657604051632ad907fb60e01b815260040160405180910390fd5b600155565b6107f3610900565b600281101561081557604051639a721da360e01b815260040160405180910390fd5b606481111561083757604051632ad907fb60e01b815260040160405180910390fd5b600755565b610844610900565b610857670de0b6b3a76400006020610a1d565b81111561087757604051632ad907fb60e01b815260040160405180910390fd5b600955565b610884610900565b6001600160a01b0381166108b257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6108bb8161092c565b50565b6108c6610900565b670de0b6b3a76400006004546108dc9083610a59565b11156108fb57604051632ad907fb60e01b815260040160405180910390fd5b600555565b5f546001600160a01b031633146106d45760405163118cdaa760e01b81523360048201526024016108a9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121561098b575f5ffd5b813567ffffffffffffffff811681146109a2575f5ffd5b9392505050565b5f602082840312156109b9575f5ffd5b5035919050565b5f602082840312156109d0575f5ffd5b813563ffffffff811681146109a2575f5ffd5b5f602082840312156109f3575f5ffd5b81356001600160a01b03811681146109a2575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a3457610a34610a09565b92915050565b5f82610a5457634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a3457610a34610a0956fea2646970667358221220b3d86c1328aca45393e8769dcacb082c5afeb5509a47e80e109f0774a1c2147864736f6c634300081b0033000000000000000000000000372798c2df95a615a96aa1b3ba2abacac0da6eac
Deployed Bytecode
0x608060405234801561000f575f5ffd5b50600436106101db575f3560e01c8063754e92e311610109578063b6d9edd51161009e578063d475aa941161006e578063d475aa94146103e0578063d9a7c1f9146103e9578063f2fde38b146103f2578063f8d5177e14610405575f5ffd5b8063b6d9edd5146103b2578063b82b8427146103c5578063c5f530af146103ce578063c74dd621146103d7575f5ffd5b80638da5cb5b116100d95780638da5cb5b1461037d5780638f078bfa1461038d57806394c3e914146103a0578063a7786515146103a9575f5ffd5b8063754e92e31461031257806375840fab1461032557806381ffcdf114610357578063866c4b171461036a575f5ffd5b80632e84e8e61161017f5780635a68f01a1161014f5780635a68f01a146102e55780636348ebb8146102ee578063650acd6614610301578063715018a61461030a575f5ffd5b80632e84e8e6146102875780632ee711321461029a5780633fa22548146102ad578063455366a4146102d2575f5ffd5b80632265f284116101ba5780632265f28414610245578063230ec5f71461024e578063256dc572146102615780632bb9fe8d14610274575f5ffd5b8062cc7f83146101df578063165e2639146101fb5780631c25433714610210575b5f5ffd5b6101e8600b5481565b6040519081526020015b60405180910390f35b61020e61020936600461097b565b610418565b005b600c5461022c90640100000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101f2565b6101e860025481565b61020e61025c3660046109a9565b610499565b61020e61026f3660046109c0565b6104cf565b61020e6102823660046109a9565b610545565b61020e6102953660046109a9565b610587565b61020e6102a83660046109a9565b6105da565b600c546102bd9063ffffffff1681565b60405163ffffffff90911681526020016101f2565b61020e6102e03660046109a9565b61061a565b6101e8600a5481565b61020e6102fc3660046109a9565b61066e565b6101e860075481565b61020e6106c3565b61020e6103203660046109e3565b6106d6565b600c5461033f90600160601b90046001600160a01b031681565b6040516001600160a01b0390911681526020016101f2565b61020e6103653660046109a9565b61070b565b61020e6103783660046109a9565b610774565b5f546001600160a01b031661033f565b61020e61039b3660046109a9565b6107eb565b6101e860055481565b6101e860035481565b61020e6103c03660046109a9565b61083c565b6101e860085481565b6101e860015481565b6101e860045481565b6101e860065481565b6101e860095481565b61020e6104003660046109e3565b61087c565b61020e6104133660046109a9565b6108be565b610420610900565b600a610435670de0b6b3a76400006009610a1d565b61043f9190610a3a565b8167ffffffffffffffff16111561046957604051632ad907fb60e01b815260040160405180910390fd5b600c805467ffffffffffffffff909216640100000000026bffffffffffffffff0000000019909216919091179055565b6104a1610900565b670de0b6b3a76400008111156104ca57604051632ad907fb60e01b815260040160405180910390fd5b600655565b6104d7610900565b600a8163ffffffff1610156104ff57604051639a721da360e01b815260040160405180910390fd5b620156308163ffffffff16111561052957604051632ad907fb60e01b815260040160405180910390fd5b600c805463ffffffff191663ffffffff92909216919091179055565b61054d610900565b670de0b6b3a76400006005546105639083610a59565b111561058257604051632ad907fb60e01b815260040160405180910390fd5b600455565b61058f610900565b60648110156105b157604051639a721da360e01b815260040160405180910390fd5b620f42408111156105d557604051632ad907fb60e01b815260040160405180910390fd5b600a55565b6105e2610900565b6105f56002670de0b6b3a7640000610a3a565b81111561061557604051632ad907fb60e01b815260040160405180910390fd5b600355565b610622610900565b610e1081101561064557604051639a721da360e01b815260040160405180910390fd5b62278d0081111561066957604051632ad907fb60e01b815260040160405180910390fd5b600855565b610676610900565b6201518081101561069a57604051639a721da360e01b815260040160405180910390fd5b620d2f008111156106be57604051632ad907fb60e01b815260040160405180910390fd5b600b55565b6106cb610900565b6106d45f61092c565b565b6106de610900565b600c80546001600160a01b03909216600160601b026bffffffffffffffffffffffff909216919091179055565b610713610900565b670de0b6b3a764000081101561073c57604051639a721da360e01b815260040160405180910390fd5b61074f670de0b6b3a7640000601f610a1d565b81111561076f57604051632ad907fb60e01b815260040160405180910390fd5b600255565b61077c610900565b610791670de0b6b3a7640000620186a0610a1d565b8110156107b157604051639a721da360e01b815260040160405180910390fd5b6107c6670de0b6b3a764000062989680610a1d565b8111156107e657604051632ad907fb60e01b815260040160405180910390fd5b600155565b6107f3610900565b600281101561081557604051639a721da360e01b815260040160405180910390fd5b606481111561083757604051632ad907fb60e01b815260040160405180910390fd5b600755565b610844610900565b610857670de0b6b3a76400006020610a1d565b81111561087757604051632ad907fb60e01b815260040160405180910390fd5b600955565b610884610900565b6001600160a01b0381166108b257604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6108bb8161092c565b50565b6108c6610900565b670de0b6b3a76400006004546108dc9083610a59565b11156108fb57604051632ad907fb60e01b815260040160405180910390fd5b600555565b5f546001600160a01b031633146106d45760405163118cdaa760e01b81523360048201526024016108a9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121561098b575f5ffd5b813567ffffffffffffffff811681146109a2575f5ffd5b9392505050565b5f602082840312156109b9575f5ffd5b5035919050565b5f602082840312156109d0575f5ffd5b813563ffffffff811681146109a2575f5ffd5b5f602082840312156109f3575f5ffd5b81356001600160a01b03811681146109a2575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a3457610a34610a09565b92915050565b5f82610a5457634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a3457610a34610a0956fea2646970667358221220b3d86c1328aca45393e8769dcacb082c5afeb5509a47e80e109f0774a1c2147864736f6c634300081b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000372798c2df95a615a96aa1b3ba2abacac0da6eac
-----Decoded View---------------
Arg [0] : owner (address): 0x372798c2dF95a615a96AA1b3bA2AbaCAC0da6eaC
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000372798c2df95a615a96aa1b3ba2abacac0da6eac
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in S
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
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.