¿Cómo obtener un contrato de registro de evento específico?

Puedo obtener todos los registros de eventos. mi código es:

var contractInstance = contract.at("0x123456...789");
var transferEvents = contractInstance.allEvents({fromBlock:0, toBlock:'latest'});

y la salida es:

{ address: '0xafe6851c1d9ee2e759acdee8cfc827e22a9ec5d7',
blockHash: '0xe5cdc4ae1e70ad4b4610a1f5a45fb3ff56bc3530f159ab0613ffeb33a7bf9c0a',
blockNumber: 1924935,
logIndex: 3,
transactionHash: '0x2e18ac5cb925b95ec609970e66d566623f446bc67bd0b72aac0a2ca6e96ef128',
transactionIndex: 4,
event: 'Transfer',
args:
 { from: '0xd94c9ff168dc6aebf9b6cc86deff54f3fb0afc33',
   to: '0x414755edffa43707f7d51600edf9ecbe57152a8a',
   value: [Object] } },

Pero obtengo datos de eventos de transferencia

var contractInstance = contract.at("0x123456...789");
var transferEvents = contractInstance.Transfer({fromBlock:0, toBlock:'latest'});

la salida está vacía.

¿Hay algún problema en mi código?

Respuestas (1)

Intentar

var transferEvents = contractInstance.Transfer({}, {fromBlock:0, toBlock:'latest'});

Fuente: ¿Cómo recupero los eventos votados de The DAO?



Respuesta a la pregunta en el comentario.

Q el retorno parece una cadena larga que contiene todos los registros. ¿Cómo puedo dividirlos uno por uno?

(desde el mismo enlace anterior) Primero uso JSON.stringify(...)para ver los datos:

> var theDAOVotedEvent = theDAO.Voted({}, {fromBlock: 1614771, toBlock: 'latest'});
undefined
> theDAOVotedEvent.watch(function(error, result){
  console.log(JSON.stringify(result));
});
...
{"address":"0xbb9bc244d798123fde783fcc1c72d3bb8c189413","args":{"position":true,"proposalID":"15","voter":"0xebbf5d7d649aedde2c27a8b850a2a3862595eb53"},"blockHash":"0x3d0e8b47fbb03727c72585fbe2fd5f25c69c03f2b832753567c2309f1ecb3b2a","blockNumber":1614808,"event":"Voted","logIndex":0,"transactionHash":"0x0060654808a2dee9710fa01e26adb46e77df03c17e453e8fddc8749269ffad92","transactionIndex":1}
{"address":"0xbb9bc244d798123fde783fcc1c72d3bb8c189413","args":{"position":false,"proposalID":"11","voter":"0xebbf5d7d649aedde2c27a8b850a2a3862595eb53"},"blockHash":"0x607d940ebbbb17e6d5c3c8a871cd4783b271ddf71f4aeb83dbcdcaf8ce2154d9","blockNumber":1614812,"event":"Voted","logIndex":1,"transactionHash":"0x6b5cab6f7987d7283fdde051c76ace98c9f080bda6dbdf720689fc0c3958005b","transactionIndex":6}
{"address":"0xbb9bc244d798123fde783fcc1c72d3bb8c189413","args":{"position":false,"proposalID":"11","voter":"0xebbf5d7d649aedde2c27a8b850a2a3862595eb53"},"blockHash":"0x69be968ce90c7e910c149cc80ab1e5f2ae6bdb45f142ee0e6fa181be9d1e106e","blockNumber":1614812,"event":"Voted","logIndex":0,"transactionHash":"0x6b5cab6f7987d7283fdde051c76ace98c9f080bda6dbdf720689fc0c3958005b","transactionIndex":2}

...

Una vez que pueda ver los datos, puede hacer referencia a cada campo, por ejemplo:

result.address
result.args
...
¡Funciona! ¡Así que aprecia!
el retorno parece una cadena larga que contiene todos los registros. ¿Cómo puedo dividirlos uno por uno?
Ver actualización para responder
Lo tengo. Lo siento porque no estoy familiarizado con node.js. Perdón por la pregunta de bajo nivel.
Sin preocupaciones. Estoy aprendiendo a mí mismo a medida que se hacen nuevas preguntas.
result.args.positiono result.args.proposalIDes la forma correcta de acceder a los valores de args? @BokkyPooBah
Sí. Eso te dará los result.argsvalores.