frakt-client
Version:
Client library for interacting with FRAKT solana program
130 lines (129 loc) • 5.2 kB
TypeScript
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 {};