@holographxyz/cli
Version:
Holograph operator CLI
60 lines (59 loc) • 2.11 kB
JavaScript
"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;