UNPKG

@q-dev/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

68 lines 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LiquidationAuctionInstance = void 0; const SystemContractInstance_1 = require("../SystemContractInstance"); /** * Liquidation auction instance to interact with Liquidation auction contract. * See [onchain documentation](@system-contracts-repo/@network/LiquidationAuction/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.liquidationAuction} */ class LiquidationAuctionInstance extends SystemContractInstance_1.SystemContractInstance { constructor(signerOrProvider, address) { super(signerOrProvider, 'LiquidationAuction.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) => { return { user: evt.args._user, vaultId: evt.args._vaultId.toString(), }; }); return auctionIds; } /** * [External documentation](@system-contracts-repo/@network/LiquidationAuction/#auctions) */ async getAuctionInfo(user, vaultId) { const rawInfo = await this.instance.auctions(user, vaultId); return { status: rawInfo.status.toString(), bidder: rawInfo.bidder, highestBid: rawInfo.highestBid.toString(), endTime: rawInfo.endTime.toString(), }; } /** * [External documentation](@system-contracts-repo/@network/LiquidationAuction/#startauction) */ async startAuction(user, vaultId, bid, txOptions) { return this.submitTransaction('startAuction', [user, vaultId, bid], txOptions); } /** * [External documentation](@system-contracts-repo/@network/LiquidationAuction/#bid) */ async bid(user, vaultId, bid, txOptions) { return this.submitTransaction('bid', [user, vaultId, bid], txOptions); } /** * [External documentation](@system-contracts-repo/@network/LiquidationAuction/#execute) */ async execute(user, vaultId, txOptions) { return this.submitTransaction('execute', [user, vaultId], txOptions); } /** * [External documentation](@system-contracts-repo/@network/LiquidationAuction/#getraisingbid) */ async getRaisingBid(user, vaultId) { return (await this.instance.getRaisingBid(user, vaultId)).toString(); } } exports.LiquidationAuctionInstance = LiquidationAuctionInstance; //# sourceMappingURL=LiquidationAuctionInstance.js.map