ETH Price: $4,002.28 (+2.92%)

Contract

0x76B47460d7F7c5222cFb6b6A75615ab10895DDe4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...92869302020-01-15 16:56:351796 days ago1579107395IN
0x76B47460...10895DDe4
0 ETH0.000069472.25
Transfer Ownersh...92531952020-01-10 13:01:221801 days ago1578661282IN
0x76B47460...10895DDe4
0 ETH0.00027799

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ChainlinkProxyPriceProvider

Compiler Version
v0.5.14+commit.1f1aaa4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2020-02-18
*/

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

pragma solidity ^0.5.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be aplied to your functions to restrict their use to
 * the owner.
 */
contract Ownable {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * > Note: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/interfaces/IPriceOracleGetter.sol

pragma solidity ^0.5.0;

/**
* @title IPriceOracleGetter interface
* @notice Interface for the Aave price oracle.
**/

interface IPriceOracleGetter {
    /**
    * @dev returns the asset price in ETH
    * @param _asset the address of the asset
    * @return the ETH price of the asset
    **/
    function getAssetPrice(address _asset) external view returns (uint256);
}

// File: contracts/interfaces/IChainlinkAggregator.sol

pragma solidity ^0.5.0;

interface IChainlinkAggregator {
  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);

  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp);
  event NewRound(uint256 indexed roundId, address indexed startedBy);
}

// File: contracts/libraries/EthAddressLib.sol

pragma solidity ^0.5.0;

library EthAddressLib {

    /**
    * @dev returns the address used within the protocol to identify ETH
    * @return the address assigned to ETH
     */
    function ethAddress() internal pure returns(address) {
        return 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
    }
}

// File: contracts/misc/ChainlinkProxyPriceProvider.sol

pragma solidity ^0.5.0;





/// @title ChainlinkProxyPriceProvider
/// @author Aave
/// @notice Proxy smart contract to get the price of an asset from a price source, with Chainlink Aggregator
///         smart contracts as primary option
/// - If the returned price by a Chainlink aggregator is <= 0, the call is forwarded to a fallbackOracle
/// - Owned by the Aave governance system, allowed to add sources for assets, replace them
///   and change the fallbackOracle
contract ChainlinkProxyPriceProvider is IPriceOracleGetter, Ownable {

    event AssetSourceUpdated(address indexed asset, address indexed source);
    event FallbackOracleUpdated(address indexed fallbackOracle);

    mapping(address => IChainlinkAggregator) private assetsSources;
    IPriceOracleGetter private fallbackOracle;

    /// @notice Constructor
    /// @param _assets The addresses of the assets
    /// @param _sources The address of the source of each asset
    /// @param _fallbackOracle The address of the fallback oracle to use if the data of an
    ///        aggregator is not consistent
    constructor(address[] memory _assets, address[] memory _sources, address _fallbackOracle) public {
        internalSetFallbackOracle(_fallbackOracle);
        internalSetAssetsSources(_assets, _sources);
    }

    /// @notice External function called by the Aave governance to set or replace sources of assets
    /// @param _assets The addresses of the assets
    /// @param _sources The address of the source of each asset
    function setAssetSources(address[] calldata _assets, address[] calldata _sources) external onlyOwner {
        internalSetAssetsSources(_assets, _sources);
    }

    /// @notice Sets the fallbackOracle
    /// - Callable only by the Aave governance
    /// @param _fallbackOracle The address of the fallbackOracle
    function setFallbackOracle(address _fallbackOracle) external onlyOwner {
        internalSetFallbackOracle(_fallbackOracle);
    }

    /// @notice Internal function to set the sources for each asset
    /// @param _assets The addresses of the assets
    /// @param _sources The address of the source of each asset
    function internalSetAssetsSources(address[] memory _assets, address[] memory _sources) internal {
        require(_assets.length == _sources.length, "INCONSISTENT_PARAMS_LENGTH");
        for (uint256 i = 0; i < _assets.length; i++) {
            assetsSources[_assets[i]] = IChainlinkAggregator(_sources[i]);
            emit AssetSourceUpdated(_assets[i], _sources[i]);
        }
    }

    /// @notice Internal function to set the fallbackOracle
    /// @param _fallbackOracle The address of the fallbackOracle
    function internalSetFallbackOracle(address _fallbackOracle) internal {
        fallbackOracle = IPriceOracleGetter(_fallbackOracle);
        emit FallbackOracleUpdated(_fallbackOracle);
    }

    /// @notice Gets an asset price by address
    /// @param _asset The asset address
    function getAssetPrice(address _asset) public view returns(uint256) {
        IChainlinkAggregator source = assetsSources[_asset];
        if (_asset == EthAddressLib.ethAddress()) {
            return 1 ether;
        } else {
            // If there is no registered source for the asset, call the fallbackOracle
            if (address(source) == address(0)) {
                return IPriceOracleGetter(fallbackOracle).getAssetPrice(_asset);
            } else {
                int256 _price = IChainlinkAggregator(source).latestAnswer();
                if (_price > 0) {
                    return uint256(_price);
                } else {
                    return IPriceOracleGetter(fallbackOracle).getAssetPrice(_asset);
                }
            }
        }
    }

    /// @notice Gets a list of prices from a list of assets addresses
    /// @param _assets The list of assets addresses
    function getAssetsPrices(address[] calldata _assets) external view returns(uint256[] memory) {
        uint256[] memory prices = new uint256[](_assets.length);
        for (uint256 i = 0; i < _assets.length; i++) {
            prices[i] = getAssetPrice(_assets[i]);
        }
        return prices;
    }

    /// @notice Gets the address of the source for an asset address
    /// @param _asset The address of the asset
    /// @return address The address of the source
    function getSourceOfAsset(address _asset) external view returns(address) {
        return address(assetsSources[_asset]);
    }

    /// @notice Gets the address of the fallback oracle
    /// @return address The addres of the fallback oracle
    function getFallbackOracle() external view returns(address) {
        return address(fallbackOracle);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"_assets","type":"address[]"},{"internalType":"address[]","name":"_sources","type":"address[]"},{"internalType":"address","name":"_fallbackOracle","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"source","type":"address"}],"name":"AssetSourceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"fallbackOracle","type":"address"}],"name":"FallbackOracleUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_asset","type":"address"}],"name":"getAssetPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address[]","name":"_assets","type":"address[]"}],"name":"getAssetsPrices","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getFallbackOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_asset","type":"address"}],"name":"getSourceOfAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_assets","type":"address[]"},{"internalType":"address[]","name":"_sources","type":"address[]"}],"name":"setAssetSources","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_fallbackOracle","type":"address"}],"name":"setFallbackOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405162000dee38038062000dee8339818101604052606081101561003557600080fd5b810190808051604051939291908464010000000082111561005557600080fd5b90830190602082018581111561006a57600080fd5b825186602082028301116401000000008211171561008757600080fd5b82525081516020918201928201910280838360005b838110156100b457818101518382015260200161009c565b50505050905001604052602001805160405193929190846401000000008211156100dd57600080fd5b9083019060208201858111156100f257600080fd5b825186602082028301116401000000008211171561010f57600080fd5b82525081516020918201928201910280838360005b8381101561013c578181015183820152602001610124565b5050505091909101604081905260209290920151600080546001600160a01b03191633178082559195506001600160a01b03919091169350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091508290a36101ad816001600160e01b036101c816565b6101c083836001600160e01b0361021216565b505050610357565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114610268576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b82518110156103525781818151811061028057fe5b60200260200101516001600085848151811061029857fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106102f057fe5b60200260200101516001600160a01b031683828151811061030d57fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a360010161026b565b505050565b610a8780620003676000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806392bf2be01161006657806392bf2be01461011b5780639d23d9f214610141578063abfd531014610201578063b3596f07146102c3578063f2fde38b146102fb5761009e565b8063170aee73146100a35780636210308c146100cb578063715018a6146100ef5780638da5cb5b146100f75780638f32d59b146100ff575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b0316610321565b005b6100d3610374565b604080516001600160a01b039092168252519081900360200190f35b6100c9610383565b6100d3610414565b610107610423565b604080519115158252519081900360200190f35b6100d36004803603602081101561013157600080fd5b50356001600160a01b0316610434565b6101b16004803603602081101561015757600080fd5b81019060208101813564010000000081111561017257600080fd5b82018360208201111561018457600080fd5b803590602001918460208302840111640100000000831117156101a657600080fd5b509092509050610455565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101ed5781810151838201526020016101d5565b505050509050019250505060405180910390f35b6100c96004803603604081101561021757600080fd5b81019060208101813564010000000081111561023257600080fd5b82018360208201111561024457600080fd5b8035906020019184602083028401116401000000008311171561026657600080fd5b91939092909160208101903564010000000081111561028457600080fd5b82018360208201111561029657600080fd5b803590602001918460208302840111640100000000831117156102b857600080fd5b5090925090506104de565b6102e9600480360360208110156102d957600080fd5b50356001600160a01b0316610598565b60408051918252519081900360200190f35b6100c96004803603602081101561031157600080fd5b50356001600160a01b0316610775565b610329610423565b610368576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b610371816107c5565b50565b6002546001600160a01b031690565b61038b610423565b6103ca576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001600160a01b03808216600090815260016020526040902054165b919050565b60608083839050604051908082528060200260200182016040528015610485578160200160208202803883390190505b50905060005b838110156104d6576104b78585838181106104a257fe5b905060200201356001600160a01b0316610598565b8282815181106104c357fe5b602090810291909101015260010161048b565b509392505050565b6104e6610423565b610525576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b6105928484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201919091525061080f92505050565b50505050565b6001600160a01b038082166000908152600160205260408120549091166105bd610954565b6001600160a01b0316836001600160a01b031614156105e757670de0b6b3a7640000915050610450565b6001600160a01b038116610677576002546040805163b3596f0760e01b81526001600160a01b0386811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561064257600080fd5b505afa158015610656573d6000803e3d6000fd5b505050506040513d602081101561066c57600080fd5b505191506104509050565b6000816001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d60208110156106dc57600080fd5b5051905060008113156106f25791506104509050565b6002546040805163b3596f0760e01b81526001600160a01b0387811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561073f57600080fd5b505afa158015610753573d6000803e3d6000fd5b505050506040513d602081101561076957600080fd5b50519250610450915050565b61077d610423565b6107bc576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b6103718161096c565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114610865576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b825181101561094f5781818151811061087d57fe5b60200260200101516001600085848151811061089557fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106108ed57fe5b60200260200101516001600160a01b031683828151811061090a57fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a3600101610868565b505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b6001600160a01b0381166109b15760405162461bcd60e51b8152600401808060200182810382526026815260200180610a0d6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a72315820cc0c9190753cba20cea8f02e68f8af86d4cf0d4b2f79bfd550849deecdd80e9e64736f6c634300050e003200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000260000000000000000000000000f67a8b0e3e0ee303422f78b4c5b8da60df80a59c000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000085d4780b73119b644ae5ecd22b376000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f5100000000000000000000000080fb784b7ed66730e8b1dbd9820afd29931aab030000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef0000000000000000000000001985365e9f78359a9b6ad760e32412f4a445e8620000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd2000000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000037e8f2125bf532f3e228991e051c8a7253b642c00000000000000000000000073ead35fd6a572ef763b13be65a9db96f7643577000000000000000000000000de54467873c3bcaa76421061036053e371721708000000000000000000000000a874fe207df445ff19e7482c746c4d3fd0cb9ace0000000000000000000000006d626ff97f0e89f6f983de425dc5b24a18de26ea0000000000000000000000001eeaf25f2ecbcaf204ecadc8db7b0db9da8453270000000000000000000000009b4e2579895efa2b4765063310dc4109a7641129000000000000000000000000b8b513d9cf440c1b6f5c7142120d611c94fc220c000000000000000000000000da3d675d50ff6c555973c4f0424964e1f6a4e7d3000000000000000000000000ecfa53a8bda4f0c4dd39c55cc8def3757acfdd07000000000000000000000000d0e785973390ff8e77a83961efdb4f271e6b81520000000000000000000000000133aa47b6197d0ba090bf2cd96626eb71ffd13c000000000000000000000000c89c4ed8f52bb17314022f6c0dcb26210c905c97000000000000000000000000a0f9d94f060836756ffc84db4c78d097ca8c23e8000000000000000000000000e23d1142de4e83c08bb048bcab54d50907390828

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806392bf2be01161006657806392bf2be01461011b5780639d23d9f214610141578063abfd531014610201578063b3596f07146102c3578063f2fde38b146102fb5761009e565b8063170aee73146100a35780636210308c146100cb578063715018a6146100ef5780638da5cb5b146100f75780638f32d59b146100ff575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b0316610321565b005b6100d3610374565b604080516001600160a01b039092168252519081900360200190f35b6100c9610383565b6100d3610414565b610107610423565b604080519115158252519081900360200190f35b6100d36004803603602081101561013157600080fd5b50356001600160a01b0316610434565b6101b16004803603602081101561015757600080fd5b81019060208101813564010000000081111561017257600080fd5b82018360208201111561018457600080fd5b803590602001918460208302840111640100000000831117156101a657600080fd5b509092509050610455565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101ed5781810151838201526020016101d5565b505050509050019250505060405180910390f35b6100c96004803603604081101561021757600080fd5b81019060208101813564010000000081111561023257600080fd5b82018360208201111561024457600080fd5b8035906020019184602083028401116401000000008311171561026657600080fd5b91939092909160208101903564010000000081111561028457600080fd5b82018360208201111561029657600080fd5b803590602001918460208302840111640100000000831117156102b857600080fd5b5090925090506104de565b6102e9600480360360208110156102d957600080fd5b50356001600160a01b0316610598565b60408051918252519081900360200190f35b6100c96004803603602081101561031157600080fd5b50356001600160a01b0316610775565b610329610423565b610368576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b610371816107c5565b50565b6002546001600160a01b031690565b61038b610423565b6103ca576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001600160a01b03808216600090815260016020526040902054165b919050565b60608083839050604051908082528060200260200182016040528015610485578160200160208202803883390190505b50905060005b838110156104d6576104b78585838181106104a257fe5b905060200201356001600160a01b0316610598565b8282815181106104c357fe5b602090810291909101015260010161048b565b509392505050565b6104e6610423565b610525576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b6105928484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201919091525061080f92505050565b50505050565b6001600160a01b038082166000908152600160205260408120549091166105bd610954565b6001600160a01b0316836001600160a01b031614156105e757670de0b6b3a7640000915050610450565b6001600160a01b038116610677576002546040805163b3596f0760e01b81526001600160a01b0386811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561064257600080fd5b505afa158015610656573d6000803e3d6000fd5b505050506040513d602081101561066c57600080fd5b505191506104509050565b6000816001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d60208110156106dc57600080fd5b5051905060008113156106f25791506104509050565b6002546040805163b3596f0760e01b81526001600160a01b0387811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561073f57600080fd5b505afa158015610753573d6000803e3d6000fd5b505050506040513d602081101561076957600080fd5b50519250610450915050565b61077d610423565b6107bc576040805162461bcd60e51b81526020600482018190526024820152600080516020610a33833981519152604482015290519081900360640190fd5b6103718161096c565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114610865576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b825181101561094f5781818151811061087d57fe5b60200260200101516001600085848151811061089557fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106108ed57fe5b60200260200101516001600160a01b031683828151811061090a57fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a3600101610868565b505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b6001600160a01b0381166109b15760405162461bcd60e51b8152600401808060200182810382526026815260200180610a0d6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a72315820cc0c9190753cba20cea8f02e68f8af86d4cf0d4b2f79bfd550849deecdd80e9e64736f6c634300050e0032

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

00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000260000000000000000000000000f67a8b0e3e0ee303422f78b4c5b8da60df80a59c000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000085d4780b73119b644ae5ecd22b376000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f5100000000000000000000000080fb784b7ed66730e8b1dbd9820afd29931aab030000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef0000000000000000000000001985365e9f78359a9b6ad760e32412f4a445e8620000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd2000000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000037e8f2125bf532f3e228991e051c8a7253b642c00000000000000000000000073ead35fd6a572ef763b13be65a9db96f7643577000000000000000000000000de54467873c3bcaa76421061036053e371721708000000000000000000000000a874fe207df445ff19e7482c746c4d3fd0cb9ace0000000000000000000000006d626ff97f0e89f6f983de425dc5b24a18de26ea0000000000000000000000001eeaf25f2ecbcaf204ecadc8db7b0db9da8453270000000000000000000000009b4e2579895efa2b4765063310dc4109a7641129000000000000000000000000b8b513d9cf440c1b6f5c7142120d611c94fc220c000000000000000000000000da3d675d50ff6c555973c4f0424964e1f6a4e7d3000000000000000000000000ecfa53a8bda4f0c4dd39c55cc8def3757acfdd07000000000000000000000000d0e785973390ff8e77a83961efdb4f271e6b81520000000000000000000000000133aa47b6197d0ba090bf2cd96626eb71ffd13c000000000000000000000000c89c4ed8f52bb17314022f6c0dcb26210c905c97000000000000000000000000a0f9d94f060836756ffc84db4c78d097ca8c23e8000000000000000000000000e23d1142de4e83c08bb048bcab54d50907390828

-----Decoded View---------------
Arg [0] : _assets (address[]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0x0000000000085d4780B73119b644AE5ecd22b376,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0x57Ab1ec28D129707052df4dF418D58a2D46d5f51,0x80fB784B7eD66730e8b1DBd9820aFD29931aab03,0x0D8775F648430679A709E98d2b0Cb6250d2887EF,0x1985365e9f78359a9B6AD760e32412f4a445E862,0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2,0x514910771AF9Ca656af840dff83E8264EcF986CA,0xdd974D5C2e2928deA5F71b9825b8b646686BD200,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,0x0F5D2fB29fb7d3CFeE444a200298f468908cC942,0xE41d2489571d322189246DaFA5ebDe1F4699F498,0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
Arg [1] : _sources (address[]): 0x037E8F2125bF532F3e228991e051c8A7253B642c,0x73ead35fd6A572EF763B13Be65a9db96f7643577,0xdE54467873c3BCAA76421061036053e371721708,0xa874fe207DF445ff19E7482C746C4D3fD0CB9AcE,0x6d626Ff97f0E89F6f983dE425dc5B24A18DE26Ea,0x1EeaF25f2ECbcAf204ECADc8Db7B0db9DA845327,0x9b4e2579895efa2b4765063310Dc4109a7641129,0xb8b513d9cf440C1b6f5C7142120d611C94fC220c,0xDa3d675d50fF6C555973C4f0424964e1F6A4e7D3,0xeCfA53A8bdA4F0c4dd39c55CC8deF3757aCFDD07,0xd0e785973390fF8E77a83961efDb4F271E6B8152,0x0133Aa47B6197D0BA090Bf2CD96626Eb71fFd13c,0xc89c4ed8f52Bb17314022f6c0dCB26210C905C97,0xA0F9D94f060836756FFC84Db4C78d097cA8C23E8,0xE23d1142dE4E83C08bb048bcab54d50907390828
Arg [2] : _fallbackOracle (address): 0xF67A8b0E3E0Ee303422f78b4C5b8dA60dF80A59C

-----Encoded View---------------
35 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000260
Arg [2] : 000000000000000000000000f67a8b0e3e0ee303422f78b4c5b8da60df80a59c
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [4] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [5] : 0000000000000000000000000000000000085d4780b73119b644ae5ecd22b376
Arg [6] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [7] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [8] : 00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51
Arg [9] : 00000000000000000000000080fb784b7ed66730e8b1dbd9820afd29931aab03
Arg [10] : 0000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef
Arg [11] : 0000000000000000000000001985365e9f78359a9b6ad760e32412f4a445e862
Arg [12] : 0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2
Arg [13] : 000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca
Arg [14] : 000000000000000000000000dd974d5c2e2928dea5f71b9825b8b646686bd200
Arg [15] : 0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599
Arg [16] : 0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942
Arg [17] : 000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498
Arg [18] : 000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f
Arg [19] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [20] : 000000000000000000000000037e8f2125bf532f3e228991e051c8a7253b642c
Arg [21] : 00000000000000000000000073ead35fd6a572ef763b13be65a9db96f7643577
Arg [22] : 000000000000000000000000de54467873c3bcaa76421061036053e371721708
Arg [23] : 000000000000000000000000a874fe207df445ff19e7482c746c4d3fd0cb9ace
Arg [24] : 0000000000000000000000006d626ff97f0e89f6f983de425dc5b24a18de26ea
Arg [25] : 0000000000000000000000001eeaf25f2ecbcaf204ecadc8db7b0db9da845327
Arg [26] : 0000000000000000000000009b4e2579895efa2b4765063310dc4109a7641129
Arg [27] : 000000000000000000000000b8b513d9cf440c1b6f5c7142120d611c94fc220c
Arg [28] : 000000000000000000000000da3d675d50ff6c555973c4f0424964e1f6a4e7d3
Arg [29] : 000000000000000000000000ecfa53a8bda4f0c4dd39c55cc8def3757acfdd07
Arg [30] : 000000000000000000000000d0e785973390ff8e77a83961efdb4f271e6b8152
Arg [31] : 0000000000000000000000000133aa47b6197d0ba090bf2cd96626eb71ffd13c
Arg [32] : 000000000000000000000000c89c4ed8f52bb17314022f6c0dcb26210c905c97
Arg [33] : 000000000000000000000000a0f9d94f060836756ffc84db4c78d097ca8c23e8
Arg [34] : 000000000000000000000000e23d1142de4e83c08bb048bcab54d50907390828


Deployed Bytecode Sourcemap

4439:4312:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4439:4312:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5828:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5828:132:0;-1:-1:-1;;;;;5828:132:0;;:::i;:::-;;8639:109;;;:::i;:::-;;;;-1:-1:-1;;;;;8639:109:0;;;;;;;;;;;;;;1718:140;;;:::i;907:79::-;;;:::i;1273:92::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;8386:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8386:129:0;-1:-1:-1;;;;;8386:129:0;;:::i;7900:310::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7900:310:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7900:310:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7900:310:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;7900:310:0;;-1:-1:-1;7900:310:0;-1:-1:-1;7900:310:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7900:310:0;;;;;;;;;;;;;;;;;5502:163;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5502:163:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5502:163:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5502:163:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5502:163:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5502:163:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5502:163:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;5502:163:0;;-1:-1:-1;5502:163:0;-1:-1:-1;5502:163:0;:::i;6973:795::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6973:795:0;-1:-1:-1;;;;;6973:795:0;;:::i;:::-;;;;;;;;;;;;;;;;2013:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2013:109:0;-1:-1:-1;;;;;2013:109:0;;:::i;5828:132::-;1119:9;:7;:9::i;:::-;1111:54;;;;;-1:-1:-1;;;1111:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1111:54:0;;;;;;;;;;;;;;;5910:42;5936:15;5910:25;:42::i;:::-;5828:132;:::o;8639:109::-;8725:14;;-1:-1:-1;;;;;8725:14:0;8639:109;:::o;1718:140::-;1119:9;:7;:9::i;:::-;1111:54;;;;;-1:-1:-1;;;1111:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1111:54:0;;;;;;;;;;;;;;;1817:1;1801:6;;1780:40;;-1:-1:-1;;;;;1801:6:0;;;;1780:40;;1817:1;;1780:40;1848:1;1831:19;;-1:-1:-1;;;;;;1831:19:0;;;1718:140::o;907:79::-;945:7;972:6;-1:-1:-1;;;;;972:6:0;907:79;:::o;1273:92::-;1313:4;1351:6;-1:-1:-1;;;;;1351:6:0;1337:10;:20;;1273:92::o;8386:129::-;-1:-1:-1;;;;;8485:21:0;;;8450:7;8485:21;;;:13;:21;;;;;;;8386:129;;;;:::o;7900:310::-;7975:16;8004:23;8044:7;;:14;;8030:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;8030:29:0;-1:-1:-1;8004:55:0;-1:-1:-1;8075:9:0;8070:109;8090:18;;;8070:109;;;8142:25;8156:7;;8164:1;8156:10;;;;;;;;;;;;;-1:-1:-1;;;;;8156:10:0;8142:13;:25::i;:::-;8130:6;8137:1;8130:9;;;;;;;;;;;;;;;;;:37;8110:3;;8070:109;;;-1:-1:-1;8196:6:0;7900:310;-1:-1:-1;;;7900:310:0:o;5502:163::-;1119:9;:7;:9::i;:::-;1111:54;;;;;-1:-1:-1;;;1111:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1111:54:0;;;;;;;;;;;;;;;5614:43;5639:7;;5614:43;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;5614:43:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5648:8:0;;-1:-1:-1;5648:8:0;;;;5614:43;;;5648:8;;5614:43;5648:8;5614:43;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;5614:24:0;;-1:-1:-1;;;5614:43:0:i;:::-;5502:163;;;;:::o;6973:795::-;-1:-1:-1;;;;;7082:21:0;;;7032:7;7082:21;;;:13;:21;;;;;;7032:7;;7082:21;7128:26;:24;:26::i;:::-;-1:-1:-1;;;;;7118:36:0;:6;-1:-1:-1;;;;;7118:36:0;;7114:647;;;7178:7;7171:14;;;;;7114:647;-1:-1:-1;;;;;7310:29:0;;7306:444;;7386:14;;7367:56;;;-1:-1:-1;;;7367:56:0;;-1:-1:-1;;;;;7367:56:0;;;;;;;;;7386:14;;;;;7367:48;;:56;;;;;;;;;;;;;;7386:14;7367:56;;;5:2:-1;;;;30:1;27;20:12;5:2;7367:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7367:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7367:56:0;;-1:-1:-1;7360:63:0;;-1:-1:-1;7360:63:0;7306:444;7464:13;7501:6;-1:-1:-1;;;;;7480:41:0;;:43;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7480:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7480:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7480:43:0;;-1:-1:-1;7555:1:0;7546:10;;7542:193;;;7596:6;-1:-1:-1;7581:22:0;;-1:-1:-1;7581:22:0;7542:193;7678:14;;7659:56;;;-1:-1:-1;;;7659:56:0;;-1:-1:-1;;;;;7659:56:0;;;;;;;;;7678:14;;;;;7659:48;;:56;;;;;;;;;;;;;;7678:14;7659:56;;;5:2:-1;;;;30:1;27;20:12;5:2;7659:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7659:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7659:56:0;;-1:-1:-1;7652:63:0;;-1:-1:-1;;7652:63:0;2013:109;1119:9;:7;:9::i;:::-;1111:54;;;;;-1:-1:-1;;;1111:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1111:54:0;;;;;;;;;;;;;;;2086:28;2105:8;2086:18;:28::i;6682:194::-;6762:14;:52;;-1:-1:-1;;;;;;6762:52:0;-1:-1:-1;;;;;6762:52:0;;;;;;;;6830:38;;;;-1:-1:-1;;6830:38:0;6682:194;:::o;6154:393::-;6287:8;:15;6269:7;:14;:33;6261:72;;;;;-1:-1:-1;;;6261:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6349:9;6344:196;6368:7;:14;6364:1;:18;6344:196;;;6453:8;6462:1;6453:11;;;;;;;;;;;;;;6404:13;:25;6418:7;6426:1;6418:10;;;;;;;;;;;;;;-1:-1:-1;;;;;6404:25:0;-1:-1:-1;;;;;6404:25:0;;;;;;;;;;;;;:61;;;;;-1:-1:-1;;;;;6404:61:0;;;;;-1:-1:-1;;;;;6404:61:0;;;;;;6516:8;6525:1;6516:11;;;;;;;;;;;;;;-1:-1:-1;;;;;6485:43:0;6504:7;6512:1;6504:10;;;;;;;;;;;;;;-1:-1:-1;;;;;6485:43:0;;;;;;;;;;;6384:3;;6344:196;;;;6154:393;;:::o;3767:121::-;3838:42;3767:121;:::o;2228:229::-;-1:-1:-1;;;;;2302:22:0;;2294:73;;;;-1:-1:-1;;;2294:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:6;;;2383:38;;-1:-1:-1;;;;;2383:38:0;;;;2404:6;;;2383:38;;;2432:6;:17;;-1:-1:-1;;;;;;2432:17:0;-1:-1:-1;;;;;2432:17:0;;;;;;;;;;2228:229::o

Swarm Source

bzzr://cc0c9190753cba20cea8f02e68f8af86d4cf0d4b2f79bfd550849deecdd80e9e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.