# `X402.Hooks.Context`
[🔗](https://github.com/cardotrejos/x402/blob/v0.9.0/lib/x402/hooks/context.ex#L1)

Context passed between x402 lifecycle hook callbacks.

Hook implementations can inspect and transform `:payload` and
`:requirements` in `before_*` callbacks, set `:result` in `after_*`
callbacks, and inspect or replace `:error` in `on_*_failure` callbacks.

# `t`

```elixir
@type t() :: %X402.Hooks.Context{
  error: term() | nil,
  payload: map(),
  requirements: map(),
  result: map() | nil
}
```

# `new`
*since 0.1.0* 

```elixir
@spec new(map(), map()) :: t()
```

Builds a new lifecycle hook context.

## Examples

    iex> context = X402.Hooks.Context.new(%{"tx" => "0xabc"}, %{"scheme" => "exact"})
    iex> context.payload["tx"]
    "0xabc"
    iex> context.requirements["scheme"]
    "exact"
    iex> context.result
    nil

---

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