cómo obtener el historial de transacciones del token a través de web3.js (0.20.6)

configuración

node.js + web3.js (versión 0.20.6) + y usando infura para httpProvider

Descubrí y envié con éxito tokens erc20 usando web3.js, (después de mucho buscar en Google... complete noobie aquí...)

y ahora estoy tratando de averiguar cómo obtener el historial de transacciones del token de una dirección específica.

tengo la idea de que necesito ver los eventos, que para las transacciones de fichas, sería el evento "Transferir".

así que estoy siguiendo la API de Javascript para "eventos de contrato" https://github.com/ethereum/wiki/wiki/JavaScript-API#contract-events

y debajo está el código que estoy ejecutando (o al menos intentando hacerlo)

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/MYINFURATOKEN'));

var myaddress = "0x482d42bc7a5dd62f3fae88c3b4cde29a333cf913";

var contractAddress = "0x31a86307bfe81780a47fe98c192004ccdce8fcc0";

var abi = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TransferAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"bool"}],"name":"TransferEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"bool"}],"name":"TransferDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"}];

var myContractInstance = web3.eth.contract(abi).at(contractAddress);

var event = myContractInstance.Transfer({_from: myaddress}, {fromBlock:0, toBlock: 'latest'});

event.watch(function(error, result){
  if (!error)
    console.log(result);
});  

y eso vuelve

Filter {
  requestManager: 
   RequestManager {
     provider: 
      HttpProvider {
        host: 'https://rinkeby.infura.io/MYINFURATOKEN',
        timeout: 0,
        user: undefined,
        password: undefined,
        headers: undefined },
     polls: {},
     timeout: null },
  options: 
   { topics: 
      [ '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
        null,
        null ],
     from: undefined,
     to: undefined,
     address: '0x31a86307bfe81780a47fe98c192004ccdce8fcc0',
     fromBlock: '0x0',
     toBlock: 'latest' },
  implementation: 
   { newFilter: { [Function: send] request: [Function: bound ], call: [Function: newFilterCall] },
     uninstallFilter: { [Function: send] request: [Function: bound ], call: 'eth_uninstallFilter' },
     getLogs: { [Function: send] request: [Function: bound ], call: 'eth_getFilterLogs' },
     poll: { [Function: send] request: [Function: bound ], call: 'eth_getFilterChanges' } },
  filterId: null,
  callbacks: [ [Function] ],
  getLogsCallbacks: [],
  pollFilters: [],
  formatter: [Function: bound ] }

que estoy bastante seguro de que no es el historial de transacciones del token... ¿o hay algún paso que me estoy perdiendo?

¿Cómo me iría de aquí?

Gracias de antemano. Justino.

Respuestas (2)

Lo que quieres son eventos pasados , creo.

bueno, "getPastEvents" es solo para web3 1.0.0, que está en beta... Prefiero usar la versión estable que es la 0.20.6 en este momento, y no ofrece "getPastEvents"
Recomiendo revisar el código fuente e implementarlo usted mismo si espera permanecer en la versión estable. Puede encontrarlo aquí: github.com/ChainSafe/web3.js/blob/… Nota: al momento de escribir, el método getPastEvents es estable.

Estoy haciendo lo mismo que usted aquí. Esto le muestra el historial de transacciones de tokens, la cuestión es que no le muestra el historial de una transacción de tokens de una dirección específica.