My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xba343bf111f234c770a7fafceb8f310247c5c273b7d3fd5f99e6e57086be3452 | 0x61018060 | 4322740 | 467 days 12 hrs ago | Cronos ID: Deployer | IN | Create: ExponentialPremiumStablePriceOracle | 0 CRO | 4.619934107511 |
[ Download CSV Export ]
Contract Name:
ExponentialPremiumStablePriceOracle
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity >=0.8.4; import "./StablePriceOracle.sol"; contract ExponentialPremiumStablePriceOracle is StablePriceOracle { uint256 constant GRACE_PERIOD = 90 days; uint256 constant SECONDS_PER_YEAR = 31556952; uint256 immutable startPremium; uint256 immutable endValue; constructor( AggregatorInterface _usdOracle, uint256[] memory _rentPrices, uint256 _startPremium, uint256 totalDays ) StablePriceOracle(_usdOracle, _rentPrices) { startPremium = _startPremium; endValue = _startPremium >> totalDays; } uint256 constant PRECISION = 1e18; uint256 constant bit1 = 999989423469314432; // 0.5 ^ 1/65536 * (10 ** 18) uint256 constant bit2 = 999978847050491904; // 0.5 ^ 2/65536 * (10 ** 18) uint256 constant bit3 = 999957694548431104; uint256 constant bit4 = 999915390886613504; uint256 constant bit5 = 999830788931929088; uint256 constant bit6 = 999661606496243712; uint256 constant bit7 = 999323327502650752; uint256 constant bit8 = 998647112890970240; uint256 constant bit9 = 997296056085470080; uint256 constant bit10 = 994599423483633152; uint256 constant bit11 = 989228013193975424; uint256 constant bit12 = 978572062087700096; uint256 constant bit13 = 957603280698573696; uint256 constant bit14 = 917004043204671232; uint256 constant bit15 = 840896415253714560; uint256 constant bit16 = 707106781186547584; /** * @dev Returns the pricing premium in internal base units. */ function _premium( string memory, uint256 expires, uint256 ) internal view override returns (uint256) { expires = expires + GRACE_PERIOD; if (expires > block.timestamp) { return 0; } uint256 elapsed = block.timestamp - expires; uint256 premium = decayedPremium(startPremium, elapsed); if (premium >= endValue) { return premium - endValue; } return 0; } /** * @dev Returns the pricing discount, 0 - 100. */ function _discount( string memory, uint256 expires, uint256 duration ) internal view override returns (uint256) { expires = expires + GRACE_PERIOD; if (expires > block.timestamp) { // for renew, no discount return 100; } uint256 year = duration / SECONDS_PER_YEAR; if (year < 2) { // [0,2) => 0% return 100; } else if (year < 6) { // [2,6) => 30% return 70; } else if (year < 10) { // [6,10) => 20% return 80; } else { // 10+ => 10% return 90; } } /** * @dev Returns the premium price at current time elapsed * @param startPremium starting price * @param elapsed time past since expiry */ function decayedPremium(uint256 startPremium, uint256 elapsed) public pure returns (uint256) { uint256 daysPast = (elapsed * PRECISION) / 1 days; uint256 intDays = daysPast / PRECISION; uint256 premium = startPremium >> intDays; uint256 partDay = (daysPast - intDays * PRECISION); uint256 fraction = (partDay * (2**16)) / PRECISION; uint256 totalPremium = addFractionalPremium(fraction, premium); return totalPremium; } function addFractionalPremium(uint256 fraction, uint256 premium) internal pure returns (uint256) { if (fraction & (1 << 0) != 0) { premium = (premium * bit1) / PRECISION; } if (fraction & (1 << 1) != 0) { premium = (premium * bit2) / PRECISION; } if (fraction & (1 << 2) != 0) { premium = (premium * bit3) / PRECISION; } if (fraction & (1 << 3) != 0) { premium = (premium * bit4) / PRECISION; } if (fraction & (1 << 4) != 0) { premium = (premium * bit5) / PRECISION; } if (fraction & (1 << 5) != 0) { premium = (premium * bit6) / PRECISION; } if (fraction & (1 << 6) != 0) { premium = (premium * bit7) / PRECISION; } if (fraction & (1 << 7) != 0) { premium = (premium * bit8) / PRECISION; } if (fraction & (1 << 8) != 0) { premium = (premium * bit9) / PRECISION; } if (fraction & (1 << 9) != 0) { premium = (premium * bit10) / PRECISION; } if (fraction & (1 << 10) != 0) { premium = (premium * bit11) / PRECISION; } if (fraction & (1 << 11) != 0) { premium = (premium * bit12) / PRECISION; } if (fraction & (1 << 12) != 0) { premium = (premium * bit13) / PRECISION; } if (fraction & (1 << 13) != 0) { premium = (premium * bit14) / PRECISION; } if (fraction & (1 << 14) != 0) { premium = (premium * bit15) / PRECISION; } if (fraction & (1 << 15) != 0) { premium = (premium * bit16) / PRECISION; } return premium; } function supportsInterface(bytes4 interfaceID) public view virtual override returns (bool) { return super.supportsInterface(interfaceID); } }
//SPDX-License-Identifier: MIT pragma solidity >=0.8.4; import "./IPriceOracle.sol"; import "../utils/StringUtils.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; interface AggregatorInterface { function latestAnswer() external view returns (int256); } // Set a price in USD, based on an oracle. contract StablePriceOracle is IPriceOracle { using StringUtils 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; // Oracle address AggregatorInterface public immutable usdOracle; event RentPriceChanged(uint256[] prices); constructor(AggregatorInterface _usdOracle, uint256[] memory _rentPrices) { usdOracle = _usdOracle; 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 == 1) { basePrice = price1Letter * duration; } else if (len == 2) { basePrice = price2Letter * duration; } else if (len == 3) { basePrice = price3Letter * duration; } else if (len == 4) { basePrice = price4Letter * duration; } else { basePrice = price5Letter * duration; } basePrice = basePrice * _discount(name, expires, duration) / 100; return IPriceOracle.Price({ base: attoUSDToWei(basePrice), premium: attoUSDToWei(_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 attoUSDToWei(_premium(name, expires, duration)); } /** * @dev Returns the pricing premium in internal base units. */ function _premium( string memory, uint256, uint256 ) internal view virtual returns (uint256) { return 0; } /** * @dev Returns the pricing discount. */ function discount( string calldata name, uint256 expires, uint256 duration ) external view returns (uint256) { return _discount(name, expires, duration); } /** * @dev Returns the pricing discount, 0 - 100. */ function _discount( string memory, uint256, uint256 ) internal view virtual returns (uint256) { return 100; } function attoUSDToWei(uint256 amount) internal view returns (uint256) { uint256 croPrice = uint256(usdOracle.latestAnswer()); return (amount * 1e8) / croPrice; } function weiToAttoUSD(uint256 amount) internal view returns (uint256) { uint256 croPrice = uint256(usdOracle.latestAnswer()); return (amount * croPrice) / 1e8; } 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.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; } function toLower(string memory s) internal pure returns (string memory) { bytes memory bstr = bytes(s); bytes memory blower = new bytes(bstr.length); for (uint i = 0; i < bstr.length; i++) { if ((uint8(bstr[i]) >= 65) && (uint8(bstr[i]) <= 90)) { blower[i] = bytes1(uint8(bstr[i]) + 32); } else { blower[i] = bstr[i]; } } return string(blower); } function toUpper(string memory s) internal pure returns (string memory) { bytes memory bstr = bytes(s); bytes memory bupper = new bytes(bstr.length); for (uint i = 0; i < bstr.length; i++) { if ((uint8(bstr[i]) >= 97) && (uint8(bstr[i]) <= 122)) { bupper[i] = bytes1(uint8(bstr[i]) - 32); } else { bupper[i] = bstr[i]; } } return string(bupper); } }
//SPDX-License-Identifier: MIT pragma solidity >=0.8.4; 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (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 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 { _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 v4.4.1 (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; } }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
[{"inputs":[{"internalType":"contract AggregatorInterface","name":"_usdOracle","type":"address"},{"internalType":"uint256[]","name":"_rentPrices","type":"uint256[]"},{"internalType":"uint256","name":"_startPremium","type":"uint256"},{"internalType":"uint256","name":"totalDays","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"prices","type":"uint256[]"}],"name":"RentPriceChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"startPremium","type":"uint256"},{"internalType":"uint256","name":"elapsed","type":"uint256"}],"name":"decayedPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"discount","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":"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"},{"inputs":[],"name":"usdOracle","outputs":[{"internalType":"contract AggregatorInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101806040523480156200001257600080fd5b50604051620012c7380380620012c783398101604081905262000035916200012c565b6001600160a01b0384166101205282518490849081906000906200005d576200005d62000227565b6020026020010151608081815250508060018151811062000082576200008262000227565b602002602001015160a0818152505080600281518110620000a757620000a762000227565b602002602001015160c0818152505080600381518110620000cc57620000cc62000227565b602002602001015160e0818152505080600481518110620000f157620000f162000227565b60209081029190910101516101005250506101408290521c61016052506200023d9050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156200014357600080fd5b84516001600160a01b03811681146200015b57600080fd5b602086810151919550906001600160401b03808211156200017b57600080fd5b818801915088601f8301126200019057600080fd5b815181811115620001a557620001a562000116565b8060051b604051601f19603f83011681018181108582111715620001cd57620001cd62000116565b60405291825284820192508381018501918b831115620001ec57600080fd5b938501935b828510156200020c57845184529385019392850192620001f1565b60408b01516060909b0151999c909b50975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e05161010051610120516101405161016051610ff4620002d360003960008181610a010152610a2b015260006109d80152600081816101e501526108fa01526000818161015e01526103b9015260008181610258015261038f015260008181610198015261035d015260008181610231015261032b01526000818160fb01526102f20152610ff46000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063a200e15311610081578063c8a4271f1161005b578063c8a4271f146101e0578063cd5d2c741461022c578063d820ed421461025357600080fd5b8063a200e15314610193578063a34e3596146101ba578063a995f1eb146101cd57600080fd5b806350e9a715116100b257806350e9a7151461012b57806359b6b86c1461015957806359e1777c1461018057600080fd5b806301ffc9a7146100ce5780632c0fd74c146100f6575b600080fd5b6100e16100dc366004610d85565b61027a565b60405190151581526020015b60405180910390f35b61011d7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ed565b61013e610139366004610dc7565b61028b565b604080518251815260209283015192810192909252016100ed565b61011d7f000000000000000000000000000000000000000000000000000000000000000081565b61011d61018e366004610e46565b6104ac565b61011d7f000000000000000000000000000000000000000000000000000000000000000081565b61011d6101c8366004610dc7565b610547565b61011d6101db366004610dc7565b610598565b6102077f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ed565b61011d7f000000000000000000000000000000000000000000000000000000000000000081565b61011d7f000000000000000000000000000000000000000000000000000000000000000081565b6000610285826105dd565b92915050565b604080518082019091526000808252602082015260006102e086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061067592505050565b905060008160010361031d57610316847f0000000000000000000000000000000000000000000000000000000000000000610e97565b90506103e0565b8160020361034f57610316847f0000000000000000000000000000000000000000000000000000000000000000610e97565b8160030361038157610316847f0000000000000000000000000000000000000000000000000000000000000000610e97565b816004036103b357610316847f0000000000000000000000000000000000000000000000000000000000000000610e97565b6103dd847f0000000000000000000000000000000000000000000000000000000000000000610e97565b90505b606461042588888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a925089915061087c9050565b61042f9083610e97565b6104399190610ed4565b9050604051806040016040528061044f836108f5565b815260200161049f61049a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92508b91506109a29050565b6108f5565b9052979650505050505050565b600080620151806104c5670de0b6b3a764000085610e97565b6104cf9190610ed4565b905060006104e5670de0b6b3a764000083610ed4565b905084811c60006104fe670de0b6b3a764000084610e97565b6105089085610f0f565b90506000670de0b6b3a76400006105228362010000610e97565b61052c9190610ed4565b9050600061053a8285610a65565b9998505050505050505050565b600061058f61049a86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892508791506109a29050565b95945050505050565b600061058f85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925086915061087c9050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061028557507fffffffff0000000000000000000000000000000000000000000000000000000082167f50e9a715000000000000000000000000000000000000000000000000000000001492915050565b8051600090819081905b8082101561087357600085838151811061069b5761069b610f26565b01602001517fff000000000000000000000000000000000000000000000000000000000000001690507f80000000000000000000000000000000000000000000000000000000000000008110156106fe576106f7600184610f55565b9250610860565b7fe0000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000082161015610753576106f7600284610f55565b7ff0000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156107a8576106f7600384610f55565b7ff8000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610156107fd576106f7600484610f55565b7ffc000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000082161015610852576106f7600584610f55565b61085d600684610f55565b92505b508261086b81610f6d565b93505061067f565b50909392505050565b600061088b6276a70084610f55565b92504283111561089d575060646108ee565b60006108ad6301e1855884610ed4565b905060028110156108c25760649150506108ee565b60068110156108d55760469150506108ee565b600a8110156108e85760509150506108ee565b605a9150505b9392505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109879190610fa5565b905080610998846305f5e100610e97565b6108ee9190610ed4565b60006109b16276a70084610f55565b9250428311156109c3575060006108ee565b60006109cf8442610f0f565b905060006109fd7f0000000000000000000000000000000000000000000000000000000000000000836104ac565b90507f00000000000000000000000000000000000000000000000000000000000000008110610a5957610a507f000000000000000000000000000000000000000000000000000000000000000082610f0f565b925050506108ee565b50600095945050505050565b60006001831615610a9857670de0b6b3a7640000610a8b670de0ad151d09418084610e97565b610a959190610ed4565b91505b6002831615610ac957670de0b6b3a7640000610abc670de0a3769959680084610e97565b610ac69190610ed4565b91505b6004831615610afa57670de0b6b3a7640000610aed670de09039a5fa510084610e97565b610af79190610ed4565b91505b6008831615610b2b57670de0b6b3a7640000610b1e670de069c00f3e120084610e97565b610b289190610ed4565b91505b6010831615610b5c57670de0b6b3a7640000610b4f670de01cce21c9440084610e97565b610b599190610ed4565b91505b6020831615610b8d57670de0b6b3a7640000610b80670ddf82ef46ce100084610e97565b610b8a9190610ed4565b91505b6040831615610bbe57670de0b6b3a7640000610bb1670dde4f458f8e8d8084610e97565b610bbb9190610ed4565b91505b6080831615610bef57670de0b6b3a7640000610be2670ddbe84213d5f08084610e97565b610bec9190610ed4565b91505b610100831615610c2157670de0b6b3a7640000610c14670dd71b7aa6df5b8084610e97565b610c1e9190610ed4565b91505b610200831615610c5357670de0b6b3a7640000610c46670dcd86e7f28cde0084610e97565b610c509190610ed4565b91505b610400831615610c8557670de0b6b3a7640000610c78670dba71a3084ad68084610e97565b610c829190610ed4565b91505b610800831615610cb757670de0b6b3a7640000610caa670d94961b13dbde8084610e97565b610cb49190610ed4565b91505b611000831615610ce957670de0b6b3a7640000610cdc670d4a171c35c9838084610e97565b610ce69190610ed4565b91505b612000831615610d1b57670de0b6b3a7640000610d0e670cb9da519ccfb70084610e97565b610d189190610ed4565b91505b614000831615610d4d57670de0b6b3a7640000610d40670bab76d59c18d68084610e97565b610d4a9190610ed4565b91505b618000831615610d7f57670de0b6b3a7640000610d726709d025defee4df8084610e97565b610d7c9190610ed4565b91505b50919050565b600060208284031215610d9757600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108ee57600080fd5b60008060008060608587031215610ddd57600080fd5b843567ffffffffffffffff80821115610df557600080fd5b818701915087601f830112610e0957600080fd5b813581811115610e1857600080fd5b886020828501011115610e2a57600080fd5b6020928301999098509187013596604001359550909350505050565b60008060408385031215610e5957600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610ecf57610ecf610e68565b500290565b600082610f0a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082821015610f2157610f21610e68565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115610f6857610f68610e68565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610f9e57610f9e610e68565b5060010190565b600060208284031215610fb757600080fd5b505191905056fea2646970667358221220656d4e74a70e503b1686a7dfbe2ffbc27470142d0d5c0655a73ccc20436eec1d64736f6c634300080d00330000000000000000000000004636ac8216805fe96de9e7afc62da99096a930f6000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000052b7d2dcc80cd2e4000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000b4212f0353737000000000000000000000000000000000000000000000000000120351805525200000000000000000000000000000000000000000000000000000e690e00441d000000000000000000000000000000000000000000000000000005300f47c69a000000000000000000000000000000000000000000000000000000490b149671
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004636ac8216805fe96de9e7afc62da99096a930f6000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000052b7d2dcc80cd2e4000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000b4212f0353737000000000000000000000000000000000000000000000000000120351805525200000000000000000000000000000000000000000000000000000e690e00441d000000000000000000000000000000000000000000000000000005300f47c69a000000000000000000000000000000000000000000000000000000490b149671
-----Decoded View---------------
Arg [0] : _usdOracle (address): 0x4636ac8216805fe96de9e7afc62da99096a930f6
Arg [1] : _rentPrices (uint256[]): 3168873850681143,316887385068114,15844369253405,5703972931226,313718511217
Arg [2] : _startPremium (uint256): 100000000000000000000000000
Arg [3] : totalDays (uint256): 28
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000004636ac8216805fe96de9e7afc62da99096a930f6
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000001c
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 000000000000000000000000000000000000000000000000000b4212f0353737
Arg [6] : 0000000000000000000000000000000000000000000000000001203518055252
Arg [7] : 00000000000000000000000000000000000000000000000000000e690e00441d
Arg [8] : 000000000000000000000000000000000000000000000000000005300f47c69a
Arg [9] : 000000000000000000000000000000000000000000000000000000490b149671
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.