@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
63 lines • 2.73 kB
JavaScript
;
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(web3, address) {
super(web3, '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.getPastEvents('AuctionStarted', { fromBlock, toBlock });
const auctionIds = auctionEvents.map((evt) => {
return {
user: evt.returnValues._user,
vaultId: evt.returnValues._vaultId,
};
});
return auctionIds;
}
/**
* [External documentation](@system-contracts-repo/@network/LiquidationAuction/#auctions)
*/
async getAuctionInfo(user, vaultId) {
const rawInfo = await this.instance.methods.auctions(user, vaultId).call();
return rawInfo;
}
/**
* [External documentation](@system-contracts-repo/@network/LiquidationAuction/#startauction)
*/
async startAuction(user, vaultId, bid, txOptions) {
return this.submitTransaction(this.instance.methods.startAuction(user, vaultId, bid), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/LiquidationAuction/#bid)
*/
async bid(user, vaultId, bid, txOptions) {
return this.submitTransaction(this.instance.methods.bid(user, vaultId, bid), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/LiquidationAuction/#execute)
*/
async execute(user, vaultId, txOptions) {
return this.submitTransaction(this.instance.methods.execute(user, vaultId), txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/LiquidationAuction/#getraisingbid)
*/
async getRaisingBid(user, vaultId) {
return this.instance.methods.getRaisingBid(user, vaultId).call();
}
}
exports.LiquidationAuctionInstance = LiquidationAuctionInstance;
//# sourceMappingURL=LiquidationAuctionInstance.js.map