События генерируются во время выполнения транзакции. Каждый модуль Move может определять свои собственные события и выбирать, когда генерировать эти события при выполнении модуля. Например, во время перевода coin учетные записи отправителя и получателя будут выдавать SentEvent
и ReceivedEvent
соответственно. Эти данные хранятся в реестре и могут быть запрошены через функцию Get events by event handle интерфейса REST.
Если предположить, что учетная запись 0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4f
bdcfd отправила coins на другую учетную запись, можно сделать следующий запрос к REST-интерфейсу: https://fullnode.devnet.aptoslabs.com/accounts/c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd/events/0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>/withdraw_events
. В результате будут получены все WithdrawEvents
средств, хранящиеся на этой учетной записи, это будет выглядеть следующим образом
[{
"key":"0x0000000000000000caa60eb4a01756955ab9b2d1caca52ed",
"sequence_number":"0",
"type":"0x1::coin::WithdrawEvent",
"data":{
"amount":"1000"
}
}]
Каждое зарегистрированное событие имеет уникальный ключ. Ключ 0x0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
отображает событие 0x1::coin::CoinStore<0x1: :aptos_coin::AptosCoin>/sent_events
зарегистрированный на учетной записи 0xc40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
. Затем этот ключ можно использовать для прямого запроса событий, например, https://fullnode.devnet.aptoslabs.com/events/0000000000000000c40f1c9b9fdc204cf77f68c9bb7029b0abbe8ad9e5561f7794964076a4fbdcfd
.
Они представляют собой потоки событий, или список событий, каждая запись которого содержит последовательно возрастающий номер sequence_number
, начинающийся с 0
, type
и data
. Каждое событие должно быть определено каким-либо type
. Может быть несколько событий, определенных одним и тем же или похожими type
, особенно при использовании generics. События имеют ассоциированные data
. Общий принцип заключается в том, чтобы включать все data
, необходимые для понимания изменений в базовых ресурсах до и после выполнения транзакции, которая изменила данные и вызвала событие.
Top comments (0)