# `Ethers.Event`
[🔗](https://github.com/ExWeb3/elixir_ethers/blob/v0.6.12/lib/ethers/event.ex#L1)

EVM Event struct and helpers

# `t`

```elixir
@type t() :: %Ethers.Event{
  address: Ethers.Types.t_address(),
  block_hash: Ethers.Types.t_hash(),
  block_number: non_neg_integer(),
  data: [term()],
  data_raw: String.t(),
  log_index: non_neg_integer(),
  removed: boolean(),
  topics: [term(), ...],
  topics_raw: [String.t(), ...],
  transaction_hash: Ethers.Types.t_hash(),
  transaction_index: non_neg_integer()
}
```

# `decode`

```elixir
@spec decode(map(), ABI.FunctionSelector.t()) :: t()
```

Decodes a log entry with the given Event function selector and returns an Event struct

# `find_and_decode`

```elixir
@spec find_and_decode(map(), module()) :: {:ok, t()} | {:error, :not_found}
```

Given a log entry and an EventFilters module (e.g. `Ethers.Contracts.ERC20.EventFilters`)
will find a matching event filter in the given module and decodes the log using the event selector.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
