UNPKG

@unloc-xyz/unloc-sdk

Version:
741 lines 19.6 kB
/// <reference types="bn.js" /> import * as anchor from '@project-serum/anchor'; import { UnlocStaking } from '../types/unloc_staking'; import { Connection, Keypair } from '@solana/web3.js'; export declare function initStakingProgram(connection: Connection, wallet: any, programId?: any): void; export interface ExtraRewardConfigs { duration: any; extraPercentage: any; } export declare function getStakingStateAddress(): Promise<anchor.web3.PublicKey>; export declare function estimateRewards(stateData: any, extraConfigData: any, poolData: any, userData: any): any; export declare function estimateStakingRewardsPerSec(stateData: any, extraConfigData: any, poolData: any, userData: any): number; export declare function createStakingState(connection: Connection, wallet: any, tokenPerSecond: number, earlyUnlocFee: number, profileLevels: anchor.BN[], rewardMint: string): Promise<string>; export declare function getStakingState(): Promise<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{ name: "stateAccount"; type: { kind: "struct"; fields: [{ name: "authority"; type: "publicKey"; }, { name: "rewardMint"; type: "publicKey"; }, { name: "rewardVault"; type: "publicKey"; }, { name: "feeVault"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "totalPoint"; type: "u64"; }, { name: "startTime"; type: "i64"; }, { name: "tokenPerSecond"; type: "u64"; }, { name: "earlyUnlockFee"; type: "u64"; }, { name: "profileLevels"; type: { vec: "u128"; }; }]; }; } | { name: "extraRewardsAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "configs"; type: { vec: { defined: "DurationExtraRewardConfig"; }; }; }]; }; } | { name: "farmPoolAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "mint"; type: "publicKey"; }, { name: "vault"; type: "publicKey"; }, { name: "point"; type: "u64"; }, { name: "lastRewardTime"; type: "i64"; }, { name: "accRewardPerShare"; type: "u128"; }, { name: "amountMultipler"; type: "u64"; }, { name: "totalUser"; type: "u64"; }]; }; } | { name: "farmPoolUserAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "pool"; type: "publicKey"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "rewardAmount"; type: "u128"; }, { name: "extraReward"; type: "u128"; }, { name: "rewardDebt"; type: "u128"; }, { name: "lastStakeTime"; type: "i64"; }, { name: "lockDuration"; type: "i64"; }, { name: "unlocScore"; type: "u128"; }, { name: "profileLevel"; type: "u64"; }, { name: "reserved1"; type: "u128"; }, { name: "reserved2"; type: "u128"; }, { name: "reserved3"; type: "u128"; }]; }; }, anchor.IdlTypes<UnlocStaking>>>; export declare function getStakingExtraRewardConfigs(): Promise<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{ name: "stateAccount"; type: { kind: "struct"; fields: [{ name: "authority"; type: "publicKey"; }, { name: "rewardMint"; type: "publicKey"; }, { name: "rewardVault"; type: "publicKey"; }, { name: "feeVault"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "totalPoint"; type: "u64"; }, { name: "startTime"; type: "i64"; }, { name: "tokenPerSecond"; type: "u64"; }, { name: "earlyUnlockFee"; type: "u64"; }, { name: "profileLevels"; type: { vec: "u128"; }; }]; }; } | { name: "extraRewardsAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "configs"; type: { vec: { defined: "DurationExtraRewardConfig"; }; }; }]; }; } | { name: "farmPoolAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "mint"; type: "publicKey"; }, { name: "vault"; type: "publicKey"; }, { name: "point"; type: "u64"; }, { name: "lastRewardTime"; type: "i64"; }, { name: "accRewardPerShare"; type: "u128"; }, { name: "amountMultipler"; type: "u64"; }, { name: "totalUser"; type: "u64"; }]; }; } | { name: "farmPoolUserAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "pool"; type: "publicKey"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "rewardAmount"; type: "u128"; }, { name: "extraReward"; type: "u128"; }, { name: "rewardDebt"; type: "u128"; }, { name: "lastStakeTime"; type: "i64"; }, { name: "lockDuration"; type: "i64"; }, { name: "unlocScore"; type: "u128"; }, { name: "profileLevel"; type: "u64"; }, { name: "reserved1"; type: "u128"; }, { name: "reserved2"; type: "u128"; }, { name: "reserved3"; type: "u128"; }]; }; }, anchor.IdlTypes<UnlocStaking>> | null>; export declare function createStakingExtraReward(connection: Connection, wallet: any): Promise<any>; export declare function setStakingExtraReward(connection: Connection, wallet: any, extraRewards: ExtraRewardConfigs[]): Promise<any>; export declare function fundToStakingProgram(connection: Connection, wallet: any, poolSigner: string, masterRewardVault: string, amount: any): Promise<any>; export declare function getAllStakingPools(): Promise<anchor.ProgramAccount<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{ name: "stateAccount"; type: { kind: "struct"; fields: [{ name: "authority"; type: "publicKey"; }, { name: "rewardMint"; type: "publicKey"; }, { name: "rewardVault"; type: "publicKey"; }, { name: "feeVault"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "totalPoint"; type: "u64"; }, { name: "startTime"; type: "i64"; }, { name: "tokenPerSecond"; type: "u64"; }, { name: "earlyUnlockFee"; type: "u64"; }, { name: "profileLevels"; type: { vec: "u128"; }; }]; }; } | { name: "extraRewardsAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "configs"; type: { vec: { defined: "DurationExtraRewardConfig"; }; }; }]; }; } | { name: "farmPoolAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "mint"; type: "publicKey"; }, { name: "vault"; type: "publicKey"; }, { name: "point"; type: "u64"; }, { name: "lastRewardTime"; type: "i64"; }, { name: "accRewardPerShare"; type: "u128"; }, { name: "amountMultipler"; type: "u64"; }, { name: "totalUser"; type: "u64"; }]; }; } | { name: "farmPoolUserAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "pool"; type: "publicKey"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "rewardAmount"; type: "u128"; }, { name: "extraReward"; type: "u128"; }, { name: "rewardDebt"; type: "u128"; }, { name: "lastStakeTime"; type: "i64"; }, { name: "lockDuration"; type: "i64"; }, { name: "unlocScore"; type: "u128"; }, { name: "profileLevel"; type: "u64"; }, { name: "reserved1"; type: "u128"; }, { name: "reserved2"; type: "u128"; }, { name: "reserved3"; type: "u128"; }]; }; }, anchor.IdlTypes<UnlocStaking>>>[]>; export declare function getFirstStakingPool(): Promise<anchor.ProgramAccount<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{ name: "stateAccount"; type: { kind: "struct"; fields: [{ name: "authority"; type: "publicKey"; }, { name: "rewardMint"; type: "publicKey"; }, { name: "rewardVault"; type: "publicKey"; }, { name: "feeVault"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "totalPoint"; type: "u64"; }, { name: "startTime"; type: "i64"; }, { name: "tokenPerSecond"; type: "u64"; }, { name: "earlyUnlockFee"; type: "u64"; }, { name: "profileLevels"; type: { vec: "u128"; }; }]; }; } | { name: "extraRewardsAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "configs"; type: { vec: { defined: "DurationExtraRewardConfig"; }; }; }]; }; } | { name: "farmPoolAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "mint"; type: "publicKey"; }, { name: "vault"; type: "publicKey"; }, { name: "point"; type: "u64"; }, { name: "lastRewardTime"; type: "i64"; }, { name: "accRewardPerShare"; type: "u128"; }, { name: "amountMultipler"; type: "u64"; }, { name: "totalUser"; type: "u64"; }]; }; } | { name: "farmPoolUserAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "pool"; type: "publicKey"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "rewardAmount"; type: "u128"; }, { name: "extraReward"; type: "u128"; }, { name: "rewardDebt"; type: "u128"; }, { name: "lastStakeTime"; type: "i64"; }, { name: "lockDuration"; type: "i64"; }, { name: "unlocScore"; type: "u128"; }, { name: "profileLevel"; type: "u64"; }, { name: "reserved1"; type: "u128"; }, { name: "reserved2"; type: "u128"; }, { name: "reserved3"; type: "u128"; }]; }; }, anchor.IdlTypes<UnlocStaking>>>>; export declare function createStakingPool(connection: Connection, wallet: any, rewardMint: string, pools: any[]): Promise<any>; export declare function closeStakingPool(connection: Connection, wallet: any, poolSigner: string, pools: any[]): Promise<any>; export declare function changeStakingPoolAmountMultipler(connection: Connection, wallet: any, poolSigner: string): Promise<any>; export declare function changeStakingTokenPerSecond(connection: Connection, wallet: any, pools: any[], tokenPerSecond: number): Promise<any>; export declare function changeStakingPoolPoint(connection: Connection, wallet: any, poolSigner: string): Promise<any>; export declare function getStakingPoolUserAccount(wallet: any, poolSigner: any): Promise<import("@project-serum/anchor/dist/cjs/program/namespace/types").TypeDef<{ name: "stateAccount"; type: { kind: "struct"; fields: [{ name: "authority"; type: "publicKey"; }, { name: "rewardMint"; type: "publicKey"; }, { name: "rewardVault"; type: "publicKey"; }, { name: "feeVault"; type: "publicKey"; }, { name: "bump"; type: "u8"; }, { name: "totalPoint"; type: "u64"; }, { name: "startTime"; type: "i64"; }, { name: "tokenPerSecond"; type: "u64"; }, { name: "earlyUnlockFee"; type: "u64"; }, { name: "profileLevels"; type: { vec: "u128"; }; }]; }; } | { name: "extraRewardsAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "configs"; type: { vec: { defined: "DurationExtraRewardConfig"; }; }; }]; }; } | { name: "farmPoolAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "mint"; type: "publicKey"; }, { name: "vault"; type: "publicKey"; }, { name: "point"; type: "u64"; }, { name: "lastRewardTime"; type: "i64"; }, { name: "accRewardPerShare"; type: "u128"; }, { name: "amountMultipler"; type: "u64"; }, { name: "totalUser"; type: "u64"; }]; }; } | { name: "farmPoolUserAccount"; type: { kind: "struct"; fields: [{ name: "bump"; type: "u8"; }, { name: "pool"; type: "publicKey"; }, { name: "authority"; type: "publicKey"; }, { name: "amount"; type: "u64"; }, { name: "rewardAmount"; type: "u128"; }, { name: "extraReward"; type: "u128"; }, { name: "rewardDebt"; type: "u128"; }, { name: "lastStakeTime"; type: "i64"; }, { name: "lockDuration"; type: "i64"; }, { name: "unlocScore"; type: "u128"; }, { name: "profileLevel"; type: "u64"; }, { name: "reserved1"; type: "u128"; }, { name: "reserved2"; type: "u128"; }, { name: "reserved3"; type: "u128"; }]; }; }, anchor.IdlTypes<UnlocStaking>> | null>; export declare const TIERS_XCRP: number[]; export declare function calculateTiers(amount: number, lockDuration: number): { xCRP: number; tiers: number; }; export declare function stake(connection: Connection, wallet: any, poolSigner: string, rewardMint: string, poolVault: string, rewardUserVault: string, amount: any, lock?: number, signers?: Keypair[]): Promise<string>; export declare function createStakingUser(connection: Connection, wallet: any, poolSigner: string, signers?: Keypair[]): Promise<string | null>; export declare function unstake(connection: Connection, wallet: any, poolSigner: string, rewardMint: string, poolVault: string, rewardUserVault: string, amount: number, signers?: Keypair[]): Promise<string | null>; export declare function harvest(connection: Connection, wallet: any, poolSigner: string, rewardMint: string, rewardUserVault: string, stateRewardVault: string, signers?: Keypair[]): Promise<string | null>; //# sourceMappingURL=index.d.ts.map