Rujira.Fin.Range (rujira_ex v0.0.1)

Copy Markdown View Source

Concentrated liquidity position (range) for the FIN protocol.

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

Summary

Types

t()

@type t() :: %Rujira.Fin.Range{
  ask: Decimal.t(),
  base: Rujira.Amount.t(),
  bid: Decimal.t(),
  fee: Decimal.t(),
  fees_base: Rujira.Amount.t(),
  fees_quote: Rujira.Amount.t(),
  high: Decimal.t(),
  id: String.t(),
  idx: integer(),
  low: Decimal.t(),
  owner: String.t(),
  pair: String.t(),
  price: Decimal.t(),
  quote: Rujira.Amount.t(),
  skew: Decimal.t(),
  spread: Decimal.t(),
  value_usd: Rujira.Amount.t()
}

Functions

from_id(id)

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

list(pair, address \\ nil, opts \\ [])

@spec list(Rujira.Fin.Pair.t(), String.t() | nil, keyword()) ::
  {:ok, [t()]} | {:error, term()}

list_all(address \\ nil, contracts \\ nil)

@spec list_all(String.t() | nil, [String.t()] | nil) ::
  {:ok, [t()]} | {:error, term()}

load(pair, idx)

@spec load(Rujira.Fin.Pair.t(), integer()) :: {:ok, t()} | {:error, term()}

new(map1, map2)

@spec new(Rujira.Fin.Pair.t(), map()) :: {:ok, t()} | {:error, term()}

Parses a range from a contract query response.

When called with a string address and integer index, creates a minimal range struct for subscription edge responses.

query_list(t1, t2, t3)

query_list(t1, t2, t3, t4)

query_list(t1, t2, t3, t4, t5)

total_tvl()

@spec total_tvl() :: {:ok, non_neg_integer()} | {:error, term()}

tvl(pair)

@spec tvl(Rujira.Fin.Pair.t()) :: {:ok, non_neg_integer()} | {:error, term()}