UNPKG

gray-market-js

Version:

Utility library for the Gray Market rental marketplace

48 lines (40 loc) 1.35 kB
const URL_PREFIX = "/rentallistings"; class RentalListingsClient { constructor(axiosInstance) { this.axiosInstance = axiosInstance; } create(listing) { return this.axiosInstance.post(`${URL_PREFIX}/create`, listing); } getAllByWallet(address) { return this.axiosInstance.get(`${URL_PREFIX}/allbywallet/${address}`); } getDAOByID(id) { return this.axiosInstance.get(`${URL_PREFIX}/detaileddao/${id}`); } getOnchainByID(id) { return this.axiosInstance.get(`${URL_PREFIX}/detailedonchain/${id}`); } getAllForAsset(assetID) { return this.axiosInstance.get(`${URL_PREFIX}/getallforasset/${assetID}`) } async fulfillDAO(id, assetName, length, signer) { const validUntil = Math.round(Date.now() / 1000) + 120; const message = `Confirm rental of ${assetName}\n` + "\n" + "This message is read-only and will not trigger any blockchain transactions.\n" + "\n" + `Listing ID: ${id}\n` + `Valid until: ${validUntil}`; const signature = await signer.signMessage(message); return this.axiosInstance.post(`${URL_PREFIX}/fulfilldao`, { message, signer: await signer.getAddress(), signature, listingID: id, validUntil, length }); } } module.exports = RentalListingsClient;