UNPKG

@kamino-finance/farms-sdk

Version:
96 lines 2.85 kB
import { Address } from "@solana/kit"; import { FarmAndKey } from "../models"; import { FarmState } from "../@codegen/farms/accounts"; export interface IFarmResponse { config: FarmConfig; state: FarmState; } export interface ILogger { log: (...args: any[]) => void; debug: (...args: any[]) => void; warn: (...args: any[]) => void; error: (...args: any[]) => void; } export declare const noOpLogger: ILogger; export interface ReserveInfo { address: Address; symbol: string; farmCollateral: Address; farmDebt: Address; } export interface MarketWithReserves { address: Address; marketName: string; reserves: ReserveInfo[]; } export interface StrategyInfo { address: Address; farm: Address; } export interface VaultInfo { address: Address; vaultFarm: Address; } export declare function getAllFarmConfigsAndStates({ allFarms, logger, markets, strategies, vaults, }: { allFarms: FarmAndKey[]; logger: ILogger; markets: MarketWithReserves[]; strategies: StrategyInfo[]; vaults: VaultInfo[]; }): { collateralFarms: IFarmResponse[]; debtFarms: IFarmResponse[]; strategyFarms: IFarmResponse[]; earnVaultFarms: IFarmResponse[]; standaloneFarms: IFarmResponse[]; }; export type FarmConfig = { farmMetadata: FarmMetadata; farmPubkey: Address; stakingTokenMint: Address; withdrawAuthority: Address; globalConfig: Address; strategyId: Address; vaultId: Address; depositCapAmount: number; rewards: Array<{ rewardTokenMint: Address; rewardType: string; rewardPerSecondDecimals: number; minClaimDurationSeconds: number; rewardCurve: Array<{ startTs: number; rps: number; } | undefined>; rewardAvailable: number; rewardToTopUp: number; rewardToTopUpDurationDays: number; } | undefined>; farmAdmin: Address; delegateAuthority: Address; pendingFarmAdmin: Address; scopePrices: Address; scopePriceOracleId: string; isRewardUserOnceEnabled: number; scopeOracleMaxAge: number; lockingMode: number; lockingStart: number; lockingDuration: number; lockingEarlyWithdrawalPenaltyBps: number; depositWarmupPeriod: number; withdrawCooldownPeriod: number; slashedAmountSpillAddress: Address; delegatedRpsAdmin: Address; secondDelegatedAuthority: Address; }; export type FarmMetadata = { type: string; reserve: Address | undefined; reserveSymbol: string | undefined; market: Address | undefined; marketName: string | undefined; strategy: Address | undefined; vault: Address | undefined; }; export declare function getFarmConfigType(farmKey: Address, farmState: FarmState, farmMetadata: FarmMetadata): FarmConfig; //# sourceMappingURL=farms.d.ts.map