ETH Price: $2,357.10 (+0.14%)
Gas: 35 Gwei

Contract

0xb825e25856bD98b3f2FAF2aEb6Cb8742B38C4025
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
Value
Update Result146525562022-04-25 7:50:58594 days 12 hrs ago1650873058IN
0xb825e2...B38C4025
0 ETH0.0008285638.13545864
Update Result123357172021-04-29 13:49:37955 days 6 hrs ago1619704177IN
0xb825e2...B38C4025
0 ETH0.0012436657.2407522
Remove Authoriza...122386742021-04-14 14:06:39970 days 6 hrs ago1618409199IN
0xb825e2...B38C4025
0 ETH0.00223432155
Add Authorizatio...122386682021-04-14 14:05:45970 days 6 hrs ago1618409145IN
0xb825e2...B38C4025
0 ETH0.00644315147
0x60806040122386622021-04-14 14:04:36970 days 6 hrs ago1618409076IN
 Create: ChainlinkRelayer
0 ETH0.14608856152

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ChainlinkRelayer

Compiler Version
v0.6.7+commit.b8d736ae

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-04-14
*/

pragma solidity 0.6.7;

contract GebMath {
    uint256 public constant RAY = 10 ** 27;
    uint256 public constant WAD = 10 ** 18;

    function ray(uint x) public pure returns (uint z) {
        z = multiply(x, 10 ** 9);
    }
    function rad(uint x) public pure returns (uint z) {
        z = multiply(x, 10 ** 27);
    }
    function minimum(uint x, uint y) public pure returns (uint z) {
        z = (x <= y) ? x : y;
    }
    function addition(uint x, uint y) public pure returns (uint z) {
        z = x + y;
        require(z >= x, "uint-uint-add-overflow");
    }
    function subtract(uint x, uint y) public pure returns (uint z) {
        z = x - y;
        require(z <= x, "uint-uint-sub-underflow");
    }
    function multiply(uint x, uint y) public pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, "uint-uint-mul-overflow");
    }
    function rmultiply(uint x, uint y) public pure returns (uint z) {
        z = multiply(x, y) / RAY;
    }
    function rdivide(uint x, uint y) public pure returns (uint z) {
        z = multiply(x, RAY) / y;
    }
    function wdivide(uint x, uint y) public pure returns (uint z) {
        z = multiply(x, WAD) / y;
    }
    function wmultiply(uint x, uint y) public pure returns (uint z) {
        z = multiply(x, y) / WAD;
    }
    function rpower(uint x, uint n, uint base) public pure returns (uint z) {
        assembly {
            switch x case 0 {switch n case 0 {z := base} default {z := 0}}
            default {
                switch mod(n, 2) case 0 { z := base } default { z := x }
                let half := div(base, 2)  // for rounding.
                for { n := div(n, 2) } n { n := div(n,2) } {
                    let xx := mul(x, x)
                    if iszero(eq(div(xx, x), x)) { revert(0,0) }
                    let xxRound := add(xx, half)
                    if lt(xxRound, xx) { revert(0,0) }
                    x := div(xxRound, base)
                    if mod(n,2) {
                        let zx := mul(z, x)
                        if and(iszero(iszero(x)), iszero(eq(div(zx, x), z))) { revert(0,0) }
                        let zxRound := add(zx, half)
                        if lt(zxRound, zx) { revert(0,0) }
                        z := div(zxRound, base)
                    }
                }
            }
        }
    }
}

interface AggregatorInterface {
    event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp);
    event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);

    function latestAnswer() external view returns (int256);
    function latestTimestamp() external view returns (uint256);
    function latestRound() external view returns (uint256);
    function getAnswer(uint256 roundId) external view returns (int256);
    function getTimestamp(uint256 roundId) external view returns (uint256);

    // post-Historic

    function decimals() external view returns (uint8);
    function getRoundData(uint256 _roundId)
      external
      returns (
        uint256 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint256 answeredInRound
      );
    function latestRoundData()
      external
      returns (
        uint256 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint256 answeredInRound
      );
}

contract ChainlinkRelayer is GebMath {
    // --- Auth ---
    mapping (address => uint) public authorizedAccounts;
    /**
     * @notice Add auth to an account
     * @param account Account to add auth to
     */
    function addAuthorization(address account) virtual external isAuthorized {
        authorizedAccounts[account] = 1;
        emit AddAuthorization(account);
    }
    /**
     * @notice Remove auth from an account
     * @param account Account to remove auth from
     */
    function removeAuthorization(address account) virtual external isAuthorized {
        authorizedAccounts[account] = 0;
        emit RemoveAuthorization(account);
    }
    /**
    * @notice Checks whether msg.sender can call an authed function
    **/
    modifier isAuthorized {
        require(authorizedAccounts[msg.sender] == 1, "ChainlinkRelayer/account-not-authorized");
        _;
    }

    // --- Variables ---
    AggregatorInterface public chainlinkAggregator;

    // Multiplier for the Chainlink price feed in order to scaled it to 18 decimals. Default to 10 for USD price feeds
    uint8   public multiplier = 10;
    // Time threshold after which a Chainlink response is considered stale
    uint256 public staleThreshold;

    bytes32 public symbol = "ethusd";

    // --- Events ---
    event AddAuthorization(address account);
    event RemoveAuthorization(address account);
    event ModifyParameters(
      bytes32 parameter,
      address addr
    );
    event ModifyParameters(
      bytes32 parameter,
      uint256 val
    );

    constructor(
      address aggregator,
      uint256 staleThreshold_
    ) public {
        require(aggregator != address(0), "ChainlinkRelayer/null-aggregator");
        require(multiplier >= 1, "ChainlinkRelayer/null-multiplier");
        require(staleThreshold_ > 0, "ChainlinkRelayer/null-stale-threshold");

        authorizedAccounts[msg.sender] = 1;

        staleThreshold                 = staleThreshold_;
        chainlinkAggregator            = AggregatorInterface(aggregator);

        emit AddAuthorization(msg.sender);
        emit ModifyParameters("staleThreshold", staleThreshold);
        emit ModifyParameters("aggregator", aggregator);
    }

    // --- General Utils ---
    function both(bool x, bool y) internal pure returns (bool z) {
        assembly{ z := and(x, y)}
    }

    // --- Administration ---
    /*
    * @notify Modify an uin256 parameter
    * @param parameter The name of the parameter to change
    * @param data The new parameter value
    */
    function modifyParameters(bytes32 parameter, uint256 data) external isAuthorized {
        if (parameter == "staleThreshold") {
          require(data > 1, "ChainlinkRelayer/invalid-stale-threshold");
          staleThreshold = data;
        }
        else revert("ChainlinkRelayer/modify-unrecognized-param");
        emit ModifyParameters(parameter, data);
    }
    /*
    * @notify Modify an address parameter
    * @param parameter The name of the parameter to change
    * @param addr The new parameter address
    */
    function modifyParameters(bytes32 parameter, address addr) external isAuthorized {
        require(addr != address(0), "ChainlinkRelayer/null-addr");
        if (parameter == "aggregator") chainlinkAggregator = AggregatorInterface(addr);
        else revert("ChainlinkRelayer/modify-unrecognized-param");
        emit ModifyParameters(parameter, addr);
    }

    // --- Main Getters ---
    /**
    * @notice Fetch the latest medianResult or revert if is is null, if the price is stale or if chainlinkAggregator is null
    **/
    function read() external view returns (uint256) {
        // The relayer must not be null
        require(address(chainlinkAggregator) != address(0), "ChainlinkRelayer/null-reward-relayer");

        // Fetch values from Chainlink
        uint256 medianPrice         = multiply(uint(chainlinkAggregator.latestAnswer()), 10 ** uint(multiplier));
        uint256 aggregatorTimestamp = chainlinkAggregator.latestTimestamp();

        require(both(medianPrice > 0, subtract(now, aggregatorTimestamp) <= staleThreshold), "ChainlinkRelayer/invalid-price-feed");
        return medianPrice;
    }
    /**
    * @notice Fetch the latest medianResult and whether it is valid or not
    **/
    function getResultWithValidity() external view returns (uint256, bool) {
        if (address(chainlinkAggregator) == address(0)) return (0, false);

        // Fetch values from Chainlink
        uint256 medianPrice         = multiply(uint(chainlinkAggregator.latestAnswer()), 10 ** uint(multiplier));
        uint256 aggregatorTimestamp = chainlinkAggregator.latestTimestamp();

        return (medianPrice, both(medianPrice > 0, subtract(now, aggregatorTimestamp) <= staleThreshold));
    }

    // --- Median Updates ---
    /*
    * @notice Remnant from other Chainlink medians
    */
    function updateResult(address feeReceiver) external {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"uint256","name":"staleThreshold_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"val","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"inputs":[],"name":"RAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"addition","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainlinkAggregator","outputs":[{"internalType":"contract AggregatorInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getResultWithValidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"minimum","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"multiplier","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"multiply","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"rad","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"ray","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"rdivide","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"read","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"rmultiply","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"n","type":"uint256"},{"internalType":"uint256","name":"base","type":"uint256"}],"name":"rpower","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"staleThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"subtract","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeReceiver","type":"address"}],"name":"updateResult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"wdivide","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"wmultiply","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"}]

60806040526001805460ff60a01b1916600560a11b17905565195d1a1d5cd960d21b60035534801561003057600080fd5b506040516111363803806111368339818101604052604081101561005357600080fd5b5080516020909101516001600160a01b0382166100b7576040805162461bcd60e51b815260206004820181905260248201527f436861696e6c696e6b52656c617965722f6e756c6c2d61676772656761746f72604482015290519081900360640190fd5b60018054600160a01b900460ff161015610118576040805162461bcd60e51b815260206004820181905260248201527f436861696e6c696e6b52656c617965722f6e756c6c2d6d756c7469706c696572604482015290519081900360640190fd5b600081116101575760405162461bcd60e51b81526004018080602001828103825260258152602001806111116025913960400191505060405180910390fd5b3360008181526020818152604091829020600190819055600285905580546001600160a01b0319166001600160a01b038716179055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a1600254604080516d1cdd185b19551a1c995cda1bdb1960921b8152602081019290925280517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a9281900390910190a1604080516930b3b3b932b3b0ba37b960b11b81526001600160a01b038416602082015281517fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d1929181900390910190a15050610ea48061026d6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806354f363a3116100de57806395d89b4111610097578063da559f7211610071578063da559f7214610408578063dd2d2a1214610410578063f752fdc314610433578063fe4f58901461045657610173565b806395d89b41146103b4578063a0871637146103bc578063d6e882dc146103df57610173565b806354f363a314610327578063552033c41461034a57806357de26a4146103525780636614f0101461035a5780636a1460241461038657806394f3f81d1461038e57610173565b80633c8bb3e6116101305780633c8bb3e6146102595780633ef5e4451461027c57806346f3e81c1461029f578063495df025146102bc5780634fd0ada8146102e25780635004d36c1461030357610173565b8063056640b71461017857806310213447146101ad578063165c4a16146101ca5780631b3ed722146101ed57806324ba58841461020b57806335b2815314610231575b600080fd5b61019b6004803603604081101561018e57600080fd5b5080359060200135610479565b60408051918252519081900360200190f35b61019b600480360360208110156101c357600080fd5b50356104a1565b61019b600480360360408110156101e057600080fd5b50803590602001356104b7565b6101f561051c565b6040805160ff9092168252519081900360200190f35b61019b6004803603602081101561022157600080fd5b50356001600160a01b031661052c565b6102576004803603602081101561024757600080fd5b50356001600160a01b031661053e565b005b61019b6004803603604081101561026f57600080fd5b50803590602001356105de565b61019b6004803603604081101561029257600080fd5b50803590602001356105f3565b61019b600480360360208110156102b557600080fd5b503561064b565b610257600480360360208110156102d257600080fd5b50356001600160a01b0316610663565b6102ea610666565b6040805192835290151560208301528051918290030190f35b61030b6107c4565b604080516001600160a01b039092168252519081900360200190f35b61019b6004803603604081101561033d57600080fd5b50803590602001356107d3565b61019b610824565b61019b610834565b6102576004803603604081101561037057600080fd5b50803590602001356001600160a01b03166109a8565b61019b610b04565b610257600480360360208110156103a457600080fd5b50356001600160a01b0316610b10565b61019b610baf565b61019b600480360360408110156103d257600080fd5b5080359060200135610bb5565b61019b600480360360608110156103f557600080fd5b5080359060208101359060400135610bce565b61019b610c8c565b61019b6004803603604081101561042657600080fd5b5080359060200135610c92565b61019b6004803603604081101561044957600080fd5b5080359060200135610cab565b6102576004803603604081101561046c57600080fd5b5080359060200135610cc0565b60006b033b2e3c9fd0803ce800000061049284846104b7565b8161049957fe5b049392505050565b60006104b182633b9aca006104b7565b92915050565b60008115806104d2575050808202828282816104cf57fe5b04145b6104b1576040805162461bcd60e51b815260206004820152601660248201527575696e742d75696e742d6d756c2d6f766572666c6f7760501b604482015290519081900360640190fd5b600154600160a01b900460ff1681565b60006020819052908152604090205481565b3360009081526020819052604090205460011461058c5760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b6000670de0b6b3a764000061049284846104b7565b808203828111156104b1576040805162461bcd60e51b815260206004820152601760248201527f75696e742d75696e742d7375622d756e646572666c6f77000000000000000000604482015290519081900360640190fd5b60006104b1826b033b2e3c9fd0803ce80000006104b7565b50565b60015460009081906001600160a01b0316610686575060009050806107c0565b600061071a600160009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d957600080fd5b505afa1580156106ed573d6000803e3d6000fd5b505050506040513d602081101561070357600080fd5b5051600154600160a01b900460ff16600a0a6104b7565b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561076c57600080fd5b505afa158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b505160025490915082906107b990821515906107b242866105f3565b1115610daa565b9350935050505b9091565b6001546001600160a01b031681565b818101828110156104b1576040805162461bcd60e51b815260206004820152601660248201527575696e742d75696e742d6164642d6f766572666c6f7760501b604482015290519081900360640190fd5b6b033b2e3c9fd0803ce800000081565b6001546000906001600160a01b031661087e5760405162461bcd60e51b8152600401808060200182810382526024815260200180610e016024913960400191505060405180910390fd5b60006108d1600160009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d957600080fd5b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d602081101561094d57600080fd5b505160025490915061096790831515906107b242856105f3565b6109a25760405162461bcd60e51b8152600401808060200182810382526023815260200180610e256023913960400191505060405180910390fd5b50905090565b336000908152602081905260409020546001146109f65760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b6001600160a01b038116610a51576040805162461bcd60e51b815260206004820152601a60248201527f436861696e6c696e6b52656c617965722f6e756c6c2d61646472000000000000604482015290519081900360640190fd5b816930b3b3b932b3b0ba37b960b11b1415610a8657600180546001600160a01b0319166001600160a01b038316179055610abd565b60405162461bcd60e51b815260040180806020018281038252602a815260200180610daf602a913960400191505060405180910390fd5b604080518381526001600160a01b038316602082015281517fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d1929181900390910190a15050565b670de0b6b3a764000081565b33600090815260208190526040902054600114610b5e5760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b60035481565b600081610492846b033b2e3c9fd0803ce80000006104b7565b6000838015610c6e57600184168015610be957859250610bed565b8392505b50600283046002850494505b8415610c68578586028687820414610c1057600080fd5b81810181811015610c2057600080fd5b8590049650506001851615610c5d578583028387820414158715151615610c4657600080fd5b81810181811015610c5657600080fd5b8590049350505b600285049450610bf9565b50610c84565b838015610c7e5760009250610c82565b8392505b505b509392505050565b60025481565b600081831115610ca25781610ca4565b825b9392505050565b60008161049284670de0b6b3a76400006104b7565b33600090815260208190526040902054600114610d0e5760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b816d1cdd185b19551a1c995cda1bdb1960921b1415610a865760018111610d665760405162461bcd60e51b8152600401808060200182810382526028815260200180610dd96028913960400191505060405180910390fd5b6002819055604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b169056fe436861696e6c696e6b52656c617965722f6d6f646966792d756e7265636f676e697a65642d706172616d436861696e6c696e6b52656c617965722f696e76616c69642d7374616c652d7468726573686f6c64436861696e6c696e6b52656c617965722f6e756c6c2d7265776172642d72656c61796572436861696e6c696e6b52656c617965722f696e76616c69642d70726963652d66656564436861696e6c696e6b52656c617965722f6163636f756e742d6e6f742d617574686f72697a6564a2646970667358221220c2c87b17ac226c7ba7266092e0b69c294f4450a047e26f7e62228dd625ab43c864736f6c63430006070033436861696e6c696e6b52656c617965722f6e756c6c2d7374616c652d7468726573686f6c640000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000000005460

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c806354f363a3116100de57806395d89b4111610097578063da559f7211610071578063da559f7214610408578063dd2d2a1214610410578063f752fdc314610433578063fe4f58901461045657610173565b806395d89b41146103b4578063a0871637146103bc578063d6e882dc146103df57610173565b806354f363a314610327578063552033c41461034a57806357de26a4146103525780636614f0101461035a5780636a1460241461038657806394f3f81d1461038e57610173565b80633c8bb3e6116101305780633c8bb3e6146102595780633ef5e4451461027c57806346f3e81c1461029f578063495df025146102bc5780634fd0ada8146102e25780635004d36c1461030357610173565b8063056640b71461017857806310213447146101ad578063165c4a16146101ca5780631b3ed722146101ed57806324ba58841461020b57806335b2815314610231575b600080fd5b61019b6004803603604081101561018e57600080fd5b5080359060200135610479565b60408051918252519081900360200190f35b61019b600480360360208110156101c357600080fd5b50356104a1565b61019b600480360360408110156101e057600080fd5b50803590602001356104b7565b6101f561051c565b6040805160ff9092168252519081900360200190f35b61019b6004803603602081101561022157600080fd5b50356001600160a01b031661052c565b6102576004803603602081101561024757600080fd5b50356001600160a01b031661053e565b005b61019b6004803603604081101561026f57600080fd5b50803590602001356105de565b61019b6004803603604081101561029257600080fd5b50803590602001356105f3565b61019b600480360360208110156102b557600080fd5b503561064b565b610257600480360360208110156102d257600080fd5b50356001600160a01b0316610663565b6102ea610666565b6040805192835290151560208301528051918290030190f35b61030b6107c4565b604080516001600160a01b039092168252519081900360200190f35b61019b6004803603604081101561033d57600080fd5b50803590602001356107d3565b61019b610824565b61019b610834565b6102576004803603604081101561037057600080fd5b50803590602001356001600160a01b03166109a8565b61019b610b04565b610257600480360360208110156103a457600080fd5b50356001600160a01b0316610b10565b61019b610baf565b61019b600480360360408110156103d257600080fd5b5080359060200135610bb5565b61019b600480360360608110156103f557600080fd5b5080359060208101359060400135610bce565b61019b610c8c565b61019b6004803603604081101561042657600080fd5b5080359060200135610c92565b61019b6004803603604081101561044957600080fd5b5080359060200135610cab565b6102576004803603604081101561046c57600080fd5b5080359060200135610cc0565b60006b033b2e3c9fd0803ce800000061049284846104b7565b8161049957fe5b049392505050565b60006104b182633b9aca006104b7565b92915050565b60008115806104d2575050808202828282816104cf57fe5b04145b6104b1576040805162461bcd60e51b815260206004820152601660248201527575696e742d75696e742d6d756c2d6f766572666c6f7760501b604482015290519081900360640190fd5b600154600160a01b900460ff1681565b60006020819052908152604090205481565b3360009081526020819052604090205460011461058c5760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b6000670de0b6b3a764000061049284846104b7565b808203828111156104b1576040805162461bcd60e51b815260206004820152601760248201527f75696e742d75696e742d7375622d756e646572666c6f77000000000000000000604482015290519081900360640190fd5b60006104b1826b033b2e3c9fd0803ce80000006104b7565b50565b60015460009081906001600160a01b0316610686575060009050806107c0565b600061071a600160009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d957600080fd5b505afa1580156106ed573d6000803e3d6000fd5b505050506040513d602081101561070357600080fd5b5051600154600160a01b900460ff16600a0a6104b7565b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561076c57600080fd5b505afa158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b505160025490915082906107b990821515906107b242866105f3565b1115610daa565b9350935050505b9091565b6001546001600160a01b031681565b818101828110156104b1576040805162461bcd60e51b815260206004820152601660248201527575696e742d75696e742d6164642d6f766572666c6f7760501b604482015290519081900360640190fd5b6b033b2e3c9fd0803ce800000081565b6001546000906001600160a01b031661087e5760405162461bcd60e51b8152600401808060200182810382526024815260200180610e016024913960400191505060405180910390fd5b60006108d1600160009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d957600080fd5b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d602081101561094d57600080fd5b505160025490915061096790831515906107b242856105f3565b6109a25760405162461bcd60e51b8152600401808060200182810382526023815260200180610e256023913960400191505060405180910390fd5b50905090565b336000908152602081905260409020546001146109f65760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b6001600160a01b038116610a51576040805162461bcd60e51b815260206004820152601a60248201527f436861696e6c696e6b52656c617965722f6e756c6c2d61646472000000000000604482015290519081900360640190fd5b816930b3b3b932b3b0ba37b960b11b1415610a8657600180546001600160a01b0319166001600160a01b038316179055610abd565b60405162461bcd60e51b815260040180806020018281038252602a815260200180610daf602a913960400191505060405180910390fd5b604080518381526001600160a01b038316602082015281517fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d1929181900390910190a15050565b670de0b6b3a764000081565b33600090815260208190526040902054600114610b5e5760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b60035481565b600081610492846b033b2e3c9fd0803ce80000006104b7565b6000838015610c6e57600184168015610be957859250610bed565b8392505b50600283046002850494505b8415610c68578586028687820414610c1057600080fd5b81810181811015610c2057600080fd5b8590049650506001851615610c5d578583028387820414158715151615610c4657600080fd5b81810181811015610c5657600080fd5b8590049350505b600285049450610bf9565b50610c84565b838015610c7e5760009250610c82565b8392505b505b509392505050565b60025481565b600081831115610ca25781610ca4565b825b9392505050565b60008161049284670de0b6b3a76400006104b7565b33600090815260208190526040902054600114610d0e5760405162461bcd60e51b8152600401808060200182810382526027815260200180610e486027913960400191505060405180910390fd5b816d1cdd185b19551a1c995cda1bdb1960921b1415610a865760018111610d665760405162461bcd60e51b8152600401808060200182810382526028815260200180610dd96028913960400191505060405180910390fd5b6002819055604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b169056fe436861696e6c696e6b52656c617965722f6d6f646966792d756e7265636f676e697a65642d706172616d436861696e6c696e6b52656c617965722f696e76616c69642d7374616c652d7468726573686f6c64436861696e6c696e6b52656c617965722f6e756c6c2d7265776172642d72656c61796572436861696e6c696e6b52656c617965722f696e76616c69642d70726963652d66656564436861696e6c696e6b52656c617965722f6163636f756e742d6e6f742d617574686f72697a6564a2646970667358221220c2c87b17ac226c7ba7266092e0b69c294f4450a047e26f7e62228dd625ab43c864736f6c63430006070033

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

0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000000005460

-----Decoded View---------------
Arg [0] : aggregator (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [1] : staleThreshold_ (uint256): 21600

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [1] : 0000000000000000000000000000000000000000000000000000000000005460


Deployed Bytecode Sourcemap

3499:5065:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3499:5065:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;900:107:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;900:107:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;142:93;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;142:93:0;;:::i;747:147::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;747:147:0;;;;;;;:::i;4620:30::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3564:51;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3564:51:0;-1:-1:-1;;;;;3564:51:0;;:::i;3725:164::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3725:164:0;-1:-1:-1;;;;;3725:164:0;;:::i;:::-;;1235:107;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1235:107:0;;;;;;;:::i;597:144::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;597:144:0;;;;;;;:::i;241:94::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;241:94:0;;:::i;8507:54::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8507:54:0;-1:-1:-1;;;;;8507:54:0;;:::i;7900:500::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4445:46;;;:::i;:::-;;;;-1:-1:-1;;;;;4445:46:0;;;;;;;;;;;;;;448:143;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;448:143:0;;;;;;;:::i;50:38::-;;;:::i;7201:599::-;;;:::i;6657:363::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6657:363:0;;;;;;-1:-1:-1;;;;;6657:363:0;;:::i;95:38::-;;;:::i;4008:170::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4008:170:0;-1:-1:-1;;;;;4008:170:0;;:::i;4771:32::-;;;:::i;1013:105::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1013:105:0;;;;;;;:::i;1348:1058::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1348:1058:0;;;;;;;;;;;;:::i;4733:29::-;;;:::i;341:101::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;341:101:0;;;;;;;:::i;1124:105::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1124:105:0;;;;;;;:::i;6116:371::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6116:371:0;;;;;;;:::i;900:107::-;956:6;80:8;979:14;988:1;991;979:8;:14::i;:::-;:20;;;;;;;900:107;-1:-1:-1;;;900:107:0:o;142:93::-;184:6;207:20;216:1;219:7;207:8;:20::i;:::-;203:24;142:93;-1:-1:-1;;142:93:0:o;747:147::-;802:6;829;;;:30;;-1:-1:-1;;844:5:0;;;858:1;853;844:5;853:1;839:15;;;;;:20;829:30;821:65;;;;;-1:-1:-1;;;821:65:0;;;;;;;;;;;;-1:-1:-1;;;821:65:0;;;;;;;;;;;;;;4620:30;;;-1:-1:-1;;;4620:30:0;;;;;:::o;3564:51::-;;;;;;;;;;;;;;:::o;3725:164::-;4331:10;4312:18;:30;;;;;;;;;;;4346:1;4312:35;4304:87;;;;-1:-1:-1;;;4304:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3809:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;3839:1:::1;3809:31:::0;;3856:25;;;;;;;::::1;::::0;;;;;;;;::::1;3725:164:::0;:::o;1235:107::-;1291:6;125:8;1314:14;1323:1;1326;1314:8;:14::i;597:144::-;675:5;;;699:6;;;;691:42;;;;;-1:-1:-1;;;691:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;241:94;283:6;306:21;315:1;318:8;306;:21::i;8507:54::-;;:::o;7900:500::-;7994:19;;7956:7;;;;-1:-1:-1;;;;;7994:19:0;7982:65;;-1:-1:-1;8038:1:0;;-1:-1:-1;8038:1:0;8030:17;;7982:65;8100:19;8130:74;8144:19;;;;;;;;;-1:-1:-1;;;;;8144:19:0;-1:-1:-1;;;;;8144:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8144:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8144:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8144:34:0;8192:10;;-1:-1:-1;;;8192:10:0;;;;8181:2;:22;8130:8;:74::i;:::-;8100:104;;8215:27;8245:19;;;;;;;;;-1:-1:-1;;;;;8245:19:0;-1:-1:-1;;;;;8245:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8245:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8245:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8245:37:0;8376:14;;8245:37;;-1:-1:-1;8303:11:0;;8316:75;;8321:15;;;;8338:34;8347:3;8245:37;8338:8;:34::i;:::-;:52;;8316:4;:75::i;:::-;8295:97;;;;;;7900:500;;;:::o;4445:46::-;;;-1:-1:-1;;;;;4445:46:0;;:::o;448:143::-;526:5;;;550:6;;;;542:41;;;;;-1:-1:-1;;;542:41:0;;;;;;;;;;;;-1:-1:-1;;;542:41:0;;;;;;;;;;;;;;50:38;80:8;50:38;:::o;7201:599::-;7317:19;;7240:7;;-1:-1:-1;;;;;7317:19:0;7301:91;;;;-1:-1:-1;;;7301:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7445:19;7475:74;7489:19;;;;;;;;;-1:-1:-1;;;;;7489:19:0;-1:-1:-1;;;;;7489:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;7475:74:0;7445:104;;7560:27;7590:19;;;;;;;;;-1:-1:-1;;;;;7590:19:0;-1:-1:-1;;;;;7590:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7590:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7590:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7590:37:0;7708:14;;7590:37;;-1:-1:-1;7648:75:0;;7653:15;;;;7670:34;7679:3;7590:37;7670:8;:34::i;7648:75::-;7640:123;;;;-1:-1:-1;;;7640:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7781:11:0;-1:-1:-1;7201:599:0;:::o;6657:363::-;4331:10;4312:18;:30;;;;;;;;;;;4346:1;4312:35;4304:87;;;;-1:-1:-1;;;4304:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6757:18:0;::::1;6749:57;;;::::0;;-1:-1:-1;;;6749:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6821:9;-1:-1:-1::0;;;6821:25:0::1;6817:146;;;6848:19;:47:::0;;-1:-1:-1;;;;;;6848:47:0::1;-1:-1:-1::0;;;;;6848:47:0;::::1;;::::0;;6817:146:::1;;;6911:52;;-1:-1:-1::0;;;6911:52:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6817:146;6979:33;::::0;;;;;-1:-1:-1;;;;;6979:33:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;6657:363:::0;;:::o;95:38::-;125:8;95:38;:::o;4008:170::-;4331:10;4312:18;:30;;;;;;;;;;;4346:1;4312:35;4304:87;;;;-1:-1:-1;;;4304:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4095:27:0;::::1;4125:1;4095:27:::0;;;::::1;::::0;;;;;;;:31;;;;4142:28;;;;;;;::::1;::::0;;;;;;;;::::1;4008:170:::0;:::o;4771:32::-;;;;:::o;1013:105::-;1067:6;1109:1;1090:16;1099:1;80:8;1090;:16::i;1348:1058::-;1412:6;1462:1;1464:53;;;;1565:9;;;1575:20;;;;1611:1;1606:6;;1558:56;;1575:20;1589:4;1584:9;;1558:56;;1654:1;1648:4;1644:12;1710:1;1707;1703:9;1698:14;;1692:681;1715:1;1692:681;;;1775:1;1772;1768:9;1824:1;1820;1816:2;1812:10;1809:17;1799:2;;1839:1;1837;1830:11;1799:2;1888:4;1884:2;1880:13;1930:2;1921:7;1918:15;1915:2;;;1945:1;1943;1936:11;1915:2;1976:18;;;;-1:-1:-1;;2019:8:0;;;2016:2;;;2072:1;2069;2065:9;2148:1;2144;2140:2;2136:10;2133:17;2126:25;2121:1;2114:9;2107:17;2103:49;2100:2;;;2164:1;2162;2155:11;2100:2;2217:4;2213:2;2209:13;2263:2;2254:7;2251:15;2248:2;;;2278:1;2276;2269:11;2248:2;2313:18;;;;-1:-1:-1;;2016:2:0;1730:1;1728;1724:8;1719:13;;1692:681;;;1696:18;1455:933;;1464:53;1479:1;1481:18;;;;1514:1;1509:6;;1472:44;;1481:18;1494:4;1489:9;;1472:44;;1455:933;;1440:959;;;;;:::o;4733:29::-;;;;:::o;341:101::-;395:6;424:1;419;:6;;418:16;;433:1;418:16;;;429:1;418:16;414:20;341:101;-1:-1:-1;;;341:101:0:o;1124:105::-;1178:6;1220:1;1201:16;1210:1;125:8;1201;:16::i;6116:371::-;4331:10;4312:18;:30;;;;;;;;;;;4346:1;4312:35;4304:87;;;;-1:-1:-1;;;4304:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6212:9:::1;-1:-1:-1::0;;;6212:29:0::1;6208:222;;;6271:1;6264:4;:8;6256:61;;;;-1:-1:-1::0;;;6256:61:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:14;:21:::0;;;6446:33:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;6116:371:::0;;:::o;5812:104::-;5899:9;;5892:17::o

Swarm Source

ipfs://c2c87b17ac226c7ba7266092e0b69c294f4450a047e26f7e62228dd625ab43c8

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

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