@broxus/js-core
Version:
MobX-based JavaScript Core library
68 lines (67 loc) • 3.44 kB
JavaScript
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 });
}
}