UNPKG

@kamino-finance/klend-sdk

Version:

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

138 lines 4.95 kB
import { PublicKey } from '@solana/web3.js'; import { BorrowRateCurve, PythConfiguration, ReserveConfig, ScopeConfiguration, SwitchboardConfiguration } from '../idl_codegen/types'; import Decimal from 'decimal.js'; import { Fraction } from '../classes/fraction'; import { LendingMarket } from '../lib'; export type ScopeOracleConfig = { scopePriceConfigAddress: PublicKey; name: string; oracleType: string; oracleId: number; oracleAccount: PublicKey; twapEnabled: boolean; twapSourceId: number; max_age: number; }; export type CreateKaminoMarketParams = { admin: PublicKey; }; export type AddAssetToMarketParams = { admin: PublicKey; marketAddress: PublicKey; assetConfig: AssetConfig; }; export interface AssetConfig { readonly mint: PublicKey; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: PublicKey; assetReserveConfigParams: AssetReserveConfigParams; setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; getReserveConfig(): ReserveConfig; } export declare class AssetReserveConfig implements AssetConfig { readonly mint: PublicKey; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: PublicKey; assetReserveConfigParams: AssetReserveConfigParams; constructor(fields: { mint: PublicKey; mintTokenProgram: PublicKey; tokenName: string; mintDecimals: number; priceFeed: PriceFeed; loanToValuePct: number; liquidationThresholdPct: number; borrowRateCurve: BorrowRateCurve; depositLimit: Decimal; borrowLimit: Decimal; }); setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; getReserveConfig(): ReserveConfig; } export declare class AssetReserveConfigCli implements AssetConfig { readonly mint: PublicKey; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: PublicKey; private reserveConfig; assetReserveConfigParams: AssetReserveConfigParams; constructor(mint: PublicKey, mintTokenProgram: PublicKey, reserveConfig: ReserveConfig); setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; setReserveConfig(reserveConfig: ReserveConfig): void; getReserveConfig(): ReserveConfig; } export declare class CollateralConfig implements AssetConfig { readonly mint: PublicKey; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: PublicKey; assetReserveConfigParams: AssetReserveConfigParams; constructor(fields: { mint: PublicKey; mintTokenProgram: PublicKey; tokenName: string; mintDecimals: number; priceFeed: PriceFeed; loanToValuePct: number; liquidationThresholdPct: number; }); setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; getReserveConfig(): ReserveConfig; } export declare class DebtConfig implements AssetConfig { readonly mint: PublicKey; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: PublicKey; assetReserveConfigParams: AssetReserveConfigParams; constructor(fields: { mint: PublicKey; mintTokenProgram: PublicKey; tokenName: string; mintDecimals: number; priceFeed: PriceFeed; borrowRateCurve: BorrowRateCurve; }); setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; getReserveConfig(): ReserveConfig; } export type PriceFeed = { scopePriceConfigAddress?: PublicKey; scopeChain?: number[]; scopeTwapChain?: number[]; pythPrice?: PublicKey; switchboardPrice?: PublicKey; switchboardTwapPrice?: PublicKey; }; export type AssetReserveConfigParams = { loanToValuePct: number; depositLimit: Decimal; borrowLimit: Decimal; maxLiquidationBonusBps: number; minLiquidationBonusBps: number; badDebtLiquidationBonusBps: number; liquidationThresholdPct: number; borrowFeeSf: Fraction; flashLoanFeeSf: Fraction; protocolTakeRate: number; elevationGroups: number[]; priceFeed: PriceFeed | null; maxAgePriceSeconds: number; maxAgeTwapSeconds: number; borrowRateCurve: BorrowRateCurve; }; export declare const DefaultConfigParams: AssetReserveConfigParams; export declare const encodeTokenName: (tokenName: string) => number[]; export declare function getReserveOracleConfigs(priceFeed: PriceFeed | null): { pythConfiguration: PythConfiguration; switchboardConfiguration: SwitchboardConfiguration; scopeConfiguration: ScopeConfiguration; }; export declare function parseOracleType(type: number): string; export type MarketWithAddress = { address: PublicKey; state: LendingMarket; }; //# sourceMappingURL=managerTypes.d.ts.map