Ich verwende testrpc als Client und Truffle als Entwicklungsframework. Und verwende auch Ethereum-Bridge für Oraclize.
Dies ist der Vertragscode. Ich habe die „Oraclize-API“ (oraclizeAPI_0.4.sol) aus dem Oraclize-Github-Repo heruntergeladen. Ich habe diese Datei zum Ordner „Trüffelverträge“ hinzugefügt und die Datei in „using Oraclize.sol“ umbenannt. Und das ist es in den gegebenen Vertrag importiert.
pragma solidity ^0.4.0;
import "./usingOraclize.sol";
contract ApiCall is usingOraclize {
uint public DieselPriceUSD;
function ApiCall() {
OAR = OraclizeAddrResolverI(0x9851eb2d10b765d8857e7e1b060bc1eb166e89f2);
}
function __callback(bytes32 myid, string result) {
if (msg.sender != oraclize_cbAddress()) throw;
DieselPriceUSD = parseInt(result, 2);
}
function update() payable {
oraclize_query("URL", "xml(https://www.fueleconomy.gov/ws/rest/fuelprices).fuelPrices.diesel");
}
}
Die XML-Datei im Link „ https://www.fueleconomy.gov/ws/rest/fuelprices “ lautet wie folgt.
<fuelPrices>
<cng>2.06</cng>
<diesel>2.57</diesel>
<e85>1.93</e85>
<electric>0.13</electric>
<lpg>2.68</lpg>
<midgrade>2.58</midgrade>
<premium>2.82</premium>
<regular>2.33</regular>
</fuelPrices>
Ich habe den Vertrag mit 'Trüffel' zusammengestellt. Die Oraclize gibt den Ergebnis-Dieselpreis als '2,57' mit Ethereum-Bridge zurück.
Ich möchte das Ergebnis in der Datei index.js verwenden, um es im Frontend anzuzeigen. Wie verwende ich das Ergebnis im Dapp-Frontend?
Wenn Sie das Ergebnis in Ihrem Vertrag erhalten, protokollieren Sie es als Ereignis. Erstellen Sie mit web3.js oder ethjs JavaScript-Code, um auf dieses Ereignis zu lauschen (siehe die Dokumentation für watch
oder filter
), und zeigen Sie es auf Ihrer HTML-Seite an.
Crissi Mariam Robert
Edmund Edgar