1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9876],{29876:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Marketplace:function(){return Marketplace}});var ListingType,QueryParams_7d9473b5_browser_esm=__webpack_require__(17249),contract_metadata_88f06ef9_browser_esm=__webpack_require__(3983),IERC165=__webpack_require__(25025),IERC721=__webpack_require__(70332),IERC1155=__webpack_require__(8455),bignumber=__webpack_require__(2593),bignumbers=__webpack_require__(21046),addresses=__webpack_require__(9279),lib_esm=__webpack_require__(19485),contracts_lib_esm=__webpack_require__(64146),units_lib_esm=__webpack_require__(61744),tiny_invariant=__webpack_require__(38776);let ListingType1=((ListingType={})[ListingType.Direct=0]="Direct",ListingType[ListingType.Auction=1]="Auction",ListingType);class MarketplaceDirect{constructor(contractWrapper,storage){(0,QueryParams_7d9473b5_browser_esm._)(this,"contractWrapper",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"storage",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"createListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listing=>{(0,contract_metadata_88f06ef9_browser_esm.dw)(listing);let resolvedAssetAddress=await (0,contract_metadata_88f06ef9_browser_esm.cH)(listing.assetContractAddress),resolvedCurrencyAddress=await (0,contract_metadata_88f06ef9_browser_esm.cH)(listing.currencyContractAddress);await (0,contract_metadata_88f06ef9_browser_esm.dx)(this.contractWrapper,this.getAddress(),resolvedAssetAddress,listing.tokenId,await this.contractWrapper.getSignerAddress());let normalizedPricePerToken=await (0,contract_metadata_88f06ef9_browser_esm.b7)(this.contractWrapper.getProvider(),listing.buyoutPricePerToken,resolvedCurrencyAddress),listingStartTime=Math.floor(listing.startTimestamp.getTime()/1e3),block=await this.contractWrapper.getProvider().getBlock("latest"),blockTime=block.timestamp;return listingStartTime<blockTime&&(listingStartTime=blockTime),contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"createListing",args:[{assetContract:resolvedAssetAddress,tokenId:listing.tokenId,buyoutPricePerToken:normalizedPricePerToken,currencyToAccept:(0,contract_metadata_88f06ef9_browser_esm.b6)(resolvedCurrencyAddress),listingType:ListingType1.Direct,quantityToList:listing.quantity,reservePricePerToken:normalizedPricePerToken,secondsUntilEndTime:listing.listingDurationInSeconds,startTime:bignumber.O$.from(listingStartTime)}],parse:receipt=>{let event=this.contractWrapper.parseLogs("ListingAdded",receipt?.logs);return{id:event[0].args.listingId,receipt}}})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"createListingsBatch",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listings=>{let data=await Promise.all(listings.map(async listing=>{let tx=await this.createListing.prepare(listing);return tx.encode()}));return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"multicall",args:[data],parse:receipt=>{let events=this.contractWrapper.parseLogs("ListingAdded",receipt?.logs);return events.map(event=>({id:event.args.listingId,receipt}))}})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"makeOffer",(0,contract_metadata_88f06ef9_browser_esm.ds)(async(listingId,quantityDesired,currencyContractAddress,pricePerToken,expirationDate)=>{if((0,contract_metadata_88f06ef9_browser_esm.b5)(currencyContractAddress))throw Error("You must use the wrapped native token address when making an offer with a native token");let normalizedPrice=await (0,contract_metadata_88f06ef9_browser_esm.b7)(this.contractWrapper.getProvider(),pricePerToken,currencyContractAddress);try{await this.getListing(listingId)}catch(err){throw console.error("Failed to get listing, err =",err),Error(`Error getting the listing with id ${listingId}`)}let quantity=bignumber.O$.from(quantityDesired),value=bignumber.O$.from(normalizedPrice).mul(quantity),overrides=await this.contractWrapper.getCallOverrides()||{};await (0,contract_metadata_88f06ef9_browser_esm.ba)(this.contractWrapper,value,currencyContractAddress,overrides);let expirationTimestamp=bignumbers.Bz;return expirationDate&&(expirationTimestamp=bignumber.O$.from(Math.floor(expirationDate.getTime()/1e3))),contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"offer",args:[listingId,quantityDesired,currencyContractAddress,normalizedPrice,expirationTimestamp],overrides})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"acceptOffer",(0,contract_metadata_88f06ef9_browser_esm.ds)(async(listingId,addressOfOfferor)=>{await this.validateListing(bignumber.O$.from(listingId));let resolvedAddress=await (0,contract_metadata_88f06ef9_browser_esm.cH)(addressOfOfferor),offer=await this.contractWrapper.readContract.offers(listingId,resolvedAddress);return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"acceptOffer",args:[listingId,resolvedAddress,offer.currency,offer.pricePerToken]})}
1)),(0,QueryParams_7d9473b5_browser_esm._)(this,"buyoutListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async(listingId,quantityDesired,receiver)=>{let listing=await this.validateListing(bignumber.O$.from(listingId)),{valid,error}=await this.isStillValidListing(listing,quantityDesired);if(!valid)throw Error(`Listing ${listingId} is no longer valid. ${error}`);let buyFor=receiver||await this.contractWrapper.getSignerAddress(),quantity=bignumber.O$.from(quantityDesired),value=bignumber.O$.from(listing.buyoutPrice).mul(quantity),overrides=await this.contractWrapper.getCallOverrides()||{};return await (0,contract_metadata_88f06ef9_browser_esm.ba)(this.contractWrapper,value,listing.currencyContractAddress,overrides),contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"buy",args:[listingId,buyFor,quantity,listing.currencyContractAddress,value],overrides})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"updateListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listing=>contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"updateListing",args:[listing.id,listing.quantity,listing.buyoutPrice,listing.buyoutPrice,await (0,contract_metadata_88f06ef9_browser_esm.cH)(listing.currencyContractAddress),listing.startTimeInSeconds,listing.secondsUntilEnd]}))),(0,QueryParams_7d9473b5_browser_esm._)(this,"cancelListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listingId=>contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"cancelDirectListing",args:[listingId]}))),this.contractWrapper=contractWrapper,this.storage=storage}getAddress(){return this.contractWrapper.readContract.address}async getListing(listingId){let listing=await this.contractWrapper.readContract.listings(listingId);if(listing.assetContract===addresses.d)throw new contract_metadata_88f06ef9_browser_esm.bt(this.getAddress(),listingId.toString());if(listing.listingType!==ListingType1.Direct)throw new contract_metadata_88f06ef9_browser_esm.bu(this.getAddress(),listingId.toString(),"Auction","Direct");return await this.mapListing(listing)}async getActiveOffer(listingId,address){await this.validateListing(bignumber.O$.from(listingId)),(0,tiny_invariant.Z)(lib_esm.isAddress(address),"Address must be a valid address");let offers=await this.contractWrapper.readContract.offers(listingId,await (0,contract_metadata_88f06ef9_browser_esm.cH)(address));if(offers.offeror!==addresses.d)return await (0,contract_metadata_88f06ef9_browser_esm.dt)(this.contractWrapper.getProvider(),bignumber.O$.from(listingId),offers)}async validateListing(listingId){try{return await this.getListing(listingId)}catch(err){throw console.error(`Error getting the listing with id ${listingId}`),err}}async mapListing(listing){return{assetContractAddress:listing.assetContract,buyoutPrice:bignumber.O$.from(listing.buyoutPricePerToken),currencyContractAddress:listing.currency,buyoutCurrencyValuePerToken:await (0,contract_metadata_88f06ef9_browser_esm.b9)(this.contractWrapper.getProvider(),listing.currency,listing.buyoutPricePerToken),id:listing.listingId.toString(),tokenId:listing.tokenId,quantity:listing.quantity,startTimeInSeconds:listing.startTime,asset:await (0,contract_metadata_88f06ef9_browser_esm.du)(listing.assetContract,this.contractWrapper.getProvider(),listing.tokenId,this.storage),secondsUntilEnd:listing.endTime,sellerAddress:listing.tokenOwner,type:ListingType1.Direct}}async isStillValidListing(listing,quantity){let approved=await (0,contract_metadata_88f06ef9_browser_esm.dv)(this.contractWrapper.getProvider(),this.getAddress(),listing.assetContractAddress,listing.tokenId,listing.sellerAddress);if(!approved)return{valid:!1,error:`Token '${listing.tokenId}' from contract '${listing.assetContractAddress}' is not approved for transfer`};let provider=this.contractWrapper.getProvider(),erc165=new contracts_lib_esm.CH(listing.assetContractAddress,IERC165,provider),isERC721=await erc165.supportsInterface(contract_metadata_88f06ef9_browser_esm.cV),isERC1155=await erc165.supportsInterface(contract_metadata_88f06ef9_browser_esm.cW);if(isERC721){let owner;let asset=new contracts_lib_esm.CH(listing.assetContractAddress,IERC721,provider);try{owner=await asset.ownerOf(listing.tokenId)}catch(e){}let valid=owner?.toLowerCase()===listing.sellerAddress.toLowerCase();return{valid,error:valid?void 0:`Seller is not the owner of Token '${listing.tokenId}' from contract '${listing.assetContractAddress} anymore'`}}if(!isERC1155)return{valid:!1,error:"Contract does not implement ERC 1155 or ERC 721."};{let asset1=new contracts_lib_esm.CH(listing.assetContractAddress,IERC1155,provider),balance=await asset1.balanceOf(listing.sellerAddress,listing.tokenId),valid1=balance.gte(quantity||listing.quantity);
1return{valid:valid1,error:valid1?void 0:`Seller does not have enough balance of Token '${listing.tokenId}' from contract '${listing.assetContractAddress} to fulfill the listing`}}}}class MarketplaceAuction{constructor(contractWrapper,storage){(0,QueryParams_7d9473b5_browser_esm._)(this,"contractWrapper",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"storage",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"encoder",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"createListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listing=>{(0,contract_metadata_88f06ef9_browser_esm.dw)(listing);let resolvedAssetAddress=await (0,contract_metadata_88f06ef9_browser_esm.cH)(listing.assetContractAddress),resolvedCurrencyAddress=await (0,contract_metadata_88f06ef9_browser_esm.cH)(listing.currencyContractAddress);await (0,contract_metadata_88f06ef9_browser_esm.dx)(this.contractWrapper,this.getAddress(),resolvedAssetAddress,listing.tokenId,await this.contractWrapper.getSignerAddress());let normalizedPricePerToken=await (0,contract_metadata_88f06ef9_browser_esm.b7)(this.contractWrapper.getProvider(),listing.buyoutPricePerToken,resolvedCurrencyAddress),normalizedReservePrice=await (0,contract_metadata_88f06ef9_browser_esm.b7)(this.contractWrapper.getProvider(),listing.reservePricePerToken,resolvedCurrencyAddress),listingStartTime=Math.floor(listing.startTimestamp.getTime()/1e3),block=await this.contractWrapper.getProvider().getBlock("latest"),blockTime=block.timestamp;return listingStartTime<blockTime&&(listingStartTime=blockTime),contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"createListing",args:[{assetContract:resolvedAssetAddress,tokenId:listing.tokenId,buyoutPricePerToken:normalizedPricePerToken,currencyToAccept:(0,contract_metadata_88f06ef9_browser_esm.b6)(resolvedCurrencyAddress),listingType:ListingType1.Auction,quantityToList:listing.quantity,reservePricePerToken:normalizedReservePrice,secondsUntilEndTime:listing.listingDurationInSeconds,startTime:bignumber.O$.from(listingStartTime)}],parse:receipt=>{let event=this.contractWrapper.parseLogs("ListingAdded",receipt?.logs);return{id:event[0].args.listingId,receipt}}})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"createListingsBatch",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listings=>{let data=await Promise.all(listings.map(async listing=>{let tx=await this.createListing.prepare(listing);return tx.encode()}));return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"multicall",args:[data],parse:receipt=>{let events=this.contractWrapper.parseLogs("ListingAdded",receipt?.logs);return events.map(event=>({id:event.args.listingId,receipt}))}})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"buyoutListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listingId=>{let listing=await this.validateListing(bignumber.O$.from(listingId)),currencyMetadata=await (0,contract_metadata_88f06ef9_browser_esm.b8)(this.contractWrapper.getProvider(),listing.currencyContractAddress);return this.makeBid.prepare(listingId,units_lib_esm.formatUnits(listing.buyoutPrice,currencyMetadata.decimals))})),(0,QueryParams_7d9473b5_browser_esm._)(this,"makeBid",(0,contract_metadata_88f06ef9_browser_esm.ds)(async(listingId,pricePerToken)=>{let listing=await this.validateListing(bignumber.O$.from(listingId)),normalizedPrice=await (0,contract_metadata_88f06ef9_browser_esm.b7)(this.contractWrapper.getProvider(),pricePerToken,listing.currencyContractAddress);if(normalizedPrice.eq(bignumber.O$.from(0)))throw Error("Cannot make a bid with 0 value");let bidBuffer=await this.contractWrapper.readContract.bidBufferBps(),winningBid=await this.getWinningBid(listingId);if(winningBid){let isWinner=(0,contract_metadata_88f06ef9_browser_esm.dy)(winningBid.pricePerToken,normalizedPrice,bidBuffer);(0,tiny_invariant.Z)(isWinner,"Bid price is too low based on the current winning bid and the bid buffer")}else{let reservePrice=bignumber.O$.from(listing.reservePrice);(0,tiny_invariant.Z)(normalizedPrice.gte(reservePrice),"Bid price is too low based on reserve price")}let quantity=bignumber.O$.from(listing.quantity),value=normalizedPrice.mul(quantity),overrides=await this.contractWrapper.getCallOverrides()||{};return await (0,contract_metadata_88f06ef9_browser_esm.ba)(this.contractWrapper,value,listing.currencyContractAddress,overrides),contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"offer",args:[listingId,listing.quantity,listing.currencyContractAddress,normalizedPrice,bignumbers.Bz],overrides})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"cancelListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listingId=>{let listing=await this.validateListing(bignumber.O$.from(listingId)),now=bignumber.O$.from(Math.floor(Date.now()/1e3)),startTime=bignumber.O$.from(listing.startTimeInEpochSeconds),offers=await this.contractWrapper.readContract.winningBid(listingId);if(now.gt(startTime)&&offers.offeror!==addresses.d)throw new contract_metadata_88f06ef9_browser_esm.br(listingId.toString());return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"closeAuction",args:[bignumber.O$.from(listingId),await this.contractWrapper.getSignerAddress()]})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"closeListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async(listingId,closeFor)=>{closeFor||(closeFor=await this.contractWrapper.getSignerAddress());let listing=await this.validateListing(bignumber.O$.from(listingId));try{return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"closeAuction",args:[bignumber.O$.from(listingId),closeFor]})}catch(err){if(err.message.includes("cannot close auction before it has ended"))throw new contract_metadata_88f06ef9_browser_esm.bx(listingId.toString(),listing.endTimeInEpochSeconds.toString());throw err}})),(0,QueryParams_7d9473b5_browser_esm._)(this,"executeSale",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listingId=>{let listing=await this.validateListing(bignumber.O$.from(listingId));try{let winningBid=await this.getWinningBid(listingId);(0,tiny_invariant.Z)(winningBid,"No winning bid found");let closeForSeller=this.encoder.encode("closeAuction",[listingId,listing.sellerAddress]),closeForBuyer=this.encoder.encode("closeAuction",[listingId,winningBid.buyerAddress]);return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"multicall",args:[closeForSeller,closeForBuyer]})}catch(err){if(err.message.includes("cannot close auction before it has ended"))throw new contract_metadata_88f06ef9_browser_esm.bx(listingId.toString(),listing.endTimeInEpochSeconds.toString());throw err}})),(0,QueryParams_7d9473b5_browser_esm._)(this,"updateListing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async listing=>contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"updateListing",args:[listing.id,listing.quantity,listing.reservePrice,listing.buyoutPrice,listing.currencyContractAddress,listing.startTimeInEpochSeconds,listing.endTimeInEpochSeconds]}))),this.contractWrapper=contractWrapper,this.storage=storage,this.encoder=new contract_metadata_88f06ef9_browser_esm.af(contractWrapper)}getAddress(){return this.contractWrapper.readContract.address}async getListing(listingId){let listing=await this.contractWrapper.readContract.listings(listingId);if(listing.listingId.toString()!==listingId.toString())throw new contract_metadata_88f06ef9_browser_esm.bt(this.getAddress(),listingId.toString());if(listing.listingType!==ListingType1.Auction)throw new contract_metadata_88f06ef9_browser_esm.bu(this.getAddress(),listingId.toString(),"Direct","Auction");return await this.mapListing(listing)}async getWinningBid(listingId){await this.validateListing(bignumber.O$.from(listingId));let offers=await this.contractWrapper.readContract.winningBid(listingId);if(offers.offeror!==addresses.d)return await (0,contract_metadata_88f06ef9_browser_esm.dt)(this.contractWrapper.getProvider(),bignumber.O$.from(listingId),offers)}async getWinner(listingId){let listing=await this.validateListing(bignumber.O$.from(listingId)),offers=await this.contractWrapper.readContract.winningBid(listingId),now=bignumber.O$.from(Math.floor(Date.now()/1e3)),endTime=bignumber.O$.from(listing.endTimeInEpochSeconds);if(now.gt(endTime)&&offers.offeror!==addresses.d)return offers.offeror;let closedAuctions=await this.contractWrapper.readContract.queryFilter(this.contractWrapper.readContract.filters.AuctionClosed()),auction=closedAuctions.find(a=>a.args.listingId.eq(bignumber.O$.from(listingId)));if(!auction)throw Error(`Could not find auction with listingId ${listingId} in closed auctions`);return auction.args.winningBidder}async getBidBufferBps(){return this.contractWrapper.readContract.bidBufferBps()}async getMinimumNextBid(listingId){let[currentBidBufferBps,winningBid,listing]=await Promise.all([this.getBidBufferBps(),this.getWinningBid(listingId),await this.validateListing(bignumber.O$.from(listingId))]),currentBidOrReservePrice=winningBid?winningBid.currencyValue.value:listing.reservePrice,minimumNextBid=currentBidOrReservePrice.add(currentBidOrReservePrice.mul(currentBidBufferBps).div(1e4));return(0,contract_metadata_88f06ef9_browser_esm.b9)(this.contractWrapper.getProvider(),listing.currencyContractAddress,minimumNextBid)}async validateListing(listingId){try{return await this.getListing(listingId)}catch(err){throw console.error(`Error getting the listing with id ${listingId}`),err}}async mapListing(listing){return{assetContractAddress:listing.assetContract,buyoutPrice:bignumber.O$.from(listing.buyoutPricePerToken),currencyContractAddress:listing.currency,buyoutCurrencyValuePerToken:await (0,contract_metadata_88f06ef9_browser_esm.b9)(this.contractWrapper.getProvider(),listing.currency,listing.buyoutPricePerToken),id:listing.listingId.toString(),tokenId:listing.tokenId,quantity:listing.quantity,startTimeInEpochSeconds:listing.startTime,asset:await (0,contract_metadata_88f06ef9_browser_esm.du)(listing.assetContract,this.contractWrapper.getProvider(),listing.tokenId,this.storage),reservePriceCurrencyValuePerToken:await (0,contract_metadata_88f06ef9_browser_esm.b9)(this.contractWrapper.getProvider(),listing.currency,listing.reservePricePerToken),reservePrice:bignumber.O$.from(listing.reservePricePerToken),endTimeInEpochSeconds:listing.endTime,sellerAddress:listing.tokenOwner,type:ListingType1.Auction}}}__webpack_require__(13550),__webpack_require__(71770),__webpack_require__(54098),__webpack_require__(2162),__webpack_require__(64063),__webpack_require__(62822);class Marketplace{get chainId(){return this._chainId}constructor(network,address,storage){let options=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},abi=arguments.length>4?arguments[4]:void 0,_chainId=arguments.length>5?arguments[5]:void 0,contractWrapper=arguments.length>6&&void 0!==arguments[6]?arguments[6]:new contract_metadata_88f06ef9_browser_esm.dz(network,address,abi,options);(0,QueryParams_7d9473b5_browser_esm._)(this,"abi",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"contractWrapper",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"storage",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"encoder",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"events",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"estimator",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"platformFees",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"metadata",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"app",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"roles",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"interceptor",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"direct",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"auction",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"_chainId",void 0),(0,QueryParams_7d9473b5_browser_esm._)(this,"getAll",this.getAllListings),(0,QueryParams_7d9473b5_browser_esm._)(this,"buyout
1Listing",(0,contract_metadata_88f06ef9_browser_esm.ds)(async(listingId,quantityDesired,receiver)=>{let listing=await this.contractWrapper.readContract.listings(listingId);if(listing.listingId.toString()!==listingId.toString())throw new contract_metadata_88f06ef9_browser_esm.bt(this.getAddress(),listingId.toString());switch(listing.listingType){case ListingType1.Direct:return(0,tiny_invariant.Z)(void 0!==quantityDesired,"quantityDesired is required when buying out a direct listing"),await this.direct.buyoutListing.prepare(listingId,quantityDesired,receiver);case ListingType1.Auction:return await this.auction.buyoutListing.prepare(listingId);default:throw Error(`Unknown listing type: ${listing.listingType}`)}})),(0,QueryParams_7d9473b5_browser_esm._)(this,"makeOffer",(0,contract_metadata_88f06ef9_browser_esm.ds)(async(listingId,pricePerToken,quantity)=>{let listing=await this.contractWrapper.readContract.listings(listingId);if(listing.listingId.toString()!==listingId.toString())throw new contract_metadata_88f06ef9_browser_esm.bt(this.getAddress(),listingId.toString());let chainId=await this.contractWrapper.getChainID();switch(listing.listingType){case ListingType1.Direct:return(0,tiny_invariant.Z)(quantity,"quantity is required when making an offer on a direct listing"),await this.direct.makeOffer.prepare(listingId,quantity,(0,contract_metadata_88f06ef9_browser_esm.b5)(listing.currency)?contract_metadata_88f06ef9_browser_esm.cY[chainId].wrapped.address:listing.currency,pricePerToken);case ListingType1.Auction:return await this.auction.makeBid.prepare(listingId,pricePerToken);default:throw Error(`Unknown listing type: ${listing.listingType}`)}})),(0,QueryParams_7d9473b5_browser_esm._)(this,"setBidBufferBps",(0,contract_metadata_88f06ef9_browser_esm.ds)(async bufferBps=>{await this.roles.verify(["admin"],await this.contractWrapper.getSignerAddress());let timeBuffer=await this.getTimeBufferInSeconds();return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"setAuctionBuffers",args:[timeBuffer,bignumber.O$.from(bufferBps)]})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"setTimeBufferInSeconds",(0,contract_metadata_88f06ef9_browser_esm.ds)(async bufferInSeconds=>{await this.roles.verify(["admin"],await this.contractWrapper.getSignerAddress());let bidBuffer=await this.getBidBufferBps();return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"setAuctionBuffers",args:[bignumber.O$.from(bufferInSeconds),bidBuffer]})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"allowListingFromSpecificAssetOnly",(0,contract_metadata_88f06ef9_browser_esm.ds)(async contractAddress=>{let encoded=[],members=await this.roles.get("asset");return members.includes(addresses.d)&&encoded.push(this.encoder.encode("revokeRole",[(0,contract_metadata_88f06ef9_browser_esm.bE)("asset"),addresses.d])),encoded.push(this.encoder.encode("grantRole",[(0,contract_metadata_88f06ef9_browser_esm.bE)("asset"),contractAddress])),contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"multicall",args:[encoded]})})),(0,QueryParams_7d9473b5_browser_esm._)(this,"allowListingFromAnyAsset",(0,contract_metadata_88f06ef9_browser_esm.ds)(async()=>{let encoded=[],members=await this.roles.get("asset");for(let addr in members)encoded.push(this.encoder.encode("revokeRole",[(0,contract_metadata_88f06ef9_browser_esm.bE)("asset"),addr]));return encoded.push(this.encoder.encode("grantRole",[(0,contract_metadata_88f06ef9_browser_esm.bE)("asset"),addresses.d])),contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method:"multicall",args:[encoded]})})),this._chainId=_chainId,this.abi=contract_metadata_88f06ef9_browser_esm.e.parse(abi||[]),this.contractWrapper=contractWrapper,this.storage=storage,this.metadata=new contract_metadata_88f06ef9_browser_esm.ag(this.contractWrapper,contract_metadata_88f06ef9_browser_esm.dF,this.storage),this.app=new contract_metadata_88f06ef9_browser_esm.a$(this.contractWrapper,this.metadata,this.storage),this.roles=new contract_metadata_88f06ef9_browser_esm.ah(this.contractWrapper,Marketplace.contractRoles),this.encoder=new contract_metadata_88f06ef9_browser_esm.af(this.contractWrapper),this.estimator=new contract_metadata_88f06ef9_browser_esm.aP(this.contractWrapper),this.direct=new Mar
1ketplaceDirect(this.contractWrapper,this.storage),this.auction=new MarketplaceAuction(this.contractWrapper,this.storage),this.events=new contract_metadata_88f06ef9_browser_esm.aQ(this.contractWrapper),this.platformFees=new contract_metadata_88f06ef9_browser_esm.aS(this.contractWrapper),this.interceptor=new contract_metadata_88f06ef9_browser_esm.aR(this.contractWrapper)}onNetworkUpdated(network){this.contractWrapper.updateSignerOrProvider(network)}getAddress(){return this.contractWrapper.readContract.address}async getListing(listingId){let listing=await this.contractWrapper.readContract.listings(listingId);if(listing.assetContract===addresses.d)throw new contract_metadata_88f06ef9_browser_esm.bt(this.getAddress(),listingId.toString());switch(listing.listingType){case ListingType1.Auction:return await this.auction.mapListing(listing);case ListingType1.Direct:return await this.direct.mapListing(listing);default:throw Error(`Unknown listing type: ${listing.listingType}`)}}async getActiveListings(filter){let rawListings=await this.getAllListingsNoFilter(!0),filtered=this.applyFilter(rawListings,filter),now=bignumber.O$.from(Math.floor(Date.now()/1e3));return filtered.filter(l=>l.type===ListingType1.Auction&&bignumber.O$.from(l.endTimeInEpochSeconds).gt(now)&&bignumber.O$.from(l.startTimeInEpochSeconds).lte(now)||l.type===ListingType1.Direct&&l.quantity>0)}async getAllListings(filter){let rawListings=await this.getAllListingsNoFilter(!1);return this.applyFilter(rawListings,filter)}async getTotalCount(){return await this.contractWrapper.readContract.totalListings()}async isRestrictedToListerRoleOnly(){let anyoneCanList=await this.contractWrapper.readContract.hasRole((0,contract_metadata_88f06ef9_browser_esm.bE)("lister"),addresses.d);return!anyoneCanList}async getBidBufferBps(){return this.contractWrapper.readContract.bidBufferBps()}async getTimeBufferInSeconds(){return this.contractWrapper.readContract.timeBuffer()}async getOffers(listingId){let listingEvents=await this.events.getEvents("NewOffer",{order:"desc",filters:{listingId}});return await Promise.all(listingEvents.map(async e=>await (0,contract_metadata_88f06ef9_browser_esm.dt)(this.contractWrapper.getProvider(),bignumber.O$.from(listingId),{quantityWanted:e.data.quantityWanted,pricePerToken:e.data.quantityWanted.gt(0)?e.data.totalOfferAmount.div(e.data.quantityWanted):e.data.totalOfferAmount,currency:e.data.currency,offeror:e.data.offeror})))}async getAllListingsNoFilter(filterInvalidListings){let listings=await Promise.all(Array.from(Array((await this.contractWrapper.readContract.totalListings()).toNumber()).keys()).map(async i=>{let listing;try{listing=await this.getListing(i)}catch(err){if(err instanceof contract_metadata_88f06ef9_browser_esm.bt)return;console.warn(`Failed to get listing ${i}' - skipping. Try 'marketplace.getListing(${i})' to get the underlying error.`);return}if(listing.type===ListingType1.Auction)return listing;if(filterInvalidListings){let{valid}=await this.direct.isStillValidListing(listing);if(!valid)return}return listing}));return listings.filter(l=>void 0!==l)}applyFilter(listings,filter){let rawListings=[...listings],start=bignumber.O$.from(filter?.start||0).toNumber(),count=bignumber.O$.from(filter?.count||QueryParams_7d9473b5_browser_esm.c).toNumber();return filter&&(filter.seller&&(rawListings=rawListings.filter(seller=>seller.sellerAddress.toString().toLowerCase()===filter?.seller?.toString().toLowerCase())),filter.tokenContract&&(rawListings=rawListings.filter(tokenContract=>tokenContract.assetContractAddress.toString().toLowerCase()===filter?.tokenContract?.toString().toLowerCase())),void 0!==filter.tokenId&&(rawListings=rawListings.filter(tokenContract=>tokenContract.tokenId.toString()===filter?.tokenId?.toString())),rawListings=(rawListings=rawListings.filter((_,index)=>index>=start)).slice(0,count)),rawListings}async prepare(method,args,overrides){return contract_metadata_88f06ef9_browser_esm.aV.fromContractWrapper({contractWrapper:this.contractWrapper,method,args,overrides})}async call(functionName,args,overrides){return this.contractWrapper.call(functionName,args,overrides)}}(0,QueryParams_7d9473b5_browser_esm._)(Marketplace,"contractRoles",["admin","lister","asset"])}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.