UNPKG

@nosana/kit

Version:

Nosana KIT

47 lines (46 loc) 1.33 kB
import { Address } from '@solana/kit'; import type { ProgramDeps } from '../../../types.js'; import * as programClient from '../../../generated_clients/staking/index.js'; import { ConvertTypesForDb } from '../../../utils/index.js'; export type Stake = ConvertTypesForDb<programClient.StakeAccountArgs> & { address: Address; }; /** * Stake program interface */ export interface StakeProgram { /** * Fetch a stake account by address */ get(addr: Address): Promise<Stake>; /** * Fetch multiple stake accounts by address */ multiple(addresses: Address[]): Promise<Stake[]>; /** * Fetch all stake accounts */ all(): Promise<Stake[]>; } /** * Creates a new StakeProgram instance. * * @param deps - Program dependencies (config, logger, solana service, wallet getter) * @returns A StakeProgram instance with methods to interact with the stake program * * @example * ```ts * import { createStakeProgram } from '@nosana/kit'; * * const stakeProgram = createStakeProgram({ * config, * logger, * solana, * getWallet, * }); * * const stake = await stakeProgram.get('stake-address'); * ``` */ import type { ProgramConfig } from '../../../config/types.js'; export declare function createStakeProgram(deps: ProgramDeps, config: ProgramConfig): StakeProgram;