@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
108 lines • 4.92 kB
JavaScript
;
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