关于区块链:Aptos概念事件

52次阅读

共计 1516 个字符,预计需要花费 4 分钟才能阅读完成。

在执行交易的过程中,会触发事件。每个 Move 模块都能够定义本人的事件,并且决定何时触发这些事件。例如,在一个“转账”(coin tranfer)动作产生时,发送人和接管人账户,会顺次别离触发 SentEvent 事件和 ReceiveEvent 事件。事件触发的数据,会被存储到链上,并且能够通过 REST 服务来查问,参见“通过事件句柄获取事件信息”。
假如下列账户:
0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
曾经实现了向另外一个账户转账,通过以下的 REST 接口能够查问相干信息:
[https://fullnode.devnet.aptoslabs.com/v1/accounts/c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd/events/0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/withdraw_events](https://fullnode.devnet.aptoslabs.com/v1/accounts/c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd/events/0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/withdraw_events)
该接口会返回指定账户下所有的提现事件,相似上面的样子:

[{
  "key":"0x0000000000000000caa60eb4a01756955ab9b2d1caca52ed",
  "sequence_number":"0",
  "type":"0x1::coin::WithdrawEvent",
  "data":{"amount":"1000"}
}]

每个注册过的事件,都有一个惟一的 key。比方
0x0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
这个 key,就对应着账户
0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
上的事件
0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/sent_events
查问事件的时候,能够间接用这个 key 当参数:
[https://fullnode.devnet.aptoslabs.com/v1/events/0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd](https://fullnode.devnet.aptoslabs.com/v1/events/0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd)

上述事件流,或者说一组事件列表,每一条都蕴含一个从 0 开始有序递增的序列号字段,一个类型字段和数据字段。每条事件必须事后定义好类型。可能有多条事件具备雷同或相近的类型,特地是在应用泛型的时候。事件能够有关联的数据;一般说来,这些数据应该蕴含所有变动的信息,让用户可能查问到交易执行前后,相干的资源产生了哪些变动,从而触发了事件。

正文完
 0