UNPKG

@q-dev/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

81 lines 3.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SystemDebtAuctionInstance = void 0; const SystemContractInstance_1 = require("../SystemContractInstance"); const unit_converter_1 = require("../../utils/unit-converter"); const c = new unit_converter_1.UnitConverter(); /** * System debt auction instance to interact with System debt auction contract. * See [onchain documentation](@system-contracts-repo/@network/SystemDebtAuction/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.systemDebtAuction} */ class SystemDebtAuctionInstance extends SystemContractInstance_1.SystemContractInstance { constructor(signerOrProvider, address) { super(signerOrProvider, 'SystemDebtAuction.json', address); } /** * Get all auctions from block diapason * @param fromBlock first block from which we get all auctions * @param toBlock last block from which we get all auctions * @returns auctions */ async getAuctions(fromBlock = 0, toBlock = 'latest') { const auctionEvents = await this.instance.queryFilter(this.instance.filters.AuctionStarted(), fromBlock, toBlock); const auctionIds = auctionEvents.map((evt) => evt.args._auctionId.toString()); return auctionIds; } /** * [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#auctions) */ async getAuctionInfo(auctionId) { const rawInfo = await this.instance.auctions(auctionId); const endTime = c.fromTimestamp(rawInfo.endTime.toString()); return { status: rawInfo.status.toString(), bidder: rawInfo.bidder, highestBid: rawInfo.highestBid.toString(), endTime, lot: rawInfo.reserveLot.toString() }; } /** * [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#startauction) */ async startAuction(bid, txOptions) { return this.submitTransaction('startAuction', [bid], txOptions); } /** * [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#bid) */ async bid(bid, txOptions) { return this.submitTransaction('bid', [bid], txOptions); } /** * [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#execute) */ async execute(txOptions) { return this.submitTransaction('execute', [], txOptions); } /** * [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#getraisingbid) */ async getRaisingBid(auctionId) { if (!auctionId) auctionId = await this.currentAuctionId(); return (await this.instance.getRaisingBid(auctionId)).toString(); } /** * [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#currentauctionid) */ async currentAuctionId() { return (await this.instance.currentAuctionId()).toString(); } /** * [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#hasactiveauction) */ async hasActiveAuction() { return this.instance.hasActiveAuction(); } } exports.SystemDebtAuctionInstance = SystemDebtAuctionInstance; //# sourceMappingURL=SystemDebtAuctionInstance.js.map