如何记录合同自开始以来发出的所有事件?

How to log all of the events emitted by a Contract since it's inception?

我目前正在使用 Truffle 框架进行检查,但所有文档都是关于观看时事的。

var meta = MetaCoin.deployed();
var events = meta.allEvents();
events.watch(function(error, result) {
  if (error == null) {
    console.log(result.args);
  }
}

您需要指定过滤器对象以获取从创世纪(第一个区块的加密人词)到现在的所有事件。

以下代码应该有效:

MetaCoin.deployed().then(meta => {
  const allEvents = meta.allEvents({
    fromBlock: 0,
    toBlock: 'latest'
  });
  allEvents.watch((err, res) => {
    console.log(err, res);
  });
});

就是说:要小心这样的一般查找。您很容易使 JSONRPC 端点崩溃。

进一步阅读:https://github.com/ethereum/wiki/wiki/JavaScript-API#contract-allevents