# `Cartouche.Transaction.Call`
[🔗](https://github.com/zenhive/cartouche/blob/main/lib/cartouche/transaction/call.ex#L1)

Represents Ethereum `eth_call` parameters, not a signable or broadcastable transaction.

`destination` is required because generated contract calls always target a deployed contract.
`data` is required because generated contract calls execute ABI-encoded calldata.
`from` is optional because `eth_call` accepts a caller address but existing RPC callers pass it through options.
`gas` is optional because `eth_call` can cap execution gas without creating a transaction gas limit.
`value` is optional because `eth_call` can simulate payable execution without transferring funds.
Fee, nonce, chain-id, access-list, and signature fields are excluded because calls are never signed or broadcast.

# `t`

```elixir
@type t() :: %Cartouche.Transaction.Call{
  data: binary(),
  destination: &lt;&lt;_::160&gt;&gt;,
  from: &lt;&lt;_::160&gt;&gt; | nil,
  gas: non_neg_integer() | nil,
  value: non_neg_integer() | nil
}
```

# `new`

```elixir
@spec new(&lt;&lt;_::160&gt;&gt;, binary(), Keyword.t()) :: t()
```

Builds an `eth_call` parameter struct.

---

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