@mihalex/farms-sdk-tests
Version:
66 lines (65 loc) • 5.94 kB
TypeScript
import { BN, Idl, Program } from "@coral-xyz/anchor";
import { Connection, PublicKey, Signer, TransactionInstruction, TransactionSignature } from "@solana/web3.js";
import { UserFarm } from "./models";
import { FarmState } from "./rpc_client/accounts";
import Decimal from "decimal.js";
import { Keypair } from "@solana/web3.js";
import { GlobalConfigOptionKind, FarmConfigOptionKind } from "./rpc_client/types/index";
import { FarmAndKey, UserAndKey } from "./models";
export declare const farmsId: PublicKey;
export declare class Farms {
private readonly _connection;
private readonly _provider;
private readonly _farmsProgram;
private readonly _farmsProgramId;
constructor(connection: Connection);
getConnection(): Connection;
getProgramID(): PublicKey;
getProgram(): Program<Idl>;
getAllUserStatesForUser(user: PublicKey): Promise<Array<UserAndKey>>;
getAllUserStates(): Promise<UserAndKey[]>;
getFarmsForMint(mint: PublicKey): Promise<Array<FarmAndKey>>;
getAllFarmStates(): Promise<FarmAndKey[]>;
getAllFarmStatesByPubkeys(keys: string[]): Promise<FarmAndKey[]>;
getStakedAmountForMintForFarm(mint: PublicKey, farm: PublicKey): Promise<Decimal>;
getStakedAmountForMint(mint: PublicKey): Promise<Decimal>;
getUserStateKeyForUserForFarm(user: PublicKey, farm: PublicKey): Promise<Array<PublicKey>>;
getAllFarmsForUser(user: PublicKey): Promise<Map<string, UserFarm>>;
executeTransaction(ix: TransactionInstruction[], signer: Keypair, extraSigners?: Signer[]): Promise<TransactionSignature>;
createNewUserIx(user: PublicKey, farm: PublicKey): Promise<TransactionInstruction>;
createNewUser(user: Keypair, farm: PublicKey): Promise<TransactionSignature>;
stakeIx(user: PublicKey, farm: PublicKey, amountLamports: Decimal, stakeTokenMint: PublicKey): Promise<TransactionInstruction>;
stake(user: Keypair, farm: PublicKey, amountLamports: Decimal, stakeTokenMint: PublicKey): Promise<TransactionSignature>;
unstakeIx(user: PublicKey, farm: PublicKey, amountLamports: string): Promise<TransactionInstruction>;
unstake(user: Keypair, farm: PublicKey, sharesAmount: string): Promise<TransactionSignature>;
withdrawUnstakedDepositIx(user: PublicKey, userState: PublicKey, farmState: PublicKey, stakeTokenMint: PublicKey): Promise<TransactionInstruction>;
withdrawUnstakedDeposit(user: Keypair, farmState: PublicKey, tokenMint: PublicKey, userState: PublicKey): Promise<TransactionSignature>;
claimForUserForFarmRewardIx(user: PublicKey, farm: PublicKey, rewardMint: PublicKey, rewardIndex?: number): Promise<TransactionInstruction[]>;
claimForUserForFarmReward(user: Keypair, farm: PublicKey, rewardMint: PublicKey, rewardIndex?: number): Promise<TransactionSignature>;
claimForUserForFarmAllRewardsIx(user: PublicKey, farm: PublicKey): Promise<Array<TransactionInstruction>>;
claimForUserForFarmAllRewards(user: Keypair, farm: PublicKey): Promise<Array<TransactionSignature>>;
transferOwnershipIx(user: PublicKey, userState: PublicKey, newUser: PublicKey): Promise<TransactionInstruction>;
transferOwnership(user: Keypair, userState: PublicKey, newUser: PublicKey): Promise<TransactionSignature>;
transferOwnershipAllUserStatesIx(user: PublicKey, newUser: PublicKey): Promise<Array<TransactionInstruction>>;
transferOwnershipAllUserStates(user: Keypair, newUser: PublicKey): Promise<Array<TransactionSignature>>;
createFarmIx(admin: PublicKey, farm: Keypair, globalConfig: PublicKey, stakeTokenMint: PublicKey): Promise<TransactionInstruction[]>;
createFarm(admin: Keypair, globalConfig: PublicKey, farm: Keypair, mint: PublicKey): Promise<TransactionSignature>;
addRewardToFarmIx(admin: PublicKey, globalConfig: PublicKey, farm: PublicKey, mint: PublicKey): Promise<TransactionInstruction>;
addRewardToFarm(admin: Keypair, globalConfig: PublicKey, farm: PublicKey, mint: PublicKey): Promise<TransactionSignature>;
addRewardAmountToFarmIx(admin: PublicKey, farm: PublicKey, mint: PublicKey, amount: Decimal): Promise<TransactionInstruction>;
addRewardAmountToFarm(admin: Keypair, farm: PublicKey, mint: PublicKey, amount: Decimal): Promise<TransactionSignature>;
updateRewardToFarmIx(admin: PublicKey, farm: PublicKey, mint: PublicKey, mode: FarmConfigOptionKind, value: number): Promise<TransactionInstruction>;
updateRewardToFarm(admin: Keypair, farm: PublicKey, mint: PublicKey, mode: FarmConfigOptionKind, value: number): Promise<TransactionSignature>;
refreshFarmIx(farm: PublicKey): Promise<TransactionInstruction>;
refreshFarm(payer: Keypair, farm: PublicKey): Promise<TransactionSignature>;
refreshUserIx(userState: PublicKey, farmState: PublicKey): Promise<TransactionInstruction>;
refreshUser(payer: Keypair, userState: PublicKey, farmState: PublicKey): Promise<TransactionSignature>;
createGlobalConfigIxs(admin: PublicKey, globalConfig: Keypair): Promise<TransactionInstruction[]>;
createGlobalConfig(admin: Keypair, globalConfig: Keypair): Promise<TransactionSignature>;
updateGlobalConfigIx(admin: PublicKey, globalConfig: PublicKey, mode: GlobalConfigOptionKind, flagValue: string, flagValueType: string): Promise<TransactionInstruction>;
updateGlobalConfig(admin: Keypair, globalConfig: PublicKey, mode: GlobalConfigOptionKind, flagValue: string, flagValueType: string): Promise<TransactionSignature>;
withdrawTreasuryIx(admin: PublicKey, globalConfig: PublicKey, rewardMint: PublicKey, amount: BN, withdrawAta?: PublicKey): Promise<TransactionInstruction>;
withdrawTreasury(admin: Keypair, globalConfig: PublicKey, rewardMint: PublicKey, amount: BN, withdrawAta?: PublicKey): Promise<TransactionSignature>;
}
export declare function getCurrentTimeUnit(conn: Connection, farm: FarmState): Promise<Decimal>;
export declare function getCurrentRps(conn: Connection, farm: FarmState, rewardIndex: number): Promise<number>;