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?
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
...
rong jialei
rong jialei
privacidadisahumanright.eth
rong jialei
privacidadisahumanright.eth
alper
result.args.position
oresult.args.proposalID
es la forma correcta de acceder a los valores de args? @BokkyPooBahprivacidadisahumanright.eth
result.args
valores.