¿Cómo mostrar el resultado devuelto por la función _callback de Oraclize en la interfaz de dapp?

Estoy usando testrpc como cliente y truffle como marco de desarrollo. Y también estoy usando ethereum-bridge para Oracle.

Este es el código del contrato. He descargado la 'API de Oraclize' (oraclizeAPI_0.4.sol) del repositorio de github de Oraclize. He agregado este archivo a la carpeta de contratos de trufas y he cambiado el nombre del archivo a usingOraclize.sol. Y es importado en el contrato dado.

  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");
         }

     }

El archivo XML en el enlace ' https://www.fueleconomy.gov/ws/rest/fuelprices ' es el siguiente.

     <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>

He compilado el contrato usando 'trufa'. ingrese la descripción de la imagen aquíOraclize devuelve el resultado del precio del diesel como '2.57' usando ethereum-bridge.

ingrese la descripción de la imagen aquí

Quiero usar el resultado en el archivo index.js para mostrarlo en la interfaz. ¿Cómo usar el resultado en la interfaz dapp?

Respuestas (1)

Cuando obtenga el resultado en su contrato, regístrelo como un evento. Con web3.js o ethjs, cree código JavaScript para detectar ese evento (consulte los documentos para watcho filter) y muéstrelo en su página HTML.

@ Edmund Edgar ¿Puede mencionar las actualizaciones requeridas en la función _callback para registrar el resultado como evento? No tengo idea al respecto
Vea aquí cómo crear un evento y escucharlo desde JavaScript: solidity.readthedocs.io/en/develop/contracts.html#events