ETH Price: $1,905.88 (-0.34%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update Price87443482019-10-15 6:45:021981 days ago1571121902IN
0xe6f14844...9200FA745
0 ETH0.0007271414
Update Price87442152019-10-15 6:11:111981 days ago1571119871IN
0xe6f14844...9200FA745
0 ETH0.0007357113.8
Update Price87436502019-10-15 4:02:261981 days ago1571112146IN
0xe6f14844...9200FA745
0 ETH0.000675213
Update Price87407172019-10-14 17:07:091981 days ago1571072829IN
0xe6f14844...9200FA745
0 ETH0.0006930613
Update Price87406622019-10-14 16:54:171981 days ago1571072057IN
0xe6f14844...9200FA745
0 ETH0.0006930613
Update Price87405982019-10-14 16:38:451981 days ago1571071125IN
0xe6f14844...9200FA745
0 ETH0.000467459
Update Price87405322019-10-14 16:25:351981 days ago1571070335IN
0xe6f14844...9200FA745
0 ETH0.0006931413
Update Price87397592019-10-14 13:33:451981 days ago1571060025IN
0xe6f14844...9200FA745
0 ETH0.000820315
Update Price87376642019-10-14 5:41:131982 days ago1571031673IN
0xe6f14844...9200FA745
0 ETH0.0007656114
Update Price87366022019-10-14 1:45:171982 days ago1571017517IN
0xe6f14844...9200FA745
0 ETH0.000675213
Update Price87264772019-10-12 11:29:341983 days ago1570879774IN
0xe6f14844...9200FA745
0 ETH0.0006930613
Update Price87262712019-10-12 10:46:401983 days ago1570877200IN
0xe6f14844...9200FA745
0 ETH0.000675213
Update Price87259302019-10-12 9:29:351984 days ago1570872575IN
0xe6f14844...9200FA745
0 ETH0.0006931413
Update Price87257112019-10-12 8:41:351984 days ago1570869695IN
0xe6f14844...9200FA745
0 ETH0.0017380731
Update Price87255872019-10-12 8:11:411984 days ago1570867901IN
0xe6f14844...9200FA745
0 ETH0.001652731
Update Price87246012019-10-12 4:20:421984 days ago1570854042IN
0xe6f14844...9200FA745
0 ETH0.0005193910
Update Price87244642019-10-12 3:50:551984 days ago1570852255IN
0xe6f14844...9200FA745
0 ETH0.0006930613
Update Price87243002019-10-12 3:13:101984 days ago1570849990IN
0xe6f14844...9200FA745
0 ETH0.00071113
Update Price87241422019-10-12 2:32:391984 days ago1570847559IN
0xe6f14844...9200FA745
0 ETH0.000675213
Update Price87240902019-10-12 2:18:131984 days ago1570846693IN
0xe6f14844...9200FA745
0 ETH0.000675213
Update Price87240102019-10-12 2:03:471984 days ago1570845827IN
0xe6f14844...9200FA745
0 ETH0.000675213
Update Price87238842019-10-12 1:31:131984 days ago1570843873IN
0xe6f14844...9200FA745
0 ETH0.0005297710.2
Update Price87226442019-10-11 20:54:451984 days ago1570827285IN
0xe6f14844...9200FA745
0 ETH0.000675213
Update Price87225882019-10-11 20:43:061984 days ago1570826586IN
0xe6f14844...9200FA745
0 ETH0.0005193910
Update Price87225532019-10-11 20:34:151984 days ago1570826055IN
0xe6f14844...9200FA745
0 ETH0.0005331910
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DaiPriceOracle

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at Etherscan.io on 2019-09-18
*/

/*

    Copyright 2019 The Hydro Protocol Foundation

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

*/

pragma solidity 0.5.8;
pragma experimental ABIEncoderV2;
interface IEth2Dai{
    function isClosed()
        external
        view
        returns (bool);

    function buyEnabled()
        external
        view
        returns (bool);

    function matchingEnabled()
        external
        view
        returns (bool);

    function getBuyAmount(
        address buy_gem,
        address pay_gem,
        uint256 pay_amt
    )
        external
        view
        returns (uint256);

    function getPayAmount(
        address pay_gem,
        address buy_gem,
        uint256 buy_amt
    )
        external
        view
        returns (uint256);
}

interface IMakerDaoOracle{
    function peek()
        external
        view
        returns (bytes32, bool);
}

interface IStandardToken {
    function transfer(
        address _to,
        uint256 _amount
    )
        external
        returns (bool);

    function balanceOf(
        address _owner)
        external
        view
        returns (uint256 balance);

    function transferFrom(
        address _from,
        address _to,
        uint256 _amount
    )
        external
        returns (bool);

    function approve(
        address _spender,
        uint256 _amount
    )
        external
        returns (bool);

    function allowance(
        address _owner,
        address _spender
    )
        external
        view
        returns (uint256);
}

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(), "NOT_OWNER");
        _;
    }

    /** @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
    {
        require(newOwner != address(0), "INVALID_OWNER");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMath {

    // Multiplies two numbers, reverts on overflow.
    function mul(
        uint256 a,
        uint256 b
    )
        internal
        pure
        returns (uint256)
    {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "MUL_ERROR");

        return c;
    }

    // Integer division of two numbers truncating the quotient, reverts on division by zero.
    function div(
        uint256 a,
        uint256 b
    )
        internal
        pure
        returns (uint256)
    {
        require(b > 0, "DIVIDING_ERROR");
        return a / b;
    }

    function divCeil(
        uint256 a,
        uint256 b
    )
        internal
        pure
        returns (uint256)
    {
        uint256 quotient = div(a, b);
        uint256 remainder = a - quotient * b;
        if (remainder > 0) {
            return quotient + 1;
        } else {
            return quotient;
        }
    }

    // Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    function sub(
        uint256 a,
        uint256 b
    )
        internal
        pure
        returns (uint256)
    {
        require(b <= a, "SUB_ERROR");
        return a - b;
    }

    function sub(
        int256 a,
        uint256 b
    )
        internal
        pure
        returns (int256)
    {
        require(b <= 2**255-1, "INT256_SUB_ERROR");
        int256 c = a - int256(b);
        require(c <= a, "INT256_SUB_ERROR");
        return c;
    }

    // Adds two numbers, reverts on overflow.
    function add(
        uint256 a,
        uint256 b
    )
        internal
        pure
        returns (uint256)
    {
        uint256 c = a + b;
        require(c >= a, "ADD_ERROR");
        return c;
    }

    function add(
        int256 a,
        uint256 b
    )
        internal
        pure
        returns (int256)
    {
        require(b <= 2**255 - 1, "INT256_ADD_ERROR");
        int256 c = a + int256(b);
        require(c >= a, "INT256_ADD_ERROR");
        return c;
    }

    // Divides two numbers 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, "MOD_ERROR");
        return a % b;
    }

    /**
     * Check the amount of precision lost by calculating multiple * (numerator / denominator). To
     * do this, we check the remainder and make sure it's proportionally less than 0.1%. So we have:
     *
     *     ((numerator * multiple) % denominator)     1
     *     -------------------------------------- < ----
     *              numerator * multiple            1000
     *
     * To avoid further division, we can move the denominators to the other sides and we get:
     *
     *     ((numerator * multiple) % denominator) * 1000 < numerator * multiple
     *
     * Since we want to return true if there IS a rounding error, we simply flip the sign and our
     * final equation becomes:
     *
     *     ((numerator * multiple) % denominator) * 1000 >= numerator * multiple
     *
     * @param numerator The numerator of the proportion
     * @param denominator The denominator of the proportion
     * @param multiple The amount we want a proportion of
     * @return Boolean indicating if there is a rounding error when calculating the proportion
     */
    function isRoundingError(
        uint256 numerator,
        uint256 denominator,
        uint256 multiple
    )
        internal
        pure
        returns (bool)
    {
        // numerator.mul(multiple).mod(denominator).mul(1000) >= numerator.mul(multiple)
        return mul(mod(mul(numerator, multiple), denominator), 1000) >= mul(numerator, multiple);
    }

    /**
     * Takes an amount (multiple) and calculates a proportion of it given a numerator/denominator
     * pair of values. The final value will be rounded down to the nearest integer value.
     *
     * This function will revert the transaction if rounding the final value down would lose more
     * than 0.1% precision.
     *
     * @param numerator The numerator of the proportion
     * @param denominator The denominator of the proportion
     * @param multiple The amount we want a proportion of
     * @return The final proportion of multiple rounded down
     */
    function getPartialAmountFloor(
        uint256 numerator,
        uint256 denominator,
        uint256 multiple
    )
        internal
        pure
        returns (uint256)
    {
        require(!isRoundingError(numerator, denominator, multiple), "ROUNDING_ERROR");
        // numerator.mul(multiple).div(denominator)
        return div(mul(numerator, multiple), denominator);
    }

    /**
     * Returns the smaller integer of the two passed in.
     *
     * @param a Unsigned integer
     * @param b Unsigned integer
     * @return The smaller of the two integers
     */
    function min(
        uint256 a,
        uint256 b
    )
        internal
        pure
        returns (uint256)
    {
        return a < b ? a : b;
    }
}

contract DaiPriceOracle is Ownable{
    using SafeMath for uint256;

    uint256 public price;

    uint256 constant ONE = 10**18;

    IMakerDaoOracle public constant makerDaoOracle = IMakerDaoOracle(0x729D19f657BD0614b4985Cf1D82531c67569197B);
    IStandardToken public constant DAI = IStandardToken(0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359);
    IEth2Dai public constant Eth2Dai = IEth2Dai(0x39755357759cE0d7f32dC8dC45414CCa409AE24e);

    address public constant UNISWAP = 0x09cabEC1eAd1c0Ba254B09efb3EE13841712bE14;
    address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    uint256 public constant eth2daiETHAmount = 10 ether;
    uint256 public constant eth2daiMaxSpread = 2 * ONE / 100; // 2.00%
    uint256 public constant uniswapMinETHAmount = 2000 ether;

    event UpdatePrice(uint256 newPrice);

    uint256 public minPrice;
    uint256 public maxPrice;

    constructor (
        uint256 _minPrice,
        uint256 _maxPrice
    )
        public
    {
        require(_minPrice <= _maxPrice, "WRONG_PARAMS");
        minPrice = _minPrice;
        maxPrice = _maxPrice;
    }

    function getPrice(
        address asset
    )
        external
        view
        returns (uint256)
    {
        require(asset == address(DAI), "ASSET_NOT_MATCH");
        return price;
    }

    function adminSetPrice(
        uint256 _price
    )
        external
        onlyOwner
    {
        if (!updatePrice()){
            price = _price;
        }

        emit UpdatePrice(price);
    }

    function adminSetParams(
        uint256 _minPrice,
        uint256 _maxPrice
    )
        external
        onlyOwner
    {
        require(_minPrice <= _maxPrice, "WRONG_PARAMS");
        minPrice = _minPrice;
        maxPrice = _maxPrice;
    }

    function updatePrice()
        public
        returns (bool)
    {
        uint256 _price = peek();

        if (_price == 0) {
            return false;
        }

        if (_price == price) {
            return true;
        }

        if (_price > maxPrice) {
            _price = maxPrice;
        } else if (_price < minPrice) {
            _price = minPrice;
        }

        price = _price;
        emit UpdatePrice(price);

        return true;
    }

    function peek()
        public
        view
        returns (uint256 _price)
    {
        uint256 makerDaoPrice = getMakerDaoPrice();

        if (makerDaoPrice == 0) {
            return _price;
        }

        uint256 eth2daiPrice = getEth2DaiPrice();

        if (eth2daiPrice > 0) {
            _price = makerDaoPrice.mul(ONE).div(eth2daiPrice);
            return _price;
        }

        uint256 uniswapPrice = getUniswapPrice();

        if (uniswapPrice > 0) {
            _price = makerDaoPrice.mul(ONE).div(uniswapPrice);
            return _price;
        }

        return _price;
    }

    function getEth2DaiPrice()
        public
        view
        returns (uint256)
    {
        if (Eth2Dai.isClosed() || !Eth2Dai.buyEnabled() || !Eth2Dai.matchingEnabled()) {
            return 0;
        }

        uint256 bidDai = Eth2Dai.getBuyAmount(address(DAI), WETH, eth2daiETHAmount);
        uint256 askDai = Eth2Dai.getPayAmount(address(DAI), WETH, eth2daiETHAmount);

        uint256 bidPrice = bidDai.mul(ONE).div(eth2daiETHAmount);
        uint256 askPrice = askDai.mul(ONE).div(eth2daiETHAmount);

        uint256 spread = askPrice.mul(ONE).div(bidPrice).sub(ONE);

        if (spread > eth2daiMaxSpread) {
            return 0;
        } else {
            return bidPrice.add(askPrice).div(2);
        }
    }

    function getUniswapPrice()
        public
        view
        returns (uint256)
    {
        uint256 ethAmount = UNISWAP.balance;
        uint256 daiAmount = DAI.balanceOf(UNISWAP);
        uint256 uniswapPrice = daiAmount.mul(10**18).div(ethAmount);

        if (ethAmount < uniswapMinETHAmount) {
            return 0;
        } else {
            return uniswapPrice;
        }
    }

    function getMakerDaoPrice()
        public
        view
        returns (uint256)
    {
        (bytes32 value, bool has) = makerDaoOracle.peek();

        if (has) {
            return uint256(value);
        } else {
            return 0;
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_price","type":"uint256"}],"name":"adminSetPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"makerDaoOracle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapMinETHAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUniswapPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Eth2Dai","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"asset","type":"address"}],"name":"getPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"peek","outputs":[{"name":"_price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"updatePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMakerDaoPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WETH","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"eth2daiETHAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getEth2DaiPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"eth2daiMaxSpread","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNISWAP","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minPrice","type":"uint256"},{"name":"_maxPrice","type":"uint256"}],"name":"adminSetParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DAI","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_minPrice","type":"uint256"},{"name":"_maxPrice","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newPrice","type":"uint256"}],"name":"UpdatePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040523480156200001157600080fd5b50604051604080620012ee8339810180604052620000339190810190620000e4565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a380821115620000c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000b9906200015e565b60405180910390fd5b60029190915560035562000196565b8051620000de816200017c565b92915050565b60008060408385031215620000f857600080fd5b6000620001068585620000d1565b92505060206200011985828601620000d1565b9150509250929050565b600062000132600c8362000170565b7f57524f4e475f504152414d530000000000000000000000000000000000000000815260200192915050565b60208082528101620000de8162000123565b90815260200190565b90565b620001878162000179565b81146200019357600080fd5b50565b61114880620001a66000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638f32d59b116100c3578063c745d9e71161007c578063c745d9e71461022f578063d1051fbc14610237578063e0bab4c41461024a578063e38d6b5c14610252578063e45be8eb1461025a578063f2fde38b146102625761014d565b80638f32d59b146101ff578063a035b1fe14610207578063ad5c46481461020f578063b53e3a4d14610217578063b8d57df21461021f578063ba01a3df146102275761014d565b806341976e091161011557806341976e09146101aa57806359e02dd7146101bd578063673a7e28146101c5578063715018a6146101da57806375f54abc146101e25780638da5cb5b146101ea5761014d565b80630cc3be2f146101525780630d89e2b71461016757806328431282146101855780632b6e19231461019a5780633878d425146101a2575b600080fd5b610165610160366004610dbb565b610275565b005b61016f6102f3565b60405161017c9190611019565b60405180910390f35b61018d61030b565b60405161017c91906110a7565b61018d610318565b61016f610415565b61018d6101b8366004610d3d565b61042d565b61018d610476565b6101cd6104fb565b60405161017c919061100b565b610165610592565b61018d610603565b6101f26106a9565b60405161017c9190610fd5565b6101cd6106b8565b61018d6106c9565b6101f26106cf565b61018d6106e7565b61018d6106f3565b61018d610afc565b6101f2610b07565b610165610245366004610df7565b610b1f565b61016f610b74565b61018d610b8c565b61018d610b92565b610165610270366004610d3d565b610b98565b61027d6106b8565b6102a557604051600160e51b62461bcd02815260040161029c90611077565b60405180910390fd5b6102ad6104fb565b6102b75760018190555b7f1a15ab7124a4e1ce00837351261771caf1691cd7d85ed3a0ac3157a1ee1a38056001546040516102e891906110a7565b60405180910390a150565b73729d19f657bd0614b4985cf1d82531c67569197b81565b686c6b935b8bbd40000081565b604051600160e01b6370a082310281526000907309cabec1ead1c0ba254b09efb3ee13841712be1480319183917389d24a6b4ccb1b6faa2625fe562bdd9a23260359916370a082319161036d91600401610fd5565b60206040518083038186803b15801561038557600080fd5b505afa158015610399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103bd9190810190610dd9565b905060006103e9836103dd84670de0b6b3a764000063ffffffff610c4316565b9063ffffffff610c8916565b9050686c6b935b8bbd4000008310156104085760009350505050610412565b9250610412915050565b90565b7339755357759ce0d7f32dc8dc45414cca409ae24e81565b60006001600160a01b0382167389d24a6b4ccb1b6faa2625fe562bdd9a232603591461046e57604051600160e51b62461bcd02815260040161029c90611027565b505060015490565b600080610481610603565b90508061048e5750610412565b60006104986106f3565b905080156104bc57610408816103dd84670de0b6b3a764000063ffffffff610c4316565b60006104c6610318565b905080156104f5576104ea816103dd85670de0b6b3a764000063ffffffff610c4316565b935061041292505050565b50505090565b600080610506610476565b905080610517576000915050610412565b60015481141561052b576001915050610412565b60035481111561053e575060035461054d565b60025481101561054d57506002545b60018190556040517f1a15ab7124a4e1ce00837351261771caf1691cd7d85ed3a0ac3157a1ee1a3805906105829083906110a7565b60405180910390a1600191505090565b61059a6106b8565b6105b957604051600160e51b62461bcd02815260040161029c90611077565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080600073729d19f657bd0614b4985cf1d82531c67569197b6001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b15801561065457600080fd5b505afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061068c9190810190610d81565b91509150801561069e57509050610412565b600092505050610412565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60015481565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b678ac7230489e8000081565b60007339755357759ce0d7f32dc8dc45414cca409ae24e6001600160a01b031663c2b6b58c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061077a9190810190610d63565b8061080757507339755357759ce0d7f32dc8dc45414cca409ae24e6001600160a01b031663f582d2936040518163ffffffff1660e01b815260040160206040518083038186803b1580156107cd57600080fd5b505afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108059190810190610d63565b155b8061089457507339755357759ce0d7f32dc8dc45414cca409ae24e6001600160a01b03166301492a0b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561085a57600080fd5b505afa15801561086e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108929190810190610d63565b155b156108a157506000610412565b604051600160e11b630a2513a90281526000907339755357759ce0d7f32dc8dc45414cca409ae24e9063144a275290610912907389d24a6b4ccb1b6faa2625fe562bdd9a232603599073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290678ac7230489e8000090600401610fe3565b60206040518083038186803b15801561092a57600080fd5b505afa15801561093e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109629190810190610dd9565b6040517fff1fd9740000000000000000000000000000000000000000000000000000000081529091506000907339755357759ce0d7f32dc8dc45414cca409ae24e9063ff1fd974906109ec907389d24a6b4ccb1b6faa2625fe562bdd9a232603599073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290678ac7230489e8000090600401610fe3565b60206040518083038186803b158015610a0457600080fd5b505afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a3c9190810190610dd9565b90506000610a64678ac7230489e800006103dd85670de0b6b3a764000063ffffffff610c4316565b90506000610a8c678ac7230489e800006103dd85670de0b6b3a764000063ffffffff610c4316565b90506000610abc670de0b6b3a7640000610ab0856103dd868463ffffffff610c4316565b9063ffffffff610cbe16565b905066470de4df820000811115610adb57600095505050505050610412565b610af060026103dd858563ffffffff610ce916565b95505050505050610412565b66470de4df82000081565b7309cabec1ead1c0ba254b09efb3ee13841712be1481565b610b276106b8565b610b4657604051600160e51b62461bcd02815260040161029c90611077565b80821115610b6957604051600160e51b62461bcd02815260040161029c90611057565b600291909155600355565b7389d24a6b4ccb1b6faa2625fe562bdd9a2326035981565b60035481565b60025481565b610ba06106b8565b610bbf57604051600160e51b62461bcd02815260040161029c90611077565b6001600160a01b038116610be857604051600160e51b62461bcd02815260040161029c90611067565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610c5257506000610c83565b82820282848281610c5f57fe5b0414610c8057604051600160e51b62461bcd02815260040161029c90611097565b90505b92915050565b6000808211610cad57604051600160e51b62461bcd02815260040161029c90611037565b818381610cb657fe5b049392505050565b600082821115610ce357604051600160e51b62461bcd02815260040161029c90611047565b50900390565b600082820183811015610c8057604051600160e51b62461bcd02815260040161029c90611087565b8035610c83816110e5565b8051610c83816110fc565b8051610c8381611105565b8035610c8381611105565b600060208284031215610d4f57600080fd5b6000610d5b8484610d11565b949350505050565b600060208284031215610d7557600080fd5b6000610d5b8484610d1c565b60008060408385031215610d9457600080fd5b6000610da08585610d27565b9250506020610db185828601610d1c565b9150509250929050565b600060208284031215610dcd57600080fd5b6000610d5b8484610d32565b600060208284031215610deb57600080fd5b6000610d5b8484610d27565b60008060408385031215610e0a57600080fd5b6000610e168585610d32565b9250506020610db185828601610d32565b610e30816110be565b82525050565b610e30816110c9565b610e30816110da565b6000610e55600f836110b5565b7f41535345545f4e4f545f4d415443480000000000000000000000000000000000815260200192915050565b6000610e8e600e836110b5565b7f4449564944494e475f4552524f52000000000000000000000000000000000000815260200192915050565b6000610ec76009836110b5565b600160b91b6829aaa12fa2a92927a902815260200192915050565b6000610eef600c836110b5565b7f57524f4e475f504152414d530000000000000000000000000000000000000000815260200192915050565b6000610f28600d836110b5565b7f494e56414c49445f4f574e455200000000000000000000000000000000000000815260200192915050565b6000610f616009836110b5565b600160b91b682727aa2fa7aba722a902815260200192915050565b6000610f896009836110b5565b600160b91b6820a2222fa2a92927a902815260200192915050565b6000610fb16009836110b5565b600160b91b6826aaa62fa2a92927a902815260200192915050565b610e3081610412565b60208101610c838284610e27565b60608101610ff18286610e27565b610ffe6020830185610e27565b610d5b6040830184610fcc565b60208101610c838284610e36565b60208101610c838284610e3f565b60208082528101610c8381610e48565b60208082528101610c8381610e81565b60208082528101610c8381610eba565b60208082528101610c8381610ee2565b60208082528101610c8381610f1b565b60208082528101610c8381610f54565b60208082528101610c8381610f7c565b60208082528101610c8381610fa4565b60208101610c838284610fcc565b90815260200190565b6000610c83826110ce565b151590565b6001600160a01b031690565b6000610c83826110be565b6110ee816110be565b81146110f957600080fd5b50565b6110ee816110c9565b6110ee8161041256fea265627a7a72305820c0f1234f2b36b7544ca27fe407e923c91324598c99be78653a69279875d037006c6578706572696d656e74616cf500370000000000000000000000000000000000000000000000000d2f13f7789f00000000000000000000000000000000000000000000000000000e92596fd6290000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638f32d59b116100c3578063c745d9e71161007c578063c745d9e71461022f578063d1051fbc14610237578063e0bab4c41461024a578063e38d6b5c14610252578063e45be8eb1461025a578063f2fde38b146102625761014d565b80638f32d59b146101ff578063a035b1fe14610207578063ad5c46481461020f578063b53e3a4d14610217578063b8d57df21461021f578063ba01a3df146102275761014d565b806341976e091161011557806341976e09146101aa57806359e02dd7146101bd578063673a7e28146101c5578063715018a6146101da57806375f54abc146101e25780638da5cb5b146101ea5761014d565b80630cc3be2f146101525780630d89e2b71461016757806328431282146101855780632b6e19231461019a5780633878d425146101a2575b600080fd5b610165610160366004610dbb565b610275565b005b61016f6102f3565b60405161017c9190611019565b60405180910390f35b61018d61030b565b60405161017c91906110a7565b61018d610318565b61016f610415565b61018d6101b8366004610d3d565b61042d565b61018d610476565b6101cd6104fb565b60405161017c919061100b565b610165610592565b61018d610603565b6101f26106a9565b60405161017c9190610fd5565b6101cd6106b8565b61018d6106c9565b6101f26106cf565b61018d6106e7565b61018d6106f3565b61018d610afc565b6101f2610b07565b610165610245366004610df7565b610b1f565b61016f610b74565b61018d610b8c565b61018d610b92565b610165610270366004610d3d565b610b98565b61027d6106b8565b6102a557604051600160e51b62461bcd02815260040161029c90611077565b60405180910390fd5b6102ad6104fb565b6102b75760018190555b7f1a15ab7124a4e1ce00837351261771caf1691cd7d85ed3a0ac3157a1ee1a38056001546040516102e891906110a7565b60405180910390a150565b73729d19f657bd0614b4985cf1d82531c67569197b81565b686c6b935b8bbd40000081565b604051600160e01b6370a082310281526000907309cabec1ead1c0ba254b09efb3ee13841712be1480319183917389d24a6b4ccb1b6faa2625fe562bdd9a23260359916370a082319161036d91600401610fd5565b60206040518083038186803b15801561038557600080fd5b505afa158015610399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103bd9190810190610dd9565b905060006103e9836103dd84670de0b6b3a764000063ffffffff610c4316565b9063ffffffff610c8916565b9050686c6b935b8bbd4000008310156104085760009350505050610412565b9250610412915050565b90565b7339755357759ce0d7f32dc8dc45414cca409ae24e81565b60006001600160a01b0382167389d24a6b4ccb1b6faa2625fe562bdd9a232603591461046e57604051600160e51b62461bcd02815260040161029c90611027565b505060015490565b600080610481610603565b90508061048e5750610412565b60006104986106f3565b905080156104bc57610408816103dd84670de0b6b3a764000063ffffffff610c4316565b60006104c6610318565b905080156104f5576104ea816103dd85670de0b6b3a764000063ffffffff610c4316565b935061041292505050565b50505090565b600080610506610476565b905080610517576000915050610412565b60015481141561052b576001915050610412565b60035481111561053e575060035461054d565b60025481101561054d57506002545b60018190556040517f1a15ab7124a4e1ce00837351261771caf1691cd7d85ed3a0ac3157a1ee1a3805906105829083906110a7565b60405180910390a1600191505090565b61059a6106b8565b6105b957604051600160e51b62461bcd02815260040161029c90611077565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080600073729d19f657bd0614b4985cf1d82531c67569197b6001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b15801561065457600080fd5b505afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061068c9190810190610d81565b91509150801561069e57509050610412565b600092505050610412565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60015481565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b678ac7230489e8000081565b60007339755357759ce0d7f32dc8dc45414cca409ae24e6001600160a01b031663c2b6b58c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061077a9190810190610d63565b8061080757507339755357759ce0d7f32dc8dc45414cca409ae24e6001600160a01b031663f582d2936040518163ffffffff1660e01b815260040160206040518083038186803b1580156107cd57600080fd5b505afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108059190810190610d63565b155b8061089457507339755357759ce0d7f32dc8dc45414cca409ae24e6001600160a01b03166301492a0b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561085a57600080fd5b505afa15801561086e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108929190810190610d63565b155b156108a157506000610412565b604051600160e11b630a2513a90281526000907339755357759ce0d7f32dc8dc45414cca409ae24e9063144a275290610912907389d24a6b4ccb1b6faa2625fe562bdd9a232603599073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290678ac7230489e8000090600401610fe3565b60206040518083038186803b15801561092a57600080fd5b505afa15801561093e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109629190810190610dd9565b6040517fff1fd9740000000000000000000000000000000000000000000000000000000081529091506000907339755357759ce0d7f32dc8dc45414cca409ae24e9063ff1fd974906109ec907389d24a6b4ccb1b6faa2625fe562bdd9a232603599073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290678ac7230489e8000090600401610fe3565b60206040518083038186803b158015610a0457600080fd5b505afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a3c9190810190610dd9565b90506000610a64678ac7230489e800006103dd85670de0b6b3a764000063ffffffff610c4316565b90506000610a8c678ac7230489e800006103dd85670de0b6b3a764000063ffffffff610c4316565b90506000610abc670de0b6b3a7640000610ab0856103dd868463ffffffff610c4316565b9063ffffffff610cbe16565b905066470de4df820000811115610adb57600095505050505050610412565b610af060026103dd858563ffffffff610ce916565b95505050505050610412565b66470de4df82000081565b7309cabec1ead1c0ba254b09efb3ee13841712be1481565b610b276106b8565b610b4657604051600160e51b62461bcd02815260040161029c90611077565b80821115610b6957604051600160e51b62461bcd02815260040161029c90611057565b600291909155600355565b7389d24a6b4ccb1b6faa2625fe562bdd9a2326035981565b60035481565b60025481565b610ba06106b8565b610bbf57604051600160e51b62461bcd02815260040161029c90611077565b6001600160a01b038116610be857604051600160e51b62461bcd02815260040161029c90611067565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610c5257506000610c83565b82820282848281610c5f57fe5b0414610c8057604051600160e51b62461bcd02815260040161029c90611097565b90505b92915050565b6000808211610cad57604051600160e51b62461bcd02815260040161029c90611037565b818381610cb657fe5b049392505050565b600082821115610ce357604051600160e51b62461bcd02815260040161029c90611047565b50900390565b600082820183811015610c8057604051600160e51b62461bcd02815260040161029c90611087565b8035610c83816110e5565b8051610c83816110fc565b8051610c8381611105565b8035610c8381611105565b600060208284031215610d4f57600080fd5b6000610d5b8484610d11565b949350505050565b600060208284031215610d7557600080fd5b6000610d5b8484610d1c565b60008060408385031215610d9457600080fd5b6000610da08585610d27565b9250506020610db185828601610d1c565b9150509250929050565b600060208284031215610dcd57600080fd5b6000610d5b8484610d32565b600060208284031215610deb57600080fd5b6000610d5b8484610d27565b60008060408385031215610e0a57600080fd5b6000610e168585610d32565b9250506020610db185828601610d32565b610e30816110be565b82525050565b610e30816110c9565b610e30816110da565b6000610e55600f836110b5565b7f41535345545f4e4f545f4d415443480000000000000000000000000000000000815260200192915050565b6000610e8e600e836110b5565b7f4449564944494e475f4552524f52000000000000000000000000000000000000815260200192915050565b6000610ec76009836110b5565b600160b91b6829aaa12fa2a92927a902815260200192915050565b6000610eef600c836110b5565b7f57524f4e475f504152414d530000000000000000000000000000000000000000815260200192915050565b6000610f28600d836110b5565b7f494e56414c49445f4f574e455200000000000000000000000000000000000000815260200192915050565b6000610f616009836110b5565b600160b91b682727aa2fa7aba722a902815260200192915050565b6000610f896009836110b5565b600160b91b6820a2222fa2a92927a902815260200192915050565b6000610fb16009836110b5565b600160b91b6826aaa62fa2a92927a902815260200192915050565b610e3081610412565b60208101610c838284610e27565b60608101610ff18286610e27565b610ffe6020830185610e27565b610d5b6040830184610fcc565b60208101610c838284610e36565b60208101610c838284610e3f565b60208082528101610c8381610e48565b60208082528101610c8381610e81565b60208082528101610c8381610eba565b60208082528101610c8381610ee2565b60208082528101610c8381610f1b565b60208082528101610c8381610f54565b60208082528101610c8381610f7c565b60208082528101610c8381610fa4565b60208101610c838284610fcc565b90815260200190565b6000610c83826110ce565b151590565b6001600160a01b031690565b6000610c83826110be565b6110ee816110be565b81146110f957600080fd5b50565b6110ee816110c9565b6110ee8161041256fea265627a7a72305820c0f1234f2b36b7544ca27fe407e923c91324598c99be78653a69279875d037006c6578706572696d656e74616cf50037

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

0000000000000000000000000000000000000000000000000d2f13f7789f00000000000000000000000000000000000000000000000000000e92596fd6290000

-----Decoded View---------------
Arg [0] : _minPrice (uint256): 950000000000000000
Arg [1] : _maxPrice (uint256): 1050000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000d2f13f7789f0000
Arg [1] : 0000000000000000000000000000000000000000000000000e92596fd6290000


Deployed Bytecode Sourcemap

9293:4418:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9293:4418:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10658:211;;;;;;;;;:::i;:::-;;9436:108;;;:::i;:::-;;;;;;;;;;;;;;;;10042:56;;;:::i;:::-;;;;;;;;13030:402;;;:::i;9653:87::-;;;:::i;10446:204::-;;;;;;;;;:::i;11636:630::-;;;:::i;11142:486::-;;;:::i;:::-;;;;;;;;3361:163;;;:::i;13440:268::-;;;:::i;2609:110::-;;;:::i;:::-;;;;;;;;2960:123;;;:::i;9369:20::-;;;:::i;9832:73::-;;;:::i;9912:51::-;;;:::i;12274:748::-;;;:::i;9970:56::-;;;:::i;9749:76::-;;;:::i;10877:257::-;;;;;;;;;:::i;9551:95::-;;;:::i;10181:23::-;;;:::i;10151:::-;;;:::i;3693:250::-;;;;;;;;;:::i;10658:211::-;2838:9;:7;:9::i;:::-;2830:31;;;;-1:-1:-1;;;;;2830:31:0;;;;;;;;;;;;;;;;;10771:13;:11;:13::i;:::-;10766:60;;10800:5;:14;;;10766:60;10843:18;10855:5;;10843:18;;;;;;;;;;;;;;;10658:211;:::o;9436:108::-;9501:42;9436:108;:::o;10042:56::-;10088:10;10042:56;:::o;13030:402::-;13196:22;;-1:-1:-1;;;;;13196:22:0;;13105:7;;9783:42;13150:15;;;13105:7;;9603:42;;13196:13;;:22;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13196:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13196:22:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13196:22:0;;;;;;;;;13176:42;-1:-1:-1;13229:20:0;13252:36;13278:9;13252:21;13176:42;13266:6;13252:21;:13;:21;:::i;:::-;:25;:36;:25;:36;:::i;:::-;13229:59;;10088:10;13305:9;:31;13301:124;;;13360:1;13353:8;;;;;;;13301:124;13401:12;-1:-1:-1;13394:19:0;;-1:-1:-1;;13394:19:0;13030:402;;:::o;9653:87::-;9697:42;9653:87;:::o;10446:204::-;10545:7;-1:-1:-1;;;;;10578:21:0;;9603:42;10578:21;10570:49;;;;-1:-1:-1;;;;;10570:49:0;;;;;;;;;-1:-1:-1;;10637:5:0;;;10446:204::o;11636:630::-;11700:14;11732:21;11756:18;:16;:18::i;:::-;11732:42;-1:-1:-1;11791:18:0;11787:64;;-1:-1:-1;11826:13:0;;11787:64;11863:20;11886:17;:15;:17::i;:::-;11863:40;-1:-1:-1;11920:16:0;;11916:126;;11962:40;11989:12;11962:22;:13;9421:6;11962:22;:17;:22;:::i;11916:126::-;12054:20;12077:17;:15;:17::i;:::-;12054:40;-1:-1:-1;12111:16:0;;12107:126;;12153:40;12180:12;12153:22;:13;9421:6;12153:22;:17;:22;:::i;:40::-;12144:49;-1:-1:-1;12208:13:0;;-1:-1:-1;;;12208:13:0;12107:126;-1:-1:-1;;;11636:630:0;:::o;11142:486::-;11199:4;11221:14;11238:6;:4;:6::i;:::-;11221:23;-1:-1:-1;11261:11:0;11257:56;;11296:5;11289:12;;;;;11257:56;11339:5;;11329:6;:15;11325:59;;;11368:4;11361:11;;;;;11325:59;11409:8;;11400:6;:17;11396:140;;;-1:-1:-1;11443:8:0;;11396:140;;;11482:8;;11473:6;:17;11469:67;;;-1:-1:-1;11516:8:0;;11469:67;11548:5;:14;;;11578:18;;;;;;11556:6;;11578:18;;;;;;;;;;11616:4;11609:11;;;11142:486;:::o;3361:163::-;2838:9;:7;:9::i;:::-;2830:31;;;;-1:-1:-1;;;;;2830:31:0;;;;;;;;;3483:1;3467:6;;3446:40;;-1:-1:-1;;;;;3467:6:0;;;;3446:40;;3483:1;;3446:40;3514:1;3497:19;;-1:-1:-1;;;;;;3497:19:0;;;3361:163::o;13440:268::-;13516:7;13542:13;13557:8;9501:42;-1:-1:-1;;;;;13569:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13569:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13569:21:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13569:21:0;;;;;;;;;13541:49;;;;13607:3;13603:98;;;-1:-1:-1;13642:5:0;-1:-1:-1;13627:21:0;;13603:98;13688:1;13681:8;;;;;;2609:110;2673:7;2705:6;-1:-1:-1;;;;;2705:6:0;2609:110;:::o;2960:123::-;3026:4;3069:6;-1:-1:-1;;;;;3069:6:0;3055:10;:20;;2960:123::o;9369:20::-;;;;:::o;9832:73::-;9863:42;9832:73;:::o;9912:51::-;9955:8;9912:51;:::o;12274:748::-;12349:7;9697:42;-1:-1:-1;;;;;12378:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12378:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12378:18:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12378:18:0;;;;;;;;;:43;;;;9697:42;-1:-1:-1;;;;;12401:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12401:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12401:20:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12401:20:0;;;;;;;;;12400:21;12378:43;:73;;;;9697:42;-1:-1:-1;;;;;12426:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12426:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12426:25:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12426:25:0;;;;;;;;;12425:26;12378:73;12374:114;;;-1:-1:-1;12475:1:0;12468:8;;12374:114;12517:58;;-1:-1:-1;;;;;12517:58:0;;12500:14;;9697:42;;12517:20;;:58;;9603:42;;9863;;9955:8;;12517:58;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12517:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12517:58:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12517:58:0;;;;;;;;;12603;;;;;12500:75;;-1:-1:-1;12586:14:0;;9697:42;;12603:20;;:58;;9603:42;;9863;;9955:8;;12603:58;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12603:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12603:58:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12603:58:0;;;;;;;;;12586:75;-1:-1:-1;12674:16:0;12693:37;9955:8;12693:15;:6;9421;12693:15;:10;:15;:::i;:37::-;12674:56;-1:-1:-1;12741:16:0;12760:37;9955:8;12760:15;:6;9421;12760:15;:10;:15;:::i;:37::-;12741:56;-1:-1:-1;12810:14:0;12827:40;9421:6;12827:31;12849:8;12827:17;12741:56;9421:6;12827:17;:12;:17;:::i;:31::-;:35;:40;:35;:40;:::i;:::-;12810:57;-1:-1:-1;10013:13:0;12884:25;;12880:135;;;12933:1;12926:8;;;;;;;;;12880:135;12974:29;13001:1;12974:22;:8;12987;12974:22;:12;:22;:::i;:29::-;12967:36;;;;;;;;;9970:56;10013:13;9970:56;:::o;9749:76::-;9783:42;9749:76;:::o;10877:257::-;2838:9;:7;:9::i;:::-;2830:31;;;;-1:-1:-1;;;;;2830:31:0;;;;;;;;;11038:9;11025;:22;;11017:47;;;;-1:-1:-1;;;;;11017:47:0;;;;;;;;;11075:8;:20;;;;11106:8;:20;10877:257::o;9551:95::-;9603:42;9551:95;:::o;10181:23::-;;;;:::o;10151:::-;;;;:::o;3693:250::-;2838:9;:7;:9::i;:::-;2830:31;;;;-1:-1:-1;;;;;2830:31:0;;;;;;;;;-1:-1:-1;;;;;3813:22:0;;3805:48;;;;-1:-1:-1;;;;;3805:48:0;;;;;;;;;3890:6;;;3869:38;;-1:-1:-1;;;;;3869:38:0;;;;3890:6;;;3869:38;;;3918:6;:17;;-1:-1:-1;;;;;;3918:17:0;-1:-1:-1;;;;;3918:17:0;;;;;;;;;;3693:250::o;4029:283::-;4139:7;4168:6;4164:47;;-1:-1:-1;4198:1:0;4191:8;;4164:47;4235:5;;;4239:1;4235;:5;:1;4259:5;;;;;:10;4251:32;;;;-1:-1:-1;;;;;4251:32:0;;;;;;;;;4303:1;-1:-1:-1;4029:283:0;;;;;:::o;4414:198::-;4524:7;4561:1;4557;:5;4549:32;;;;-1:-1:-1;;;;;4549:32:0;;;;;;;;;4603:1;4599;:5;;;;;;;4414:198;-1:-1:-1;;;4414:198:0:o;5070:194::-;5180:7;5218:1;5213;:6;;5205:28;;;;-1:-1:-1;;;;;5205:28:0;;;;;;;;;-1:-1:-1;5251:5:0;;;5070:194::o;5610:218::-;5720:7;5757:5;;;5781:6;;;;5773:28;;;;-1:-1:-1;;;;;5773:28:0;;;;;;;;5:130:-1;72:20;;97:33;72:20;97:33;;142:128;217:13;;235:30;217:13;235:30;;277:134;355:13;;373:33;355:13;373:33;;418:130;485:20;;510:33;485:20;510:33;;696:241;;800:2;788:9;779:7;775:23;771:32;768:2;;;816:1;813;806:12;768:2;851:1;868:53;913:7;893:9;868:53;;;858:63;762:175;-1:-1;;;;762:175;944:257;;1056:2;1044:9;1035:7;1031:23;1027:32;1024:2;;;1072:1;1069;1062:12;1024:2;1107:1;1124:61;1177:7;1157:9;1124:61;;1208:393;;;1337:2;1325:9;1316:7;1312:23;1308:32;1305:2;;;1353:1;1350;1343:12;1305:2;1388:1;1405:64;1461:7;1441:9;1405:64;;;1395:74;;1367:108;1506:2;1524:61;1577:7;1568:6;1557:9;1553:22;1524:61;;;1514:71;;1485:106;1299:302;;;;;;1608:241;;1712:2;1700:9;1691:7;1687:23;1683:32;1680:2;;;1728:1;1725;1718:12;1680:2;1763:1;1780:53;1825:7;1805:9;1780:53;;1856:263;;1971:2;1959:9;1950:7;1946:23;1942:32;1939:2;;;1987:1;1984;1977:12;1939:2;2022:1;2039:64;2095:7;2075:9;2039:64;;2126:366;;;2247:2;2235:9;2226:7;2222:23;2218:32;2215:2;;;2263:1;2260;2253:12;2215:2;2298:1;2315:53;2360:7;2340:9;2315:53;;;2305:63;;2277:97;2405:2;2423:53;2468:7;2459:6;2448:9;2444:22;2423:53;;2499:113;2582:24;2600:5;2582:24;;;2577:3;2570:37;2564:48;;;2619:104;2696:21;2711:5;2696:21;;2730:156;2828:52;2874:5;2828:52;;3246:364;;3406:67;3470:2;3465:3;3406:67;;;3506:66;3486:87;;3601:2;3592:12;;3392:218;-1:-1;;3392:218;3619:364;;3779:67;3843:2;3838:3;3779:67;;;3879:66;3859:87;;3974:2;3965:12;;3765:218;-1:-1;;3765:218;3992:363;;4152:66;4216:1;4211:3;4152:66;;;-1:-1;;;;;4231:87;;4346:2;4337:12;;4138:217;-1:-1;;4138:217;4364:364;;4524:67;4588:2;4583:3;4524:67;;;4624:66;4604:87;;4719:2;4710:12;;4510:218;-1:-1;;4510:218;4737:364;;4897:67;4961:2;4956:3;4897:67;;;4997:66;4977:87;;5092:2;5083:12;;4883:218;-1:-1;;4883:218;5110:363;;5270:66;5334:1;5329:3;5270:66;;;-1:-1;;;;;5349:87;;5464:2;5455:12;;5256:217;-1:-1;;5256:217;5482:363;;5642:66;5706:1;5701:3;5642:66;;;-1:-1;;;;;5721:87;;5836:2;5827:12;;5628:217;-1:-1;;5628:217;5854:363;;6014:66;6078:1;6073:3;6014:66;;;-1:-1;;;;;6093:87;;6208:2;6199:12;;6000:217;-1:-1;;6000:217;6225:113;6308:24;6326:5;6308:24;;6345:213;6463:2;6448:18;;6477:71;6452:9;6521:6;6477:71;;6565:435;6739:2;6724:18;;6753:71;6728:9;6797:6;6753:71;;;6835:72;6903:2;6892:9;6888:18;6879:6;6835:72;;;6918;6986:2;6975:9;6971:18;6962:6;6918:72;;7007:201;7119:2;7104:18;;7133:65;7108:9;7171:6;7133:65;;7215:243;7348:2;7333:18;;7362:86;7337:9;7421:6;7362:86;;7991:407;8182:2;8196:47;;;8167:18;;8257:131;8167:18;8257:131;;8405:407;8596:2;8610:47;;;8581:18;;8671:131;8581:18;8671:131;;8819:407;9010:2;9024:47;;;8995:18;;9085:131;8995:18;9085:131;;9233:407;9424:2;9438:47;;;9409:18;;9499:131;9409:18;9499:131;;9647:407;9838:2;9852:47;;;9823:18;;9913:131;9823:18;9913:131;;10061:407;10252:2;10266:47;;;10237:18;;10327:131;10237:18;10327:131;;10475:407;10666:2;10680:47;;;10651:18;;10741:131;10651:18;10741:131;;10889:407;11080:2;11094:47;;;11065:18;;11155:131;11065:18;11155:131;;11303:213;11421:2;11406:18;;11435:71;11410:9;11479:6;11435:71;;11524:163;11627:19;;;11676:4;11667:14;;11620:67;11695:91;;11757:24;11775:5;11757:24;;11793:85;11859:13;11852:21;;11835:43;11964:121;-1:-1;;;;;12026:54;;12009:76;12171:151;;12265:52;12311:5;12265:52;;13074:117;13143:24;13161:5;13143:24;;;13136:5;13133:35;13123:2;;13182:1;13179;13172:12;13123:2;13117:74;;13198:111;13264:21;13279:5;13264:21;;13316:117;13385:24;13403:5;13385:24;

Swarm Source

bzzr://c0f1234f2b36b7544ca27fe407e923c91324598c99be78653a69279875d03700

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.