UNPKG

@nosana/kit

Version:

Nosana KIT

61 lines 1.86 kB
import { Address } from '@solana/kit'; import type { ProgramDeps } from '../../../types.js'; import * as programClient from '@nosana/stake-program'; import { ConvertTypesForDb } from '../../../utils/index.js'; import type { ProgramConfig } from '../../../config/types.js'; import * as Instructions from './instructions/index.js'; export type Stake = ConvertTypesForDb<programClient.StakeAccountArgs> & { address: Address; }; /** * Stake program interface * @group @nosana/kit */ export interface StakeProgram { /** * Create a stake instruction for creating/initializing a stake account */ stake: Instructions.CreateStake; /** * Derive the stake account PDA address for a given owner (defaults to wallet address) */ getAddress(owner?: Address): Promise<Address>; /** * Fetch a stake account by address */ get(addr: Address): Promise<Stake>; /** * Fetch a stake account by owner address (defaults to wallet address) */ getByOwner(owner?: 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'); * ``` */ export declare function createStakeProgram(deps: ProgramDeps, config: ProgramConfig): StakeProgram; //# sourceMappingURL=StakeProgram.d.ts.map