返回介绍

once - 单次订阅合约事件

发布于 2020-01-19 11:52:17 字数 1852 浏览 1224 评论 0 收藏 0

订阅合约指定的事件,并在第一次触发后或发生错误后立即取消订阅。一个事件仅触发一次。

调用:

myContract.once(event[, options], callback)

参数:

  • event - String: 要订阅的合约事件名,或者使用"allEvents" 订阅所有事件
  • options - Object: 可选,用于部署的选项,包含以下字段:
    • filter - Object : 可选,用于根据索引参数过滤事件。例如 {filter: {myNumber: [12,13]}} 表示“myNumber” 为12或13的所有事件
    • topics - Array : 可选,用于手动设置事件过滤器的主题。如果制订了filter属性和事件签名,将不会自动设置(topic[0])
  • callback - Function: 该回调函数触发时,其第一个参数为错误对象,第二个参数为事件对象

返回值:

未定义

示例代码:

myContract.once('MyEvent', {
    filter: {myIndexedParam: [20,23], myOtherIndexedParam: '0x123456789...'}, // Using an array means OR: e.g. 20 or 23
    fromBlock: 0
}, function(error, event){ console.log(event); });

// event output example
> {
    returnValues: {
        myIndexedParam: 20,
        myOtherIndexedParam: '0x123456789...',
        myNonIndexParam: 'My String'
    },
    raw: {
        data: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
        topics: ['0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385']
    },
    event: 'MyEvent',
    signature: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',
    logIndex: 0,
    transactionIndex: 0,
    transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
    blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',
    blockNumber: 1234,
    address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文