@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
70 lines • 2.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SystemBalanceInstance = void 0;
const SystemContractInstance_1 = require("../SystemContractInstance");
/**
* [System balance contract instance](@system-contracts-repo/@network/SystemBalance/)
* An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.systemBalance}
*/
/**
* System balance instance to interact with System balance contract.
* See [onchain documentation](@system-contracts-repo/@network/SystemBalance/) for more details.
* An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.systemBalance}
*/
class SystemBalanceInstance extends SystemContractInstance_1.SystemContractInstance {
constructor(signerOrProvider, address) {
super(signerOrProvider, 'SystemBalance.json', address);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemBalance/#getdebt)
*/
async getDebt() {
return (await this.instance.getDebt()).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/SystemBalance/#getbalance)
*/
async getBalance() {
return (await this.instance.getBalance()).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/SystemBalance/#getsurplus)
*/
async getSurplus() {
return (await this.instance.getSurplus()).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/SystemBalance/#getbalancedetails)
*/
async getBalanceDetails() {
const balanceDetails = await this.instance.getBalanceDetails();
return {
isDebtAuctionPossible: balanceDetails.isDebtAuctionPossible,
isSurplusAuctionPossible: balanceDetails.isSurplusAuctionPossible,
currentDebt: balanceDetails.currentDebt.toString(),
debtThreshold: balanceDetails.debtThreshold.toString(),
currentSurplus: balanceDetails.currentSurplus.toString(),
surplusThreshold: balanceDetails.surplusThreshold.toString(),
};
}
/**
* [External documentation](@system-contracts-repo/@network/SystemBalance/#setdebt)
*/
async setDebt(debt, txOptions) {
return this.submitTransaction('setDebt', [debt], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemBalance/#increasedebt)
*/
async increaseDebt(debtAmount, txOptions) {
return this.submitTransaction('increaseDebt', [debtAmount], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemBalance/#performnetting)
*/
async performNetting(txOptions) {
return this.submitTransaction('performNetting', [], txOptions);
}
}
exports.SystemBalanceInstance = SystemBalanceInstance;
//# sourceMappingURL=SystemBalanceInstance.js.map