@kamino-finance/farms-sdk
Version:
68 lines • 2.64 kB
TypeScript
import { VestingCalculation, VestingConfig } from "./vestingUtils";
import { Farms } from "../Farms";
import { FarmState, UserState } from "../@codegen/farms/accounts";
import { Address } from "@solana/kit";
import Decimal from "decimal.js";
export declare function getSeasonFarmsFromCDN(): Promise<SeasonFarm[]>;
export interface SeasonFarmsCdnResponse {
"mainnet-beta": {
seasonFarms: SeasonFarm[];
};
}
export interface SeasonFarm {
farmAddress: string;
season: string;
rewardMint: string;
vestingConfig: VestingConfig;
}
export interface SeasonFarmData {
seasonFarm: SeasonFarm;
farmState: FarmState;
userStates: Map<Address, UserState>;
stats: SeasonFarmStats;
}
export interface UserAllocation {
address: Address;
allocationLamports: number;
}
export declare function getExistingUserStatesMapForFarm(farmsClient: Farms, farm: Address): Promise<Map<Address, UserState>>;
export declare function getUserStateDefaultLastClaimTs(farmState: FarmState, userState: UserState): number;
export declare function getRewardIndexInFarm(farmState: FarmState, rewardMint: string): number;
export declare function getSeasonFarmsData(farmsClient: Farms, userAllocations: UserAllocation[]): Promise<SeasonFarmData[]>;
export interface SeasonFarmStats {
statsTimestampSeconds: number;
hasVestingStarted: boolean;
hasVestingEnded: boolean;
farmRewardVaultBalance: Decimal;
rewardsClaimedFromVault: Decimal;
rewardsClaimedFromFarmAccounting: Decimal;
totalClaimableAllocation: Decimal;
farmRewardsIssuedCumulative: Decimal;
farmRewardsIssuedUnclaimed: Decimal;
pctRewardsAvailableInVaultToUnclaimed: Decimal;
doRewardsClaimedMatch: boolean;
isTotalIssuedCummulativeLessOrThanClaimable: boolean;
isTotalIssuedUnclaimedLessOrThanClaimable: boolean;
totalUsers: number;
numberOfUserStatesUninitialized: number;
numberOfFullyVestedUsers: number;
numberOfUsersWithUnexpectedUnclaimedAmounts: number;
numberOfUsersForfited: number;
numberOfUsersClaimed: number;
numberOfUsersWithUnexpectedCumulativeAmounts: number;
totalForfeitures: Decimal;
userStats: UserStats[];
totalFarmVestingCalculation: VestingCalculation;
}
export interface UserStats {
userAddress: Address;
userAllocation: Decimal;
isUserInitialized: boolean;
hasUserClaimed: boolean;
hasUserForfited: boolean;
isUserFullyVested: boolean;
userTotalClaimableAtStatsTs: Decimal;
isUserRewardsIssuedUnclaimedExpected: boolean;
isUserRewardsIssuedCumulativeExpected: boolean;
}
//# sourceMappingURL=seasonFarmUtils.d.ts.map