事件
事件在执行交易期间发出。每个 Move 模块都可以定义自己的事件,并选择在执行模块时何时发出事件。例如,在代币转账期间,发送方和接收方的帐户将分别发出 SentEvent
和 Centevent
。这些数据存储在账本中,可以通过 REST 接口的 Get 事件句柄查询。
假设一个 0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
帐户向另一个帐户发送了代币,可以对 REST 接口进行以下查询:https://fullnode.devnet.aptoslabs.com/accounts/c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd/events/0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/withdraw_events
。将输出存储在该帐户上所有的 WithdrawEvent
,看起来是这样的:
每个注册事件都有一个独特的 key
。密钥 0x0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
导向注册在帐户 0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
上的事件0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/sent_events
。可以使用此密钥直接进行事件查询,例如https://fullnode.devnet.aptoslabs.com/events/0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
。
这些代表事件流,或事件列表,每个条目包含从0
开始的顺序增加的 sequence_number
,一个 type
和 data
。每个事件都必须由某种type
来定义。可能有多个事件由相同或类似的type
定义,特别是在使用泛型时。事件与data
相关联。一般原则是包括所有必要的数据,以了解更改数据和事件的交易执行前后对基础资源的更改。
Last updated