UNPKG

@ardier16/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

75 lines 3.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SystemSurplusAuctionInstance = void 0; const SystemContractInstance_1 = require("../SystemContractInstance"); const types_1 = require("../../types"); const unit_converter_1 = require("../../utils/unit-converter"); const c = new unit_converter_1.UnitConverter(); /** * System surplus auction instance to interact with System surplus auction contract. * See [onchain documentation](@system-contracts-repo/@network/SystemSurplusAuction/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.systemSurplusAuction} */ class SystemSurplusAuctionInstance extends SystemContractInstance_1.SystemContractInstance { constructor(web3, address) { super(web3, 'SystemSurplusAuction.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.getPastEvents('AuctionStarted', { fromBlock, toBlock }); const auctionIds = auctionEvents.map((evt) => evt.returnValues._auctionId); return auctionIds; } /** * [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#auctions) */ async getAuctionInfo(auctionId) { const rawInfo = await this.instance.methods.auctions(auctionId).call(); const endTime = c.fromTimestamp(rawInfo.endTime); const status = rawInfo.isExecuted ? types_1.AuctionStatus.CLOSED : types_1.AuctionStatus.ACTIVE; return { status, bidder: rawInfo.bidder, highestBid: rawInfo.highestBid, endTime, lot: rawInfo.lot }; } /** * [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#startauction) */ async startAuction(txOptions) { return this.submitTransaction(this.instance.methods.startAuction(), txOptions); } /** * [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#bid) */ async bid(auctionId, txOptions) { return this.submitTransaction(this.instance.methods.bid(auctionId), txOptions); } /** * [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#execute) */ async execute(auctionId, txOptions) { return this.submitTransaction(this.instance.methods.execute(auctionId), txOptions); } /** * [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#getraisingbid) */ async getRaisingBid(auctionId) { return this.instance.methods.getRaisingBid(auctionId).call(); } /** * [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#auctionscount) */ async auctionsCount() { return this.instance.methods.auctionsCount().call(); } } exports.SystemSurplusAuctionInstance = SystemSurplusAuctionInstance; //# sourceMappingURL=SystemSurplusAuctionInstance.js.map