Ich versuche, den aktuellen Kurs von Ethereum zu USD über den folgenden Link abzurufen: https://api.infura.io/v1/ticker/ethusd
Das ist mein Codeschnipsel
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");
}
}
}
aber wenn ich updatePrice() drücke, wird die Transaktion erfolgreich durchgeführt, aber in der ETHUSD-Variablen wird kein Wert erfasst. Irgendeine Idee, was ich falsch mache? Ich habe versucht, diese URL zu verwenden und es funktioniert gut (für EUR, GBP) "json( http://api.fixer.io/latest?symbols=USD,GBP).rates.GBP "
Ich habe gerade deinen Code ausprobiert und er funktioniert einwandfrei. Können Sie mitteilen, in welchem Netzwerk Sie dies versuchen und wie? Im folgenden Beispiel verwende ich Oraclizes Fork of Remix mit einem integrierten Oraclize-Modul, mit dem Sie Oraclize direkt in der Browser-VM verwenden können.
http://dapps.oraclize.it/browser-solidity/#version=soljson-v0.4.20+commit.3155dd80.js
Stellen Sie sicher, dass das von Ihnen verwendete Netzwerk entweder ein Hauptnetz oder ein öffentliches Testnetz ist. Wenn es keines von beiden ist, muss die entsprechende Oraclize-Architektur darauf bereitgestellt werden, was mit dem ethereum-bridge npm-Paket erfolgen kann.
AnAllergyToAnalogy
Maurycy
Fariha Abbasi