UNPKG

@mihalex/farms-sdk-tests

Version:
58 lines (57 loc) 3.09 kB
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[]; }>;