@nosana/kit
Version:
Nosana KIT
47 lines (46 loc) • 1.33 kB
TypeScript
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;