UNPKG

frakt-client

Version:

Client library for interacting with FRAKT solana program

130 lines (129 loc) 5.2 kB
import { Connection, Transaction, PublicKey } from '@solana/web3.js'; import { u64 } from '@solana/spl-token'; declare const BN: any; export interface ApiDependencies { connection: Connection; } interface PoolConfigView { poolConfigAccountPubkey: string; is_initialized: boolean; farming_vault_owner_pda: string; farming_token_mint: string; farming_vault_token_account: string; farming_pool_vault_balance: number; farming_tokens_per_second_per_point: number; version: number; harvest_unlock_at: number; } export interface AllAccounts { poolConfigAccount: PoolConfigView; stakeFRKTAccount: StakeFRKTView[]; cumulativeAccount: CumulativeView; } export declare function initializeCumulativeAccount({ programPubkey, userPublicKey, sendTxn }: { programPubkey: PublicKey; userPublicKey: PublicKey; sendTxn: (transaction: Transaction) => Promise<void>; }): Promise<void>; export declare function stakeFRKT({ amount, programPubkey, userPublicKey, mintPubkey, connection, sendTxn, stakeAccountGiven }: { amount: typeof BN; programPubkey: PublicKey; userPublicKey: PublicKey; mintPubkey: PublicKey; connection: Connection; sendTxn: (transaction: Transaction) => Promise<void>; stakeAccountGiven: PublicKey; }): Promise<void>; export declare function harvestFRKT({ programPubkey, userPublicKey, mintPubkey, sendTxn, connection, customerFRKTAccounts }: { programPubkey: PublicKey; userPublicKey: PublicKey; mintPubkey: PublicKey; sendTxn: (transaction: Transaction) => Promise<void>; connection: Connection; customerFRKTAccounts: PublicKey[]; }): Promise<void>; export declare function unstakeFRKT({ programPubkey, userPublicKey, mintPubkey, sendTxn, connection, customerFRKTAccounts }: { programPubkey: PublicKey; userPublicKey: PublicKey; mintPubkey: PublicKey; sendTxn: (transaction: Transaction) => Promise<void>; connection: Connection; customerFRKTAccounts: PublicKey[]; }): Promise<void>; export declare function getAllProgramAccounts(launchpdProgramPubKey: any, { connection }: ApiDependencies): Promise<{ poolConfigAccount: PoolConfigView; stakeFRKTAccounts: StakeFRKTView[]; cumulativeAccount: CumulativeView; }>; export declare function initializeConfigs({ farmingMintPubkey, adminPubkey, programPubkey, sendTxn, connection }: { farmingMintPubkey: PublicKey; programPubkey: PublicKey; adminPubkey: PublicKey; sendTxn: (transaction: Transaction) => Promise<void>; connection: Connection; }): Promise<void>; export interface StakeFRKTView { stakeAccountPubkey: string; stake_owner: string; token_pubkey: string; mint_pubkey: string; amount: typeof BN; staked_at: typeof BN; staked_at_cumulative: typeof BN; stake_end_at: typeof BN; version: number; is_initialized: boolean; token_vault_pubkey: string; is_staked: boolean; last_harvested_at: typeof BN; } export interface StakeFRKTLayout { stake_owner: Uint8Array; art_pubkey: Uint8Array; token_pubkey: Uint8Array; amount: Uint8Array; staked_at: Uint8Array; staked_at_cumulative: Uint8Array; stake_end_at: Uint8Array; version: Uint8Array; is_initialized: number; token_vault_pubkey: Uint8Array; is_staked: number; last_harvested_at: Uint8Array; } export declare const STAKE_FRKT_ACCOUNT_DATA_LAYOUT: any; export declare function decodedStakeFRKTBuffersToUI(decodedStakeState: any, stakeAddress: PublicKey): StakeFRKTView; export interface CumulativeView { cumulative: typeof BN; stakeAccountPubkey: string; last_time: number; apr: typeof BN; amount_of_staked: typeof BN; amount_of_staked_cumulative: typeof BN; is_initialized: boolean; old_cumulative: number; } export declare function findAssociatedTokenAddress(walletAddress: PublicKey, tokenMintAddress: PublicKey): Promise<PublicKey>; export declare function createAndMintSomeTokens(amountToMint: number | u64, decimals: number, userPublicKey: PublicKey, sendTxn: (transaction: Transaction) => Promise<void>, { connection }: ApiDependencies): Promise<{ mintAddress: string; tokenAccAddress: string; mintSeed: string; }>; export declare function initializePoolConfig(farmingTokensPerSecondPerPoint: number, harvest_unlock_at: number, farmingMintPubkey: PublicKey, adminPubkey: PublicKey, programPubkey: PublicKey, sendTxn: (transaction: Transaction) => Promise<void>, { connection }: { connection: any; }): Promise<void>; export declare function topupStakingPool({ topup_amount, adminPublicKey, farmingMintPubKey, programPubkey, sendTxn }: { topup_amount: number; adminPublicKey: PublicKey; farmingMintPubKey: PublicKey; programPubkey: PublicKey; sendTxn: (transaction: Transaction) => Promise<void>; }): Promise<void>; export declare function decreaseStakingPool({ decrease_amount, adminPublicKey, farmingMintPubKey, programPubkey, sendTxn }: { decrease_amount: number; adminPublicKey: PublicKey; farmingMintPubKey: PublicKey; programPubkey: PublicKey; sendTxn: (transaction: Transaction) => Promise<void>; }): Promise<void>; export {};