Как получить конкретный журнал событий в контракте?

Я могу получить все журналы событий. Мой код:

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

и вывод:

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

Но я получаю данные о событии передачи

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

вывод пустой.

Есть ли проблема в моем коде?

Ответы (1)

Пытаться

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

Источник: Как получить события Voted из The DAO



Ответ на вопрос в комментарии

Q возврат кажется длинной строкой, содержащей все журналы. Как я могу разделить их по одному?

(из той же ссылки выше) я сначала использую JSON.stringify(...)для просмотра данных:

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

...

Как только вы увидите данные, вы можете ссылаться на каждое поле, например:

result.address
result.args
...
Оно работает! Так цените!
возврат кажется длинной строкой, содержащей все журналы. Как я могу разделить их по одному?
Смотрите обновление, чтобы ответить
Я понял. Извините, потому что я не знаком с node.js. Извините за вопрос низкого уровня.
Не волнуйтесь. Я учусь сам, когда задают новые вопросы.
result.args.positionили result.args.proposalIDэто правильный способ доступа к значениям аргументов? @BokkyPooBah
Ага. Это даст вам result.argsзначения.