# `Rujira.Prices`
[🔗](https://github.com/RujiraNetwork/rujira_ex/blob/v0.0.1/lib/rujira/prices.ex#L1)

Behaviour and configurable delegator for asset price lookups.

Ships with two built-in implementations:

  * `Rujira.Prices.Default` — oracle → FIN book mid-price fallback
  * `Rujira.Prices.Noop` — returns 0 (useful for tests)

Consumers can override via application env:

    config :rujira_ex, prices: MyApp.CustomPrices

Defaults to `Rujira.Prices.Default`.

## Cache TTL

The default implementation memoizes prices using the global cache TTL.
See `Rujira.cache_ttl/0`.

# `get`

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

# `value_usd`

```elixir
@callback value_usd(String.t(), integer(), integer()) :: integer()
```

# `get`

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

# `value_usd`

```elixir
@spec value_usd(String.t(), integer(), integer()) :: integer()
```

---

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