ETH Price: $3,162.47 (-1.90%)

Contract

0x63FaF46Dadc9676745836289404B39136622B821
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...103311272020-06-24 22:15:361664 days ago1593036936IN
0x63FaF46D...36622B821
0 ETH0.0008053226

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
140987602022-01-29 5:22:041081 days ago1643433724
0x63FaF46D...36622B821
0 ETH
140987602022-01-29 5:22:041081 days ago1643433724
0x63FaF46D...36622B821
0 ETH
140987572022-01-29 5:21:511081 days ago1643433711
0x63FaF46D...36622B821
0 ETH
140987572022-01-29 5:21:511081 days ago1643433711
0x63FaF46D...36622B821
0 ETH
140987542022-01-29 5:20:541081 days ago1643433654
0x63FaF46D...36622B821
0 ETH
140987542022-01-29 5:20:541081 days ago1643433654
0x63FaF46D...36622B821
0 ETH
140987542022-01-29 5:20:541081 days ago1643433654
0x63FaF46D...36622B821
0 ETH
140987542022-01-29 5:20:541081 days ago1643433654
0x63FaF46D...36622B821
0 ETH
140987482022-01-29 5:20:001081 days ago1643433600
0x63FaF46D...36622B821
0 ETH
140987482022-01-29 5:20:001081 days ago1643433600
0x63FaF46D...36622B821
0 ETH
140987472022-01-29 5:19:261081 days ago1643433566
0x63FaF46D...36622B821
0 ETH
140987472022-01-29 5:19:261081 days ago1643433566
0x63FaF46D...36622B821
0 ETH
140987462022-01-29 5:19:171081 days ago1643433557
0x63FaF46D...36622B821
0 ETH
140987462022-01-29 5:19:171081 days ago1643433557
0x63FaF46D...36622B821
0 ETH
140987462022-01-29 5:19:171081 days ago1643433557
0x63FaF46D...36622B821
0 ETH
140987462022-01-29 5:19:171081 days ago1643433557
0x63FaF46D...36622B821
0 ETH
140987422022-01-29 5:18:411081 days ago1643433521
0x63FaF46D...36622B821
0 ETH
140987422022-01-29 5:18:411081 days ago1643433521
0x63FaF46D...36622B821
0 ETH
140987352022-01-29 5:17:461081 days ago1643433466
0x63FaF46D...36622B821
0 ETH
140987352022-01-29 5:17:461081 days ago1643433466
0x63FaF46D...36622B821
0 ETH
140987312022-01-29 5:16:291081 days ago1643433389
0x63FaF46D...36622B821
0 ETH
140987312022-01-29 5:16:291081 days ago1643433389
0x63FaF46D...36622B821
0 ETH
140987312022-01-29 5:16:291081 days ago1643433389
0x63FaF46D...36622B821
0 ETH
140987312022-01-29 5:16:291081 days ago1643433389
0x63FaF46D...36622B821
0 ETH
140987282022-01-29 5:16:021081 days ago1643433362
0x63FaF46D...36622B821
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LinearPremiumPriceOracle

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-06-24
*/

// File: contracts/SafeMath.sol

pragma solidity >=0.4.24;

/**
 * @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/PriceOracle.sol

pragma solidity >=0.4.24;

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/StringUtils.sol

pragma solidity >=0.4.24;

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++) {
            byte 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-solidity/contracts/ownership/Ownable.sol

pragma solidity ^0.5.0;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/StablePriceOracle.sol

pragma solidity >=0.5.0;





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 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 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 Sets the price oracle address
     * @param _usdOracle The address of the price oracle to use.
     */
    function setOracle(AggregatorInterface _usdOracle) public onlyOwner {
        usdOracle = _usdOracle;
        emit OracleChanged(address(_usdOracle));
    }

    /**
     * @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) 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 returns (bool) {
        return interfaceID == INTERFACE_META_ID || interfaceID == ORACLE_ID;
    }
}

// File: contracts/LinearPremiumPriceOracle.sol

pragma solidity >=0.5.0;



contract LinearPremiumPriceOracle is StablePriceOracle {
    using SafeMath for *;

    uint GRACE_PERIOD = 90 days;

    uint public initialPremium;
    uint public 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*/) internal view returns(uint) {
        expires = expires.add(GRACE_PERIOD);
        if(expires > now) {
            // No premium for renewals
            return 0;
        }

        // Calculate the discount off the maximum premium
        uint discount = premiumDecreaseRate.mul(now.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 returns (bool) {
        return (interfaceID == TIME_UNTIL_PREMIUM_ID) || super.supportsInterface(interfaceID);
    }
}

Contract Security Audit

Contract ABI

[{"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"}],"payable":false,"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"},{"constant":true,"inputs":[],"name":"initialPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"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"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"premiumDecreaseRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"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"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rentPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract AggregatorInterface","name":"_usdOracle","type":"address"}],"name":"setOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"_rentPrices","type":"uint256[]"}],"name":"setPrices","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"expires","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"timeUntilPremium","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usdOracle","outputs":[{"internalType":"contract AggregatorInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

60806040526276a7006003553480156200001857600080fd5b50604051620015d4380380620015d4833981810160405260808110156200003e57600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200006957600080fd5b838201915060208201858111156200008057600080fd5b82518660208202830111640100000000821117156200009e57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015620000d7578082015181840152602081019050620000ba565b5050505090500160405260200180519060200190929190805190602001909291905050508383336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020b816200022560201b60201c565b5050816004819055508060058190555050505050620003a6565b62000235620002d560201b60201c565b6200023f57600080fd5b8060019080519060200190620002579291906200032c565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df816040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015620002bf578082015181840152602081019050620002a2565b505050509050019250505060405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b8280548282559060005260206000209081019282156200036b579160200282015b828111156200036a5782518255916020019190600101906200034d565b5b5090506200037a91906200037e565b5090565b620003a391905b808211156200039f57600081600090555060010162000385565b5090565b90565b61121e80620003b66000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063c8a4271f11610066578063c8a4271f14610468578063ed6c33ed146104b2578063f05af2b7146104fe578063f2fde38b1461051c576100ea565b80638da5cb5b1461035b5780638f32d59b146103a5578063a34e3596146103c7576100ea565b8063715018a6116100c8578063715018a61461023757806379cf92d3146102415780637adbf973146102f95780637d3fb8b71461033d576100ea565b806301ffc9a7146100ef57806306d5d0b61461015457806350e9a71514610196575b600080fd5b61013a6004803603602081101561010557600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610560565b604051808215151515815260200191505060405180910390f35b6101806004803603602081101561016a57600080fd5b81019080803590602001909291905050506105ef565b6040518082815260200191505060405180910390f35b610221600480360360608110156101ac57600080fd5b81019080803590602001906401000000008111156101c957600080fd5b8201836020820111156101db57600080fd5b803590602001918460018302840111640100000000831117156101fd57600080fd5b90919293919293908035906020019092919080359060200190929190505050610610565b6040518082815260200191505060405180910390f35b61023f61072d565b005b6102f76004803603602081101561025757600080fd5b810190808035906020019064010000000081111561027457600080fd5b82018360208201111561028657600080fd5b803590602001918460208302840111640100000000831117156102a857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506107fd565b005b61033b6004803603602081101561030f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108a0565b005b610345610958565b6040518082815260200191505060405180910390f35b61036361095e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103ad610987565b604051808215151515815260200191505060405180910390f35b610452600480360360608110156103dd57600080fd5b81019080803590602001906401000000008111156103fa57600080fd5b82018360208201111561040c57600080fd5b8035906020019184600183028401116401000000008311171561042e57600080fd5b909192939192939080359060200190929190803590602001909291905050506109de565b6040518082815260200191505060405180910390f35b610470610a41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e8600480360360408110156104c857600080fd5b810190808035906020019092919080359060200190929190505050610a67565b6040518082815260200191505060405180910390f35b610506610ae9565b6040518082815260200191505060405180910390f35b61055e6004803603602081101561053257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aef565b005b600060405180807f74696d65556e74696c5072656d69756d2875696e742c75696e74000000000000815250601a01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105e857506105e782610b0c565b5b9050919050565b600181815481106105fc57fe5b906000526020600020016000915090505481565b60008061066086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610c3f565b90506001805490508111156106785760018054905090505b6000811161068557600080fd5b60006106b38460018085038154811061069a57fe5b9060005260206000200154610db590919063ffffffff16565b905061071661070788888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508787610def565b82610e6890919063ffffffff16565b905061072181610e87565b92505050949350505050565b610735610987565b61073e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610805610987565b61080e57600080fd5b8060019080519060200190610824929190611177565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df816040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561088a57808201518184015260208101905061086f565b505050509050019250505060405180910390a150565b6108a8610987565b6108b157600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e05ae75e8b926552cf6fcd744d19f422561e3ced1e426868730852702dbe41881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610a37610a3286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508585610def565b610e87565b9050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a7282610f60565b9150600454821115610a8357600080fd5b610a9860035484610e6890919063ffffffff16565b92506000610ab18360045461103990919063ffffffff16565b90506000610aca6005548361105990919063ffffffff16565b9050610adf8186610e6890919063ffffffff16565b9250505092915050565b60055481565b610af7610987565b610b0057600080fd5b610b098161107f565b50565b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c38575060405180807f7072656d69756d28737472696e672c75696e743235362c75696e743235362900815250601f019050604051809103902060405180807f707269636528737472696e672c75696e743235362c75696e7432353629000000815250601d0190506040518091039020187bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000806000809050600084519050600092505b80821015610daa576000858381518110610c6857fe5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610cae57600183019250610d9c565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610ce757600283019250610d9b565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610d2057600383019250610d9a565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610d5857600483019250610d99565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610d9157600583019250610d98565b6006830192505b5b5b5b5b508280600101935050610c52565b829350505050919050565b600080831415610dc85760009050610de9565b6000828402905082848281610dd957fe5b0414610de457600080fd5b809150505b92915050565b6000610e0660035484610e6890919063ffffffff16565b925042831115610e195760009050610e61565b6000610e42610e31854261103990919063ffffffff16565b600554610db590919063ffffffff16565b9050600454811115610e58576000915050610e61565b80600454039150505b9392505050565b600080828401905083811015610e7d57600080fd5b8091505092915050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b81019080805190602001909291905050509050610f5881610f4a6305f5e10086610db590919063ffffffff16565b61105990919063ffffffff16565b915050919050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fcb57600080fd5b505afa158015610fdf573d6000803e3d6000fd5b505050506040513d6020811015610ff557600080fd5b810190808051906020019092919050505090506110316305f5e1006110238386610db590919063ffffffff16565b61105990919063ffffffff16565b915050919050565b60008282111561104857600080fd5b600082840390508091505092915050565b600080821161106757600080fd5b600082848161107257fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110b957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8280548282559060005260206000209081019282156111b3579160200282015b828111156111b2578251825591602001919060010190611197565b5b5090506111c091906111c4565b5090565b6111e691905b808211156111e25760008160009055506001016111ca565b5090565b9056fea265627a7a72315820e049bf3ffa88e6cc65c4d5869147e2f86c455b0b81d3091d58b8b08d42e62bdd64736f6c63430005110032000000000000000000000000f79d6afbb6da890132f9d7c355e3015f15f3406f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000006c6b935b8bbd4000000000000000000000000000000000000000000000000000000002efe5a6b300d900000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001275209157690000000000000000000000000000000000000000000000000000049d482455da00000000000000000000000000000000000000000000000000000024ea4122af

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063c8a4271f11610066578063c8a4271f14610468578063ed6c33ed146104b2578063f05af2b7146104fe578063f2fde38b1461051c576100ea565b80638da5cb5b1461035b5780638f32d59b146103a5578063a34e3596146103c7576100ea565b8063715018a6116100c8578063715018a61461023757806379cf92d3146102415780637adbf973146102f95780637d3fb8b71461033d576100ea565b806301ffc9a7146100ef57806306d5d0b61461015457806350e9a71514610196575b600080fd5b61013a6004803603602081101561010557600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610560565b604051808215151515815260200191505060405180910390f35b6101806004803603602081101561016a57600080fd5b81019080803590602001909291905050506105ef565b6040518082815260200191505060405180910390f35b610221600480360360608110156101ac57600080fd5b81019080803590602001906401000000008111156101c957600080fd5b8201836020820111156101db57600080fd5b803590602001918460018302840111640100000000831117156101fd57600080fd5b90919293919293908035906020019092919080359060200190929190505050610610565b6040518082815260200191505060405180910390f35b61023f61072d565b005b6102f76004803603602081101561025757600080fd5b810190808035906020019064010000000081111561027457600080fd5b82018360208201111561028657600080fd5b803590602001918460208302840111640100000000831117156102a857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506107fd565b005b61033b6004803603602081101561030f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108a0565b005b610345610958565b6040518082815260200191505060405180910390f35b61036361095e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103ad610987565b604051808215151515815260200191505060405180910390f35b610452600480360360608110156103dd57600080fd5b81019080803590602001906401000000008111156103fa57600080fd5b82018360208201111561040c57600080fd5b8035906020019184600183028401116401000000008311171561042e57600080fd5b909192939192939080359060200190929190803590602001909291905050506109de565b6040518082815260200191505060405180910390f35b610470610a41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e8600480360360408110156104c857600080fd5b810190808035906020019092919080359060200190929190505050610a67565b6040518082815260200191505060405180910390f35b610506610ae9565b6040518082815260200191505060405180910390f35b61055e6004803603602081101561053257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aef565b005b600060405180807f74696d65556e74696c5072656d69756d2875696e742c75696e74000000000000815250601a01905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105e857506105e782610b0c565b5b9050919050565b600181815481106105fc57fe5b906000526020600020016000915090505481565b60008061066086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610c3f565b90506001805490508111156106785760018054905090505b6000811161068557600080fd5b60006106b38460018085038154811061069a57fe5b9060005260206000200154610db590919063ffffffff16565b905061071661070788888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508787610def565b82610e6890919063ffffffff16565b905061072181610e87565b92505050949350505050565b610735610987565b61073e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610805610987565b61080e57600080fd5b8060019080519060200190610824929190611177565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df816040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561088a57808201518184015260208101905061086f565b505050509050019250505060405180910390a150565b6108a8610987565b6108b157600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e05ae75e8b926552cf6fcd744d19f422561e3ced1e426868730852702dbe41881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000610a37610a3286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508585610def565b610e87565b9050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a7282610f60565b9150600454821115610a8357600080fd5b610a9860035484610e6890919063ffffffff16565b92506000610ab18360045461103990919063ffffffff16565b90506000610aca6005548361105990919063ffffffff16565b9050610adf8186610e6890919063ffffffff16565b9250505092915050565b60055481565b610af7610987565b610b0057600080fd5b610b098161107f565b50565b600060405180807f737570706f727473496e74657266616365286279746573342900000000000000815250601901905060405180910390207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c38575060405180807f7072656d69756d28737472696e672c75696e743235362c75696e743235362900815250601f019050604051809103902060405180807f707269636528737472696e672c75696e743235362c75696e7432353629000000815250601d0190506040518091039020187bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000806000809050600084519050600092505b80821015610daa576000858381518110610c6857fe5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610cae57600183019250610d9c565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610ce757600283019250610d9b565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610d2057600383019250610d9a565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610d5857600483019250610d99565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015610d9157600583019250610d98565b6006830192505b5b5b5b5b508280600101935050610c52565b829350505050919050565b600080831415610dc85760009050610de9565b6000828402905082848281610dd957fe5b0414610de457600080fd5b809150505b92915050565b6000610e0660035484610e6890919063ffffffff16565b925042831115610e195760009050610e61565b6000610e42610e31854261103990919063ffffffff16565b600554610db590919063ffffffff16565b9050600454811115610e58576000915050610e61565b80600454039150505b9392505050565b600080828401905083811015610e7d57600080fd5b8091505092915050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b81019080805190602001909291905050509050610f5881610f4a6305f5e10086610db590919063ffffffff16565b61105990919063ffffffff16565b915050919050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fcb57600080fd5b505afa158015610fdf573d6000803e3d6000fd5b505050506040513d6020811015610ff557600080fd5b810190808051906020019092919050505090506110316305f5e1006110238386610db590919063ffffffff16565b61105990919063ffffffff16565b915050919050565b60008282111561104857600080fd5b600082840390508091505092915050565b600080821161106757600080fd5b600082848161107257fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110b957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8280548282559060005260206000209081019282156111b3579160200282015b828111156111b2578251825591602001919060010190611197565b5b5090506111c091906111c4565b5090565b6111e691905b808211156111e25760008160009055506001016111ca565b5090565b9056fea265627a7a72315820e049bf3ffa88e6cc65c4d5869147e2f86c455b0b81d3091d58b8b08d42e62bdd64736f6c63430005110032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000f79d6afbb6da890132f9d7c355e3015f15f3406f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000006c6b935b8bbd4000000000000000000000000000000000000000000000000000000002efe5a6b300d900000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001275209157690000000000000000000000000000000000000000000000000000049d482455da00000000000000000000000000000000000000000000000000000024ea4122af

-----Decoded View---------------
Arg [0] : _usdOracle (address): 0xF79D6aFBb6dA890132F9D7c355e3015f15F3406F
Arg [1] : _rentPrices (uint256[]): 0,0,20294266869609,5073566717402,158548959919
Arg [2] : _initialPremium (uint256): 2000000000000000000000
Arg [3] : _premiumDecreaseRate (uint256): 826719576719577

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000f79d6afbb6da890132f9d7c355e3015f15f3406f
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000000006c6b935b8bbd400000
Arg [3] : 0000000000000000000000000000000000000000000000000002efe5a6b300d9
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000127520915769
Arg [8] : 0000000000000000000000000000000000000000000000000000049d482455da
Arg [9] : 00000000000000000000000000000000000000000000000000000024ea4122af


Deployed Bytecode Sourcemap

9095:2134:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9095:2134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11048:178;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11048:178:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6120:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6120:24:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6710:437;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6710:437:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6710:437:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6710:437:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6710:437:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4903:140;;;:::i;:::-;;7569:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7569:151:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7569:151:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7569:151:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7569:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7569:151:0;;;;;;;;;;;;;;;:::i;:::-;;7855:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7855:159:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9222:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4190:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4525:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8089:169;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8089:169:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8089:169:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8089:169:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8089:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6176:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10665:375;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10665:375:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9255:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5220:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5220:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11048:178;11116:4;9350:39;;;;;;;;;;;;;;;;;;;11141:36;;;:11;:36;;;;11140:78;;;;11182:36;11206:11;11182:23;:36::i;:::-;11140:78;11133:85;;11048:178;;;:::o;6120:24::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6710:437::-;6798:4;6815:8;6826:13;:4;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6826:11:0;;;;;;;:13::i;:::-;6815:24;;6859:10;:17;;;;6853:3;:23;6850:78;;;6899:10;:17;;;;6893:23;;6850:78;6952:1;6946:3;:7;6938:16;;;;;;6975:14;6992:33;7016:8;6992:10;7009:1;7003:3;:7;6992:19;;;;;;;;;;;;;;;;:23;;:33;;;;:::i;:::-;6975:50;;7048:48;7062:33;7071:4;;7062:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7062:33:0;;;;;;7077:7;7086:8;7062;:33::i;:::-;7048:9;:13;;:48;;;;:::i;:::-;7036:60;;7116:23;7129:9;7116:12;:23::i;:::-;7109:30;;;;6710:437;;;;;;:::o;4903:140::-;4402:9;:7;:9::i;:::-;4394:18;;;;;;5002:1;4965:40;;4986:6;;;;;;;;;;;4965:40;;;;;;;;;;;;5033:1;5016:6;;:19;;;;;;;;;;;;;;;;;;4903:140::o;7569:151::-;4402:9;:7;:9::i;:::-;4394:18;;;;;;7656:11;7643:10;:24;;;;;;;;;;;;:::i;:::-;;7683:29;7700:11;7683:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7683:29:0;;;;;;;;;;;;;;;;;7569:151;:::o;7855:159::-;4402:9;:7;:9::i;:::-;4394:18;;;;;;7946:10;7934:9;;:22;;;;;;;;;;;;;;;;;;7972:34;7994:10;7972:34;;;;;;;;;;;;;;;;;;;;;;7855:159;:::o;9222:26::-;;;;:::o;4190:79::-;4228:7;4255:6;;;;;;;;;;;4248:13;;4190:79;:::o;4525:92::-;4565:4;4603:6;;;;;;;;;;;4589:20;;:10;:20;;;4582:27;;4525:92;:::o;8089:169::-;8179:4;8203:47;8216:33;8225:4;;8216:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8216:33:0;;;;;;8231:7;8240:8;8216;:33::i;:::-;8203:12;:47::i;:::-;8196:54;;8089:169;;;;;;:::o;6176:36::-;;;;;;;;;;;;;:::o;10665:375::-;10740:4;10766:20;10779:6;10766:12;:20::i;:::-;10757:29;;10815:14;;10805:6;:24;;10797:33;;;;;;10853:25;10865:12;;10853:7;:11;;:25;;;;:::i;:::-;10843:35;;10891:13;10907:26;10926:6;10907:14;;:18;;:26;;;;:::i;:::-;10891:42;;10944:13;10960:33;10973:19;;10960:8;:12;;:33;;;;:::i;:::-;10944:49;;11011:21;11023:8;11011:7;:11;;:21;;;;:::i;:::-;11004:28;;;;10665:375;;;;:::o;9255:31::-;;;;:::o;5220:109::-;4402:9;:7;:9::i;:::-;4394:18;;;;;;5293:28;5312:8;5293:18;:28::i;:::-;5220:109;:::o;8845:160::-;8913:4;6362:38;;;;;;;;;;;;;;;;;;;8937:32;;;:11;:32;;;;:60;;;;6496:44;;;;;;;;;;;;;;;;;;;6451:42;;;;;;;;;;;;;;;;;;;:89;8973:24;;;:11;:24;;;;8937:60;8930:67;;8845:160;;;:::o;2807:627::-;2863:4;2880:8;2899:6;2908:1;2899:10;;2920:15;2944:1;2938:15;2920:33;;2974:1;2968:7;;2964:442;2981:10;2977:1;:14;2964:442;;;3015:6;3030:1;3033;3024:11;;;;;;;;;;;;;;;;3015:20;;3057:4;3053:8;;:1;:8;;;;3050:345;;;3087:1;3082:6;;;;3050:345;;;3118:4;3114:8;;:1;:8;;;;3110:285;;;3148:1;3143:6;;;;3110:285;;;3179:4;3175:8;;:1;:8;;;;3171:224;;;3209:1;3204:6;;;;3171:224;;;3240:4;3236:8;;:1;:8;;;;3232:163;;;3270:1;3265:6;;;;3232:163;;;3301:4;3297:8;;:1;:8;;;;3293:102;;;3331:1;3326:6;;;;3293:102;;;3378:1;3373:6;;;;3293:102;3232:163;3171:224;3110:285;3050:345;2964:442;2993:5;;;;;;;2964:442;;;3423:3;3416:10;;;;;2807:627;;;:::o;276:433::-;334:7;583:1;578;:6;574:47;;;608:1;601:8;;;;574:47;633:9;649:1;645;:5;633:17;;678:1;673;669;:5;;;;;;:10;661:19;;;;;;700:1;693:8;;;276:433;;;;;:::o;9695:574::-;9788:4;9815:25;9827:12;;9815:7;:11;;:25;;;;:::i;:::-;9805:35;;9864:3;9854:7;:13;9851:93;;;9931:1;9924:8;;;;9851:93;10015:13;10031:41;10055:16;10063:7;10055:3;:7;;:16;;;;:::i;:::-;10031:19;;:23;;:41;;;;:::i;:::-;10015:57;;10158:14;;10147:8;:25;10144:65;;;10196:1;10189:8;;;;;10144:65;10253:8;10236:14;;:25;10229:32;;;9695:574;;;;;;:::o;1517:150::-;1575:7;1595:9;1611:1;1607;:5;1595:17;;1636:1;1631;:6;;1623:15;;;;;;1658:1;1651:8;;;1517:150;;;;:::o;8479:175::-;8536:4;8553:13;8574:9;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8574:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8574:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8574:24:0;;;;;;;;;;;;;;;;8553:46;;8617:29;8637:8;8617:15;8628:3;8617:6;:10;;:15;;;;:::i;:::-;:19;;:29;;;;:::i;:::-;8610:36;;;8479:175;;;:::o;8662:::-;8719:4;8736:13;8757:9;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8757:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8757:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8757:24:0;;;;;;;;;;;;;;;;8736:46;;8800:29;8825:3;8800:20;8811:8;8800:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8793:36;;;8662:175;;;:::o;1281:150::-;1339:7;1372:1;1367;:6;;1359:15;;;;;;1385:9;1401:1;1397;:5;1385:17;;1422:1;1415:8;;;1281:150;;;;:::o;842:303::-;900:7;999:1;995;:5;987:14;;;;;;1012:9;1028:1;1024;:5;;;;;;1012:17;;1136:1;1129:8;;;842:303;;;;:::o;5479:187::-;5573:1;5553:22;;:8;:22;;;;5545:31;;;;;;5621:8;5592:38;;5613:6;;;;;;;;;;;5592:38;;;;;;;;;;;;5650:8;5641:6;;:17;;;;;;;;;;;;;;;;;;5479:187;:::o;9095:2134::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://e049bf3ffa88e6cc65c4d5869147e2f86c455b0b81d3091d58b8b08d42e62bdd

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.