interface AggregatorV3Interface {

  function decimals()
    external
    view
    returns (
      uint8
    );

  function description()
    external
    view
    returns (
      string memory
    );

  function version()
    external
    view
    returns (
      uint256
    );
    
    // 0x74825DbC8BF76CC4e9494d0ecB210f676Efa001D - DAI/ETH Testnet
    // 0x773616E4d11A78F511299002da57A0a94577F1f4 - DAI/ETH Mainnet
    // 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
    );

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

// 0x74825DbC8BF76CC4e9494d0ecB210f676Efa001D - DAI/ETH Testnet
// 0x773616E4d11A78F511299002da57A0a94577F1f4 - DAI/ETH Mainnet
// 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.