@unloc-xyz/unloc-sdk
Version:
741 lines • 19.6 kB
TypeScript
/// <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