# События (events)

События генерируются во время выполнения транзакции. Каждый модуль Move может определять свои собственные события и выбирать, когда генерировать события при выполнении модуля. Например, во время перевода монет [coin transfer](https://github.com/aptos-labs/aptos-core/blob/main/aptos-move/framework/aptos-framework/sources/Coin.move#L304) обе учетные записи отправителя и получателя будут генерировать события `SentEvent` и `ReceivedEvent`, соответственно. Эти данные хранятся в реестре и могут быть запрошены через интерфейс REST [Get events by event handle](https://fullnode.devnet.aptoslabs.com/spec.html#/operations/get_events_by_event_handle).&#x20;

Предположив, что учетная запись `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`. Может быть несколько событий, определенных одним и тем же или подобными типами `type`s, особенно при использовании дженериков. События имеют связанные данные `data`. Общий принцип заключается в том, чтобы включить все данные, необходимые для понимания изменений базовых ресурсов до и после выполнения транзакции, которая изменила данные и вызвала событие.&#x20;
