@mihalex/farms-sdk-tests
Version:
58 lines (57 loc) • 3.09 kB
TypeScript
import { Keypair, PublicKey } from "@solana/web3.js";
import * as anchor from "@coral-xyz/anchor";
import { GlobalConfigAccounts } from "./utils";
import Decimal from "decimal.js";
import { Cluster, UserAccounts, FarmAccounts } from "./utils";
import { Farms } from "../Farms";
export declare const SIZE_GLOBAL_CONFIG = 2136;
export declare const SIZE_FARM_STATE = 8336;
export type Env = {
provider: anchor.AnchorProvider;
program: anchor.Program;
initialOwner: Keypair;
cluster: Cluster;
};
export type Config = {
strategyInfos: FarmInfo[];
};
export type FarmInfo = {
address: PublicKey;
owner: PublicKey;
baseVaultAuthority: PublicKey;
pool: PublicKey;
globalConfig: PublicKey;
tokenAMint: PublicKey;
tokenAVault: PublicKey;
tokenAVaultBump: number;
tokenBMint: PublicKey;
tokenBVault: PublicKey;
tokenBVaultBump: number;
sharesMint: PublicKey;
sharesMintAuthority: PublicKey;
sharesMintAuthorityBump: number;
poolProgramId: PublicKey;
yvaultsProgramId: PublicKey;
};
export declare function setUpProgram(args: {
clusterOverride?: string;
adminFilePath?: string;
programOverride?: PublicKey;
}): Env;
export declare function createGlobalAccountsWithAirdrop(env: Env, owner: Keypair | undefined, rewardTokens: Array<PublicKey>): Promise<GlobalConfigAccounts>;
export declare function createGlobalAccounts(env: Env, owner?: Keypair): Promise<GlobalConfigAccounts>;
export declare function setUpGlobalConfigWithAirdrop(env: Env, owner: Keypair | undefined, rewardTokens: Array<PublicKey>): Promise<GlobalConfigAccounts>;
export declare function setUpGlobalConfig(env: Env, owner?: Keypair): Promise<GlobalConfigAccounts>;
export declare function createUser(env: Env, farmAccounts: FarmAccounts, solAirdropAmount: Decimal, tokenAirdropAmount: Decimal, rewardAirdropAmounts: Array<Decimal>, owner?: Keypair): Promise<UserAccounts>;
export declare function setUpUser(env: Env, farmAccounts: FarmAccounts, rewardTokens: Array<PublicKey>, owner?: Keypair): Promise<UserAccounts>;
export declare function createFarmAccountsWithAirdrops(env: Env, rewardTokens: Array<PublicKey>, tokenMint: PublicKey, solAirdropAmount: Decimal, rewardAirdropAmounts: Array<Decimal>, farmAdmin?: Keypair): Promise<FarmAccounts>;
export declare function createFarmAccounts(env: Env, rewardTokens: Array<PublicKey>, tokenMint: PublicKey, farmAdmin: Keypair): Promise<FarmAccounts>;
export declare function setUpFarmWithAirdrops(env: Env, globalAccounts: GlobalConfigAccounts, rewardTokens: Array<PublicKey>, farmAdmin?: Keypair, tokenMint?: PublicKey): Promise<FarmAccounts>;
export declare function setUpFarm(env: Env, globalConfig: PublicKey, tokenMint: PublicKey, farmAdmin: Keypair): Promise<FarmAccounts>;
export declare function setupFarmsEnvironment(env: Env, numRewardTokens: number, minClaimDurationSeconds?: number, rewardRps?: number): Promise<{
farmsClient: Farms;
farmAccounts: FarmAccounts;
globalAccounts: GlobalConfigAccounts;
userAccounts: UserAccounts;
rewardTokens: PublicKey[];
}>;