Remix でコントラクトを展開し、Solidity でコーディングする方法を学ぶのはこれが初めてです。
私はすでにこのガイドを読み、提供されたスマート コントラクト テンプレートを正常にデプロイしました。
pragma solidity ^0.6.7;
import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
contract PriceConsumerV3 {
AggregatorV3Interface internal priceFeed;
/**
* Network: Kovan
* Aggregator: BTC/USD
* Address: 0x6135b13325bfC4B00278B4abC5e20bbce2D6580e
*/
constructor() public {
priceFeed = AggregatorV3Interface(0x6135b13325bfC4B00278B4abC5e20bbce2D6580e);
}
/**
* Returns the latest price
*/
function getThePrice() public view returns (int) {
(
uint80 roundID,
int price,
uint startedAt,
uint timeStamp,
uint80 answeredInRound
) = priceFeed.latestRoundData();
return price;
}
}
しかし、上記のテンプレートをデプロイした後、getLatestPrice ボタンをクリックするたびに、そのようなペアの価格が即座に更新されると思っていましたが、私は非常に間違っていました。価格は実際には最初のクリック後に「凍結」されました。
そのため、その目的を達成するために上記のテンプレートに入力する必要があるものを知りたいです
また、すぐ下timeStamp
に入力して印刷しようとしましたが、コンパイルすると、Remix コンパイラは次のように応答しました。return timeStamp;
return price;
TypeError: 戻り引数の型 uint256 は、予期される型 (最初の戻り変数の型) int256 に暗黙的に変換できません。タイムスタンプを返します。^-------^
では、好奇心のために、更新された各価格のタイムスタンプを取得するために、uint256 変数を int256 変数に変換するにはどうすればよいでしょうか (クリックするたびにgetLatestPrice button
) ?
読んでくれてありがとう