UNPKG

@broxus/js-core

Version:

MobX-based JavaScript Core library

68 lines (67 loc) 3.44 kB
import { voteEscrowAccountContract } from '../../models/vote-escrow-account/contracts'; export class VoteEscrowAccountUtils { static async getDetails(connection, voteEscrowAccountAddress, cachedState) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress) .methods.getDetails({ answerId: 0 }) .call({ cachedState, responsible: true }) .then(result => ({ activeDeposits: Number(result._activeDeposits), currentVersion: Number(result._current_version), lastEpochVoted: Number(result._lastEpochVoted), lastUpdateTime: Number(result._lastUpdateTime), qubeBalance: result._qubeBalance, unlockedQubes: result._unlockedQubes, user: result._user, veQubeAverage: result._veQubeAverage, veQubeAveragePeriod: Number(result._veQubeAveragePeriod), veQubeBalance: result._veQubeBalance, voteEscrow: result._voteEscrow, })); } static async calculateVeAverage(connection, voteEscrowAccountAddress, cachedState) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress) .methods.calculateVeAverage() .call({ cachedState }) .then(result => ({ expiredVeQubes: result._expiredVeQubes, qubeBalance: result._qubeBalance, unlockedQubes: result._unlockedQubes, veQubeAverage: result._veQubeAverage, veQubeAveragePeriod: Number(result._veQubeAveragePeriod), veQubeBalance: result._veQubeBalance, })); } static async calculateMinGas(connection, voteEscrowAccountAddress, cachedState) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress) .methods.calculateMinGas({ answerId: 0 }) .call({ cachedState, responsible: true }) .then(result => result.min_gas); } static async castedVotes(connection, voteEscrowAccountAddress, cachedState) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress) .methods.casted_votes() .call({ cachedState }) .then(result => result.casted_votes); } static async createdProposals(connection, voteEscrowAccountAddress, cachedState) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress) .methods.created_proposals() .call({ cachedState }) .then(result => result.created_proposals); } static async lockedTokens(connection, voteEscrowAccountAddress, cachedState) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress) .methods.lockedTokens({ answerId: 0 }) .call({ cachedState, responsible: true }) .then(result => result.value0); } static decodeEvent(connection, voteEscrowAccountAddress, args) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress).decodeEvent(args); } static decodeTransaction(connection, voteEscrowAccountAddress, args) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress).decodeTransaction(args); } static decodeTransactionEvents(connection, voteEscrowAccountAddress, transaction) { return voteEscrowAccountContract(connection, voteEscrowAccountAddress).decodeTransactionEvents({ transaction }); } }