Contract 0xceE4b505233BC0719ab2caE556b179e53Cffd3Aa 3

Contract Overview

Balance:
0 Ether
Txn Hash
Method
Block
From
To
Value
0xb964095c00022fcea1438f853e6b13e7e374ecf345101c188ea616ce0d09b8530x60806040316861012022-05-19 8:47:4884 days 9 hrs ago0xb8ea861fda83d033a39f3ccb0b77869a012bb4f9 IN  Create: StdReferenceProxy0 Ether0.‍00147642.‍5
[ Download CSV Export 
Latest 18 internal transactions
Parent Txn Hash Block From To Value
0xeb0fb19eb437ad3dcde462109fc2f67d52732b08ac34211cfd330f3ef8c41814326606212022-07-11 9:36:5231 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0xeb0fb19eb437ad3dcde462109fc2f67d52732b08ac34211cfd330f3ef8c41814326606212022-07-11 9:36:5231 days 8 hrs ago 0x0ead343e21bf85f09d62b16c8925b13ef62d35e7 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0xeb0fb19eb437ad3dcde462109fc2f67d52732b08ac34211cfd330f3ef8c41814326606212022-07-11 9:36:5231 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0xeb0fb19eb437ad3dcde462109fc2f67d52732b08ac34211cfd330f3ef8c41814326606212022-07-11 9:36:5231 days 8 hrs ago 0x0ead343e21bf85f09d62b16c8925b13ef62d35e7 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0x6673d58e59c0c2c4443cb258fe71e43ea3cf93f93eec4ca049e968568eda7d9b326605372022-07-11 9:31:0431 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0x6673d58e59c0c2c4443cb258fe71e43ea3cf93f93eec4ca049e968568eda7d9b326605372022-07-11 9:31:0431 days 8 hrs ago 0x332adcc8650b3aa0bc7c3fb5b60fd4a22369747f 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0x6673d58e59c0c2c4443cb258fe71e43ea3cf93f93eec4ca049e968568eda7d9b326605372022-07-11 9:31:0431 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0x6673d58e59c0c2c4443cb258fe71e43ea3cf93f93eec4ca049e968568eda7d9b326605372022-07-11 9:31:0431 days 8 hrs ago 0x332adcc8650b3aa0bc7c3fb5b60fd4a22369747f 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0x1a07134071308ad6f2e16b9c31dfe7be7ab47266c6a3352315175d31f56bdaa4326605112022-07-11 9:29:1231 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0x1a07134071308ad6f2e16b9c31dfe7be7ab47266c6a3352315175d31f56bdaa4326605112022-07-11 9:29:1231 days 8 hrs ago 0xf7bd0a186fa71971db08d9a00cac4bb288f665dc 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0x1a07134071308ad6f2e16b9c31dfe7be7ab47266c6a3352315175d31f56bdaa4326605112022-07-11 9:29:1231 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0x1a07134071308ad6f2e16b9c31dfe7be7ab47266c6a3352315175d31f56bdaa4326605112022-07-11 9:29:1231 days 8 hrs ago 0xf7bd0a186fa71971db08d9a00cac4bb288f665dc 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0x1ce145e54fde730376c07f350e62406439a6f4ade970a19c495bacc5b4beb901326605072022-07-11 9:28:5631 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0x1ce145e54fde730376c07f350e62406439a6f4ade970a19c495bacc5b4beb901326605072022-07-11 9:28:5631 days 8 hrs ago 0xf7bd0a186fa71971db08d9a00cac4bb288f665dc 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0x1ce145e54fde730376c07f350e62406439a6f4ade970a19c495bacc5b4beb901326605072022-07-11 9:28:5631 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0x1ce145e54fde730376c07f350e62406439a6f4ade970a19c495bacc5b4beb901326605072022-07-11 9:28:5631 days 8 hrs ago 0xf7bd0a186fa71971db08d9a00cac4bb288f665dc 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
0x1be98e25f77ce085e4a4a056ac74675e3d193118e4291423001f176154d9c1df326601482022-07-11 9:02:3631 days 8 hrs ago 0xcee4b505233bc0719ab2cae556b179e53cffd3aa 0xde2022a8ab68ae86b0cd3ba5efa10aab859d02930 Ether
0x1be98e25f77ce085e4a4a056ac74675e3d193118e4291423001f176154d9c1df326601482022-07-11 9:02:3631 days 8 hrs ago 0x097022976d435fb32a7e18b640df32b8925e776c 0xcee4b505233bc0719ab2cae556b179e53cffd3aa0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StdReferenceProxy

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
File 1 of 5 : StdReferenceProxy.sol
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.8.13;

import {Ownable} from "Ownable.sol";
import {IStdReference} from "IStdReference.sol";
import {StdReferenceBase} from "StdReferenceBase.sol";

contract StdReferenceProxy is Ownable, StdReferenceBase {
    IStdReference public ref;

    constructor(IStdReference _ref) {
        ref = _ref;
    }

    /// @notice Updates standard reference implementation. Only callable by the owner.
    /// @param _ref Address of the new standard reference contract
    function setRef(IStdReference _ref) public onlyOwner {
        ref = _ref;
    }

    /// @notice Returns the price data for the given base/quote pair. Revert if not available.
    /// @param base The base symbol of the token pair
    /// @param quote The quote symbol of the token pair
    function getReferenceData(string memory base, string memory quote) public view override returns (ReferenceData memory) {
        return ref.getReferenceData(base, quote);
    }
}

File 2 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "Context.sol";

/**
 * @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.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the 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 virtual onlyOwner {
        _transferOwnership(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 virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 5 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 4 of 5 : IStdReference.sol
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.8.13;

interface IStdReference {
    /// A structure returned whenever someone requests for standard reference data.
    struct ReferenceData {
        uint256 rate; // base/quote exchange rate, multiplied by 1e18.
        uint256 lastUpdatedBase; // UNIX epoch of the last time when base price gets updated.
        uint256 lastUpdatedQuote; // UNIX epoch of the last time when quote price gets updated.
    }

    /// Returns the price data for the given base/quote pair. Revert if not available.
    function getReferenceData(string memory _base, string memory _quote) external view returns (ReferenceData memory);

    /// Similar to getReferenceData, but with multiple base/quote pairs at once.
    function getReferenceDataBulk(string[] memory _bases, string[] memory _quotes) external view returns (ReferenceData[] memory);
}

File 5 of 5 : StdReferenceBase.sol
// SPDX-License-Identifier: Apache-2.0

pragma solidity 0.8.13;

import {IStdReference} from "IStdReference.sol";

abstract contract StdReferenceBase is IStdReference {
    function getReferenceData(string memory _base, string memory _quote) public view virtual override returns (ReferenceData memory);

    function getReferenceDataBulk(string[] memory _bases, string[] memory _quotes) public view override returns (ReferenceData[] memory) {
        require(_bases.length == _quotes.length, "BAD_INPUT_LENGTH");
        uint256 len = _bases.length;
        ReferenceData[] memory results = new ReferenceData[](len);
        for (uint256 idx = 0; idx < len; idx++) {
            results[idx] = getReferenceData(_bases[idx], _quotes[idx]);
        }
        return results;
    }
}

Settings
{
  "evmVersion": "istanbul",
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "libraries": {
    "StdReferenceProxy.sol": {}
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"contract IStdReference","name":"_ref","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"string","name":"base","type":"string"},{"internalType":"string","name":"quote","type":"string"}],"name":"getReferenceData","outputs":[{"components":[{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"lastUpdatedBase","type":"uint256"},{"internalType":"uint256","name":"lastUpdatedQuote","type":"uint256"}],"internalType":"struct IStdReference.ReferenceData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"_bases","type":"string[]"},{"internalType":"string[]","name":"_quotes","type":"string[]"}],"name":"getReferenceDataBulk","outputs":[{"components":[{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"lastUpdatedBase","type":"uint256"},{"internalType":"uint256","name":"lastUpdatedQuote","type":"uint256"}],"internalType":"struct IStdReference.ReferenceData[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ref","outputs":[{"internalType":"contract IStdReference","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IStdReference","name":"_ref","type":"address"}],"name":"setRef","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516109bf3803806109bf83398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6108d3806100ec6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063715018a61161005b578063715018a6146100e75780638da5cb5b146100ef578063e42a071b14610100578063f2fde38b1461012057600080fd5b806321a78f681461008257806365555bcc146100b25780636bc855cc146100d2575b600080fd5b600154610095906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c56100c036600461053b565b610133565b6040516100a9919061059f565b6100e56100e03660046105d5565b6101d3565b005b6100e5610228565b6000546001600160a01b0316610095565b61011361010e366004610698565b61025e565b6040516100a991906106f2565b6100e561012e3660046105d5565b610399565b61015760405180606001604052806000815260200160008152602001600081525090565b60015460405163195556f360e21b81526001600160a01b03909116906365555bcc9061018990869086906004016107a1565b606060405180830381865afa1580156101a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ca91906107cf565b90505b92915050565b6000546001600160a01b031633146102065760405162461bcd60e51b81526004016101fd9061082b565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146102525760405162461bcd60e51b81526004016101fd9061082b565b61025c6000610434565b565b606081518351146102a45760405162461bcd60e51b815260206004820152601060248201526f0848288be929ca0aaa8be988a9c8ea8960831b60448201526064016101fd565b825160008167ffffffffffffffff8111156102c1576102c1610484565b60405190808252806020026020018201604052801561031657816020015b61030360405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816102df5790505b50905060005b828110156103905761036086828151811061033957610339610860565b602002602001015186838151811061035357610353610860565b6020026020010151610133565b82828151811061037257610372610860565b6020026020010181905250808061038890610876565b91505061031c565b50949350505050565b6000546001600160a01b031633146103c35760405162461bcd60e51b81526004016101fd9061082b565b6001600160a01b0381166104285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101fd565b61043181610434565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156104c3576104c3610484565b604052919050565b600082601f8301126104dc57600080fd5b813567ffffffffffffffff8111156104f6576104f6610484565b610509601f8201601f191660200161049a565b81815284602083860101111561051e57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561054e57600080fd5b823567ffffffffffffffff8082111561056657600080fd5b610572868387016104cb565b9350602085013591508082111561058857600080fd5b50610595858286016104cb565b9150509250929050565b815181526020808301519082015260408083015190820152606081016101cd565b6001600160a01b038116811461043157600080fd5b6000602082840312156105e757600080fd5b81356105f2816105c0565b9392505050565b600082601f83011261060a57600080fd5b8135602067ffffffffffffffff8083111561062757610627610484565b8260051b61063683820161049a565b938452858101830193838101908886111561065057600080fd5b84880192505b8583101561068c5782358481111561066e5760008081fd5b61067c8a87838c01016104cb565b8352509184019190840190610656565b98975050505050505050565b600080604083850312156106ab57600080fd5b823567ffffffffffffffff808211156106c357600080fd5b6106cf868387016105f9565b935060208501359150808211156106e557600080fd5b50610595858286016105f9565b6020808252825182820181905260009190848201906040850190845b81811015610748576107358385518051825260208082015190830152604090810151910152565b928401926060929092019160010161070e565b50909695505050505050565b6000815180845260005b8181101561077a5760208185018101518683018201520161075e565b8181111561078c576000602083870101525b50601f01601f19169290920160200192915050565b6040815260006107b46040830185610754565b82810360208401526107c68185610754565b95945050505050565b6000606082840312156107e157600080fd5b6040516060810181811067ffffffffffffffff8211171561080457610804610484565b80604052508251815260208301516020820152604083015160408201528091505092915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006001820161089657634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212204ea29c08b272814d9e27f6183044cf6273bddaa4772c348932801cd2e17427ce64736f6c634300080d0033000000000000000000000000de2022a8ab68ae86b0cd3ba5efa10aab859d0293

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

000000000000000000000000de2022a8ab68ae86b0cd3ba5efa10aab859d0293

-----Decoded View---------------
Arg [0] : _ref (address): 0xde2022a8ab68ae86b0cd3ba5efa10aab859d0293

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000de2022a8ab68ae86b0cd3ba5efa10aab859d0293


Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

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.