События (events)

События генерируются во время выполнения транзакции. Каждый модуль Move может определять свои собственные события и выбирать, когда генерировать события при выполнении модуля. Например, во время перевода монет coin transfer обе учетные записи отправителя и получателя будут генерировать события SentEvent и ReceivedEvent, соответственно. Эти данные хранятся в реестре и могут быть запрошены через интерфейс REST Get events by event handle.

Предположив, что учетная запись 0xcaa60eb4a01756955ab9b2d1caca52ed отправила монеты другой учетной записи, то к интерфейсу REST можно было бы сделать следующий запрос:https://fullnode.devnet.aptoslabs.com/accounts/caa60eb4a01756955ab9b2d1caca52ed/events/0x1::Coin::CoinStore<0x1::TestCoin::TestCoin>/withdraw_events. Вы получите все события WithdrawEvent, хранящиеся в этой учетной записи, это будет выглядеть так:

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

Каждое зарегистрированное событие имеет уникальный ключ key. Ключ 0x0000000000000000caa60eb4a01756955ab9b2d1caca52ed соответствует событию 0x1::Coin::CoinStore<0x1::TestCoin::TestCoin>/sent_events , зарегистрированному в учетной записи 0xcaa60eb4a01756955ab9b2d1caca52ed. Затем этот ключ можно использовать для прямого запроса событий, например: https://fullnode.devnet.aptoslabs.com/events/0000000000000000caa60eb4a01756955ab9b2d1caca52ed.

Они представляют собой потоки событий или список событий, каждая запись которого содержит последовательно увеличивающийся sequence_number начиная с 0, type и data. Каждое событие должно быть определено некоторым типом type. Может быть несколько событий, определенных одним и тем же или подобными типами types, особенно при использовании дженериков. События имеют связанные данные data. Общий принцип заключается в том, чтобы включить все данные, необходимые для понимания изменений базовых ресурсов до и после выполнения транзакции, которая изменила данные и вызвала событие.

Last updated