ETH Price: $2,074.41 (-1.26%)

Contract

0x0aCd117a9D94818F37df8Ee95f6a30e2fafA08e7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x30783165111096842020-10-23 1:48:101968 days ago1603417690IN
0x0aCd117a...2fafA08e7
0 ETH0.0008380137
0x30783165111094022020-10-23 0:45:351968 days ago1603413935IN
0x0aCd117a...2fafA08e7
0 ETH0.0007474133
0x30783165111028432020-10-22 0:45:141969 days ago1603327514IN
0x0aCd117a...2fafA08e7
0 ETH0.0012683456
0x30783165110965932020-10-21 1:47:091970 days ago1603244829IN
0x0aCd117a...2fafA08e7
0 ETH0.0011777452
0x30783165110963362020-10-21 0:46:041970 days ago1603241164IN
0x0aCd117a...2fafA08e7
0 ETH0.0011550951
Push Report110900822020-10-20 1:47:311971 days ago1603158451IN
0x0aCd117a...2fafA08e7
0 ETH0.001024428
Push Report110898222020-10-20 0:46:371971 days ago1603154797IN
0x0aCd117a...2fafA08e7
0 ETH0.0011344731
0x30783165110835052020-10-19 1:47:231972 days ago1603072043IN
0x0aCd117a...2fafA08e7
0 ETH0.0006568229
0x30783165110832372020-10-19 0:46:541972 days ago1603068414IN
0x0aCd117a...2fafA08e7
0 ETH0.0005662225
0x30783165110770482020-10-18 1:47:041973 days ago1602985624IN
0x0aCd117a...2fafA08e7
0 ETH0.0007474133
0x30783165110767912020-10-18 0:45:381973 days ago1602981938IN
0x0aCd117a...2fafA08e7
0 ETH0.0004303319
0x30783165110640322020-10-16 1:46:561975 days ago1602812816IN
0x0aCd117a...2fafA08e7
0 ETH0.0019251685
0x30783165110637382020-10-16 0:45:211975 days ago1602809121IN
0x0aCd117a...2fafA08e7
0 ETH0.0019251685
Push Report110574932020-10-15 1:47:011976 days ago1602726421IN
0x0aCd117a...2fafA08e7
0 ETH0.0031098185
Push Report110571932020-10-15 0:45:151976 days ago1602722715IN
0x0aCd117a...2fafA08e7
0 ETH0.0031106685
0x30783165110509122020-10-14 1:46:551977 days ago1602640015IN
0x0aCd117a...2fafA08e7
0 ETH0.0019251685
0x30783165110506412020-10-14 0:45:051977 days ago1602636305IN
0x0aCd117a...2fafA08e7
0 ETH0.0019251685
Push Report110443652020-10-13 1:47:181978 days ago1602553638IN
0x0aCd117a...2fafA08e7
0 ETH0.0031098185
Push Report110440882020-10-13 0:45:001978 days ago1602549900IN
0x0aCd117a...2fafA08e7
0 ETH0.0031106685
0x30783165110378802020-10-12 1:48:591979 days ago1602467339IN
0x0aCd117a...2fafA08e7
0 ETH0.0007474133
0x30783165110376062020-10-12 0:45:291979 days ago1602463529IN
0x0aCd117a...2fafA08e7
0 ETH0.0006568229
0x30783165110313202020-10-11 1:47:091980 days ago1602380829IN
0x0aCd117a...2fafA08e7
0 ETH0.000928641
0x30783165110310532020-10-11 0:45:161980 days ago1602377116IN
0x0aCd117a...2fafA08e7
0 ETH0.000928641
Push Report110248152020-10-10 1:47:471981 days ago1602294467IN
0x0aCd117a...2fafA08e7
0 ETH0.0016829546
Push Report110245442020-10-10 0:45:251981 days ago1602290725IN
0x0aCd117a...2fafA08e7
0 ETH0.0016468245
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MedianOracle

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2020-09-13
*/

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

pragma solidity ^0.4.24;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, 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 numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts when dividing by 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 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);
    uint256 c = a - b;

    return c;
  }

  /**
  * @dev Adds two numbers, 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 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);
    return a % b;
  }
}

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

pragma solidity ^0.4.24;

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

pragma solidity ^0.4.24;


/**
 * @title Select
 * @dev Median Selection Library
 */
library Select {
    using SafeMath for uint256;

    /**
     * @dev Sorts the input array up to the denoted size, and returns the median.
     * @param array Input array to compute its median.
     * @param size Number of elements in array to compute the median for.
     * @return Median of array.
     */
    function computeMedian(uint256[] array, uint256 size)
        internal
        pure
        returns (uint256)
    {
        require(size > 0 && array.length >= size);
        for (uint256 i = 1; i < size; i++) {
            for (uint256 j = i; j > 0 && array[j-1]  > array[j]; j--) {
                uint256 tmp = array[j];
                array[j] = array[j-1];
                array[j-1] = tmp;
            }
        }
        if (size % 2 == 1) {
            return array[size / 2];
        } else {
            return array[size / 2].add(array[size / 2 - 1]) / 2;
        }
    }
}

// File: contracts/MedianOracle.sol

pragma solidity 0.4.24;





interface IOracle {
    function getData() external returns (uint256, bool);
}


/**
 * @title Median Oracle
 *
 * @notice Provides a value onchain that's aggregated from a whitelisted set of
 *         providers.
 */
contract MedianOracle is Ownable, IOracle {
    using SafeMath for uint256;

    struct Report {
        uint256 timestamp;
        uint256 payload;
    }

    // Addresses of providers authorized to push reports.
    address[] public providers;

    // Reports indexed by provider address. Report[0].timestamp > 0
    // indicates provider existence.
    mapping (address => Report[2]) public providerReports;

    event ProviderAdded(address provider);
    event ProviderRemoved(address provider);
    event ReportTimestampOutOfRange(address provider);
    event ProviderReportPushed(address indexed provider, uint256 payload, uint256 timestamp);

    // The number of seconds after which the report is deemed expired.
    uint256 public reportExpirationTimeSec;

    // The number of seconds since reporting that has to pass before a report
    // is usable.
    uint256 public reportDelaySec;

    // The minimum number of providers with valid reports to consider the
    // aggregate report valid.
    uint256 public minimumProviders = 1;

    // Timestamp of 1 is used to mark uninitialized and invalidated data.
    // This is needed so that timestamp of 1 is always considered expired.
    uint256 private constant MAX_REPORT_EXPIRATION_TIME = 520 weeks;

    /**
    * @param reportExpirationTimeSec_ The number of seconds after which the
    *                                 report is deemed expired.
    * @param reportDelaySec_ The number of seconds since reporting that has to
    *                        pass before a report is usable
    * @param minimumProviders_ The minimum number of providers with valid
    *                          reports to consider the aggregate report valid.
    */
    constructor(uint256 reportExpirationTimeSec_,
                uint256 reportDelaySec_,
                uint256 minimumProviders_)
        public
    {
        require(reportExpirationTimeSec_ <= MAX_REPORT_EXPIRATION_TIME);
        require(minimumProviders_ > 0);
        reportExpirationTimeSec = reportExpirationTimeSec_;
        reportDelaySec = reportDelaySec_;
        minimumProviders = minimumProviders_;
    }

     /**
     * @notice Sets the report expiration period.
     * @param reportExpirationTimeSec_ The number of seconds after which the
     *        report is deemed expired.
     */
    function setReportExpirationTimeSec(uint256 reportExpirationTimeSec_)
        external
        onlyOwner
    {
        require(reportExpirationTimeSec_ <= MAX_REPORT_EXPIRATION_TIME);
        reportExpirationTimeSec = reportExpirationTimeSec_;
    }

    /**
    * @notice Sets the time period since reporting that has to pass before a
    *         report is usable.
    * @param reportDelaySec_ The new delay period in seconds.
    */
    function setReportDelaySec(uint256 reportDelaySec_)
        external
        onlyOwner
    {
        reportDelaySec = reportDelaySec_;
    }

    /**
    * @notice Sets the minimum number of providers with valid reports to
    *         consider the aggregate report valid.
    * @param minimumProviders_ The new minimum number of providers.
    */
    function setMinimumProviders(uint256 minimumProviders_)
        external
        onlyOwner
    {
        require(minimumProviders_ > 0);
        minimumProviders = minimumProviders_;
    }

    /**
     * @notice Pushes a report for the calling provider.
     * @param payload is expected to be 18 decimal fixed point number.
     */
    function pushReport(uint256 payload) external
    {
        address providerAddress = msg.sender;
        Report[2] storage reports = providerReports[providerAddress];
        uint256[2] memory timestamps = [reports[0].timestamp, reports[1].timestamp];

        require(timestamps[0] > 0);

        uint8 index_recent = timestamps[0] >= timestamps[1] ? 0 : 1;
        uint8 index_past = 1 - index_recent;

        // Check that the push is not too soon after the last one.
        require(timestamps[index_recent].add(reportDelaySec) <= now);

        reports[index_past].timestamp = now;
        reports[index_past].payload = payload;

        emit ProviderReportPushed(providerAddress, payload, now);
    }

    /**
    * @notice Invalidates the reports of the calling provider.
    */
    function purgeReports() external
    {
        address providerAddress = msg.sender;
        require (providerReports[providerAddress][0].timestamp > 0);
        providerReports[providerAddress][0].timestamp=1;
        providerReports[providerAddress][1].timestamp=1;
    }

    /**
    * @notice Computes median of provider reports whose timestamps are in the
    *         valid timestamp range.
    * @return AggregatedValue: Median of providers reported values.
    *         valid: Boolean indicating an aggregated value was computed successfully.
    */
    function getData()
        external
        returns (uint256, bool)
    {
        uint256 reportsCount = providers.length;
        uint256[] memory validReports = new uint256[](reportsCount);
        uint256 size = 0;
        uint256 minValidTimestamp =  now.sub(reportExpirationTimeSec);
        uint256 maxValidTimestamp =  now.sub(reportDelaySec);

        for (uint256 i = 0; i < reportsCount; i++) {
            address providerAddress = providers[i];
            Report[2] memory reports = providerReports[providerAddress];

            uint8 index_recent = reports[0].timestamp >= reports[1].timestamp ? 0 : 1;
            uint8 index_past = 1 - index_recent;
            uint256 reportTimestampRecent = reports[index_recent].timestamp;
            if (reportTimestampRecent > maxValidTimestamp) {
                // Recent report is too recent.
                uint256 reportTimestampPast = providerReports[providerAddress][index_past].timestamp;
                if (reportTimestampPast < minValidTimestamp) {
                    // Past report is too old.
                    emit ReportTimestampOutOfRange(providerAddress);
                } else if (reportTimestampPast > maxValidTimestamp) {
                    // Past report is too recent.
                    emit ReportTimestampOutOfRange(providerAddress);
                } else {
                    // Using past report.
                    validReports[size++] = providerReports[providerAddress][index_past].payload;
                }
            } else {
                // Recent report is not too recent.
                if (reportTimestampRecent < minValidTimestamp) {
                    // Recent report is too old.
                    emit ReportTimestampOutOfRange(providerAddress);
                } else {
                    // Using recent report.
                    validReports[size++] = providerReports[providerAddress][index_recent].payload;
                }
            }
        }

        if (size < minimumProviders) {
            return (0, false);
        }

        return (Select.computeMedian(validReports, size), true);
    }

    /**
     * @notice Authorizes a provider.
     * @param provider Address of the provider.
     */
    function addProvider(address provider)
        external
        onlyOwner
    {
        require(providerReports[provider][0].timestamp == 0);
        providers.push(provider);
        providerReports[provider][0].timestamp = 1;
        emit ProviderAdded(provider);
    }

    /**
     * @notice Revokes provider authorization.
     * @param provider Address of the provider.
     */
    function removeProvider(address provider)
        external
        onlyOwner
    {
        delete providerReports[provider];
        for (uint256 i = 0; i < providers.length; i++) {
            if (providers[i] == provider) {
                if (i + 1  != providers.length) {
                    providers[i] = providers[providers.length-1];
                }
                providers.length--;
                emit ProviderRemoved(provider);
                break;
            }
        }
    }

    /**
     * @return The number of authorized providers.
     */
    function providersSize()
        external
        view
        returns (uint256)
    {
        return providers.length;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"reportDelaySec","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"payload","type":"uint256"}],"name":"pushReport","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"provider","type":"address"}],"name":"addProvider","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"providers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"provider","type":"address"}],"name":"removeProvider","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"minimumProviders","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"purgeReports","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"reportDelaySec_","type":"uint256"}],"name":"setReportDelaySec","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"providersSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reportExpirationTimeSec","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"minimumProviders_","type":"uint256"}],"name":"setMinimumProviders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"providerReports","outputs":[{"name":"timestamp","type":"uint256"},{"name":"payload","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"reportExpirationTimeSec_","type":"uint256"}],"name":"setReportExpirationTimeSec","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"reportExpirationTimeSec_","type":"uint256"},{"name":"reportDelaySec_","type":"uint256"},{"name":"minimumProviders_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"provider","type":"address"}],"name":"ProviderAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"provider","type":"address"}],"name":"ProviderRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"provider","type":"address"}],"name":"ReportTimestampOutOfRange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"provider","type":"address"},{"indexed":false,"name":"payload","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"ProviderReportPushed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6080604052600160055534801561001557600080fd5b50604051606080611817833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36312bed400831115151561011b57600080fd5b60008111151561012a57600080fd5b8260038190555081600481905550806005819055505050506116c6806101516000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806312e800f1146101015780631e20d14b1461012c5780633bc5de301461015957806346e2577a1461018f57806350f3fc81146101d2578063715018a61461023f5780638a355a57146102565780638da5cb5b146102995780638f32d59b146102f0578063b577c0c71461031f578063d13d59711461034a578063da6b0eea14610361578063dcbb82531461038e578063df982985146103b9578063ef35bcce146103e4578063f10864b614610411578063f2fde38b14610479578063f68be513146104bc575b600080fd5b34801561010d57600080fd5b506101166104e9565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b50610157600480360381019080803590602001909291905050506104ef565b005b34801561016557600080fd5b5061016e6106b6565b60405180838152602001821515151581526020019250505060405180910390f35b34801561019b57600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b3480156101de57600080fd5b506101fd60048036038101908080359060200190929190505050610d13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024b57600080fd5b50610254610d51565b005b34801561026257600080fd5b50610297600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e23565b005b3480156102a557600080fd5b506102ae61103a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fc57600080fd5b50610305611063565b604051808215151515815260200191505060405180910390f35b34801561032b57600080fd5b506103346110ba565b6040518082815260200191505060405180910390f35b34801561035657600080fd5b5061035f6110c0565b005b34801561036d57600080fd5b5061038c600480360381019080803590602001909291905050506111df565b005b34801561039a57600080fd5b506103a36111fc565b6040518082815260200191505060405180910390f35b3480156103c557600080fd5b506103ce611209565b6040518082815260200191505060405180910390f35b3480156103f057600080fd5b5061040f6004803603810190808035906020019092919050505061120f565b005b34801561041d57600080fd5b5061045c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123b565b604051808381526020018281526020019250505060405180910390f35b34801561048557600080fd5b506104ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611271565b005b3480156104c857600080fd5b506104e760048036038101908080359060200190929190505050611290565b005b60045481565b6000806104fa6115b4565b600080339450600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350604080519081016040528085600060028110151561055b57fe5b6002020160000154815260200185600160028110151561057757fe5b60020201600001548152509250600083600060028110151561059557fe5b60200201511115156105a657600080fd5b8260016002811015156105b557fe5b60200201518360006002811015156105c957fe5b602002015110156105db5760016105de565b60005b915081600103905042610611600454858560ff166002811015156105fe57fe5b60200201516112c090919063ffffffff16565b1115151561061e57600080fd5b42848260ff1660028110151561063057fe5b600202016000018190555085848260ff1660028110151561064d57fe5b60020201600101819055508473ffffffffffffffffffffffffffffffffffffffff167f460fcc5a1888965d48c2cab000fe20da51b1297d995af79a1924e2312d0d82b38742604051808381526020018281526020019250505060405180910390a2505050505050565b6000806000606060008060008060006106cd6115d6565b6000806000806001805490509b508b60405190808252806020026020018201604052801561070a5781602001602082028038833980820191505090505b509a5060009950610726600354426112e190919063ffffffff16565b985061073d600454426112e190919063ffffffff16565b9750600096505b8b871015610b3d5760018781548110151561075b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600280602002604051908101604052809291906000905b8282101561081a5783826002020160408051908101604052908160008201548152602001600182015481525050815260200190600101906107de565b50505050945084600160028110151561082f57fe5b60200201516000015185600060028110151561084757fe5b602002015160000151101561085d576001610860565b60005b9350836001039250848460ff1660028110151561087957fe5b602002015160000151915087821115610a4557600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff166002811015156108db57fe5b6002020160000154905088811015610955577f71f61642cb57ac11764a2f35fb4edc5361ced458af35bbed8f5ebf708c10e34186604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1610a40565b878111156109c5577f71f61642cb57ac11764a2f35fb4edc5361ced458af35bbed8f5ebf708c10e34186604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1610a3f565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff16600281101515610a1457fe5b60020201600101548b8b806001019c50815181101515610a3057fe5b90602001906020020181815250505b5b610b30565b88821015610ab5577f71f61642cb57ac11764a2f35fb4edc5361ced458af35bbed8f5ebf708c10e34186604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1610b2f565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208460ff16600281101515610b0457fe5b60020201600101548b8b806001019c50815181101515610b2057fe5b90602001906020020181815250505b5b8680600101975050610744565b6005548a1015610b56576000808191509d509d50610b67565b610b608b8b611302565b60019d509d505b5050505050505050505050509091565b610b7f611063565b1515610b8a57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600281101515610bd957fe5b6002020160000154141515610bed57600080fd5b60018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600281101515610ca257fe5b60020201600001819055507fae9c2c6481964847714ce58f65a7f6dcc41d0d8394449bacdf161b5920c4744a81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181815481101515610d2257fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d59611063565b1515610d6457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610e2d611063565b1515610e3857600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e839190611604565b600090505b600180549050811015611036578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515610ebb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110295760018054905060018201141515610fab57600180808054905003815481101515610f2857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600182815481101515610f6257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001805480919060019003610fc0919061162f565b507f1589f8555933761a3cff8aa925061be3b46e2dd43f621322ab611d300f62b1d982604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1611036565b8080600101915050610e88565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60055481565b60003390506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060028110151561111457fe5b600202016000015411151561112857600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060028110151561117757fe5b60020201600001819055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060016002811015156111d157fe5b600202016000018190555050565b6111e7611063565b15156111f257600080fd5b8060048190555050565b6000600180549050905090565b60035481565b611217611063565b151561122257600080fd5b60008111151561123157600080fd5b8060058190555050565b60026020528160005260406000208160028110151561125657fe5b60020201600091509150508060000154908060010154905082565b611279611063565b151561128457600080fd5b61128d816114ba565b50565b611298611063565b15156112a357600080fd5b6312bed40081111515156112b657600080fd5b8060038190555050565b60008082840190508381101515156112d757600080fd5b8091505092915050565b6000808383111515156112f357600080fd5b82840390508091505092915050565b600080600080600085118015611319575084865110155b151561132457600080fd5b600192505b84831015611406578291505b6000821180156113755750858281518110151561134e57fe5b90602001906020020151866001840381518110151561136957fe5b90602001906020020151115b156113f957858281518110151561138857fe5b90602001906020020151905085600183038151811015156113a557fe5b9060200190602002015186838151811015156113bd57fe5b90602001906020020181815250508086600184038151811015156113dd57fe5b9060200190602002018181525050818060019003925050611335565b8280600101935050611329565b600160028681151561141457fe5b061415611446578560028681151561142857fe5b0481518110151561143557fe5b9060200190602002015193506114b1565b60026114a487600160028981151561145a57fe5b040381518110151561146857fe5b906020019060200201518860028981151561147f57fe5b0481518110151561148c57fe5b906020019060200201516112c090919063ffffffff16565b8115156114ad57fe5b0493505b50505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156114f657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600290602082028038833980820191505090505090565b6080604051908101604052806002905b6115ee61165b565b8152602001906001900390816115e65790505090565b5060008082016000905560018201600090555060020160008082016000905560018201600090555050565b815481835581811115611656578183600052602060002091820191016116559190611675565b5b505050565b604080519081016040528060008152602001600081525090565b61169791905b8082111561169357600081600090555060010161167b565b5090565b905600a165627a7a723058201180d8dc39940c6164f7e10bb2cc810184f5e6261b9f720216bac7061a7e695d0029000000000000000000000000000000000000000000000000000000000051bd000000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806312e800f1146101015780631e20d14b1461012c5780633bc5de301461015957806346e2577a1461018f57806350f3fc81146101d2578063715018a61461023f5780638a355a57146102565780638da5cb5b146102995780638f32d59b146102f0578063b577c0c71461031f578063d13d59711461034a578063da6b0eea14610361578063dcbb82531461038e578063df982985146103b9578063ef35bcce146103e4578063f10864b614610411578063f2fde38b14610479578063f68be513146104bc575b600080fd5b34801561010d57600080fd5b506101166104e9565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b50610157600480360381019080803590602001909291905050506104ef565b005b34801561016557600080fd5b5061016e6106b6565b60405180838152602001821515151581526020019250505060405180910390f35b34801561019b57600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b77565b005b3480156101de57600080fd5b506101fd60048036038101908080359060200190929190505050610d13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024b57600080fd5b50610254610d51565b005b34801561026257600080fd5b50610297600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e23565b005b3480156102a557600080fd5b506102ae61103a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fc57600080fd5b50610305611063565b604051808215151515815260200191505060405180910390f35b34801561032b57600080fd5b506103346110ba565b6040518082815260200191505060405180910390f35b34801561035657600080fd5b5061035f6110c0565b005b34801561036d57600080fd5b5061038c600480360381019080803590602001909291905050506111df565b005b34801561039a57600080fd5b506103a36111fc565b6040518082815260200191505060405180910390f35b3480156103c557600080fd5b506103ce611209565b6040518082815260200191505060405180910390f35b3480156103f057600080fd5b5061040f6004803603810190808035906020019092919050505061120f565b005b34801561041d57600080fd5b5061045c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123b565b604051808381526020018281526020019250505060405180910390f35b34801561048557600080fd5b506104ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611271565b005b3480156104c857600080fd5b506104e760048036038101908080359060200190929190505050611290565b005b60045481565b6000806104fa6115b4565b600080339450600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350604080519081016040528085600060028110151561055b57fe5b6002020160000154815260200185600160028110151561057757fe5b60020201600001548152509250600083600060028110151561059557fe5b60200201511115156105a657600080fd5b8260016002811015156105b557fe5b60200201518360006002811015156105c957fe5b602002015110156105db5760016105de565b60005b915081600103905042610611600454858560ff166002811015156105fe57fe5b60200201516112c090919063ffffffff16565b1115151561061e57600080fd5b42848260ff1660028110151561063057fe5b600202016000018190555085848260ff1660028110151561064d57fe5b60020201600101819055508473ffffffffffffffffffffffffffffffffffffffff167f460fcc5a1888965d48c2cab000fe20da51b1297d995af79a1924e2312d0d82b38742604051808381526020018281526020019250505060405180910390a2505050505050565b6000806000606060008060008060006106cd6115d6565b6000806000806001805490509b508b60405190808252806020026020018201604052801561070a5781602001602082028038833980820191505090505b509a5060009950610726600354426112e190919063ffffffff16565b985061073d600454426112e190919063ffffffff16565b9750600096505b8b871015610b3d5760018781548110151561075b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169550600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600280602002604051908101604052809291906000905b8282101561081a5783826002020160408051908101604052908160008201548152602001600182015481525050815260200190600101906107de565b50505050945084600160028110151561082f57fe5b60200201516000015185600060028110151561084757fe5b602002015160000151101561085d576001610860565b60005b9350836001039250848460ff1660028110151561087957fe5b602002015160000151915087821115610a4557600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff166002811015156108db57fe5b6002020160000154905088811015610955577f71f61642cb57ac11764a2f35fb4edc5361ced458af35bbed8f5ebf708c10e34186604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1610a40565b878111156109c5577f71f61642cb57ac11764a2f35fb4edc5361ced458af35bbed8f5ebf708c10e34186604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1610a3f565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff16600281101515610a1457fe5b60020201600101548b8b806001019c50815181101515610a3057fe5b90602001906020020181815250505b5b610b30565b88821015610ab5577f71f61642cb57ac11764a2f35fb4edc5361ced458af35bbed8f5ebf708c10e34186604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1610b2f565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208460ff16600281101515610b0457fe5b60020201600101548b8b806001019c50815181101515610b2057fe5b90602001906020020181815250505b5b8680600101975050610744565b6005548a1015610b56576000808191509d509d50610b67565b610b608b8b611302565b60019d509d505b5050505050505050505050509091565b610b7f611063565b1515610b8a57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600281101515610bd957fe5b6002020160000154141515610bed57600080fd5b60018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600281101515610ca257fe5b60020201600001819055507fae9c2c6481964847714ce58f65a7f6dcc41d0d8394449bacdf161b5920c4744a81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181815481101515610d2257fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d59611063565b1515610d6457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610e2d611063565b1515610e3857600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e839190611604565b600090505b600180549050811015611036578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515610ebb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110295760018054905060018201141515610fab57600180808054905003815481101515610f2857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600182815481101515610f6257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001805480919060019003610fc0919061162f565b507f1589f8555933761a3cff8aa925061be3b46e2dd43f621322ab611d300f62b1d982604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1611036565b8080600101915050610e88565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60055481565b60003390506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060028110151561111457fe5b600202016000015411151561112857600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060028110151561117757fe5b60020201600001819055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060016002811015156111d157fe5b600202016000018190555050565b6111e7611063565b15156111f257600080fd5b8060048190555050565b6000600180549050905090565b60035481565b611217611063565b151561122257600080fd5b60008111151561123157600080fd5b8060058190555050565b60026020528160005260406000208160028110151561125657fe5b60020201600091509150508060000154908060010154905082565b611279611063565b151561128457600080fd5b61128d816114ba565b50565b611298611063565b15156112a357600080fd5b6312bed40081111515156112b657600080fd5b8060038190555050565b60008082840190508381101515156112d757600080fd5b8091505092915050565b6000808383111515156112f357600080fd5b82840390508091505092915050565b600080600080600085118015611319575084865110155b151561132457600080fd5b600192505b84831015611406578291505b6000821180156113755750858281518110151561134e57fe5b90602001906020020151866001840381518110151561136957fe5b90602001906020020151115b156113f957858281518110151561138857fe5b90602001906020020151905085600183038151811015156113a557fe5b9060200190602002015186838151811015156113bd57fe5b90602001906020020181815250508086600184038151811015156113dd57fe5b9060200190602002018181525050818060019003925050611335565b8280600101935050611329565b600160028681151561141457fe5b061415611446578560028681151561142857fe5b0481518110151561143557fe5b9060200190602002015193506114b1565b60026114a487600160028981151561145a57fe5b040381518110151561146857fe5b906020019060200201518860028981151561147f57fe5b0481518110151561148c57fe5b906020019060200201516112c090919063ffffffff16565b8115156114ad57fe5b0493505b50505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156114f657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600290602082028038833980820191505090505090565b6080604051908101604052806002905b6115ee61165b565b8152602001906001900390816115e65790505090565b5060008082016000905560018201600090555060020160008082016000905560018201600090555050565b815481835581811115611656578183600052602060002091820191016116559190611675565b5b505050565b604080519081016040528060008152602001600081525090565b61169791905b8082111561169357600081600090555060010161167b565b5090565b905600a165627a7a723058201180d8dc39940c6164f7e10bb2cc810184f5e6261b9f720216bac7061a7e695d0029

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

000000000000000000000000000000000000000000000000000000000051bd000000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : reportExpirationTimeSec_ (uint256): 5356800
Arg [1] : reportDelaySec_ (uint256): 3600
Arg [2] : minimumProviders_ (uint256): 1

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000051bd00
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000e10
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000001


Deployed Bytecode Sourcemap

5251:8353:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6142:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6142:29:0;;;;;;;;;;;;;;;;;;;;;;;8802:726;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8802:726:0;;;;;;;;;;;;;;;;;;;;;;;;;;10195:2170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10195:2170:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12479:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12479:279:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5478:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5478:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3169:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3169:130:0;;;;;;12881:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12881:511:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2510:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2510:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2812:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2812:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6287:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6287:35:0;;;;;;;;;;;;;;;;;;;;;;;9617:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9617:279:0;;;;;;8087:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8087:145:0;;;;;;;;;;;;;;;;;;;;;;;;;;13470:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13470:131:0;;;;;;;;;;;;;;;;;;;;;;;5997:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5997:38:0;;;;;;;;;;;;;;;;;;;;;;;8452:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8452:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;5620:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3466:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3466:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7633:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7633:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;6142:29;;;;:::o;8802:726::-;8864:23;8911:25;8982:28;;:::i;:::-;9109:18;9179:16;8890:10;8864:36;;8939:15;:32;8955:15;8939:32;;;;;;;;;;;;;;;8911:60;;8982:75;;;;;;;;;9014:7;9022:1;9014:10;;;;;;;;;;;;:20;;;8982:75;;;;9036:7;9044:1;9036:10;;;;;;;;;;;;:20;;;8982:75;;;;;9094:1;9078:10;9089:1;9078:13;;;;;;;;;;;;;:17;9070:26;;;;;;;;9147:10;9158:1;9147:13;;;;;;;;;;;;;9130:10;9141:1;9130:13;;;;;;;;;;;;;:30;;:38;;9167:1;9130:38;;;9163:1;9130:38;9109:59;;9202:12;9198:1;:16;9179:35;;9351:3;9303:44;9332:14;;9303:10;9314:12;9303:24;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;:51;;9295:60;;;;;;;;9400:3;9368:7;9376:10;9368:19;;;;;;;;;;;;;;:29;;:35;;;;9444:7;9414;9422:10;9414:19;;;;;;;;;;;;;;:27;;:37;;;;9490:15;9469:51;;;9507:7;9516:3;9469:51;;;;;;;;;;;;;;;;;;;;;;;;8802:726;;;;;;:::o;10195:2170::-;10250:7;10259:4;10281:20;10331:29;10401:12;10428:25;10500;10570:9;10623:23;10676:24;;:::i;:::-;10752:18;10840:16;10890:29;11083:27;10304:9;:16;;;;10281:39;;10377:12;10363:27;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10363:27:0;;;;10331:59;;10416:1;10401:16;;10457:32;10465:23;;10457:3;:7;;:32;;;;:::i;:::-;10428:61;;10529:23;10537:14;;10529:3;:7;;:23;;;;:::i;:::-;10500:52;;10582:1;10570:13;;10565:1640;10589:12;10585:1;:16;10565:1640;;;10649:9;10659:1;10649:12;;;;;;;;;;;;;;;;;;;;;;;;;;;10623:38;;10703:15;:32;10719:15;10703:32;;;;;;;;;;;;;;;10676:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10797:7;10805:1;10797:10;;;;;;;;;;;;;:20;;;10773:7;10781:1;10773:10;;;;;;;;;;;;;:20;;;:44;;:52;;10824:1;10773:52;;;10820:1;10773:52;10752:73;;10863:12;10859:1;:16;10840:35;;10922:7;10930:12;10922:21;;;;;;;;;;;;;;;:31;;;10890:63;;10996:17;10972:21;:41;10968:1226;;;11113:15;:32;11129:15;11113:32;;;;;;;;;;;;;;;11146:10;11113:44;;;;;;;;;;;;;;:54;;;11083:84;;11212:17;11190:19;:39;11186:542;;;11307:42;11333:15;11307:42;;;;;;;;;;;;;;;;;;;;;;11186:542;;;11401:17;11379:19;:39;11375:353;;;11499:42;11525:15;11499:42;;;;;;;;;;;;;;;;;;;;;;11375:353;;;11656:15;:32;11672:15;11656:32;;;;;;;;;;;;;;;11689:10;11656:44;;;;;;;;;;;;;;:52;;;11633:12;11646:6;;;;;;11633:20;;;;;;;;;;;;;;;;;:75;;;;;11375:353;11186:542;10968:1226;;;11849:17;11825:21;:41;11821:358;;;11946:42;11972:15;11946:42;;;;;;;;;;;;;;;;;;;;;;11821:358;;;12105:15;:32;12121:15;12105:32;;;;;;;;;;;;;;;12138:12;12105:46;;;;;;;;;;;;;;:54;;;12082:12;12095:6;;;;;;12082:20;;;;;;;;;;;;;;;;;:77;;;;;11821:358;10968:1226;10603:3;;;;;;;10565:1640;;;12228:16;;12221:4;:23;12217:73;;;12269:1;12272:5;12261:17;;;;;;;;;12217:73;12310:40;12331:12;12345:4;12310:20;:40::i;:::-;12352:4;12302:55;;;;10195:2170;;;;;;;;;;;;;;;:::o;12479:279::-;2703:9;:7;:9::i;:::-;2695:18;;;;;;;;12621:1;12579:15;:25;12595:8;12579:25;;;;;;;;;;;;;;;12605:1;12579:28;;;;;;;;;;;;:38;;;:43;12571:52;;;;;;;;12634:9;12649:8;12634:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12634:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12710:1;12669:15;:25;12685:8;12669:25;;;;;;;;;;;;;;;12695:1;12669:28;;;;;;;;;;;;:38;;:42;;;;12727:23;12741:8;12727:23;;;;;;;;;;;;;;;;;;;;;;12479:279;:::o;5478:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3169:130::-;2703:9;:7;:9::i;:::-;2695:18;;;;;;;;3264:1;3227:40;;3248:6;;;;;;;;;;;3227:40;;;;;;;;;;;;3291:1;3274:6;;:19;;;;;;;;;;;;;;;;;;3169:130::o;12881:511::-;13024:9;2703;:7;:9::i;:::-;2695:18;;;;;;;;12983:15;:25;12999:8;12983:25;;;;;;;;;;;;;;;;12976:32;;;;:::i;:::-;13036:1;13024:13;;13019:366;13043:9;:16;;;;13039:1;:20;13019:366;;;13101:8;13085:24;;:9;13095:1;13085:12;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;13081:293;;;13144:9;:16;;;;13138:1;13134;:5;:26;;13130:119;;;13200:9;13227:1;13210:9;:16;;;;:18;13200:29;;;;;;;;;;;;;;;;;;;;;;;;;;;13185:9;13195:1;13185:12;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13130:119;13267:9;:18;;;;;;;;;;;;:::i;:::-;;13309:25;13325:8;13309:25;;;;;;;;;;;;;;;;;;;;;;13353:5;;13081:293;13061:3;;;;;;;13019:366;;;12881:511;;:::o;2510:72::-;2547:7;2570:6;;;;;;;;;;;2563:13;;2510:72;:::o;2812:85::-;2851:4;2885:6;;;;;;;;;;;2871:20;;:10;:20;;;2864:27;;2812:85;:::o;6287:35::-;;;;:::o;9617:279::-;9666:23;9692:10;9666:36;;9770:1;9722:15;:32;9738:15;9722:32;;;;;;;;;;;;;;;9755:1;9722:35;;;;;;;;;;;;:45;;;:49;9713:59;;;;;;;;9829:1;9783:15;:32;9799:15;9783:32;;;;;;;;;;;;;;;9816:1;9783:35;;;;;;;;;;;;:45;;:47;;;;9887:1;9841:15;:32;9857:15;9841:32;;;;;;;;;;;;;;;9874:1;9841:35;;;;;;;;;;;;:45;;:47;;;;9617:279;:::o;8087:145::-;2703:9;:7;:9::i;:::-;2695:18;;;;;;;;8209:15;8192:14;:32;;;;8087:145;:::o;13470:131::-;13545:7;13577:9;:16;;;;13570:23;;13470:131;:::o;5997:38::-;;;;:::o;8452:194::-;2703:9;:7;:9::i;:::-;2695:18;;;;;;;;8589:1;8569:17;:21;8561:30;;;;;;;;8621:17;8602:16;:36;;;;8452:194;:::o;5620:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3466:103::-;2703:9;:7;:9::i;:::-;2695:18;;;;;;;;3535:28;3554:8;3535:18;:28::i;:::-;3466:103;:::o;7633:255::-;2703:9;:7;:9::i;:::-;2695:18;;;;;;;;6536:9;7764:24;:54;;7756:63;;;;;;;;7856:24;7830:23;:50;;;;7633:255;:::o;1383:136::-;1441:7;1457:9;1473:1;1469;:5;1457:17;;1494:1;1489;:6;;1481:15;;;;;;;;1512:1;1505:8;;1383:136;;;;;:::o;1179:::-;1237:7;1275:9;1266:1;1261;:6;;1253:15;;;;;;;;1291:1;1287;:5;1275:17;;1308:1;1301:8;;1179:136;;;;;:::o;4340:601::-;4444:7;4526:9;4576;4648:11;4484:1;4477:4;:8;:32;;;;;4505:4;4489:5;:12;:20;;4477:32;4469:41;;;;;;;;4538:1;4526:13;;4521:251;4545:4;4541:1;:8;4521:251;;;4588:1;4576:13;;4571:190;4595:1;4591;:5;:31;;;;;4614:5;4620:1;4614:8;;;;;;;;;;;;;;;;;;4600:5;4608:1;4606;:3;4600:10;;;;;;;;;;;;;;;;;;:22;4591:31;4571:190;;;4662:5;4668:1;4662:8;;;;;;;;;;;;;;;;;;4648:22;;4700:5;4708:1;4706;:3;4700:10;;;;;;;;;;;;;;;;;;4689:5;4695:1;4689:8;;;;;;;;;;;;;;;;;:21;;;;;4742:3;4729:5;4737:1;4735;:3;4729:10;;;;;;;;;;;;;;;;;:16;;;;;4624:3;;;;;;;;4571:190;;;4551:3;;;;;;;4521:251;;;4798:1;4793;4786:4;:8;;;;;;;;:13;4782:152;;;4823:5;4836:1;4829:4;:8;;;;;;;;4823:15;;;;;;;;;;;;;;;;;;4816:22;;;;4782:152;4921:1;4878:40;4898:5;4915:1;4911;4904:4;:8;;;;;;;;:12;4898:19;;;;;;;;;;;;;;;;;;4878:5;4891:1;4884:4;:8;;;;;;;;4878:15;;;;;;;;;;;;;;;;;;:19;;:40;;;;:::i;:::-;:44;;;;;;;;4871:51;;4340:601;;;;;;;;:::o;3709:173::-;3799:1;3779:22;;:8;:22;;;;3771:31;;;;;;;;3843:8;3814:38;;3835:6;;;;;;;;;;;3814:38;;;;;;;;;;;;3868:8;3859:6;;:17;;;;;;;;;;;;;;;;;;3709:173;:::o;5251:8353::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5251:8353:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://1180d8dc39940c6164f7e10bb2cc810184f5e6261b9f720216bac7061a7e695d

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.