UNPKG

@holographxyz/cli

Version:
60 lines (59 loc) 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const core_chain_service_1 = tslib_1.__importDefault(require("./core-chain-service")); class OperatorChainService extends core_chain_service_1.default { operator; constructor(network, networkMonitor, contract) { super(network, networkMonitor); this.operator = contract; } getPodOperators = async (pod) => { return this.operator.getPodOperators(pod); }; getPodBondAmounts = async (pod) => { return this.operator.getPodBondAmounts(pod); }; getBondedPod = async (operator) => { return this.operator.getBondedPod(operator); }; getTotalPods = async () => { return this.operator.getTotalPods(); }; getBondedAmount = async (account) => { return this.operator.getBondedAmount(account); }; unbondUtilityToken = async (receiver) => { if (receiver === undefined) { receiver = this.wallet.address; } return this.networkMonitor.executeTransaction({ network: this.network, contract: this.operator, methodName: 'unbondUtilityToken', args: [this.wallet.address, receiver], waitForReceipt: true, }); }; bondUtilityToken = async (operator, amount, pod) => { return this.networkMonitor.executeTransaction({ network: this.network, contract: this.operator, methodName: 'bondUtilityToken', args: [operator, amount, pod], waitForReceipt: true, }); }; estimateGasForBondUtilityToken = async (operator, amount, pod) => { const gasPrice = this.getChainGasPrice(); const gasLimit = await this.networkMonitor.getGasLimit({ contract: this.operator, methodName: 'bondUtilityToken', args: [operator, amount, pod], network: this.network, gasPrice, }); return gasPrice.mul(gasLimit); }; } exports.default = OperatorChainService;