Kujira.Bow.Leverage (kujira v0.1.80)
A CDP contract that integrates BOW with GHOST, allowing LP tokens to be used as collateral when borrowing the underlying tokens that make up the LP position.
This allows an LP-er to provide eg only the base asset of a pair, and borrow the stable quote-side of the position, in order to avoid having to sell any of their position in order to provide liquidity.
Fields
:address- The address of the contract:owner- The owner of the contract:bow- The BOW contract that the liquidity is deposited to:token_base- The base Token of the LP pair:token_quote- The quote Token of the LP pair:oracle_base- The Oracle feed used to price the base token:oracle_quote- The Oracle feed used to price the quote token:ghost_vault_base- The GHOST Vault where the base token is borrowed from:ghost_vault_quote- The GHOST Vault where the quote token is borrowed from:orca_queue_base- The ORCA Queue where the base token is liquidated to repay the GHOST quote Vault:orca_queue_quote- The ORCA Queue where the quote token is liquidated to repay the GHOST base Vault:max_ltv- The maximum ratio of the value of borrowed tokens to value of LP tokens, above which a position can be liquidated:full_liquidation_threshold- The position value below which a liquidation covers all outstanding debt:partial_liquidation_fraction- The target LTV to be achieved when a position is partially liquidated:borrow_fee- The percentage of borrowed assets that are sent to KUJI stakers as a fee
Summary
Functions
Returns a tuple of {token, amount} of collateral at risk for a given position
Types
@type t() :: %Kujira.Bow.Leverage{ address: String.t(), borrow_fee: Decimal.t(), bow: {Kujira.Bow.Pool.Xyk, String.t()} | {Kujira.Bow.Pool.Stable, String.t()}, full_liquidation_threshold: non_neg_integer(), ghost_vault_base: {Kujira.Ghost.Vault, String.t()}, ghost_vault_quote: {Kujira.Ghost.Vault, String.t()}, max_ltv: Decimal.t(), oracle_base: String.t(), oracle_quote: String.t(), orca_queue_base: {Kujira.Orca.Queue, String.t()}, orca_queue_quote: {Kujira.Orca.Queue, String.t()}, owner: String.t(), partial_liquidation_fraction: Decimal.t(), status: :not_loaded | Kujira.Bow.Leverage.Status.t(), token_base: Kujira.Token.t(), token_quote: Kujira.Token.t() }
Functions
at_risk_collateral(leverage, arg2, p)
@spec at_risk_collateral( t(), Kujira.Bow.Pool.Xyk.t() | Kujira.Bow.Pool.Stable.t(), Kujira.Bow.Leverage.Position.t() ) :: {Kujira.Token.t(), Decimal.t(), integer()}
Returns a tuple of {token, amount} of collateral at risk for a given position
from_config(channel, address, map)
@spec from_config(GRPC.Channel.t(), String.t(), map()) :: :error | {:ok, t()}