multipool-staking-sdk
Version:
This is an sdk for solmask staking pool program
43 lines (42 loc) • 2.16 kB
TypeScript
import { Connection, PublicKey, Transaction, VersionedTransaction } from "@solana/web3.js";
import { StakingInstructions } from "./instructions";
import { TransactionPayload } from "./payload";
import { LockupInfo, StakeInfo } from "./types";
export declare class StakingService {
readonly instructions: StakingInstructions;
readonly _connection: Connection;
private readonly _signTransaction;
static deriveLockupInfoAddress(lockerName: string, programId: string | PublicKey): PublicKey;
static deriveStakeVaultAddress(lockupAddress: string | PublicKey, programId: string | PublicKey): PublicKey;
static deriveStakeInfoAddress(lockupAddress: string | PublicKey, stakerAddress: string | PublicKey, programId: string | PublicKey): PublicKey;
private readonly _programId;
private readonly _programErrorMap;
constructor(instructions: StakingInstructions, _connection: Connection, _signTransaction: <T extends Transaction | VersionedTransaction>(transaction: T) => Promise<T>);
private _createPayload;
initLockup(params: {
creatorAddress: string | PublicKey;
rewardTokenAddress: string | PublicKey;
stakeTokenAddress: string | PublicKey;
totalAllocationReward: string;
lockTimespan: string;
name: string;
stakingEndTime: number;
stakingStartTime: number;
}): Promise<TransactionPayload>;
stake(params: {
lockupAddress: string | PublicKey;
stakerAddress: string | PublicKey;
stakeAmount: string;
}): Promise<TransactionPayload>;
unstake(params: {
lockupAddress: string | PublicKey;
stakerAddress: string | PublicKey;
}): Promise<TransactionPayload>;
claimRewardToken(params: {
lockupAddress: string | PublicKey;
stakerAddress: string | PublicKey;
}): Promise<TransactionPayload>;
getLockupInfo(lockupAddress: string | PublicKey): Promise<LockupInfo>;
getStakeInfo(lockupAddress: string | PublicKey, stakerAddress: string | PublicKey): Promise<StakeInfo>;
calculateReward(lockupAdress: string | PublicKey, stakerAddress: string | PublicKey): Promise<string>;
}