UNPKG

@kamino-finance/klend-sdk

Version:

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

142 lines 5.12 kB
import { Address, TransactionSigner } from '@solana/kit'; import { BorrowRateCurve, PythConfiguration, ReserveConfig, ScopeConfiguration, SwitchboardConfiguration } from '../@codegen/klend/types'; import Decimal from 'decimal.js'; import { Fraction } from '../classes'; import { LendingMarket } from '../lib'; export type ScopeOracleConfig = { name: string; oracleType: string; oracleId: number; oracleAccount: Address; twapEnabled: boolean; twapSourceId: number; max_age: number; }; export type CreateKaminoMarketParams = { admin: TransactionSigner; }; export type AddAssetToMarketParams = { admin: TransactionSigner; adminLiquiditySource: Address; marketAddress: Address; assetConfig: AssetConfig; }; export interface AssetConfig { readonly mint: Address; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: Address; assetReserveConfigParams: AssetReserveConfigParams; setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; getReserveConfig(): ReserveConfig; } export declare class AssetReserveConfig implements AssetConfig { readonly mint: Address; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: Address; assetReserveConfigParams: AssetReserveConfigParams; constructor(fields: { mint: Address; mintTokenProgram: Address; 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: Address; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: Address; private reserveConfig; assetReserveConfigParams: AssetReserveConfigParams; constructor(mint: Address, mintTokenProgram: Address, reserveConfig: ReserveConfig); setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; setReserveConfig(reserveConfig: ReserveConfig): void; getReserveConfig(): ReserveConfig; } export declare class CollateralConfig implements AssetConfig { readonly mint: Address; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: Address; assetReserveConfigParams: AssetReserveConfigParams; constructor(fields: { mint: Address; mintTokenProgram: Address; tokenName: string; mintDecimals: number; priceFeed: PriceFeed; loanToValuePct: number; liquidationThresholdPct: number; }); setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; getReserveConfig(): ReserveConfig; } export declare class DebtConfig implements AssetConfig { readonly mint: Address; readonly tokenName: string; readonly mintDecimals: number; readonly mintTokenProgram: Address; assetReserveConfigParams: AssetReserveConfigParams; borrowLimitOutsideElevationGroup?: Decimal; debtWithdrawalCapConfigCapacity?: Decimal; constructor(fields: { mint: Address; mintTokenProgram: Address; tokenName: string; mintDecimals: number; priceFeed: PriceFeed; borrowRateCurve: BorrowRateCurve; borrowLimitOutsideElevationGroup?: Decimal; debtWithdrawalCapConfigCapacity?: Decimal; }); setAssetConfigParams(assetReserveConfigParams: AssetReserveConfigParams): void; getReserveConfig(): ReserveConfig; } export type PriceFeed = { scopePriceConfigAddress?: Address; scopeChain?: number[]; scopeTwapChain?: number[]; pythPrice?: Address; switchboardPrice?: Address; switchboardTwapPrice?: Address; }; 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 getDefaultConfigParams: () => 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: Address; state: LendingMarket; }; //# sourceMappingURL=managerTypes.d.ts.map