Source Code
Overview
FRAX Balance | FXTL Balance
0 FRAX | 0 FXTL
FRAX Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FNSPriceOracle
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.19;
// ====================================================================
// | ______ _______ |
// | / _____________ __ __ / ____(_____ ____ _____ ________ |
// | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
// | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
// | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
// | |
// ====================================================================
// ========================== FNS PriceOracle =========================
// ====================================================================
// Frax Finance: https://github.com/FraxFinance
// Primary Author(s)
// Amirnader Aghayeghazvini: https://github.com/amirnader-ghazvini
// Reviewer(s) / Contributor(s)
import "ens-contracts/contracts/ethregistrar/IPriceOracle.sol";
import "ens-contracts/contracts/ethregistrar/StringUtils.sol";
import "ens-contracts/contracts/ethregistrar/SafeMath.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
// FNSPriceOracle sets a price in unit of FXS.
contract FNSPriceOracle is IPriceOracle {
using StringUtils for *;
using SafeMath for *;
// Rent in base price units by length
uint256 public immutable price1Letter;
uint256 public immutable price2Letter;
uint256 public immutable price3Letter;
uint256 public immutable price4Letter;
uint256 public immutable price5Letter;
uint256 immutable GRACE_PERIOD = 90 days;
event RentPriceChanged(uint256[] prices);
constructor(uint256[] memory _rentPrices, address delegationRegistry, address initialDelegate) {
delegationRegistry.call(abi.encodeWithSignature("setDelegationForSelf(address)", initialDelegate));
delegationRegistry.call(abi.encodeWithSignature("disableSelfManagingDelegations()"));
delegationRegistry.call(abi.encodeWithSignature("disableDelegationManagement()"));
price1Letter = _rentPrices[0];
price2Letter = _rentPrices[1];
price3Letter = _rentPrices[2];
price4Letter = _rentPrices[3];
price5Letter = _rentPrices[4];
}
function price(
string calldata name,
uint256 expires,
uint256 duration
) external view override returns (IPriceOracle.Price memory) {
uint256 len = name.strlen();
uint256 basePrice;
if (len >= 5) {
basePrice = price5Letter * duration;
} else if (len == 4) {
basePrice = price4Letter * duration;
} else if (len == 3) {
basePrice = price3Letter * duration;
} else if (len == 2) {
basePrice = price2Letter * duration;
} else {
basePrice = price1Letter * duration;
}
return
IPriceOracle.Price({
base: basePrice,
premium: _premium(name, expires, duration)
});
}
/**
* @dev Returns the pricing premium in wei.
*/
function premium(
string calldata name,
uint256 expires,
uint256 duration
) external view returns (uint256) {
return _premium(name, expires, duration);
}
/**
* @dev Returns the pricing premium in internal base units.
*/
function _premium(
string memory name,
uint256 expires,
uint256
) internal view virtual returns (uint256) {
if (expires > block.timestamp) {
// No premium for renewals
return 0;
}
uint256 len = name.strlen();
uint256 premiumPrice;
uint256 expiredPeriod = block.timestamp.sub(expires);
// Max Premium is equal to Grace Period base price
if (expiredPeriod > GRACE_PERIOD) {
expiredPeriod = GRACE_PERIOD;
}
if (len >= 5) {
premiumPrice = price5Letter * expiredPeriod;
} else if (len == 4) {
premiumPrice = price4Letter * expiredPeriod;
} else if (len == 3) {
premiumPrice = price3Letter * expiredPeriod;
} else if (len == 2) {
premiumPrice = price2Letter * expiredPeriod;
} else {
premiumPrice = price1Letter * expiredPeriod;
}
return premiumPrice;
}
function supportsInterface(
bytes4 interfaceID
) public view virtual returns (bool) {
return
interfaceID == type(IERC165).interfaceId ||
interfaceID == type(IPriceOracle).interfaceId;
}
}//SPDX-License-Identifier: MIT
pragma solidity >=0.8.17 <0.9.0;
interface IPriceOracle {
struct Price {
uint256 base;
uint256 premium;
}
/**
* @dev Returns the price to register or renew a name.
* @param name The name being registered or renewed.
* @param expires When the name presently expires (0 if this is a new registration).
* @param duration How long the name is being registered or extended for, in seconds.
* @return base premium tuple of base price + premium price
*/
function price(
string calldata name,
uint256 expires,
uint256 duration
) external view returns (Price calldata);
}pragma solidity >=0.8.4;
library StringUtils {
/**
* @dev Returns the length of a given string
*
* @param s The string to measure the length of
* @return The length of the input string
*/
function strlen(string memory s) internal pure returns (uint256) {
uint256 len;
uint256 i = 0;
uint256 bytelength = bytes(s).length;
for (len = 0; i < bytelength; len++) {
bytes1 b = bytes(s)[i];
if (b < 0x80) {
i += 1;
} else if (b < 0xE0) {
i += 2;
} else if (b < 0xF0) {
i += 3;
} else if (b < 0xF8) {
i += 4;
} else if (b < 0xFC) {
i += 5;
} else {
i += 6;
}
}
return len;
}
}//SPDX-License-Identifier: MIT
pragma solidity ~0.8.17;
/**
* @title SafeMath
* @dev Unsigned math operations with safety checks that revert on error
*/
library SafeMath {
/**
* @dev Multiplies two unsigned integers, reverts on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two unsigned integers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../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.
*
* By default, the owner account will be the one that deploys the contract. 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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @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 {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @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 {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_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 v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @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;
}
}{
"remappings": [
"@openzeppelin/=node_modules/ens-contracts/node_modules/@openzeppelin/",
"frax-std/=node_modules/frax-standard-solidity/src/",
"@prb/test/=node_modules/@prb/test/",
"forge-std/=node_modules/forge-std/src/",
"ds-test/=node_modules/ds-test/src/",
"@chainlink/=node_modules/@chainlink/",
"@ensdomains/=node_modules/@ensdomains/",
"@eth-optimism/=node_modules/@eth-optimism/",
"ens-contracts/=node_modules/ens-contracts/",
"frax-standard-solidity/=node_modules/frax-standard-solidity/",
"solidity-bytes-utils/=node_modules/solidity-bytes-utils/"
],
"optimizer": {
"enabled": false,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "none",
"appendCBOR": false
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "paris",
"viaIR": false,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256[]","name":"_rentPrices","type":"uint256[]"},{"internalType":"address","name":"delegationRegistry","type":"address"},{"internalType":"address","name":"initialDelegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"prices","type":"uint256[]"}],"name":"RentPriceChanged","type":"event"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"premium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"price","outputs":[{"components":[{"internalType":"uint256","name":"base","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"}],"internalType":"struct IPriceOracle.Price","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1Letter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price2Letter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price3Letter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price4Letter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price5Letter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
6101406040526276a700610120908152503480156200001d57600080fd5b50604051620014e3380380620014e3833981810160405281019062000043919062000611565b8173ffffffffffffffffffffffffffffffffffffffff16816040516024016200006d91906200069d565b6040516020818303038152906040527f02b8a21d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051620000f9919062000733565b6000604051808303816000865af19150503d806000811462000138576040519150601f19603f3d011682016040523d82523d6000602084013e6200013d565b606091505b5050508173ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f25ce9a37000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051620001e9919062000733565b6000604051808303816000865af19150503d806000811462000228576040519150601f19603f3d011682016040523d82523d6000602084013e6200022d565b606091505b5050508173ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fa7e68146000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051620002d9919062000733565b6000604051808303816000865af19150503d806000811462000318576040519150601f19603f3d011682016040523d82523d6000602084013e6200031d565b606091505b505050826000815181106200033757620003366200074c565b5b602002602001015160808181525050826001815181106200035d576200035c6200074c565b5b602002602001015160a08181525050826002815181106200038357620003826200074c565b5b602002602001015160c0818152505082600381518110620003a957620003a86200074c565b5b602002602001015160e0818152505082600481518110620003cf57620003ce6200074c565b5b602002602001015161010081815250505050506200077b565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200044c8262000401565b810181811067ffffffffffffffff821117156200046e576200046d62000412565b5b80604052505050565b600062000483620003e8565b905062000491828262000441565b919050565b600067ffffffffffffffff821115620004b457620004b362000412565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b620004df81620004ca565b8114620004eb57600080fd5b50565b600081519050620004ff81620004d4565b92915050565b60006200051c620005168462000496565b62000477565b90508083825260208201905060208402830185811115620005425762000541620004c5565b5b835b818110156200056f57806200055a8882620004ee565b84526020840193505060208101905062000544565b5050509392505050565b600082601f830112620005915762000590620003fc565b5b8151620005a384826020860162000505565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005d982620005ac565b9050919050565b620005eb81620005cc565b8114620005f757600080fd5b50565b6000815190506200060b81620005e0565b92915050565b6000806000606084860312156200062d576200062c620003f2565b5b600084015167ffffffffffffffff8111156200064e576200064d620003f7565b5b6200065c8682870162000579565b93505060206200066f86828701620005fa565b92505060406200068286828701620005fa565b9150509250925092565b6200069781620005cc565b82525050565b6000602082019050620006b460008301846200068c565b92915050565b600081519050919050565b600081905092915050565b60005b83811015620006f0578082015181840152602081019050620006d3565b60008484015250505050565b60006200070982620006ba565b620007158185620006c5565b935062000727818560208601620006d0565b80840191505092915050565b6000620007418284620006fc565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60805160a05160c05160e0516101005161012051610ccb620008186000396000818161076b015261079301526000818161030f0152818161049301526107c001526000818161034a0152818161055a01526107fb015260008181610385015281816104b701526108360152600081816103c0015281816105360152610871015260008181610287015281816103f301526108a40152610ccb6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a200e1531161005b578063a200e15314610129578063a34e359614610147578063cd5d2c7414610177578063d820ed421461019557610088565b806301ffc9a71461008d5780632c0fd74c146100bd57806350e9a715146100db57806359b6b86c1461010b575b600080fd5b6100a760048036038101906100a29190610986565b6101b3565b6040516100b491906109ce565b60405180910390f35b6100c5610285565b6040516100d29190610a02565b60405180910390f35b6100f560048036038101906100f09190610aae565b6102a9565b6040516101029190610b60565b60405180910390f35b610113610491565b6040516101209190610a02565b60405180910390f35b6101316104b5565b60405161013e9190610a02565b60405180910390f35b610161600480360381019061015c9190610aae565b6104d9565b60405161016e9190610a02565b60405180910390f35b61017f610534565b60405161018c9190610a02565b60405180910390f35b61019d610558565b6040516101aa9190610a02565b60405180910390f35b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061027e57507f50e9a715000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161090a565b600061030086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061057c565b905060006005821061033f57837f00000000000000000000000000000000000000000000000000000000000000006103389190610baa565b9050610422565b6004820361037a57837f00000000000000000000000000000000000000000000000000000000000000006103739190610baa565b9050610421565b600382036103b557837f00000000000000000000000000000000000000000000000000000000000000006103ae9190610baa565b9050610420565b600282036103f057837f00000000000000000000000000000000000000000000000000000000000000006103e99190610baa565b905061041f565b837f000000000000000000000000000000000000000000000000000000000000000061041c9190610baa565b90505b5b5b5b604051806040016040528082815260200161048289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508888610731565b81525092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061052a85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508484610731565b9050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008084519050600092505b808210156107265760008583815181106105a8576105a7610bec565b5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156105f7576001836105f09190610c1b565b9250610712565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610639576002836106329190610c1b565b9250610711565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101561067b576003836106749190610c1b565b9250610710565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156106bc576004836106b59190610c1b565b925061070f565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156106fe576005836106f79190610c1b565b925061070e565b60068361070b9190610c1b565b92505b5b5b5b5b50828061071e90610c4f565b93505061058b565b829350505050919050565b60004283111561074457600090506108da565b600061074f8561057c565b905060008061076786426108e190919063ffffffff16565b90507f00000000000000000000000000000000000000000000000000000000000000008111156107b5577f000000000000000000000000000000000000000000000000000000000000000090505b600583106107f057807f00000000000000000000000000000000000000000000000000000000000000006107e99190610baa565b91506108d3565b6004830361082b57807f00000000000000000000000000000000000000000000000000000000000000006108249190610baa565b91506108d2565b6003830361086657807f000000000000000000000000000000000000000000000000000000000000000061085f9190610baa565b91506108d1565b600283036108a157807f000000000000000000000000000000000000000000000000000000000000000061089a9190610baa565b91506108d0565b807f00000000000000000000000000000000000000000000000000000000000000006108cd9190610baa565b91505b5b5b5b8193505050505b9392505050565b6000828211156108f057600080fd5b600082846108fe9190610c97565b90508091505092915050565b604051806040016040528060008152602001600081525090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109638161092e565b811461096e57600080fd5b50565b6000813590506109808161095a565b92915050565b60006020828403121561099c5761099b610924565b5b60006109aa84828501610971565b91505092915050565b60008115159050919050565b6109c8816109b3565b82525050565b60006020820190506109e360008301846109bf565b92915050565b6000819050919050565b6109fc816109e9565b82525050565b6000602082019050610a1760008301846109f3565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610a4257610a41610a1d565b5b8235905067ffffffffffffffff811115610a5f57610a5e610a22565b5b602083019150836001820283011115610a7b57610a7a610a27565b5b9250929050565b610a8b816109e9565b8114610a9657600080fd5b50565b600081359050610aa881610a82565b92915050565b60008060008060608587031215610ac857610ac7610924565b5b600085013567ffffffffffffffff811115610ae657610ae5610929565b5b610af287828801610a2c565b94509450506020610b0587828801610a99565b9250506040610b1687828801610a99565b91505092959194509250565b610b2b816109e9565b82525050565b604082016000820151610b476000850182610b22565b506020820151610b5a6020850182610b22565b50505050565b6000604082019050610b756000830184610b31565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bb5826109e9565b9150610bc0836109e9565b9250828202610bce816109e9565b91508282048414831517610be557610be4610b7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000610c26826109e9565b9150610c31836109e9565b9250828201905080821115610c4957610c48610b7b565b5b92915050565b6000610c5a826109e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c8c57610c8b610b7b565b5b600182019050919050565b6000610ca2826109e9565b9150610cad836109e9565b9250828203905081811115610cc557610cc4610b7b565b5b92915050560000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a0000000000000000000000006e74053a3798e0fc9a9775f7995316b27f21c4d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000001cd702e31980000000000000000000000000000000000000000000000000000005c49a2d6c48000000000000000000000000000000000000000000000000000002e24d16b5c000000000000000000000000000000000000000000000000000000093a9048ad400000000000000000000000000000000000000000000000000000049d4824560
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a200e1531161005b578063a200e15314610129578063a34e359614610147578063cd5d2c7414610177578063d820ed421461019557610088565b806301ffc9a71461008d5780632c0fd74c146100bd57806350e9a715146100db57806359b6b86c1461010b575b600080fd5b6100a760048036038101906100a29190610986565b6101b3565b6040516100b491906109ce565b60405180910390f35b6100c5610285565b6040516100d29190610a02565b60405180910390f35b6100f560048036038101906100f09190610aae565b6102a9565b6040516101029190610b60565b60405180910390f35b610113610491565b6040516101209190610a02565b60405180910390f35b6101316104b5565b60405161013e9190610a02565b60405180910390f35b610161600480360381019061015c9190610aae565b6104d9565b60405161016e9190610a02565b60405180910390f35b61017f610534565b60405161018c9190610a02565b60405180910390f35b61019d610558565b6040516101aa9190610a02565b60405180910390f35b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061027e57507f50e9a715000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b7f00000000000000000000000000000000000000000000000000001cd702e3198081565b6102b161090a565b600061030086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061057c565b905060006005821061033f57837f00000000000000000000000000000000000000000000000000000049d48245606103389190610baa565b9050610422565b6004820361037a57837f00000000000000000000000000000000000000000000000000000093a9048ad46103739190610baa565b9050610421565b600382036103b557837f000000000000000000000000000000000000000000000000000002e24d16b5c06103ae9190610baa565b9050610420565b600282036103f057837f000000000000000000000000000000000000000000000000000005c49a2d6c486103e99190610baa565b905061041f565b837f00000000000000000000000000000000000000000000000000001cd702e3198061041c9190610baa565b90505b5b5b5b604051806040016040528082815260200161048289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508888610731565b81525092505050949350505050565b7f00000000000000000000000000000000000000000000000000000049d482456081565b7f000000000000000000000000000000000000000000000000000002e24d16b5c081565b600061052a85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508484610731565b9050949350505050565b7f000000000000000000000000000000000000000000000000000005c49a2d6c4881565b7f00000000000000000000000000000000000000000000000000000093a9048ad481565b60008060008084519050600092505b808210156107265760008583815181106105a8576105a7610bec565b5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156105f7576001836105f09190610c1b565b9250610712565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610639576002836106329190610c1b565b9250610711565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101561067b576003836106749190610c1b565b9250610710565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156106bc576004836106b59190610c1b565b925061070f565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156106fe576005836106f79190610c1b565b925061070e565b60068361070b9190610c1b565b92505b5b5b5b5b50828061071e90610c4f565b93505061058b565b829350505050919050565b60004283111561074457600090506108da565b600061074f8561057c565b905060008061076786426108e190919063ffffffff16565b90507f000000000000000000000000000000000000000000000000000000000076a7008111156107b5577f000000000000000000000000000000000000000000000000000000000076a70090505b600583106107f057807f00000000000000000000000000000000000000000000000000000049d48245606107e99190610baa565b91506108d3565b6004830361082b57807f00000000000000000000000000000000000000000000000000000093a9048ad46108249190610baa565b91506108d2565b6003830361086657807f000000000000000000000000000000000000000000000000000002e24d16b5c061085f9190610baa565b91506108d1565b600283036108a157807f000000000000000000000000000000000000000000000000000005c49a2d6c4861089a9190610baa565b91506108d0565b807f00000000000000000000000000000000000000000000000000001cd702e319806108cd9190610baa565b91505b5b5b5b8193505050505b9392505050565b6000828211156108f057600080fd5b600082846108fe9190610c97565b90508091505092915050565b604051806040016040528060008152602001600081525090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6109638161092e565b811461096e57600080fd5b50565b6000813590506109808161095a565b92915050565b60006020828403121561099c5761099b610924565b5b60006109aa84828501610971565b91505092915050565b60008115159050919050565b6109c8816109b3565b82525050565b60006020820190506109e360008301846109bf565b92915050565b6000819050919050565b6109fc816109e9565b82525050565b6000602082019050610a1760008301846109f3565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610a4257610a41610a1d565b5b8235905067ffffffffffffffff811115610a5f57610a5e610a22565b5b602083019150836001820283011115610a7b57610a7a610a27565b5b9250929050565b610a8b816109e9565b8114610a9657600080fd5b50565b600081359050610aa881610a82565b92915050565b60008060008060608587031215610ac857610ac7610924565b5b600085013567ffffffffffffffff811115610ae657610ae5610929565b5b610af287828801610a2c565b94509450506020610b0587828801610a99565b9250506040610b1687828801610a99565b91505092959194509250565b610b2b816109e9565b82525050565b604082016000820151610b476000850182610b22565b506020820151610b5a6020850182610b22565b50505050565b6000604082019050610b756000830184610b31565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bb5826109e9565b9150610bc0836109e9565b9250828202610bce816109e9565b91508282048414831517610be557610be4610b7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000610c26826109e9565b9150610c31836109e9565b9250828201905080821115610c4957610c48610b7b565b5b92915050565b6000610c5a826109e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c8c57610c8b610b7b565b5b600182019050919050565b6000610ca2826109e9565b9150610cad836109e9565b9250828203905081811115610cc557610cc4610b7b565b5b9291505056
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a0000000000000000000000006e74053a3798e0fc9a9775f7995316b27f21c4d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000001cd702e31980000000000000000000000000000000000000000000000000000005c49a2d6c48000000000000000000000000000000000000000000000000000002e24d16b5c000000000000000000000000000000000000000000000000000000093a9048ad400000000000000000000000000000000000000000000000000000049d4824560
-----Decoded View---------------
Arg [0] : _rentPrices (uint256[]): 31709791984000,6341958397000,3170979198400,634195839700,317097919840
Arg [1] : delegationRegistry (address): 0xF5cA906f05cafa944c27c6881bed3DFd3a785b6A
Arg [2] : initialDelegate (address): 0x6e74053a3798e0fC9a9775F7995316b27f21c4D2
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a
Arg [2] : 0000000000000000000000006e74053a3798e0fc9a9775f7995316b27f21c4d2
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [4] : 00000000000000000000000000000000000000000000000000001cd702e31980
Arg [5] : 000000000000000000000000000000000000000000000000000005c49a2d6c48
Arg [6] : 000000000000000000000000000000000000000000000000000002e24d16b5c0
Arg [7] : 00000000000000000000000000000000000000000000000000000093a9048ad4
Arg [8] : 00000000000000000000000000000000000000000000000000000049d4824560
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.