@hubbleprotocol/farms-sdk
Version:
48 lines (47 loc) • 1.6 kB
TypeScript
import { PublicKey } from "@solana/web3.js";
import { FarmState } from "../rpc_client/accounts";
export declare function downloadAllFarmConfigs(targetPath: string): Promise<void>;
export declare function getMarketsFromApiData(programId: PublicKey): Promise<{
marketName: string;
key: PublicKey;
}[]>;
export type FarmConfig = {
farmMetadata: FarmMetadata;
farmPubkey: PublicKey;
stakingTokenMint: PublicKey;
withdrawAuthority: PublicKey;
globalConfig: PublicKey;
strategyId: PublicKey;
depositCapAmount: number;
rewards: Array<{
rewardTokenMint: PublicKey;
rewardType: string;
rewardPerSecondDecimals: number;
minClaimDurationSeconds: number;
rewardCurve: Array<{
startTs: number;
rps: number;
} | undefined>;
rewardAvailable: number;
rewardToTopUp: number;
rewardToTopUpDurationDays: number;
} | undefined>;
pendingFarmAdmin: PublicKey;
scopePrices: PublicKey;
scopePriceOracleId: string;
scopeOracleMaxAge: number;
lockingMode: number;
lockingStart: number;
lockingDuration: number;
lockingEarlyWithdrawalPenaltyBps: number;
depositWarmupPeriod: number;
withdrawCooldownPeriod: number;
slashedAmountSpillAddress: PublicKey;
};
export type FarmMetadata = {
type: string;
reserve: PublicKey | undefined;
market: PublicKey | undefined;
strategy: PublicKey | undefined;
};
export declare function getFarmConfigType(farmKey: PublicKey, farmState: FarmState, farmMetadata: FarmMetadata): FarmConfig;