UNPKG

@kamino-finance/klend-sdk

Version:

Typescript SDK for interacting with the Kamino Lending (klend) protocol

165 lines 8.85 kB
import { PublicKey, Connection } from "@solana/web3.js"; import BN from "bn.js"; import * as types from "../types"; export interface LendingMarketFields { /** Version of lending market */ version: BN; /** Bump seed for derived authority address */ bumpSeed: BN; /** Owner authority which can add new reserves */ lendingMarketOwner: PublicKey; /** Temporary cache of the lending market owner, used in update_lending_market_owner */ lendingMarketOwnerCached: PublicKey; /** * Currency market prices are quoted in * e.g. "USD" null padded (`*b"USD\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"`) or a SPL token mint pubkey */ quoteCurrency: Array<number>; /** Referral fee for the lending market, as bps out of the total protocol fee */ referralFeeBps: number; emergencyMode: number; autodeleverageEnabled: number; borrowDisabled: number; /** * Refresh price from oracle only if it's older than this percentage of the price max age. * e.g. if the max age is set to 100s and this is set to 80%, the price will be refreshed if it's older than 80s. * Price is always refreshed if this set to 0. */ priceRefreshTriggerToMaxAgePct: number; /** Percentage of the total borrowed value in an obligation available for liquidation */ liquidationMaxDebtCloseFactorPct: number; /** Minimum acceptable unhealthy LTV before max_debt_close_factor_pct becomes 100% */ insolvencyRiskUnhealthyLtvPct: number; /** Minimum liquidation value threshold triggering full liquidation for an obligation */ minFullLiquidationValueThreshold: BN; /** Max allowed liquidation value in one ix call */ maxLiquidatableDebtMarketValueAtOnce: BN; /** Global maximum unhealthy borrow value allowed for any obligation */ globalUnhealthyBorrowValue: BN; /** Global maximum allowed borrow value allowed for any obligation */ globalAllowedBorrowValue: BN; /** The address of the risk council, in charge of making parameter and risk decisions on behalf of the protocol */ riskCouncil: PublicKey; /** [DEPRECATED] Reward points multiplier per obligation type */ reserved1: Array<number>; /** Elevation groups are used to group together reserves that have the same risk parameters and can bump the ltv and liquidation threshold */ elevationGroups: Array<types.ElevationGroupFields>; elevationGroupPadding: Array<BN>; /** Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals) */ minNetValueInObligationSf: BN; minValueSkipLiquidationLtvBfChecks: BN; /** Market name, zero-padded. */ name: Array<number>; padding1: Array<BN>; } export interface LendingMarketJSON { /** Version of lending market */ version: string; /** Bump seed for derived authority address */ bumpSeed: string; /** Owner authority which can add new reserves */ lendingMarketOwner: string; /** Temporary cache of the lending market owner, used in update_lending_market_owner */ lendingMarketOwnerCached: string; /** * Currency market prices are quoted in * e.g. "USD" null padded (`*b"USD\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"`) or a SPL token mint pubkey */ quoteCurrency: Array<number>; /** Referral fee for the lending market, as bps out of the total protocol fee */ referralFeeBps: number; emergencyMode: number; autodeleverageEnabled: number; borrowDisabled: number; /** * Refresh price from oracle only if it's older than this percentage of the price max age. * e.g. if the max age is set to 100s and this is set to 80%, the price will be refreshed if it's older than 80s. * Price is always refreshed if this set to 0. */ priceRefreshTriggerToMaxAgePct: number; /** Percentage of the total borrowed value in an obligation available for liquidation */ liquidationMaxDebtCloseFactorPct: number; /** Minimum acceptable unhealthy LTV before max_debt_close_factor_pct becomes 100% */ insolvencyRiskUnhealthyLtvPct: number; /** Minimum liquidation value threshold triggering full liquidation for an obligation */ minFullLiquidationValueThreshold: string; /** Max allowed liquidation value in one ix call */ maxLiquidatableDebtMarketValueAtOnce: string; /** Global maximum unhealthy borrow value allowed for any obligation */ globalUnhealthyBorrowValue: string; /** Global maximum allowed borrow value allowed for any obligation */ globalAllowedBorrowValue: string; /** The address of the risk council, in charge of making parameter and risk decisions on behalf of the protocol */ riskCouncil: string; /** [DEPRECATED] Reward points multiplier per obligation type */ reserved1: Array<number>; /** Elevation groups are used to group together reserves that have the same risk parameters and can bump the ltv and liquidation threshold */ elevationGroups: Array<types.ElevationGroupJSON>; elevationGroupPadding: Array<string>; /** Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals) */ minNetValueInObligationSf: string; minValueSkipLiquidationLtvBfChecks: string; /** Market name, zero-padded. */ name: Array<number>; padding1: Array<string>; } export declare class LendingMarket { /** Version of lending market */ readonly version: BN; /** Bump seed for derived authority address */ readonly bumpSeed: BN; /** Owner authority which can add new reserves */ readonly lendingMarketOwner: PublicKey; /** Temporary cache of the lending market owner, used in update_lending_market_owner */ readonly lendingMarketOwnerCached: PublicKey; /** * Currency market prices are quoted in * e.g. "USD" null padded (`*b"USD\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"`) or a SPL token mint pubkey */ readonly quoteCurrency: Array<number>; /** Referral fee for the lending market, as bps out of the total protocol fee */ readonly referralFeeBps: number; readonly emergencyMode: number; readonly autodeleverageEnabled: number; readonly borrowDisabled: number; /** * Refresh price from oracle only if it's older than this percentage of the price max age. * e.g. if the max age is set to 100s and this is set to 80%, the price will be refreshed if it's older than 80s. * Price is always refreshed if this set to 0. */ readonly priceRefreshTriggerToMaxAgePct: number; /** Percentage of the total borrowed value in an obligation available for liquidation */ readonly liquidationMaxDebtCloseFactorPct: number; /** Minimum acceptable unhealthy LTV before max_debt_close_factor_pct becomes 100% */ readonly insolvencyRiskUnhealthyLtvPct: number; /** Minimum liquidation value threshold triggering full liquidation for an obligation */ readonly minFullLiquidationValueThreshold: BN; /** Max allowed liquidation value in one ix call */ readonly maxLiquidatableDebtMarketValueAtOnce: BN; /** Global maximum unhealthy borrow value allowed for any obligation */ readonly globalUnhealthyBorrowValue: BN; /** Global maximum allowed borrow value allowed for any obligation */ readonly globalAllowedBorrowValue: BN; /** The address of the risk council, in charge of making parameter and risk decisions on behalf of the protocol */ readonly riskCouncil: PublicKey; /** [DEPRECATED] Reward points multiplier per obligation type */ readonly reserved1: Array<number>; /** Elevation groups are used to group together reserves that have the same risk parameters and can bump the ltv and liquidation threshold */ readonly elevationGroups: Array<types.ElevationGroup>; readonly elevationGroupPadding: Array<BN>; /** Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals) */ readonly minNetValueInObligationSf: BN; readonly minValueSkipLiquidationLtvBfChecks: BN; /** Market name, zero-padded. */ readonly name: Array<number>; readonly padding1: Array<BN>; static readonly discriminator: Buffer; static readonly layout: any; constructor(fields: LendingMarketFields); static fetch(c: Connection, address: PublicKey, programId?: PublicKey): Promise<LendingMarket | null>; static fetchMultiple(c: Connection, addresses: PublicKey[], programId?: PublicKey): Promise<Array<LendingMarket | null>>; static decode(data: Buffer): LendingMarket; toJSON(): LendingMarketJSON; static fromJSON(obj: LendingMarketJSON): LendingMarket; } //# sourceMappingURL=LendingMarket.d.ts.map