blub-sdk
Version:
A modular SDK for interacting with the BLUB ecosystem on the Sui blockchain.
61 lines (60 loc) • 3.59 kB
TypeScript
import type { SuiClient } from "@mysten/sui/client";
import { Transaction } from "@mysten/sui/transactions";
import { ConfigModule } from "./transactions/config";
import { StakingModule } from "./transactions/staking";
import { VaultModule } from "./transactions/vault";
import { ClaimRewardParams, CloseStakePositionParams, CoinAsset, CreateStakePositionParams, Environment, PendingReward, PreCalculatePendingRewardParams, RegisterRewardParams, StartStakingParams, StopStakingParams, UnStakeParams, UpdatePackageVersionParams } from "./types";
/**
* StakingClient class for managing Staking operations.
*/
export declare class StakingClient {
#private;
client: SuiClient;
config: ConfigModule;
vault: VaultModule;
staking: StakingModule;
private allCoins;
private keypair?;
/**
* @param {SuiClient} client SuiClient instance
* @param {string} address Address of the client
* @param {Environment} env Environment configuration
*/
constructor({ client, env, address, }: {
client: SuiClient;
env: Environment;
address: string;
});
get address(): string;
signAndExecuteTransaction(txb: Transaction): Promise<import("@mysten/sui/client").SuiTransactionBlockResponse>;
devInspectTransactionBlock(txb: Transaction): Promise<import("@mysten/sui/client").DevInspectResults>;
sendTransaction(txb: Transaction): Promise<import("@mysten/sui/client").SuiTransactionBlockResponse | undefined>;
getCoins(coinType: string, refresh?: boolean): Promise<CoinAsset[]>;
startStaking(params: StartStakingParams, txb?: Transaction): Transaction;
stopStaking(params: StopStakingParams, txb?: Transaction): Transaction;
updatePackageVersion(params: UpdatePackageVersionParams, txb?: Transaction): Transaction;
getProtocolConfig(protocolConfigId?: string): Promise<import("@mysten/sui/client").SuiObjectResponse>;
registerReward(params: RegisterRewardParams, txb?: Transaction): Transaction;
createStakePosition(params: CreateStakePositionParams, txb?: Transaction): Transaction;
stake(coinType: string, amount: bigint, positionId?: string, txb?: Transaction): Promise<Transaction>;
claimReward(params: ClaimRewardParams, txb?: Transaction): Transaction;
createStakePositionAndStake(coinType: string, amount: bigint, txb?: Transaction): Promise<Transaction>;
unstake(params: UnStakeParams, txb?: Transaction): Transaction;
closeStakePosition(params: CloseStakePositionParams, txb?: Transaction): Transaction;
calculatePendingReward(params: PreCalculatePendingRewardParams, txb?: Transaction): Promise<PendingReward[]>;
queryProtocolConfig(): Promise<import("./types").ProtocolConfig>;
queryRewardConfigs(): Promise<Map<string, import("./types").RewardConfig>>;
queryRewardConfigByCoinType(rewardCoinType: string): Promise<import("./types").RewardConfig | null>;
queryRewardManager(): Promise<import("./types").RewardManager | null>;
queryRewardInfo(rewardCoinType: string): Promise<import("./types").RewardInfo | null>;
queryUserPositionIds(): Promise<string[] | null>;
queryUserPositions(positionIds: string[]): Promise<import("./types").StakePosition[] | null>;
/**
* Returns the total staked amount for a given user by summing all valid positions.
*
* @param userPositionRecordId - The global position record object ID
* @param wallet - User wallet address
* @returns Total staked amount as a BigInt
*/
getUserTotalStaked(userPositionRecordId: string, wallet: string): Promise<bigint>;
}