Wie kann das von der _callback-Funktion von Oraclize zurückgegebene Ergebnis im Dapp-Frontend angezeigt werden?

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. Geben Sie hier die Bildbeschreibung einDie Oraclize gibt den Ergebnis-Dieselpreis als '2,57' mit Ethereum-Bridge zurück.

Geben Sie hier die Bildbeschreibung ein

Ich möchte das Ergebnis in der Datei index.js verwenden, um es im Frontend anzuzeigen. Wie verwende ich das Ergebnis im Dapp-Frontend?

Antworten (1)

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 watchoder filter), und zeigen Sie es auf Ihrer HTML-Seite an.

@ Edmund Edgar Können Sie bitte die Aktualisierungen erwähnen, die in der _callback-Funktion zum Protokollieren des Ergebnisses als Ereignis erforderlich sind? Ich habe keine Ahnung davon
Hier erfahren Sie, wie Sie ein Ereignis erstellen und über JavaScript anhören: solidity.readthedocs.io/en/develop/contracts.html#events