Packages

Elixir client library for cryptocurrency exchanges — generated from CCXT specs via compile-time macros.

Current section

Files

Jump to
ccxt_client lib ccxt leverage_tier.ex
Raw

lib/ccxt/leverage_tier.ex

defmodule CCXT.LeverageTier do
@moduledoc """
Unified leverage tier data.
Represents a single tier in an exchange's tiered leverage/margin schedule.
## Fields
* `tier` - Tier number (1-based)
* `symbol` - Unified symbol
* `currency` - Settlement currency
* `min_notional` - Minimum notional value for this tier
* `max_notional` - Maximum notional value for this tier
* `maintenance_margin_rate` - Required maintenance margin rate as decimal
* `max_leverage` - Maximum leverage allowed in this tier
* `info` - Raw exchange response
"""
import JSONSpec, only: [schema: 2]
@type t :: %__MODULE__{
tier: integer() | nil,
symbol: String.t() | nil,
currency: String.t() | nil,
min_notional: number() | nil,
max_notional: number() | nil,
maintenance_margin_rate: number() | nil,
max_leverage: number() | nil,
info: map() | nil
}
defstruct [
:tier,
:symbol,
:currency,
:min_notional,
:max_notional,
:maintenance_margin_rate,
:max_leverage,
:info
]
@json_schema schema(
%{
tier: integer() | nil,
symbol: String.t() | nil,
currency: String.t() | nil,
min_notional: number() | nil,
max_notional: number() | nil,
maintenance_margin_rate: number() | nil,
max_leverage: number() | nil,
info: map() | nil
},
doc: [
tier: "Tier number (1-based)",
symbol: "Unified symbol",
currency: "Settlement currency",
min_notional: "Minimum notional value for this tier",
max_notional: "Maximum notional value for this tier",
maintenance_margin_rate: "Required maintenance margin rate as decimal",
max_leverage: "Maximum leverage allowed in this tier",
info: "Raw exchange response"
]
)
@doc "JSON Schema for the LeverageTier unified type."
@spec schema() :: map()
def schema, do: @json_schema
end