@broxus/js-core
Version:
MobX-based JavaScript Core library
101 lines (100 loc) • 5.22 kB
TypeScript
import { type Address, type DecodedAbiFunctionInputs, type DecodedAbiFunctionOutputs, type DelayedMessageExecution, type FullContractState, type ProviderRpcClient, type SendInternalParams } from 'everscale-inpage-provider';
import { type GaugeAbi } from '../../models/gauge/abi';
export interface GaugeRewardRound {
accRewardPerShare: string;
endTime: number;
rewardPerSecond: string;
startTime: number;
}
export interface GaugeDetails {
initialized: boolean;
lastExtraRewardRoundIdx: number[];
lastQubeRewardRoundIdx: number;
lastRewardTime: number;
lastAverageUpdateTime: number;
lockBoostedSupply: string;
maxBoost: number;
maxLockTime: number;
owner: Address;
totalBoostedSupply: string;
voteEscrow: Address;
}
export interface GaugeRewardDetails {
extraRewardEnded: boolean[];
extraRewardRounds: GaugeRewardRound[][];
extraVestingPeriods: number[];
extraVestingRatios: number[];
qubeRewardRounds: GaugeRewardRound[];
qubeVestingPeriod: number;
qubeVestingRatio: number;
withdrawAllLockPeriod: number;
}
export interface GaugeTokenDetails {
depositTokenData: DecodedAbiFunctionOutputs<typeof GaugeAbi, 'getTokenDetails'>['_depositTokenData'];
extraTokenData: DecodedAbiFunctionOutputs<typeof GaugeAbi, 'getTokenDetails'>['_extraTokenData'];
qubeTokenData: DecodedAbiFunctionOutputs<typeof GaugeAbi, 'getTokenDetails'>['_qubeTokenData'];
}
export interface GaugeSyncData {
depositSupply: string;
depositSupplyAverage: string;
depositSupplyAveragePeriod: number;
extraRewardRounds: GaugeRewardRound[][];
qubeRewardRounds: GaugeRewardRound[];
poolLastRewardTime: number;
}
export interface GaugeRewardData {
extraRewardRounds: GaugeRewardRound[][];
extraSyncIdx: number[];
lastRewardTime: number;
qubeRewardRounds: GaugeRewardRound[];
qubeSyncIdx: number;
}
export interface GaugeSupplyAverage {
lastAverageUpdateTime: number;
lockBoostedSupplyAverage: string;
lockBoostedSupplyAveragePeriod: number;
supplyAverage: string;
supplyAveragePeriod: number;
}
export interface BoostedAmountParams {
amount: string;
lockTime: string | number;
}
export interface SetExtraFarmEndTimeParams {
farmEndTimes: (string | number)[];
ids: string[];
meta: {
callId: string | number;
nonce: string | number;
sendGasTo: Address | string;
};
}
export interface DecodedRewardDepositPayload {
callId: string;
correct: boolean;
nonce: string;
}
export interface DecodedDepositPayload {
callId: string;
claim: boolean;
correct: boolean;
depositOwner: Address;
lockTime: number;
nonce: string;
}
export declare abstract class GaugeUtils {
static setExtraFarmEndTime(connection: ProviderRpcClient, address: Address | string, params: SetExtraFarmEndTimeParams, args?: SendInternalParams): Promise<DelayedMessageExecution>;
static calcSyncData(connection: ProviderRpcClient, gaugeAddress: Address | string, cachedState?: FullContractState): Promise<GaugeSyncData>;
static calculateBoostedAmount(connection: ProviderRpcClient, gaugeAddress: Address | string, params: BoostedAmountParams, cachedState?: FullContractState): Promise<string>;
static calculateRewardData(connection: ProviderRpcClient, gaugeAddress: Address | string, cachedState?: FullContractState): Promise<GaugeRewardData>;
static calculateSupplyAverage(connection: ProviderRpcClient, gaugeAddress: Address | string, cachedState?: FullContractState): Promise<GaugeSupplyAverage>;
static getDetails(connection: ProviderRpcClient, gaugeAddress: Address | string, cachedState?: FullContractState): Promise<GaugeDetails>;
static getRewardDetails(connection: ProviderRpcClient, gaugeAddress: Address | string, cachedState?: FullContractState): Promise<GaugeRewardDetails>;
static getTokenDetails(connection: ProviderRpcClient, gaugeAddress: Address | string, cachedState?: FullContractState): Promise<GaugeTokenDetails>;
static getGaugeAccountAddress(connection: ProviderRpcClient, gaugeAddress: Address | string, userAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
static getVoteEscrowAccountAddress(connection: ProviderRpcClient, gaugeAddress: Address | string, userAddress: Address | string, cachedState?: FullContractState): Promise<Address>;
static encodeDepositPayload(connection: ProviderRpcClient, gaugeAddress: Address | string, params: any, cachedState?: FullContractState): Promise<string>;
static encodeRewardDepositPayload(connection: ProviderRpcClient, gaugeAddress: Address | string, params: any, cachedState?: FullContractState): Promise<string>;
static decodeRewardDepositPayload(connection: ProviderRpcClient, gaugeAddress: Address | string, params: DecodedAbiFunctionInputs<typeof GaugeAbi, 'decodeRewardDepositPayload'>, cachedState?: FullContractState): Promise<DecodedRewardDepositPayload>;
static decodeDepositPayload(connection: ProviderRpcClient, gaugeAddress: Address | string, params: DecodedAbiFunctionInputs<typeof GaugeAbi, 'decodeDepositPayload'>, cachedState?: FullContractState): Promise<DecodedDepositPayload>;
}