UNPKG

@q-dev/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

108 lines 4.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidationRewardPoolsInstance = void 0; const SystemContractInstance_1 = require("../SystemContractInstance"); /** * Validation reward pools instance to interact with Validation reward pools contract. * See [onchain documentation](@system-contracts-repo/@network/ValidationRewardPools/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.validationRewardPools} */ class ValidationRewardPoolsInstance extends SystemContractInstance_1.SystemContractInstance { constructor(signerOrProvider, address) { super(signerOrProvider, 'ValidationRewardPools.json', address); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#validatorproperties) */ async validatorProperties(address) { const properties = await this.instance.validatorsProperties(address); return { balance: properties.balance.toString(), reservedForClaim: properties.reservedForClaim.toString(), delegatorsShare: properties.delegatorsShare.toString(), aggregatedNormalizedStake: properties.aggregatedNormalizedStake.toString(), compoundRate: properties.compoundRate, }; } /** * Checks whether a user has CompoundRateKeeper * @param address user * @returns CRKeeper existence for given address */ async compoundRateKeeperExists(address) { const properties = await this.validatorProperties(address); return properties.compoundRate != this.adapter.ZERO_ADDRESS; } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#setdelegatorsshare) */ async setDelegatorsShare(qsv, txOptions) { return this.submitTransaction('setDelegatorsShare', [qsv], txOptions); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#increase) */ async increase(address, txOptions) { return this.submitTransaction('increase', [address], txOptions); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#updatevalidatorscompoundrate) */ async updateValidatorsCompoundRate(address, txOptions) { return this.submitTransaction('updateValidatorsCompoundRate', [address], txOptions); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#reserveadditionalfunds) */ async reserveAdditionalFunds(validator, txOptions) { return this.submitTransaction('reserveAdditionalFunds', [validator], txOptions); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#getcompoundrate) */ async getCompoundRate(address) { return (await this.instance.getCompoundRate(address)).toString(); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#getlastupdateofcompoundrate) */ async getLastUpdateOfCompoundRate(address) { return (await this.instance.getLastUpdateOfCompoundRate(address)).toString(); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#getbalance) */ async getValidatorBalance(address) { return (await this.instance.getBalance(address)).toString(); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#getdelegatedstake) */ async getDelegatedStake(address) { return (await this.instance.getDelegatedStake(address)).toString(); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#getdelegatorsshare) */ async getDelegatorsShare(address) { return (await this.instance.getDelegatorsShare(address)).toString(); } /** * [External documentation](@system-contracts-repo/@network/ValidationRewardPools/#getpoolinfo) */ async getPoolInfo(address) { const poolInfo = await this.instance.getPoolInfo(address); return { poolBalance: poolInfo.poolBalance.toString(), reservedForClaims: poolInfo.reservedForClaims.toString(), aggregatedNormalizedStake: poolInfo.aggregatedNormalizedStake.toString(), delegatedStake: poolInfo.delegatedStake.toString(), compoundRate: poolInfo.compoundRate.toString(), lastUpdateOfCompoundRate: poolInfo.lastUpdateOfCompoundRate.toString(), delegatorsShare: poolInfo.delegatorsShare.toString(), }; } } exports.ValidationRewardPoolsInstance = ValidationRewardPoolsInstance; ValidationRewardPoolsInstance.registryKey = 'tokeneconomics.validationRewardPools'; //# sourceMappingURL=ValidationRewardPoolsInstance.js.map