UNPKG

@broxus/js-core

Version:

MobX-based JavaScript Core library

131 lines (130 loc) 6.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GaugeAccountUtils = void 0; const contracts_1 = require("../../models/gauge-account/contracts"); const utils_1 = require("../../utils"); class GaugeAccountUtils { static async calculateMinGas(connection, gaugeAccountAddress, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, gaugeAccountAddress); const result = await (0, contracts_1.gaugeAccountContract)(connection, gaugeAccountAddress) .methods.calculateMinGas({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return result.min_gas; } static async getAverages(connection, gaugeAccountAddress, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, gaugeAccountAddress); const result = await (0, contracts_1.gaugeAccountContract)(connection, gaugeAccountAddress) .methods.getAverages({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { curAverageState: { ...result._curAverageState, gaugeSupplyAveragePeriod: Number(result._curAverageState.gaugeSupplyAveragePeriod), lockBoostedBalanceAveragePeriod: Number(result._curAverageState.lockBoostedBalanceAveragePeriod), veAccQubeAveragePeriod: Number(result._curAverageState.veAccQubeAveragePeriod), veQubeAveragePeriod: Number(result._curAverageState.veQubeAveragePeriod), }, lastAverageState: { ...result._lastAverageState, gaugeSupplyAveragePeriod: Number(result._lastAverageState.gaugeSupplyAveragePeriod), lockBoostedBalanceAveragePeriod: Number(result._lastAverageState.lockBoostedBalanceAveragePeriod), veAccQubeAveragePeriod: Number(result._lastAverageState.veAccQubeAveragePeriod), veQubeAveragePeriod: Number(result._lastAverageState.veQubeAveragePeriod), }, }; } static async getDetails(connection, gaugeAccountAddress, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, gaugeAccountAddress); const result = await (0, contracts_1.gaugeAccountContract)(connection, gaugeAccountAddress) .methods.getDetails({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { balance: result._balance, currentVersion: result._current_version, gauge: result._gauge, lastUpdateTime: Number(result._lastUpdateTime), lockBoostedBalance: result._lockBoostedBalance, lockedBalance: result._lockedBalance, lockedDepositsNum: Number(result._lockedDepositsNum), totalBoostedBalance: result._totalBoostedBalance, user: result._user, veAccount: result._veAccount, veBoostedBalance: result._veBoostedBalance, voteEscrow: result._voteEscrow, }; } static async getRewardDetails(connection, gaugeAccountAddress, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, gaugeAccountAddress); const result = await (0, contracts_1.gaugeAccountContract)(connection, gaugeAccountAddress) .methods.getRewardDetails({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { extraReward: result._extraReward.map(reward => ({ ...reward, lastRewardTime: Number(reward.lastRewardTime), })), extraVesting: result._extraVesting.map(vesting => ({ vestingPeriod: Number(vesting.vestingPeriod), vestingRatio: Number(vesting.vestingRatio), vestingTime: Number(vesting.vestingTime), })), qubeReward: { ...result._qubeReward, lastRewardTime: Number(result._qubeReward.lastRewardTime), }, qubeVesting: { vestingPeriod: Number(result._qubeVesting.vestingPeriod), vestingRatio: Number(result._qubeVesting.vestingRatio), vestingTime: Number(result._qubeVesting.vestingTime), }, }; } static async pendingReward(connection, gaugeAccountAddress, params, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, gaugeAccountAddress); const result = await (0, contracts_1.gaugeAccountContract)(connection, gaugeAccountAddress) .methods.pendingReward({ _veAccQubeAverage: params.veAccQubeAverage, _veAccQubeAveragePeriod: params.veAccQubeAveragePeriod.toString(), _veQubeAverage: params.veQubeAverage, _veQubeAveragePeriod: params.veQubeAveragePeriod.toString(), gauge_sync_data: { depositSupply: params.gaugeSyncData.depositSupply, depositSupplyAverage: params.gaugeSyncData.depositSupplyAverage, depositSupplyAveragePeriod: params.gaugeSyncData.depositSupplyAveragePeriod.toString(), extraRewardRounds: params.gaugeSyncData.extraRewardRounds.map(rewards => rewards.map(reward => ({ ...reward, endTime: reward.endTime.toString(), startTime: reward.startTime.toString(), }))), poolLastRewardTime: params.gaugeSyncData.poolLastRewardTime.toString(), qubeRewardRounds: params.gaugeSyncData.qubeRewardRounds.map(reward => ({ ...reward, endTime: reward.endTime.toString(), startTime: reward.startTime.toString(), })), }, }) .call({ cachedState: state }); return { extraReward: result._extraReward.map(reward => ({ ...reward, lastRewardTime: Number(reward.lastRewardTime), })), extraVesting: result._extraVesting.map(vesting => ({ vestingPeriod: Number(vesting.vestingPeriod), vestingRatio: Number(vesting.vestingRatio), vestingTime: Number(vesting.vestingTime), })), qubeReward: { ...result._qubeReward, lastRewardTime: Number(result._qubeReward.lastRewardTime), }, qubeVesting: { vestingPeriod: Number(result._qubeVesting.vestingPeriod), vestingRatio: Number(result._qubeVesting.vestingRatio), vestingTime: Number(result._qubeVesting.vestingTime), }, }; } } exports.GaugeAccountUtils = GaugeAccountUtils;