ETH Price: $3,191.45 (-0.33%)

Contract

0x112Cb637de6C1E6e71E8807cE9067AaE5D5C192F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040105459722020-07-28 5:00:431567 days ago1595912443IN
 Contract Creation
0 ETH0.0435704971

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
110157422020-10-08 15:34:241494 days ago1602171264
0x112Cb637...E5D5C192F
0 ETH
110157422020-10-08 15:34:241494 days ago1602171264
0x112Cb637...E5D5C192F
0 ETH
110157392020-10-08 15:33:041494 days ago1602171184
0x112Cb637...E5D5C192F
0 ETH
110157392020-10-08 15:33:041494 days ago1602171184
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157322020-10-08 15:32:051494 days ago1602171125
0x112Cb637...E5D5C192F
0 ETH
110157192020-10-08 15:28:221494 days ago1602170902
0x112Cb637...E5D5C192F
0 ETH
110157192020-10-08 15:28:221494 days ago1602170902
0x112Cb637...E5D5C192F
0 ETH
110157192020-10-08 15:28:221494 days ago1602170902
0x112Cb637...E5D5C192F
0 ETH
110157192020-10-08 15:28:221494 days ago1602170902
0x112Cb637...E5D5C192F
0 ETH
110157142020-10-08 15:27:321494 days ago1602170852
0x112Cb637...E5D5C192F
0 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x7F997122...48D01C4f6
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
AggregatorFacade

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-07-28
*/

pragma solidity 0.6.6;


interface AggregatorInterface {
  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, uint256 startedAt);
}

interface AggregatorV3Interface {

  function decimals() external view returns (uint8);
  function description() external view returns (string memory);
  function version() external view returns (uint256);

  // getRoundData and latestRoundData should both raise "No data present"
  // if they do not have data to report, instead of returning unset values
  // which could be misinterpreted as actual reported values.
  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  event NewRound(
    uint256 indexed roundId,
    address indexed startedBy,
    uint256 startedAt
  );
  event AnswerUpdated(
    int256 indexed current,
    uint256 indexed roundId,
    uint256 updatedAt
  );

}

/**
 * @title A facade forAggregator versions to conform to the new v0.6
 * Aggregator V3 interface.
 */
contract AggregatorFacade is AggregatorInterface, AggregatorV3Interface {

  AggregatorInterface public aggregator;
  uint8 public override decimals;
  string public override description;

  uint256 constant public override version = 2;

  // An error specific to the Aggregator V3 Interface, to prevent possible
  // confusion around accidentally reading unset values as reported values.
  string constant private V3_NO_DATA_ERROR = "No data present";

  constructor(
    address _aggregator,
    uint8 _decimals,
    string memory _description
  ) public {
    aggregator = AggregatorInterface(_aggregator);
    decimals = _decimals;
    description = _description;
  }

  /**
   * @notice get the latest completed round where the answer was updated
   */
  function latestRound()
    external
    view
    virtual
    override
    returns (uint256)
  {
    return aggregator.latestRound();
  }

  /**
   * @notice Reads the current answer from aggregator delegated to.
   */
  function latestAnswer()
    external
    view
    virtual
    override
    returns (int256)
  {
    return aggregator.latestAnswer();
  }

  /**
   * @notice Reads the last updated height from aggregator delegated to.
   */
  function latestTimestamp()
    external
    view
    virtual
    override
    returns (uint256)
  {
    return aggregator.latestTimestamp();
  }

  /**
   * @notice get data about the latest round. Consumers are encouraged to check
   * that they're receiving fresh data by inspecting the updatedAt value.
   * @return roundId is the round ID for which data was retrieved
   * @return answer is the answer for the given round
   * @return startedAt is always equal to updatedAt because the underlying
   * Aggregator contract does not expose this information.
   * @return updatedAt is the timestamp when the round last was updated (i.e.
   * answer was last computed)
   * @return answeredInRound is always equal to roundId because the underlying
   * Aggregator contract does not expose this information.
   * @dev Note that for rounds that haven't yet received responses from all
   * oracles, answer and updatedAt may change between queries.
   */
  function latestRoundData()
    external
    view
    virtual
    override
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    )
  {
    return _getRoundData(uint80(aggregator.latestRound()));
  }

  /**
   * @notice get past rounds answers
   * @param _roundId the answer number to retrieve the answer for
   */
  function getAnswer(uint256 _roundId)
    external
    view
    virtual
    override
    returns (int256)
  {
    return aggregator.getAnswer(_roundId);
  }

  /**
   * @notice get block timestamp when an answer was last updated
   * @param _roundId the answer number to retrieve the updated timestamp for
   */
  function getTimestamp(uint256 _roundId)
    external
    view
    virtual
    override
    returns (uint256)
  {
    return aggregator.getTimestamp(_roundId);
  }

  /**
   * @notice get data about a round. Consumers are encouraged to check
   * that they're receiving fresh data by inspecting the updatedAt value.
   * @param _roundId the round ID to retrieve the round data for
   * @return roundId is the round ID for which data was retrieved
   * @return answer is the answer for the given round
   * @return startedAt is always equal to updatedAt because the underlying
   * Aggregator contract does not expose this information.
   * @return updatedAt is the timestamp when the round last was updated (i.e.
   * answer was last computed)
   * @return answeredInRound is always equal to roundId because the underlying
   * Aggregator contract does not expose this information.
   * @dev Note that for rounds that haven't yet received responses from all
   * oracles, answer and updatedAt may change between queries.
   */
  function getRoundData(uint80 _roundId)
    external
    view
    virtual
    override
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    )
  {
    return _getRoundData(_roundId);
  }

  /*
   * Internal
   */

  function _getRoundData(uint80 _roundId)
    internal
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    )
  {
    answer = aggregator.getAnswer(_roundId);
    updatedAt = uint64(aggregator.getTimestamp(_roundId));

    require(updatedAt > 0, V3_NO_DATA_ERROR);

    return (_roundId, answer, updatedAt, updatedAt, _roundId);
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_aggregator","type":"address"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"string","name":"_description","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatedAt","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":true,"internalType":"address","name":"startedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"startedAt","type":"uint256"}],"name":"NewRound","type":"event"},{"inputs":[],"name":"aggregator","outputs":[{"internalType":"contract AggregatorInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundId","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundId","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80637284e41611610081578063b5ab58dc1161005b578063b5ab58dc14610234578063b633620c14610251578063feaf968c1461026e576100c9565b80637284e416146101475780638205bf6a146101c45780639a6fc8f5146101cc576100c9565b806350d25bcd116100b257806350d25bcd1461011d57806354fd4d5014610137578063668a0f021461013f576100c9565b8063245a7bfc146100ce578063313ce567146100ff575b600080fd5b6100d6610276565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610107610292565b6040805160ff9092168252519081900360200190f35b6101256102b3565b60408051918252519081900360200190f35b61012561034d565b610125610352565b61014f6103bb565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610125610466565b6101f5600480360360208110156101e257600080fd5b503569ffffffffffffffffffff166104cf565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6101256004803603602081101561024a57600080fd5b50356104f2565b6101256004803603602081101561026757600080fd5b5035610597565b6101f561060a565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561031c57600080fd5b505afa158015610330573d6000803e3d6000fd5b505050506040513d602081101561034657600080fd5b5051905090565b600281565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b15801561031c57600080fd5b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561045e5780601f106104335761010080835404028352916020019161045e565b820191906000526020600020905b81548152906001019060200180831161044157829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561031c57600080fd5b60008060008060006104e0866106be565b939a9299509097509550909350915050565b60008054604080517fb5ab58dc00000000000000000000000000000000000000000000000000000000815260048101859052905173ffffffffffffffffffffffffffffffffffffffff9092169163b5ab58dc91602480820192602092909190829003018186803b15801561056557600080fd5b505afa158015610579573d6000803e3d6000fd5b505050506040513d602081101561058f57600080fd5b505192915050565b60008054604080517fb633620c00000000000000000000000000000000000000000000000000000000815260048101859052905173ffffffffffffffffffffffffffffffffffffffff9092169163b633620c91602480820192602092909190829003018186803b15801561056557600080fd5b60008060008060006106ad6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b15801561067c57600080fd5b505afa158015610690573d6000803e3d6000fd5b505050506040513d60208110156106a657600080fd5b50516106be565b945094509450945094509091929394565b60008054604080517fb5ab58dc00000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff851660048201529051839283928392839273ffffffffffffffffffffffffffffffffffffffff169163b5ab58dc916024808301926020929190829003018186803b15801561074157600080fd5b505afa158015610755573d6000803e3d6000fd5b505050506040513d602081101561076b57600080fd5b5051600054604080517fb633620c00000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff8a166004820152905192965073ffffffffffffffffffffffffffffffffffffffff9091169163b633620c91602480820192602092909190829003018186803b1580156107ed57600080fd5b505afa158015610801573d6000803e3d6000fd5b505050506040513d602081101561081757600080fd5b505160408051808201909152600f81527f4e6f20646174612070726573656e740000000000000000000000000000000000602082015267ffffffffffffffff9091169250826108fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108c35781810151838201526020016108ab565b50505050905090810190601f1680156108f05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5094959294509250829185915056fea26469706673582212209093f5482f32345382388bc2da2943bff368799daba9ade6b1a0a1e91ce8f6b464736f6c63430006060033

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.