@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
75 lines • 3.26 kB
JavaScript
;
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(signerOrProvider, address) {
super(signerOrProvider, '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.queryFilter(this.instance.filters.AuctionStarted(), fromBlock, toBlock);
const auctionIds = auctionEvents.map((evt) => evt.args._auctionId.toString());
return auctionIds;
}
/**
* [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#auctions)
*/
async getAuctionInfo(auctionId) {
const rawInfo = await this.instance.auctions(auctionId);
const endTime = c.fromTimestamp(rawInfo.endTime.toString());
const status = rawInfo.isExecuted ? types_1.AuctionStatus.CLOSED : types_1.AuctionStatus.ACTIVE;
return {
status,
bidder: rawInfo.bidder,
highestBid: rawInfo.highestBid.toString(),
endTime,
lot: rawInfo.lot.toString(),
};
}
/**
* [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#startauction)
*/
async startAuction(txOptions) {
return this.submitTransaction('startAuction', [], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#bid)
*/
async bid(auctionId, txOptions) {
return this.submitTransaction('bid', [auctionId], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#execute)
*/
async execute(auctionId, txOptions) {
return this.submitTransaction('execute', [auctionId], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#getraisingbid)
*/
async getRaisingBid(auctionId) {
return (await this.instance.getRaisingBid(auctionId)).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/SystemSurplusAuction/#auctionscount)
*/
async auctionsCount() {
return (await this.instance.auctionsCount()).toString();
}
}
exports.SystemSurplusAuctionInstance = SystemSurplusAuctionInstance;
//# sourceMappingURL=SystemSurplusAuctionInstance.js.map