# `Rujira.Fin.Pair`
[🔗](https://github.com/RujiraNetwork/rujira_ex/blob/v0.0.1/lib/rujira/fin/pair.ex#L1)

Trading pair for the FIN protocol.

Struct, construction, and queries. Use `Rujira.Fin` as the public API.

# `t`

```elixir
@type t() :: %Rujira.Fin.Pair{
  address: String.t(),
  book: :not_loaded | Rujira.Fin.Book.t(),
  fee_address: String.t(),
  fee_maker: Decimal.t(),
  fee_taker: Decimal.t(),
  history: term(),
  id: String.t(),
  market_makers: [String.t()],
  oracle_base: Rujira.Thorchain.Oracle.t() | nil,
  oracle_quote: Rujira.Thorchain.Oracle.t() | nil,
  summary: :not_loaded | term(),
  tick: integer(),
  token_base: String.t(),
  token_quote: String.t()
}
```

# `find_by_denoms`

```elixir
@spec find_by_denoms(String.t(), String.t()) :: {:ok, t()} | {:error, term()}
```

# `find_stable`

```elixir
@spec find_stable(String.t()) :: {:ok, t()} | {:error, term()}
```

# `from_id`

```elixir
@spec from_id(String.t()) :: {:ok, t()} | {:error, term()}
```

# `get`

```elixir
@spec get(String.t()) :: {:ok, t()} | {:error, term()}
```

# `init_label`

```elixir
@spec init_label(term(), map()) :: String.t()
```

# `init_msg`

```elixir
@spec init_msg(map()) :: map()
```

# `list`

```elixir
@spec list() :: {:ok, [t()]} | {:error, term()}
```

# `migrate_msg`

```elixir
@spec migrate_msg(term(), term(), term()) :: map()
```

# `new`

```elixir
@spec new(map()) :: {:ok, t()} | {:error, term()}
```

# `ticker_id!`

```elixir
@spec ticker_id!(t()) :: String.t()
```

# `tvl`

```elixir
@spec tvl(String.t()) :: {:ok, non_neg_integer()} | {:error, term()}
```

---

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