Oracles

以美元目前匯率獲取 ETH 沒有響應?

  • May 29, 2018

我正在嘗試從以下連結獲取目前的乙太坊到美元匯率:https ://api.infura.io/v1/ticker/ethusd

這是我的程式碼片段

pragma solidity ^0.4.11;
import "github.com/oraclize/ethereum-api/oraclizeAPI.sol";

contract ExampleContract is usingOraclize {
string public ETHUSD;
event LogConstructorInitiated(string nextStep);
event LogPriceUpdated(string price);
event LogNewOraclizeQuery(string description);

function ExampleContract() payable {
   LogConstructorInitiated("Constructor was initiated. Call 'updatePrice()' to send the Oraclize Query.");
}

function __callback(bytes32 myid, string result) {
   if (msg.sender != oraclize_cbAddress()) revert();
   ETHUSD = result;
   LogPriceUpdated(result);
}

function updatePrice() payable {
   if (oraclize_getPrice("URL") > this.balance) {
       LogNewOraclizeQuery("Oraclize query was NOT sent, please add some ETH to cover for the query fee");
   } else {
       LogNewOraclizeQuery("Oraclize query was sent, standing by for the answer..");
       oraclize_query("URL", "json(https://api.infura.io/v1/ticker/ethusd).bid");
   }
}

}

但是當我按下 updatePrice() 時,交易成功,但 ETHUSD 變數中沒有擷取任何值。任何想法,我做錯了什麼?我嘗試使用這個網址,它工作正常(歐元,英鎊)“json(http://api.fixer.io/latest?symbols=USD,GBP.rates.GBP) ).rates.GBP ”

我剛剛試過你的程式碼,它工作得很好。你介意分享你正在嘗試這個的網路以及如何?在下面的範例中,我使用了 Oraclize 的混音分支,帶有一個集成的 Oraclize 模組,允許您直接在瀏覽器虛擬機中使用 Oraclize。

http://dapps.oraclize.it/browser-solidity/#version=soljson-v0.4.20+commit.3155dd80.js

確保您使用的網路是主網或公共測試網。如果不是其中任何一個,則需要在其上部署適當的 Oraclize 架構,這可以使用 ethereum-bridge npm 包來完成。

在此處輸入圖像描述

引用自:https://ethereum.stackexchange.com/questions/49348