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
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x61010060 | 14019103 | 852 days ago | IN | Create: LinearPremiumPriceOracle | 0 ETH | 0.20507149 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
LinearPremiumPriceOracle
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-16 */ // SPDX-License-Identifier: MIT // Sources flattened with hardhat v2.6.5 https://hardhat.org // File contracts/ethregistrar/SafeMath.sol pragma solidity >=0.8.4; /** * @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; } } // File contracts/ethregistrar/PriceOracle.sol pragma solidity >=0.8.4; interface PriceOracle { /** * @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 The price of this renewal or registration, in wei. */ function price(string calldata name, uint expires, uint duration) external view returns(uint); } // File contracts/ethregistrar/StringUtils.sol 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 (uint) { uint len; uint i = 0; uint 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; } } // File @openzeppelin/contracts/utils/[email protected] 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; } } // File @openzeppelin/contracts/access/[email protected] pragma solidity ^0.8.0; /** * @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() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(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"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File contracts/ethregistrar/StablePriceOracle.sol pragma solidity >=0.8.4; interface AggregatorInterface { function latestAnswer() external view returns (int256); } // StablePriceOracle sets a price in USD, based on an oracle. contract StablePriceOracle is Ownable, PriceOracle { using SafeMath for *; using StringUtils for *; // Rent in base price units by length. Element 0 is for 1-length names, and so on. uint[] public rentPrices; // Oracle address AggregatorInterface public immutable usdOracle; event OracleChanged(address oracle); event RentPriceChanged(uint[] prices); bytes4 constant private INTERFACE_META_ID = bytes4(keccak256("supportsInterface(bytes4)")); bytes4 constant private ORACLE_ID = bytes4(keccak256("price(string,uint256,uint256)") ^ keccak256("premium(string,uint256,uint256)")); constructor(AggregatorInterface _usdOracle, uint[] memory _rentPrices) public { usdOracle = _usdOracle; setPrices(_rentPrices); } function price(string calldata name, uint expires, uint duration) external view override returns(uint) { uint len = name.strlen(); if(len > rentPrices.length) { len = rentPrices.length; } require(len > 0); uint basePrice = rentPrices[len - 1].mul(duration); basePrice = basePrice.add(_premium(name, expires, duration)); return attoUSDToWei(basePrice); } /** * @dev Sets rent prices. * @param _rentPrices The price array. Each element corresponds to a specific * name length; names longer than the length of the array * default to the price of the last element. Values are * in base price units, equal to one attodollar (1e-18 * dollar) each. */ function setPrices(uint[] memory _rentPrices) public onlyOwner { rentPrices = _rentPrices; emit RentPriceChanged(_rentPrices); } /** * @dev Returns the pricing premium in wei. */ function premium(string calldata name, uint expires, uint duration) external view returns(uint) { return attoUSDToWei(_premium(name, expires, duration)); } /** * @dev Returns the pricing premium in internal base units. */ function _premium(string memory name, uint expires, uint duration) virtual internal view returns(uint) { return 0; } function attoUSDToWei(uint amount) internal view returns(uint) { uint ethPrice = uint(usdOracle.latestAnswer()); return amount.mul(1e8).div(ethPrice); } function weiToAttoUSD(uint amount) internal view returns(uint) { uint ethPrice = uint(usdOracle.latestAnswer()); return amount.mul(ethPrice).div(1e8); } function supportsInterface(bytes4 interfaceID) public view virtual returns (bool) { return interfaceID == INTERFACE_META_ID || interfaceID == ORACLE_ID; } } // File contracts/ethregistrar/LinearPremiumPriceOracle.sol pragma solidity >=0.8.4; contract LinearPremiumPriceOracle is StablePriceOracle { using SafeMath for *; uint immutable GRACE_PERIOD = 90 days; uint public immutable initialPremium; uint public immutable premiumDecreaseRate; bytes4 constant private TIME_UNTIL_PREMIUM_ID = bytes4(keccak256("timeUntilPremium(uint,uint")); constructor(AggregatorInterface _usdOracle, uint[] memory _rentPrices, uint _initialPremium, uint _premiumDecreaseRate) public StablePriceOracle(_usdOracle, _rentPrices) { initialPremium = _initialPremium; premiumDecreaseRate = _premiumDecreaseRate; } function _premium(string memory name, uint expires, uint /*duration*/) override internal view returns(uint) { expires = expires.add(GRACE_PERIOD); if(expires > block.timestamp) { // No premium for renewals return 0; } // Calculate the discount off the maximum premium uint discount = premiumDecreaseRate.mul(block.timestamp.sub(expires)); // If we've run out the premium period, return 0. if(discount > initialPremium) { return 0; } return initialPremium - discount; } /** * @dev Returns the timestamp at which a name with the specified expiry date will have * the specified re-registration price premium. * @param expires The timestamp at which the name expires. * @param amount The amount, in wei, the caller is willing to pay * @return The timestamp at which the premium for this domain will be `amount`. */ function timeUntilPremium(uint expires, uint amount) external view returns(uint) { amount = weiToAttoUSD(amount); require(amount <= initialPremium); expires = expires.add(GRACE_PERIOD); uint discount = initialPremium.sub(amount); uint duration = discount.div(premiumDecreaseRate); return expires.add(duration); } function supportsInterface(bytes4 interfaceID) public view virtual override returns (bool) { return (interfaceID == TIME_UNTIL_PREMIUM_ID) || super.supportsInterface(interfaceID); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract AggregatorInterface","name":"_usdOracle","type":"address"},{"internalType":"uint256[]","name":"_rentPrices","type":"uint256[]"},{"internalType":"uint256","name":"_initialPremium","type":"uint256"},{"internalType":"uint256","name":"_premiumDecreaseRate","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracle","type":"address"}],"name":"OracleChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"prices","type":"uint256[]"}],"name":"RentPriceChanged","type":"event"},{"inputs":[],"name":"initialPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":[],"name":"premiumDecreaseRate","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":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rentPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_rentPrices","type":"uint256[]"}],"name":"setPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"timeUntilPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdOracle","outputs":[{"internalType":"contract AggregatorInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101006040526276a70060a0523480156200001957600080fd5b5060405162001555380380620015558339810160408190526200003c91620001f3565b8383620000493362000075565b6001600160a01b0382166080526200006181620000c5565b505060c09190915260e05250620003349050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620001245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b80516200013990600190602084019062000176565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df816040516200016b9190620002ee565b60405180910390a150565b828054828255906000526020600020908101928215620001b4579160200282015b82811115620001b457825182559160200191906001019062000197565b50620001c2929150620001c6565b5090565b5b80821115620001c25760008155600101620001c7565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156200020a57600080fd5b84516001600160a01b03811681146200022257600080fd5b602086810151919550906001600160401b03808211156200024257600080fd5b818801915088601f8301126200025757600080fd5b8151818111156200026c576200026c620001dd565b8060051b604051601f19603f83011681018181108582111715620002945762000294620001dd565b60405291825284820192508381018501918b831115620002b357600080fd5b938501935b82851015620002d357845184529385019392850192620002b8565b60408b01516060909b0151999c909b50975050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101562000328578351835292840192918401916001016200030a565b50909695505050505050565b60805160a05160c05160e0516111a8620003ad6000396000818161020a015281816106100152610a9701526000818161015701528181610583015281816105e101528181610ac00152610af60152600081816105b40152610a500152600081816101d001528181610b3b0152610c5c01526111a86000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063ed6c33ed1161005b578063ed6c33ed146101f2578063f05af2b714610205578063f2fde38b1461022c57600080fd5b80638da5cb5b14610179578063a34e3596146101b8578063c8a4271f146101cb57600080fd5b8063715018a6116100b2578063715018a61461013557806379cf92d31461013f5780637d3fb8b71461015257600080fd5b806301ffc9a7146100d957806306d5d0b61461010157806350e9a71514610122575b600080fd5b6100ec6100e7366004610d9a565b61023f565b60405190151581526020015b60405180910390f35b61011461010f366004610ddc565b61029b565b6040519081526020016100f8565b610114610130366004610df5565b6102bc565b61013d6103bd565b005b61013d61014d366004610ea3565b61044f565b6101147f000000000000000000000000000000000000000000000000000000000000000081565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101146101c6366004610df5565b61051e565b6101937f000000000000000000000000000000000000000000000000000000000000000081565b610114610200366004610f7f565b610574565b6101147f000000000000000000000000000000000000000000000000000000000000000081565b61013d61023a366004610fa1565b610640565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fa377dd96000000000000000000000000000000000000000000000000000000001480610295575061029582610770565b92915050565b600181815481106102ab57600080fd5b600091825260209091200154905081565b6000806102fe86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061080892505050565b60015490915081111561031057506001545b6000811161031d57600080fd5b600061035884600161032f8186611006565b8154811061033f5761033f61101d565b9060005260206000200154610a0f90919063ffffffff16565b90506103a76103a088888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250899150610a489050565b8290610b1a565b90506103b281610b36565b979650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61044d6000610be2565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043a565b80516104e3906001906020840190610d3a565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df81604051610513919061104c565b60405180910390a150565b600061056b61056686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250879150610a489050565b610b36565b95945050505050565b600061057f82610c57565b91507f00000000000000000000000000000000000000000000000000000000000000008211156105ae57600080fd5b6105d8837f0000000000000000000000000000000000000000000000000000000000000000610b1a565b925060006106067f000000000000000000000000000000000000000000000000000000000000000084610cfd565b90506000610634827f0000000000000000000000000000000000000000000000000000000000000000610d20565b905061056b8582610b1a565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043a565b73ffffffffffffffffffffffffffffffffffffffff8116610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161043a565b61076d81610be2565b50565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061029557507fffffffff0000000000000000000000000000000000000000000000000000000082167ff3a79283000000000000000000000000000000000000000000000000000000001492915050565b8051600090819081905b80821015610a0657600085838151811061082e5761082e61101d565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f80000000000000000000000000000000000000000000000000000000000000008110156108915761088a600184611090565b92506109f3565b7fe0000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156108e65761088a600284611090565b7ff0000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561093b5761088a600384611090565b7ff8000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156109905761088a600484611090565b7ffc000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156109e55761088a600584611090565b6109f0600684611090565b92505b50826109fe816110a8565b935050610812565b50909392505050565b600082610a1e57506000610295565b6000610a2a83856110e1565b905082610a37858361111e565b14610a4157600080fd5b9392505050565b6000610a74837f0000000000000000000000000000000000000000000000000000000000000000610b1a565b925042831115610a8657506000610a41565b6000610abc610a954286610cfd565b7f000000000000000000000000000000000000000000000000000000000000000090610a0f565b90507f0000000000000000000000000000000000000000000000000000000000000000811115610af0576000915050610a41565b61056b817f0000000000000000000000000000000000000000000000000000000000000000611006565b600080610b278385611090565b905083811015610a4157600080fd5b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc89190611159565b9050610a4181610bdc856305f5e100610a0f565b90610d20565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce99190611159565b9050610a416305f5e100610bdc8584610a0f565b600082821115610d0c57600080fd5b6000610d188385611006565b949350505050565b6000808211610d2e57600080fd5b6000610d18838561111e565b828054828255906000526020600020908101928215610d75579160200282015b82811115610d75578251825591602001919060010190610d5a565b50610d81929150610d85565b5090565b5b80821115610d815760008155600101610d86565b600060208284031215610dac57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a4157600080fd5b600060208284031215610dee57600080fd5b5035919050565b60008060008060608587031215610e0b57600080fd5b843567ffffffffffffffff80821115610e2357600080fd5b818701915087601f830112610e3757600080fd5b813581811115610e4657600080fd5b886020828501011115610e5857600080fd5b6020928301999098509187013596604001359550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020808385031215610eb657600080fd5b823567ffffffffffffffff80821115610ece57600080fd5b818501915085601f830112610ee257600080fd5b813581811115610ef457610ef4610e74565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715610f3757610f37610e74565b604052918252848201925083810185019188831115610f5557600080fd5b938501935b82851015610f7357843584529385019392850192610f5a565b98975050505050505050565b60008060408385031215610f9257600080fd5b50508035926020909101359150565b600060208284031215610fb357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610a4157600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561101857611018610fd7565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101561108457835183529284019291840191600101611068565b50909695505050505050565b600082198211156110a3576110a3610fd7565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156110da576110da610fd7565b5060010190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561111957611119610fd7565b500290565b600082611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561116b57600080fd5b505191905056fea264697066735822122046b08e9407f062bc7740e2fcea3add5ab5cd868e73d8a269de4c24facf4cc06364736f6c634300080b00330000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000152d02c7e14af68000000000000000000000000000000000000000000000000000000092dada8ef62a5300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001275209157690000000000000000000000000000000000000000000000000000049d482455da00000000000000000000000000000000000000000000000000000024ea4122af
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063ed6c33ed1161005b578063ed6c33ed146101f2578063f05af2b714610205578063f2fde38b1461022c57600080fd5b80638da5cb5b14610179578063a34e3596146101b8578063c8a4271f146101cb57600080fd5b8063715018a6116100b2578063715018a61461013557806379cf92d31461013f5780637d3fb8b71461015257600080fd5b806301ffc9a7146100d957806306d5d0b61461010157806350e9a71514610122575b600080fd5b6100ec6100e7366004610d9a565b61023f565b60405190151581526020015b60405180910390f35b61011461010f366004610ddc565b61029b565b6040519081526020016100f8565b610114610130366004610df5565b6102bc565b61013d6103bd565b005b61013d61014d366004610ea3565b61044f565b6101147f00000000000000000000000000000000000000000000152d02c7e14af680000081565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b6101146101c6366004610df5565b61051e565b6101937f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841981565b610114610200366004610f7f565b610574565b6101147f0000000000000000000000000000000000000000000000000092dada8ef62a5381565b61013d61023a366004610fa1565b610640565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fa377dd96000000000000000000000000000000000000000000000000000000001480610295575061029582610770565b92915050565b600181815481106102ab57600080fd5b600091825260209091200154905081565b6000806102fe86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061080892505050565b60015490915081111561031057506001545b6000811161031d57600080fd5b600061035884600161032f8186611006565b8154811061033f5761033f61101d565b9060005260206000200154610a0f90919063ffffffff16565b90506103a76103a088888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250899150610a489050565b8290610b1a565b90506103b281610b36565b979650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61044d6000610be2565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043a565b80516104e3906001906020840190610d3a565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df81604051610513919061104c565b60405180910390a150565b600061056b61056686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250879150610a489050565b610b36565b95945050505050565b600061057f82610c57565b91507f00000000000000000000000000000000000000000000152d02c7e14af68000008211156105ae57600080fd5b6105d8837f000000000000000000000000000000000000000000000000000000000076a700610b1a565b925060006106067f00000000000000000000000000000000000000000000152d02c7e14af680000084610cfd565b90506000610634827f0000000000000000000000000000000000000000000000000092dada8ef62a53610d20565b905061056b8582610b1a565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043a565b73ffffffffffffffffffffffffffffffffffffffff8116610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161043a565b61076d81610be2565b50565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061029557507fffffffff0000000000000000000000000000000000000000000000000000000082167ff3a79283000000000000000000000000000000000000000000000000000000001492915050565b8051600090819081905b80821015610a0657600085838151811061082e5761082e61101d565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f80000000000000000000000000000000000000000000000000000000000000008110156108915761088a600184611090565b92506109f3565b7fe0000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156108e65761088a600284611090565b7ff0000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216101561093b5761088a600384611090565b7ff8000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156109905761088a600484611090565b7ffc000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156109e55761088a600584611090565b6109f0600684611090565b92505b50826109fe816110a8565b935050610812565b50909392505050565b600082610a1e57506000610295565b6000610a2a83856110e1565b905082610a37858361111e565b14610a4157600080fd5b9392505050565b6000610a74837f000000000000000000000000000000000000000000000000000000000076a700610b1a565b925042831115610a8657506000610a41565b6000610abc610a954286610cfd565b7f0000000000000000000000000000000000000000000000000092dada8ef62a5390610a0f565b90507f00000000000000000000000000000000000000000000152d02c7e14af6800000811115610af0576000915050610a41565b61056b817f00000000000000000000000000000000000000000000152d02c7e14af6800000611006565b600080610b278385611090565b905083811015610a4157600080fd5b6000807f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841973ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc89190611159565b9050610a4181610bdc856305f5e100610a0f565b90610d20565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000807f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841973ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce99190611159565b9050610a416305f5e100610bdc8584610a0f565b600082821115610d0c57600080fd5b6000610d188385611006565b949350505050565b6000808211610d2e57600080fd5b6000610d18838561111e565b828054828255906000526020600020908101928215610d75579160200282015b82811115610d75578251825591602001919060010190610d5a565b50610d81929150610d85565b5090565b5b80821115610d815760008155600101610d86565b600060208284031215610dac57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a4157600080fd5b600060208284031215610dee57600080fd5b5035919050565b60008060008060608587031215610e0b57600080fd5b843567ffffffffffffffff80821115610e2357600080fd5b818701915087601f830112610e3757600080fd5b813581811115610e4657600080fd5b886020828501011115610e5857600080fd5b6020928301999098509187013596604001359550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020808385031215610eb657600080fd5b823567ffffffffffffffff80821115610ece57600080fd5b818501915085601f830112610ee257600080fd5b813581811115610ef457610ef4610e74565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715610f3757610f37610e74565b604052918252848201925083810185019188831115610f5557600080fd5b938501935b82851015610f7357843584529385019392850192610f5a565b98975050505050505050565b60008060408385031215610f9257600080fd5b50508035926020909101359150565b600060208284031215610fb357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610a4157600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561101857611018610fd7565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101561108457835183529284019291840191600101611068565b50909695505050505050565b600082198211156110a3576110a3610fd7565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156110da576110da610fd7565b5060010190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561111957611119610fd7565b500290565b600082611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561116b57600080fd5b505191905056fea264697066735822122046b08e9407f062bc7740e2fcea3add5ab5cd868e73d8a269de4c24facf4cc06364736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000152d02c7e14af68000000000000000000000000000000000000000000000000000000092dada8ef62a5300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001275209157690000000000000000000000000000000000000000000000000000049d482455da00000000000000000000000000000000000000000000000000000024ea4122af
-----Decoded View---------------
Arg [0] : _usdOracle (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [1] : _rentPrices (uint256[]): 0,0,20294266869609,5073566717402,158548959919
Arg [2] : _initialPremium (uint256): 100000000000000000000000
Arg [3] : _premiumDecreaseRate (uint256): 41335978835978835
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000000152d02c7e14af6800000
Arg [3] : 0000000000000000000000000000000000000000000000000092dada8ef62a53
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000127520915769
Arg [8] : 0000000000000000000000000000000000000000000000000000049d482455da
Arg [9] : 00000000000000000000000000000000000000000000000000000024ea4122af
Deployed Bytecode Sourcemap
9889:2214:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11905:195;;;;;;:::i;:::-;;:::i;:::-;;;516:14:1;;509:22;491:41;;479:2;464:18;11905:195:0;;;;;;;;7161:24;;;;;;:::i;:::-;;:::i;:::-;;;874:25:1;;;862:2;847:18;7161:24:0;728:177:1;7761:446:0;;;;;;:::i;:::-;;:::i;6073:94::-;;;:::i;:::-;;8629:151;;;;;;:::i;:::-;;:::i;10026:36::-;;;;;5422:87;5468:7;5495:6;;;5422:87;;;3193:42:1;3181:55;;;3163:74;;3151:2;3136:18;5422:87:0;3017:226:1;8855:169:0;;;;;;:::i;:::-;;:::i;7217:46::-;;;;;11522:375;;;;;;:::i;:::-;;:::i;10069:41::-;;;;;6322:192;;;;;;:::i;:::-;;:::i;11905:195::-;11990:4;12015:36;;;;;;12014:78;;;12056:36;12080:11;12056:23;:36::i;:::-;12007:85;11905:195;-1:-1:-1;;11905:195:0:o;7161:24::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7161:24:0;:::o;7761:446::-;7858:4;7875:8;7886:13;:4;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7886:11:0;;-1:-1:-1;;;7886:13:0:i;:::-;7919:10;:17;7875:24;;-1:-1:-1;7913:23:0;;7910:78;;;-1:-1:-1;7959:10:0;:17;7910:78;8012:1;8006:3;:7;7998:16;;;;;;8035:14;8052:33;8076:8;8052:10;8063:7;8052:10;8063:3;:7;:::i;:::-;8052:19;;;;;;;;:::i;:::-;;;;;;;;;:23;;:33;;;;:::i;:::-;8035:50;;8108:48;8122:33;8131:4;;8122:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8137:7:0;;-1:-1:-1;8146:8:0;;-1:-1:-1;8122:8:0;;-1:-1:-1;8122:33:0:i;:::-;8108:9;;:13;:48::i;:::-;8096:60;;8176:23;8189:9;8176:12;:23::i;:::-;8169:30;7761:446;-1:-1:-1;;;;;;;7761:446:0:o;6073:94::-;5468:7;5495:6;5642:23;5495:6;4288:10;5642:23;5634:68;;;;;;;4783:2:1;5634:68:0;;;4765:21:1;;;4802:18;;;4795:30;4861:34;4841:18;;;4834:62;4913:18;;5634:68:0;;;;;;;;;6138:21:::1;6156:1;6138:9;:21::i;:::-;6073:94::o:0;8629:151::-;5468:7;5495:6;5642:23;5495:6;4288:10;5642:23;5634:68;;;;;;;4783:2:1;5634:68:0;;;4765:21:1;;;4802:18;;;4795:30;4861:34;4841:18;;;4834:62;4913:18;;5634:68:0;4581:356:1;5634:68:0;8703:24;;::::1;::::0;:10:::1;::::0;:24:::1;::::0;::::1;::::0;::::1;:::i;:::-;;8743:29;8760:11;8743:29;;;;;;:::i;:::-;;;;;;;;8629:151:::0;:::o;8855:169::-;8945:4;8969:47;8982:33;8991:4;;8982:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8997:7:0;;-1:-1:-1;9006:8:0;;-1:-1:-1;8982:8:0;;-1:-1:-1;8982:33:0:i;:::-;8969:12;:47::i;:::-;8962:54;8855:169;-1:-1:-1;;;;;8855:169:0:o;11522:375::-;11597:4;11623:20;11636:6;11623:12;:20::i;:::-;11614:29;;11672:14;11662:6;:24;;11654:33;;;;;;11710:25;:7;11722:12;11710:11;:25::i;:::-;11700:35;-1:-1:-1;11748:13:0;11764:26;:14;11783:6;11764:18;:26::i;:::-;11748:42;-1:-1:-1;11801:13:0;11817:33;11748:42;11830:19;11817:12;:33::i;:::-;11801:49;-1:-1:-1;11868:21:0;:7;11801:49;11868:11;:21::i;6322:192::-;5468:7;5495:6;5642:23;5495:6;4288:10;5642:23;5634:68;;;;;;;4783:2:1;5634:68:0;;;4765:21:1;;;4802:18;;;4795:30;4861:34;4841:18;;;4834:62;4913:18;;5634:68:0;4581:356:1;5634:68:0;6411:22:::1;::::0;::::1;6403:73;;;::::0;::::1;::::0;;5781:2:1;6403:73:0::1;::::0;::::1;5763:21:1::0;5820:2;5800:18;;;5793:30;5859:34;5839:18;;;5832:62;5930:8;5910:18;;;5903:36;5956:19;;6403:73:0::1;5579:402:1::0;6403:73:0::1;6487:19;6497:8;6487:9;:19::i;:::-;6322:192:::0;:::o;9619:168::-;9695:4;9719:32;;;;;;:60;;-1:-1:-1;9755:24:0;;;;;9712:67;9619:168;-1:-1:-1;;9619:168:0:o;2943:629::-;3074:15;;2999:4;;;;;;3100:444;3117:10;3113:1;:14;3100:444;;;3151:8;3168:1;3171;3162:11;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;3191:8:0;;;3188:345;;;3220:6;3225:1;3220:6;;:::i;:::-;;;3188:345;;;3252:8;;;;;3248:285;;;3281:6;3286:1;3281:6;;:::i;3248:285::-;3313:8;;;;;3309:224;;;3342:6;3347:1;3342:6;;:::i;3309:224::-;3374:8;;;;;3370:163;;;3403:6;3408:1;3403:6;;:::i;3370:163::-;3435:8;;;;;3431:102;;;3464:6;3469:1;3464:6;;:::i;3431:102::-;3511:6;3516:1;3511:6;;:::i;:::-;;;3431:102;-1:-1:-1;3129:5:0;;;;:::i;:::-;;;;3100:444;;;-1:-1:-1;3561:3:0;;2943:629;-1:-1:-1;;;2943:629:0:o;386:433::-;444:7;688:6;684:47;;-1:-1:-1;718:1:0;711:8;;684:47;743:9;755:5;759:1;755;:5;:::i;:::-;743:17;-1:-1:-1;788:1:0;779:5;783:1;743:17;779:5;:::i;:::-;:10;771:19;;;;;;810:1;386:433;-1:-1:-1;;;386:433:0:o;10519:607::-;10621:4;10648:25;:7;10660:12;10648:11;:25::i;:::-;10638:35;;10697:15;10687:7;:25;10684:105;;;-1:-1:-1;10776:1:0;10769:8;;10684:105;10860:13;10876:53;10900:28;:15;10920:7;10900:19;:28::i;:::-;10876:19;;:23;:53::i;:::-;10860:69;;11015:14;11004:8;:25;11001:65;;;11053:1;11046:8;;;;;11001:65;11093:25;11110:8;11093:14;:25;:::i;1627:150::-;1685:7;;1717:5;1721:1;1717;:5;:::i;:::-;1705:17;;1746:1;1741;:6;;1733:15;;;;;9253:175;9310:4;9327:13;9348:9;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9327:46;-1:-1:-1;9391:29:0;9327:46;9391:15;:6;9402:3;9391:10;:15::i;:::-;:19;;:29::i;6522:173::-;6578:16;6597:6;;;6614:17;;;;;;;;;;6647:40;;6597:6;;;;;;;6647:40;;6578:16;6647:40;6567:128;6522:173;:::o;9436:175::-;9493:4;9510:13;9531:9;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9510:46;-1:-1:-1;9574:29:0;9599:3;9574:20;:6;9510:46;9574:10;:20::i;1391:150::-;1449:7;1482:1;1477;:6;;1469:15;;;;;;1495:9;1507:5;1511:1;1507;:5;:::i;:::-;1495:17;1391:150;-1:-1:-1;;;;1391:150:0:o;952:303::-;1010:7;1109:1;1105;:5;1097:14;;;;;;1122:9;1134:5;1138:1;1134;:5;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:332:1;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:180;602:6;655:2;643:9;634:7;630:23;626:32;623:52;;;671:1;668;661:12;623:52;-1:-1:-1;694:23:1;;543:180;-1:-1:-1;543:180:1:o;910:734::-;999:6;1007;1015;1023;1076:2;1064:9;1055:7;1051:23;1047:32;1044:52;;;1092:1;1089;1082:12;1044:52;1132:9;1119:23;1161:18;1202:2;1194:6;1191:14;1188:34;;;1218:1;1215;1208:12;1188:34;1256:6;1245:9;1241:22;1231:32;;1301:7;1294:4;1290:2;1286:13;1282:27;1272:55;;1323:1;1320;1313:12;1272:55;1363:2;1350:16;1389:2;1381:6;1378:14;1375:34;;;1405:1;1402;1395:12;1375:34;1452:7;1445:4;1436:6;1432:2;1428:15;1424:26;1421:39;1418:59;;;1473:1;1470;1463:12;1418:59;1504:4;1496:13;;;;1528:6;;-1:-1:-1;1566:20:1;;;1553:34;;1634:2;1619:18;1606:32;;-1:-1:-1;910:734:1;;-1:-1:-1;;;;910:734:1:o;1649:184::-;1701:77;1698:1;1691:88;1798:4;1795:1;1788:15;1822:4;1819:1;1812:15;1838:1174;1922:6;1953:2;1996;1984:9;1975:7;1971:23;1967:32;1964:52;;;2012:1;2009;2002:12;1964:52;2052:9;2039:23;2081:18;2122:2;2114:6;2111:14;2108:34;;;2138:1;2135;2128:12;2108:34;2176:6;2165:9;2161:22;2151:32;;2221:7;2214:4;2210:2;2206:13;2202:27;2192:55;;2243:1;2240;2233:12;2192:55;2279:2;2266:16;2301:2;2297;2294:10;2291:36;;;2307:18;;:::i;:::-;2353:2;2350:1;2346:10;2385:2;2379:9;2444:66;2439:2;2435;2431:11;2427:84;2419:6;2415:97;2562:6;2550:10;2547:22;2542:2;2530:10;2527:18;2524:46;2521:72;;;2573:18;;:::i;:::-;2609:2;2602:22;2659:18;;;2693:15;;;;-1:-1:-1;2735:11:1;;;2731:20;;;2763:19;;;2760:39;;;2795:1;2792;2785:12;2760:39;2819:11;;;;2839:142;2855:6;2850:3;2847:15;2839:142;;;2921:17;;2909:30;;2872:12;;;;2959;;;;2839:142;;;3000:6;1838:1174;-1:-1:-1;;;;;;;;1838:1174:1:o;3506:248::-;3574:6;3582;3635:2;3623:9;3614:7;3610:23;3606:32;3603:52;;;3651:1;3648;3641:12;3603:52;-1:-1:-1;;3674:23:1;;;3744:2;3729:18;;;3716:32;;-1:-1:-1;3506:248:1:o;3759:309::-;3818:6;3871:2;3859:9;3850:7;3846:23;3842:32;3839:52;;;3887:1;3884;3877:12;3839:52;3926:9;3913:23;3976:42;3969:5;3965:54;3958:5;3955:65;3945:93;;4034:1;4031;4024:12;4073:184;4125:77;4122:1;4115:88;4222:4;4219:1;4212:15;4246:4;4243:1;4236:15;4262:125;4302:4;4330:1;4327;4324:8;4321:34;;;4335:18;;:::i;:::-;-1:-1:-1;4372:9:1;;4262:125::o;4392:184::-;4444:77;4441:1;4434:88;4541:4;4538:1;4531:15;4565:4;4562:1;4555:15;4942:632;5113:2;5165:21;;;5235:13;;5138:18;;;5257:22;;;5084:4;;5113:2;5336:15;;;;5310:2;5295:18;;;5084:4;5379:169;5393:6;5390:1;5387:13;5379:169;;;5454:13;;5442:26;;5523:15;;;;5488:12;;;;5415:1;5408:9;5379:169;;;-1:-1:-1;5565:3:1;;4942:632;-1:-1:-1;;;;;;4942:632:1:o;5986:128::-;6026:3;6057:1;6053:6;6050:1;6047:13;6044:39;;;6063:18;;:::i;:::-;-1:-1:-1;6099:9:1;;5986:128::o;6119:195::-;6158:3;6189:66;6182:5;6179:77;6176:103;;;6259:18;;:::i;:::-;-1:-1:-1;6306:1:1;6295:13;;6119:195::o;6319:228::-;6359:7;6485:1;6417:66;6413:74;6410:1;6407:81;6402:1;6395:9;6388:17;6384:105;6381:131;;;6492:18;;:::i;:::-;-1:-1:-1;6532:9:1;;6319:228::o;6552:274::-;6592:1;6618;6608:189;;6653:77;6650:1;6643:88;6754:4;6751:1;6744:15;6782:4;6779:1;6772:15;6608:189;-1:-1:-1;6811:9:1;;6552:274::o;6831:183::-;6900:6;6953:2;6941:9;6932:7;6928:23;6924:32;6921:52;;;6969:1;6966;6959:12;6921:52;-1:-1:-1;6992:16:1;;6831:183;-1:-1:-1;6831:183:1:o
Swarm Source
ipfs://46b08e9407f062bc7740e2fcea3add5ab5cd868e73d8a269de4c24facf4cc063
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 25 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.