@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
81 lines • 3.35 kB
JavaScript
;
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(web3, address) {
super(web3, '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.getPastEvents('AuctionStarted', { fromBlock, toBlock });
const auctionIds = auctionEvents.map((evt) => evt.returnValues._auctionId);
return auctionIds;
}
/**
* [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#auctions)
*/
async getAuctionInfo(auctionId) {
const rawInfo = await this.instance.methods.auctions(auctionId).call();
const endTime = c.fromTimestamp(rawInfo.endTime);
return {
status: rawInfo.status,
bidder: rawInfo.bidder,
highestBid: rawInfo.highestBid,
endTime,
lot: rawInfo.reserveLot
};
}
/**
* [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#startauction)
*/
async startAuction(bid, txOptions) {
return this.submitTransaction(this.instance.methods.startAuction(bid), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#bid)
*/
async bid(bid, txOptions) {
return this.submitTransaction(this.instance.methods.bid(bid), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#execute)
*/
async execute(txOptions) {
return this.submitTransaction(this.instance.methods.execute(), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#getraisingbid)
*/
async getRaisingBid(auctionId) {
if (!auctionId)
auctionId = await this.currentAuctionId();
return this.instance.methods.getRaisingBid(auctionId).call();
}
/**
* [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#currentauctionid)
*/
async currentAuctionId() {
return this.instance.methods.currentAuctionId().call();
}
/**
* [External documentation](@system-contracts-repo/@network/SystemDebtAuction/#hasactiveauction)
*/
async hasActiveAuction() {
return this.instance.methods.hasActiveAuction().call();
}
}
exports.SystemDebtAuctionInstance = SystemDebtAuctionInstance;
//# sourceMappingURL=SystemDebtAuctionInstance.js.map