# `EEVM.Transaction.Signer`
[🔗](https://github.com/mw2000/eevm/blob/main/lib/eevm/transaction/signer.ex#L1)

Transaction signing-hash computation and sender recovery.

# `recover_authority`

```elixir
@spec recover_authority(EEVM.Transaction.Authorization.t()) ::
  {:ok, binary()} | {:error, atom()}
```

Recover the authority (signer) of an EIP-7702 authorization tuple.

The signed message is `keccak256(0x05 || rlp([chain_id, address, nonce]))`.
Signatures with `y_parity` outside `0..1`, `r` outside `1..n-1`, or a
high `s` (EIP-2) are rejected with `{:error, :invalid_signature}`.

# `recover_sender`

```elixir
@spec recover_sender(EEVM.Transaction.t(), non_neg_integer()) ::
  {:ok, binary()} | {:error, atom()}
```

Recover the sender address from a signed transaction.

# `signing_hash`

```elixir
@spec signing_hash(EEVM.Transaction.t(), non_neg_integer()) :: binary()
```

Compute the signing hash for a transaction.

---

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