@dcl/shop 0.1.0-29330702360.commit-0d089c2 → 0.1.0-29337358135.commit-2e4bf7e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{AnimatedBackground-Cjl8m9yV.js → AnimatedBackground-DimPo0o6.js} +3 -3
- package/assets/{Assets-CH2UvOLD.js → Assets-0rXRECQy.js} +1 -1
- package/assets/{Button-D3AtkSL-.js → Button-C5iun1df.js} +1 -1
- package/assets/Cart-DfisnztS.js +1 -0
- package/assets/{CircularProgress-Dwf5ihwF.js → CircularProgress-e_Dj0fmx.js} +1 -1
- package/assets/{Collection-BEjVhftZ.js → Collection-CAJMA4Fe.js} +1 -1
- package/assets/{Creator-BOAE6sSq.js → Creator-DXuvF7aY.js} +1 -1
- package/assets/{ExchangeController-D7NuEvzc.js → ExchangeController-DKuss9DL.js} +1 -1
- package/assets/{GetCredits-DJQvGn18.js → GetCredits-DrLnYOdO.js} +2 -2
- package/assets/{HelpersUtil-Bv85o64D.js → HelpersUtil-BIYA4n9B.js} +1 -1
- package/assets/ImportListings-CZkdcWaF.js +1 -0
- package/assets/ItemDetail-BMgOoWU8.js +2 -0
- package/assets/Market-B6NMpu2_.js +1 -0
- package/assets/{MenuItem-C83l4cI7.js → MenuItem-Ci7Oxa0S.js} +1 -1
- package/assets/MyAssets-DGLbKyUN.js +1 -0
- package/assets/{MyFavorites-DGSkZP9t.js → MyFavorites-BzUnpL59.js} +1 -1
- package/assets/{MyPurchases-JReebPX3.js → MyPurchases-C-MppIV4.js} +1 -1
- package/assets/{NotFound-CIEXRpoy.js → NotFound-stjqjmfW.js} +1 -1
- package/assets/{RealCheckout-nJizLqjT.js → RealCheckout-BXu8QwUw.js} +1 -1
- package/assets/{ShopFooterInner-C1NvVNG3.js → ShopFooterInner-Bw0tZ5jz.js} +2 -2
- package/assets/Success-BmFgC1Fj.js +1 -0
- package/assets/{SvgIcon-CjKRGMBC.js → SvgIcon-CBDCsycQ.js} +1 -1
- package/assets/{SwapController-ux84ytr5.js → SwapController-Daflx-KH.js} +1 -1
- package/assets/{TradeService-BoqqCerU.js → TradeService-mwlprIfz.js} +1 -1
- package/assets/{W3MFrameProviderSingleton-DOS4510x.js → W3MFrameProviderSingleton-OCCNZtGo.js} +3 -3
- package/assets/{WebCryptoP256-DAmb-2Em.js → WebCryptoP256-DcxhTaIn.js} +1 -1
- package/assets/{basic-C3Th2FNU.js → basic-DokGV68e.js} +1 -1
- package/assets/{biconomy-BWbJHSOW.js → biconomy-BFplpB0T.js} +1 -1
- package/assets/buy-Cei5j8eO.js +1 -0
- package/assets/buy-gasless-B5QPf-sE.js +1 -0
- package/assets/{ccip-COF2T1Ib.js → ccip-38EHg6W8.js} +1 -1
- package/assets/{ccip-pN92swEl.js → ccip-n6rH3sVb.js} +1 -1
- package/assets/{collection-v-v_Nl8a.js → collection-dxCKqLM-.js} +1 -1
- package/assets/{controller-RRBpGKF8.js → controller-DG_iRQPR.js} +2 -2
- package/assets/{core-C6vlkTlo.js → core-CIi4Ex77.js} +4 -4
- package/assets/{custom-CY2ltPPd.js → custom-Cjfua0Ef.js} +1 -1
- package/assets/{data-capture-Dg-3egaj.js → data-capture-DXahe72x.js} +1 -1
- package/assets/decimals-CN9Xxdem.js +1 -0
- package/assets/{decimals-Chd6RszM.js → decimals-teeH97v6.js} +1 -1
- package/assets/{detectExtension-B0a7MglY.js → detectExtension-DX1a8DfW.js} +1 -1
- package/assets/{email-ClZummtk.js → email-CPaGg29O.js} +1 -1
- package/assets/{embedded-wallet-DEopUqkL.js → embedded-wallet-BhVpPp0v.js} +1 -1
- package/assets/{engine-D9rt-MAn.js → engine-CwdwAsnd.js} +1 -1
- package/assets/{estimate-l1-fee-imOha2M9.js → estimate-l1-fee-BnSv7s_G.js} +1 -1
- package/assets/{eth_estimateGas-Da6g7nxI.js → eth_estimateGas-Ds0QjpUA.js} +1 -1
- package/assets/{eth_getStorageAt-DKuDU8Ni.js → eth_getStorageAt-DIueLfGz.js} +1 -1
- package/assets/{eth_getTransactionCount-DVIgpPCJ.js → eth_getTransactionCount-joBCO4C6.js} +1 -1
- package/assets/{extractIPFS-BTztmHWv.js → extractIPFS-BrP7LeOr.js} +1 -1
- package/assets/{features-CdtdhkTL.js → features-KCpkg70J.js} +1 -1
- package/assets/{fetchTokenMetadata-CmgflCeq.js → fetchTokenMetadata-ZA_LtwkO.js} +2 -2
- package/assets/{generateUtilityClasses-BGHsAVVg.js → generateUtilityClasses-uRdMg1ON.js} +1 -1
- package/assets/{get-ecosystem-wallet-info-By3QiPyl.js → get-ecosystem-wallet-info-DezSaPim.js} +1 -1
- package/assets/{getBalance-CZWAahed.js → getBalance-DGzGIvMz.js} +1 -1
- package/assets/{getInstalledModules-CEWawuS-.js → getInstalledModules-Bx09uT4y.js} +1 -1
- package/assets/{getNFT-CR4KcQmQ.js → getNFT-Zd5KGmRs.js} +1 -1
- package/assets/{getNFT-D1cs3iBl.js → getNFT-tiy4hesk.js} +2 -2
- package/assets/{hashTypedData-BAX4R2DY.js → hashTypedData-CtOt2WpE.js} +1 -1
- package/assets/{hashTypedData-DrkY-TEF.js → hashTypedData-CvnNX2YB.js} +1 -1
- package/assets/import-Ct60HkEi.js +1 -0
- package/assets/{in-app-wallet-calls-D-AtLmwC.js → in-app-wallet-calls-nAqAaeZM.js} +1 -1
- package/assets/{index-CGXg_EM9.js → index-9GLN8yqL.js} +1 -1
- package/assets/{index-DlEhwtiz.js → index-B8kuIs26.js} +1 -1
- package/assets/{index-Cb3sg7_L.js → index-B9fMKYcR.js} +1 -1
- package/assets/{index-D55hPHnV.js → index-BFVyBGs8.js} +1 -1
- package/assets/{index-Dx1GZbTR.js → index-BKUufNAr.js} +1 -1
- package/assets/{index-Br71EGgw.js → index-BLmKUFKr.js} +1 -1
- package/assets/{index-rSC-8Ubo.js → index-BTe18ABT.js} +1 -1
- package/assets/{index-CAbL4ft4.js → index-Bg4LriAo.js} +1 -1
- package/assets/{index-3jp_d5kG.js → index-Bgq0v2Vw.js} +2 -2
- package/assets/{index-B6dQCTVX.js → index-Bqxd3bRY.js} +1 -1
- package/assets/{index-DHJZpBre.js → index-Bt1JjNoo.js} +1 -1
- package/assets/{index-BMqKKCr-.js → index-Bz7iJIvj.js} +1 -1
- package/assets/{index-B0BYuywg.js → index-C0sZ2G0D.js} +1 -1
- package/assets/{index-CVmxsTrR.js → index-CCamfLVz.js} +1 -1
- package/assets/{index-CUMwJIXW.js → index-CImDhWkL.js} +2 -2
- package/assets/{index-Dy8fJKIh.js → index-CIpCj8f1.js} +1 -1
- package/assets/{index-CMGTUvxy.js → index-CKwxO0xv.js} +7 -7
- package/assets/{index-NKx9gPR1.js → index-CM4C6c3v.js} +1 -1
- package/assets/{index-B_5zdr9Z.js → index-CUREiiKP.js} +1 -1
- package/assets/{index-D_YEolFF.js → index-CWxLUWXU.js} +1 -1
- package/assets/{index-CP71O51m.js → index-CYwcDn0L.js} +1 -1
- package/assets/{index-DniopxMv.js → index-Ca3Sav7N.js} +1 -1
- package/assets/{index-C8fVhmDx.js → index-CbNdOGip.js} +1 -1
- package/assets/{index-B8lSRyNG.js → index-ChQKLd7_.js} +1 -1
- package/assets/{index-DQ_rifhp.js → index-ChvdYvQ4.js} +1 -1
- package/assets/{index-C7N7hETQ.js → index-ClaWRN-y.js} +1 -1
- package/assets/{index-B6L4OXge.js → index-CmD3WgD4.js} +1 -1
- package/assets/{index-xW0RoH3-.js → index-CmIVXtjA.js} +1 -1
- package/assets/{index-C5GM9Ip2.js → index-CmJ_3H94.js} +1 -1
- package/assets/{index-Dq9WdxpX.js → index-CqQ8Hs5j.js} +1 -1
- package/assets/{index-Btx6Nhfc.js → index-CtPBA1jA.js} +1 -1
- package/assets/{index-D41AIxSG.js → index-D5Mm7yXQ.js} +1 -1
- package/assets/{index-DXWuFCgK.js → index-DGRE-ml6.js} +1 -1
- package/assets/{index-DFPBqsDV.js → index-DW9-slpM.js} +3 -3
- package/assets/{index-DlqMH58i.js → index-DXaR1qC5.js} +1 -1
- package/assets/{index-3OJXSMmr.js → index-DZHh5kfE.js} +1 -1
- package/assets/{index-2JcLr6iQ.js → index-Doasr1W7.js} +1 -1
- package/assets/{index-D1cYKn9R.js → index-Ds5QdmMB.js} +1 -1
- package/assets/{index-dNeC4XVF.js → index-DssZGhOb.js} +1 -1
- package/assets/{index-BHQEH_12.js → index-DvhSyBnM.js} +2 -2
- package/assets/{index-Htk8eGLE.js → index-GZKxkqGp.js} +1 -1
- package/assets/{index-D8ylAHlw.js → index-NMzNXj-b.js} +1 -1
- package/assets/{index-C5tNn6Sj.js → index-O4fffv47.js} +1 -1
- package/assets/{index-BKFbcYVd.js → index-OFpebMSe.js} +3 -3
- package/assets/{index-Cat6hGXG.js → index-RyQIoZwA.js} +1 -1
- package/assets/{index-BKSDHYQD.js → index-T0IQCR4g.js} +1 -1
- package/assets/{index-OCnqAqKv.js → index-U2hrSY35.js} +1 -1
- package/assets/{index-DBUoOr84.js → index-U6KrdqpT.js} +1 -1
- package/assets/{index-Bon2lvA0.js → index-Zhfk6Aoz.js} +1 -1
- package/assets/{index-CbMRJVXQ.js → index-eOTACaIJ.js} +1 -1
- package/assets/{index-CVXtX0PM.css → index-fOgQisFj.css} +1 -1
- package/assets/{index-CsHvmA0A.js → index-l6x72Ai4.js} +1 -1
- package/assets/{index-BFZF6WWf.js → index-qVJufJAm.js} +1 -1
- package/assets/{index-BHce3r2x.js → index-xd5vYVHb.js} +1 -1
- package/assets/{index.es-DoQSqgF7.js → index.es-1m0x5CpA.js} +1 -1
- package/assets/{index.es-BwkLmJ3k.js → index.es-CBUy80x9.js} +4 -4
- package/assets/{index.es-a1vlTA5I.js → index.es-sLZupOx6.js} +1 -1
- package/assets/{localBatchGatewayRequest-CI1lWSsQ.js → localBatchGatewayRequest-Bwch9V5u.js} +1 -1
- package/assets/{mana-rate-BySaIkbs.js → mana-rate-BrvfDold.js} +1 -1
- package/assets/network-DjfG_0s1.js +1 -0
- package/assets/{networks-buLFWtl_.js → networks-KNRT4yhl.js} +1 -1
- package/assets/{onramp-Dv5gjkia.js → onramp-vni5tJjM.js} +1 -1
- package/assets/{openzeppelin-CS6twUC4.js → openzeppelin-Dm8mC4Oq.js} +1 -1
- package/assets/{ownerOf-B31uIFul.js → ownerOf-lof10XBl.js} +1 -1
- package/assets/{parseNft-1GNvJ8yW.js → parseNft-COV0EcO6.js} +2 -2
- package/assets/{parseSignature-DTtQg04R.js → parseSignature-DH_zPldG.js} +3 -3
- package/assets/{parseSignature-C2LBr0kz.js → parseSignature-Dx8_igyj.js} +1 -1
- package/assets/{pay-with-exchange-DIgh7ywL.js → pay-with-exchange-D7fz03Hw.js} +1 -1
- package/assets/{qr-overlay-DHKqDKWQ.js → qr-overlay-B_s_8Smu.js} +1 -1
- package/assets/{receive-BhvPpdV9.js → receive-Cm4r3Dka.js} +1 -1
- package/assets/{resolveImplementation-BfhB1Qee.js → resolveImplementation-DG9O52l9.js} +1 -1
- package/assets/{rpc-B-pfbr4M.js → rpc-BA6d-g1R.js} +1 -1
- package/assets/{secp256k1-Ctv6lI2e.js → secp256k1-DqnVksGc.js} +1 -1
- package/assets/{secp256k1-CwVIRbP0.js → secp256k1-K3jrkFCF.js} +1 -1
- package/assets/{secp256k1-CRPmmOoA.js → secp256k1-zTnesHEt.js} +1 -1
- package/assets/{send-CMvPKSgZ.js → send-D-iD-Eqx.js} +1 -1
- package/assets/{send-batch-transaction-DWxAqsBk.js → send-batch-transaction-D8RkjDD6.js} +1 -1
- package/assets/{send-eip712-transaction-B2VaaMTe.js → send-eip712-transaction-D224ueJ-.js} +2 -2
- package/assets/{send-gasless-transaction-CTg0xtdJ.js → send-gasless-transaction-B_0JoAQE.js} +2 -2
- package/assets/{sendRawTransaction-CsI-1dvK.js → sendRawTransaction-CA5sPEMX.js} +3 -3
- package/assets/{serializeTransaction-D6we2AVi.js → serializeTransaction-DoiqxhWF.js} +1 -1
- package/assets/{session-proposal-x6BmzwlF.js → session-proposal-gostBQZ3.js} +1 -1
- package/assets/{session-request-DpJJOyKL.js → session-request-CTrIE5mc.js} +2 -2
- package/assets/{sha256-C88uAxsJ.js → sha256-DvVglGNs.js} +1 -1
- package/assets/{signing-B2qIRPvY.js → signing-BNXs2XCn.js} +4 -4
- package/assets/{socials-ByRNrtni.js → socials-B0f9Npjf.js} +1 -1
- package/assets/{swaps-DQU4MzZQ.js → swaps-CrDXCLmL.js} +1 -1
- package/assets/{thirdweb-CNlfuYdS.js → thirdweb-BHHkLfZd.js} +3 -3
- package/assets/{totalSupply-CTGTutOw.js → totalSupply-OMptbxGo.js} +1 -1
- package/assets/trade-encoding-Dbk3clLx.js +1 -0
- package/assets/{transactionReceipt-BlO435FD.js → transactionReceipt-wg3yR0Lm.js} +1 -1
- package/assets/{transactions-uQyr50KQ.js → transactions-7oX42CZi.js} +1 -1
- package/assets/{useInfiniteGrid-CcvAkiyB.js → useInfiniteGrid-D88R70KF.js} +1 -1
- package/assets/{verifyHash-BxVtCiNG.js → verifyHash-D-LCgkGR.js} +1 -1
- package/assets/{w3m-modal-Co_TmNBS.js → w3m-modal-BUd4eWHh.js} +1 -1
- package/assets/{w3m-modal-DV4es5bp.js → w3m-modal-ZsakVEYv.js} +1 -1
- package/assets/{wait-for-tx-receipt-Oua6kcjt.js → wait-for-tx-receipt-gZ6Dq1Eb.js} +1 -1
- package/assets/{wallet-kind-BR9EEO7E.js → wallet-kind-DtWrr4AZ.js} +1 -1
- package/assets/{wallets-BBLt7Gp1.js → wallets-C7iol5XW.js} +6 -6
- package/assets/{web-connector-C4qcVYdF.js → web-connector-Dgg6xNHV.js} +3 -3
- package/assets/{writeContract-B7gGmX2o.js → writeContract-Bue8cAhq.js} +1 -1
- package/assets/{zoraTestnet-BOqp_z4N.js → zoraTestnet-CrA1iIe2.js} +1 -1
- package/index.html +8 -8
- package/package.json +2 -2
- package/assets/Cart-iIojIDOE.js +0 -1
- package/assets/ImportListings-CLIZeHnq.js +0 -1
- package/assets/ItemDetail-vU7MusPD.js +0 -2
- package/assets/Market-BPnAdEd3.js +0 -1
- package/assets/MyAssets-CYCc3Lhx.js +0 -1
- package/assets/Success-CK_Vcw04.js +0 -1
- package/assets/buy-CsLUNZO_.js +0 -1
- package/assets/buy-gasless-7HSovA0-.js +0 -1
- package/assets/decimals-B8duagWz.js +0 -1
- package/assets/import-DZ2KCb9V.js +0 -1
- package/assets/network-dDcJdQOQ.js +0 -1
package/index.html
CHANGED
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
<link rel="canonical" href="https://shop.decentraland.zone/" />
|
|
17
17
|
|
|
18
18
|
<!-- Favicon: the Decentraland mark (same as the marketplace). -->
|
|
19
|
-
<link rel="icon" type="image/x-icon" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
20
|
-
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
19
|
+
<link rel="icon" type="image/x-icon" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/favicon.ico" sizes="16x16 32x32 48x48" />
|
|
20
|
+
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/apple-touch-icon.png" />
|
|
21
21
|
<meta name="apple-mobile-web-app-title" content="DCL Shop" />
|
|
22
|
-
<link rel="manifest" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
22
|
+
<link rel="manifest" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/site.webmanifest" />
|
|
23
23
|
|
|
24
24
|
<!-- Open Graph -->
|
|
25
25
|
<meta property="og:type" content="website" />
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
<meta name="twitter:image:alt" content="Decentraland Shop — wearables and emotes for your avatar" />
|
|
49
49
|
|
|
50
50
|
<!-- Sitemap -->
|
|
51
|
-
<link rel="sitemap" type="application/xml" title="Sitemap" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
51
|
+
<link rel="sitemap" type="application/xml" title="Sitemap" href="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/sitemap.xml" />
|
|
52
52
|
|
|
53
53
|
<!-- Warm the 3D preview / fonts -->
|
|
54
54
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
<link rel="preconnect" href="https://wearable-preview.decentraland.org" />
|
|
61
61
|
<link rel="preconnect" href="https://peer.decentraland.zone" crossorigin />
|
|
62
62
|
<link rel="preconnect" href="https://peer.decentraland.org" crossorigin />
|
|
63
|
-
<script type="module" crossorigin src="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
64
|
-
<link rel="modulepreload" crossorigin href="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
65
|
-
<link rel="modulepreload" crossorigin href="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
66
|
-
<link rel="stylesheet" crossorigin href="https://cdn.decentraland.org/@dcl/shop/0.1.0-
|
|
63
|
+
<script type="module" crossorigin src="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/assets/index-CKwxO0xv.js"></script>
|
|
64
|
+
<link rel="modulepreload" crossorigin href="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/assets/react-Vu6nbGi5.js">
|
|
65
|
+
<link rel="modulepreload" crossorigin href="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/assets/ethers-JeCAM1sd.js">
|
|
66
|
+
<link rel="stylesheet" crossorigin href="https://cdn.decentraland.org/@dcl/shop/0.1.0-29337358135.commit-2e4bf7e/assets/index-fOgQisFj.css">
|
|
67
67
|
</head>
|
|
68
68
|
<body>
|
|
69
69
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/shop",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-29337358135.commit-2e4bf7e",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"author": "Decentraland",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/decentraland/shop.git"
|
|
10
10
|
},
|
|
11
|
-
"commit": "
|
|
11
|
+
"commit": "2e4bf7e864582e07eba1269998de4fc63af3b34b"
|
|
12
12
|
}
|
package/assets/Cart-iIojIDOE.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as ee,r as x,j as s,L as A}from"./react-Vu6nbGi5.js";import{v as se,w as te,o as P,a as ae,c as re,x as ne,y as ce,t as R,C as ie,d as I,k as K,A as le,j as F,z as B,D as z,E as oe,F as de,G as D,H as ue,I as he,g as me,J as pe,l as fe}from"./index-CMGTUvxy.js";import{f as O}from"./buy-CsLUNZO_.js";import{g as _e,b as ye,w as ge,S as be,G as xe}from"./buy-gasless-7HSovA0-.js";import"./ethers-JeCAM1sd.js";import"./index-D8ylAHlw.js";function je(t){return Math.ceil(t/10)}async function ve(t,r,d){var C;const g=[],a=[],j=[];for(const n of t)try{const m=await d(n);if(!m){a.push(n);continue}if(se(m,r)){j.push(n);continue}const c=te((C=m.received[0])==null?void 0:C.amount);if(!Number.isFinite(c)||c<=0){a.push(n);continue}g.push({item:n,trade:m,usdCents:c,priceCredits:je(c)})}catch{a.push(n)}const v=g.reduce((n,m)=>n+m.priceCredits,0),p=a.length>0||j.length>0||g.some(n=>n.priceCredits!==n.item.priceCredits);return{buyable:g,unavailable:a,own:j,liveTotalCredits:v,orderChanged:p}}function Q(t){const r=t,d=(r.message??"").toLowerCase();return r.code===4001||d.includes("reject")||d.includes("denied")||d.includes("cancel")?"You cancelled the request.":d.includes("insufficient")?`You don't have enough ${K.name} — get more first.`:d.includes("no active listing")||d.includes("your own listing")?r.message:"Couldn't complete checkout — please try again."}const Ce=12e4;function Ne(t){const r=[];return t.unavailable.length&&r.push(`${t.unavailable.length} no longer available`),t.own.length&&r.push(`${t.own.length} you can't buy (your own listing)`),`Removed ${r.join(" and ")} from your cart.`}function Re(){const t=P(e=>e.items),r=P(e=>e.remove),d=P(e=>e.clear),g=P(e=>e.setFittingOpen),{session:a}=ae(),j=t.some(e=>e.category!=="emote"),{data:v}=re({queryKey:["upsell-listings"],queryFn:()=>fe({first:40}),staleTime:6e4}),{data:p}=ne(a),C=ce(),n=ee(),[m,c]=x.useState(null),[q,f]=x.useState(null),[G,S]=x.useState(null),[N,E]=x.useState(!1),[u,w]=x.useState(null),L=x.useRef(0),T=t.reduce((e,i)=>e+i.priceCredits,0),H=u?u.liveTotalCredits:T,V=new Set(t.map(e=>e.id)),M=((v==null?void 0:v.items)??[]).filter(e=>!V.has(e.id)).slice(0,6),J=new Map(u==null?void 0:u.buyable.map(e=>[e.item.id,e])),X=e=>e.tradeId?me(e.tradeId):pe(e.contractAddress,e.itemId??"");function U(e){e(),w(null),S(null),f(null)}async function W(e){if(!a||e.length===0)return;const i=e.map(l=>({...l.item,priceCredits:l.priceCredits})),y=[];let k="authorize",$=!1;try{c("Preparing your order…");const l=[];for(const o of e){const{credit:b,maxCreditedValue:_}=await oe(a.identity,o.usdCents,o.item.tradeId);y.push(b.id),l.push({trade:o.trade,credits:[b],maxCreditedValue:_})}c("Confirming your purchase…"),k="submit";let h=[];if(_e())try{h=await ye({purchases:l,buyer:a.address,signer:a.signer});const b=(await Promise.allSettled(h.map(_=>ge(_)))).flatMap(_=>_.status==="rejected"?[_.reason]:[]);if(b.length&&!b.some(_=>_ instanceof be))throw b[0];$=!0}catch(o){if(!(o instanceof xe))throw o;h=await O({purchases:l,buyer:a.address,signer:a.signer})}else h=await O({purchases:l,buyer:a.address,signer:a.signer});e.forEach(o=>r(o.item.id)),w(null),c("Purchased! 🎉"),F("Shop Completed Purchase",{...de(i),payment_type:"credits",no_crypto_step:$,transaction_hash:h[0]??null}),C.invalidateQueries({queryKey:["usd-balance"]}),n("/success",{state:{items:i,txHash:h[0]}})}catch(l){if(D(l)||z(l,{flow:"cart_checkout",step:k,cart_size:e.length}),F(D(l)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:k,error_code:ue(l),value_usd:B(i.reduce((h,o)=>h+o.priceCredits,0)),cart_size:e.length}),y.length){try{await he(a.identity,y)}catch(h){z(h,{flow:"cart_checkout",step:"release"})}C.invalidateQueries({queryKey:["usd-balance"]})}f(Q(l)),c(null)}}async function Y(){if(!a){f("Sign in to check out.");return}f(null),S(null),E(!0),F("Shop Started Checkout",{cart_size:t.length,cart_value_credits:T,cart_value_usd:B(T),has_sufficient_credits:((p==null?void 0:p.credits)??0)>=T});try{c("Reviewing your cart…");const e=await ve(t,a.address,X),i=[...e.unavailable,...e.own];if(i.length&&(i.forEach(y=>r(y.id)),S(Ne(e))),e.buyable.length===0){f("None of these items are available to buy right now."),w(null),c(null);return}if(e.orderChanged){w(e),L.current=Date.now(),c(null);return}await W(e.buyable)}catch(e){z(e,{flow:"cart_checkout",step:"review",cart_size:t.length}),f(Q(e)),c(null)}finally{E(!1)}}async function Z(){if(u){if(!a){f("Sign in to check out.");return}if(Date.now()-L.current>Ce){w(null),S(null),await Y();return}f(null),E(!0);try{await W(u.buyable)}finally{E(!1)}}}return t.length===0?s.jsxs("div",{className:"cart cart--empty",children:[s.jsx("span",{className:"ico ico-cart cart-empty__ico","aria-hidden":!0}),s.jsx("p",{className:"cart-empty__title",children:R("cart.empty.title")}),s.jsx("p",{className:"muted",children:R("cart.empty.body")}),s.jsx(A,{className:"btn btn--purple",to:"/assets",children:R("cart.empty.cta")})]}):s.jsxs("div",{className:"cart",children:[s.jsxs("h1",{children:["Cart (",t.length,")"]}),s.jsxs("div",{className:"cart__body",children:[s.jsxs("div",{className:"cart__main",children:[s.jsx("div",{className:"cart__list",children:t.map(e=>{const i=J.get(e.id),y=i?i.priceCredits:e.priceCredits,k=!!i&&i.priceCredits!==e.priceCredits;return s.jsxs("div",{className:"cart__row",children:[s.jsx("div",{className:"cart__thumb",children:e.thumbnail?s.jsx("img",{src:e.thumbnail,alt:e.name}):null}),s.jsxs("div",{className:"cart__info",children:[s.jsx("div",{className:"cart__name",children:e.name}),e.creator?s.jsx(ie,{address:e.creator,className:"cart__creator",linkToProfile:!0}):null]}),s.jsxs("div",{className:"cart__price",children:[s.jsx(I,{className:"ccy-mark"})," ",y,k?s.jsx("span",{className:"muted",style:{marginLeft:6,textDecoration:"line-through"},children:e.priceCredits}):null]}),s.jsx("button",{className:"cart__remove",onClick:()=>U(()=>r(e.id)),disabled:N,"aria-label":`Remove ${e.name}`,title:"Remove",children:s.jsx("span",{className:"ico ico-trash","aria-hidden":!0})})]},e.id)})}),s.jsxs("div",{className:"cart__utils",children:[s.jsx("button",{className:"link",onClick:()=>U(d),disabled:N,children:"Clear cart"}),null]})]}),s.jsxs("aside",{className:"cart__summary",children:[s.jsx("h2",{className:"cart__summary-title",children:"Order summary"}),s.jsxs("div",{className:"cart__total",children:[s.jsxs("div",{className:"cart__total-line",children:[s.jsx("span",{children:"Total"}),s.jsxs("strong",{children:[s.jsx(I,{className:"ccy-mark"})," ",H]})]}),a?s.jsxs("div",{className:"muted cart__balance",children:["Your balance: ",s.jsx(I,{className:"ccy-mark"})," ",(p==null?void 0:p.credits)??0]}):null]}),s.jsxs("div",{className:"cart__actions",children:[s.jsx("button",{className:"btn btn--purple cart__checkout",onClick:u?Z:Y,disabled:N,children:N?"Working…":u?"Confirm purchase":"Checkout"}),s.jsxs(A,{className:"btn btn--ghost",to:"/credits",children:["Get ",K.name]}),j?s.jsx("button",{className:"btn btn--ghost",onClick:()=>g(!0),disabled:N,children:"Try on outfit"}):null]}),u?s.jsx("p",{className:"muted cart__msg",children:"Prices or availability changed since you added these — review the updated total and confirm to buy."}):null,G?s.jsx("p",{className:"muted cart__msg",children:G}):null,m?s.jsx("p",{className:"muted cart__msg",children:m}):null,q?s.jsx("p",{className:"error cart__msg",children:q}):null]})]}),M.length>0?s.jsxs("section",{className:"row cart-upsell",children:[s.jsx("div",{className:"row__head",children:s.jsx("h2",{className:"row__title",children:"You might also like"})}),s.jsx("div",{className:"row__track",children:M.map(e=>s.jsx(le,{item:e},e.id))})]}):null]})}export{Re as Cart};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as E,r as p,j as e,L as A}from"./react-Vu6nbGi5.js";import{j as Q,D as L,k as S,d as v,a as R,y as F,c as K,s as P}from"./index-CMGTUvxy.js";import{i as W,R as Y,f as G}from"./import-DZ2KCb9V.js";import{s as O}from"./wallet-kind-BR9EEO7E.js";import"./ethers-JeCAM1sd.js";import"./buy-CsLUNZO_.js";import"./index-D8ylAHlw.js";import"./mana-rate-BySaIkbs.js";function B({queue:l,session:I,onClose:g,onDone:h}){const x=E(),c=O(I.providerType),[d,j]=p.useState(()=>l.map(()=>"pending")),[b,C]=p.useState("running"),w=p.useRef(!1);p.useEffect(()=>{if(w.current)return;w.current=!0;let t=!1;return(async()=>{for(let s=0;s<l.length;s++){if(t)return;j(r=>r.map((m,o)=>o===s?"active":m));try{await W(l[s].item,l[s].priceCredits,I),Q("Shop Migrated Listing",{item_id:l[s].item.itemId??l[s].item.oldTradeId??null,contract_address:l[s].item.contractAddress,new_price_credits:l[s].priceCredits,new_price_usd:l[s].priceCredits/10}),t||j(r=>r.map((m,o)=>o===s?"done":m))}catch(r){if(r instanceof Y)L(r,{flow:"import_listing",step:"relist",itemId:l[s].item.itemId??l[s].item.oldTradeId}),t||j(m=>m.map((o,y)=>y===s?"unlisted":o));else{const m=r,o=m.code===4001||/reject|denied|cancel/i.test(m.message??"");o||L(r,{flow:"import_listing",itemId:l[s].item.itemId??l[s].item.oldTradeId}),t||j(y=>y.map((T,a)=>a===s?o?"skipped":"failed":T))}}}t||C("finished")})(),()=>{t=!0}},[]);const u=d.filter(t=>t==="done").length,N=d.findIndex(t=>t==="active"),_=Math.round(d.filter(t=>t!=="pending"&&t!=="active").length/l.length*100);function f(){h(),g()}if(b==="finished"){const t=d.filter(r=>r==="skipped"||r==="failed").length,s=d.filter(r=>r==="unlisted").length;return e.jsx("div",{className:"modal-backdrop",role:"presentation",children:e.jsxs("div",{className:"modal modal--success",role:"dialog","aria-modal":"true",children:[e.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),e.jsx("h2",{className:"modal__title",children:u>0?"You're in the Shop! 🎉":"Nothing listed"}),e.jsxs("p",{className:"muted",style:{margin:0},children:[u>0?`${u} ${u===1?"item is":"items are"} now for sale with ${S.name}.`:"No items were listed.",t>0?` ${t} skipped — you can try those again anytime.`:"",s>0?` ${s} ${s===1?"item was":"items were"} taken off the old marketplace but couldn't be re-listed — re-list ${s===1?"it":"them"} from My Assets.`:""]}),e.jsxs("div",{className:"modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:f,children:"Done"}),s>0?e.jsx("button",{className:"btn btn--purple",onClick:()=>{h(),g(),x("/my-assets")},children:"Go to My Assets"}):u>0?e.jsx("button",{className:"btn btn--purple",onClick:()=>{h(),g(),x("/assets")},children:"View in Shop"}):null]})]})})}return e.jsx("div",{className:"modal-backdrop",role:"presentation",children:e.jsxs("div",{className:"modal migrate",role:"dialog","aria-modal":"true","aria-live":"polite",children:[e.jsx("h2",{className:"modal__title",children:"Listing your items"}),e.jsxs("p",{className:"muted small",style:{margin:"0 0 4px"},children:[c?"We take down each old listing and re-list it for credits — confirm each step.":"Moving your items to the Shop."," ",N>=0?`${N+1} of ${l.length}`:""]}),e.jsx("div",{className:"migrate__progress",children:e.jsx("div",{className:"migrate__bar",style:{width:`${_}%`}})}),e.jsx("ul",{className:"migrate__list",children:l.map((t,s)=>e.jsxs("li",{className:`migrate__row migrate__row--${d[s]}`,children:[e.jsx("span",{className:"migrate__thumb",children:t.item.thumbnail?e.jsx("img",{src:t.item.thumbnail,alt:""}):null}),e.jsx("span",{className:"migrate__name",title:t.item.name,children:t.item.name||"Item"}),e.jsxs("span",{className:"migrate__price",children:[e.jsx(v,{className:"ccy-mark"})," ",t.priceCredits.toLocaleString()]}),e.jsx("span",{className:"migrate__status",children:d[s]==="active"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"spinner migrate__spin","aria-hidden":!0})," ",c?"Confirm…":"Adding…"]}):d[s]==="done"?e.jsx("span",{className:"migrate__tick",children:"✓"}):d[s]==="skipped"?e.jsx("span",{className:"migrate__skip",children:"Skipped"}):d[s]==="failed"?e.jsx("span",{className:"migrate__skip",children:"Failed"}):d[s]==="unlisted"?e.jsx("span",{className:"migrate__skip",title:"Removed from the old marketplace but not re-listed — re-list it from My Assets.",children:"Not listed"}):e.jsx("span",{className:"migrate__wait",children:"Waiting"})})]},t.item.oldTradeId))}),e.jsx("p",{className:"muted small migrate__hint",children:c?"A couple of quick confirmations pop up per item (take down + re-list). Keep this open.":"This only takes a moment — keep this open."})]})})}const D=[{key:"creations",title:"Your creations",sub:"Items you made. Put them on sale in the Shop."},{key:"owned",title:"Items you own",sub:"Things you've bought elsewhere — resell them in the Shop."}];function ee(){const{session:l,signIn:I,restore:g}=R(),h=F(),x=l==null?void 0:l.address;p.useEffect(()=>{g()},[g]);const{data:c,isLoading:d}=K({queryKey:["importable",x],queryFn:()=>G(x),enabled:!!x}),[j,b]=p.useState({}),[C,w]=p.useState(new Set),[u,N]=p.useState(null),_=p.useMemo(()=>[...(c==null?void 0:c.creations)??[],...(c==null?void 0:c.owned)??[]],[c]);p.useEffect(()=>{_.length&&b(a=>{const n={...a};for(const i of _)n[i.oldTradeId]==null&&(n[i.oldTradeId]=i.suggestedCredits);return n})},[_]);const f=a=>!C.has(a),t=a=>j[a.oldTradeId]??a.suggestedCredits,s=_.filter(a=>f(a.oldTradeId)),r=s.reduce((a,n)=>a+t(n),0);function m(a,n){const i=n.replace(/[^\d]/g,"");b(k=>({...k,[a]:i===""?0:parseInt(i,10)}))}function o(a){w(n=>{const i=new Set(n);return i.has(a)?i.delete(a):i.add(a),i})}function y(a){return a.map(n=>({item:n,priceCredits:Math.max(1,t(n))}))}function T(){h.invalidateQueries({queryKey:["importable"]}),h.invalidateQueries({queryKey:["listings"]}),h.invalidateQueries({queryKey:["my-assets"]}),h.invalidateQueries({queryKey:["collection-sale-state"]}),P.success("Your Shop is updated.")}return l?!d&&_.length===0?e.jsxs("div",{className:"imp-empty",children:[e.jsx("span",{className:"imp-empty__ico","aria-hidden":!0,children:"✨"}),e.jsx("h1",{className:"imp-empty__title",children:"You're all caught up"}),e.jsx("p",{className:"muted",children:"Everything you sell is already in the Shop — nothing to import."}),e.jsx(A,{className:"btn btn--purple",to:"/my-assets",children:"Go to My Assets"})]}):e.jsxs("div",{className:"imp",children:[e.jsxs("header",{className:"imp__head",children:[e.jsx("span",{className:"imp__eyebrow",children:"Import to the Shop"}),e.jsxs("h1",{className:"imp__title",children:["Bring your listings ",e.jsx("span",{className:"imp__grad",children:"into the Shop"})]}),e.jsxs("p",{className:"imp__lede",children:["These items are already for sale elsewhere. We suggested a price in ",S.name," for each — matched to today's rate and rounded up. Adjust anything, then list them."]})]}),e.jsxs("div",{className:"imp__ratebar",children:[e.jsx(v,{className:"ccy-mark imp__diamond"})," 1 ",S.nameSingular," = $0.10 · prices rounded up"]}),d?e.jsx("div",{className:"imp__list",children:Array.from({length:4}).map((a,n)=>e.jsx("div",{className:"imp-row imp-row--skeleton"},n))}):D.map(a=>{const n=(c==null?void 0:c[a.key])??[];return n.length===0?null:e.jsxs("section",{className:"imp__section",children:[e.jsxs("div",{className:"imp__section-head",children:[e.jsx("h2",{className:"imp__section-title",children:a.title}),e.jsx("span",{className:"imp__section-sub",children:a.sub})]}),e.jsx("div",{className:"imp__list",children:n.map(i=>{const k=t(i),M=k!==i.suggestedCredits;return e.jsxs("article",{className:`imp-row${f(i.oldTradeId)?"":" is-off"}`,children:[e.jsx("input",{type:"checkbox",className:"imp-check",checked:f(i.oldTradeId),onChange:()=>o(i.oldTradeId),"aria-label":`Include ${i.name}`}),e.jsx("div",{className:"imp-thumb",children:i.thumbnail?e.jsx("img",{src:i.thumbnail,alt:""}):null}),e.jsxs("div",{className:"imp-meta",children:[e.jsx("div",{className:"imp-name",title:i.name,children:i.name||"Item"}),e.jsx("span",{className:"imp-chip",children:i.rarity})]}),e.jsxs("div",{className:"imp-price",children:[e.jsxs("div",{className:"imp-price__field",children:[e.jsx(v,{className:"ccy-mark imp-price__diamond"}),e.jsx("input",{className:"imp-price__input",inputMode:"numeric",value:k.toLocaleString(),onChange:$=>m(i.oldTradeId,$.target.value),"aria-label":`Price in ${S.name} for ${i.name}`})]}),e.jsxs("div",{className:"imp-price__sub",children:[e.jsxs("span",{children:["$",(k*.1).toFixed(2)]}),M?e.jsxs("button",{className:"imp-price__reset",onClick:()=>b($=>({...$,[i.oldTradeId]:i.suggestedCredits})),children:["Reset to ",e.jsx(v,{className:"ccy-mark"}),i.suggestedCredits.toLocaleString()]}):null]})]}),e.jsx("div",{className:"imp-action",children:e.jsx("button",{className:"btn btn--sm imp-row__list",disabled:!f(i.oldTradeId),onClick:()=>N(y([i])),children:"List"})})]},i.oldTradeId)})})]},a.key)}),e.jsx("div",{className:"imp-dock",children:e.jsxs("div",{className:"imp-dock__inner",children:[e.jsxs("div",{className:"imp-dock__summary",children:[e.jsxs("div",{className:"imp-dock__total",children:[e.jsx(v,{className:"ccy-mark imp__diamond"})," ",r.toLocaleString()]}),e.jsxs("div",{className:"imp-dock__sub",children:[s.length," item",s.length===1?"":"s"," selected · $",(r*.1).toFixed(2)]})]}),e.jsx("span",{className:"imp-dock__spacer"}),e.jsxs("button",{className:"btn btn--purple imp-dock__cta",disabled:s.length===0,onClick:()=>N(y(s)),children:["List all (",s.length,")"]})]})}),u&&l?e.jsx(B,{queue:u,session:l,onClose:()=>N(null),onDone:T}):null]}):e.jsxs("div",{className:"imp-empty",children:[e.jsx("span",{className:"imp-empty__ico","aria-hidden":!0,children:"📦"}),e.jsx("h1",{className:"imp-empty__title",children:"Import your listings"}),e.jsx("p",{className:"muted",children:"Sign in to bring the items you already sell into the Shop."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>I(),children:"Sign in"})]})}export{ee as ImportListings};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Htk8eGLE.js","assets/react-Vu6nbGi5.js","assets/index-CMGTUvxy.js","assets/ethers-JeCAM1sd.js","assets/index-CVXtX0PM.css","assets/generateUtilityClasses-BGHsAVVg.js","assets/Button-D3AtkSL-.js","assets/SvgIcon-CjKRGMBC.js","assets/CircularProgress-Dwf5ihwF.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{j as e,r as c,u as fe,d as ve,a as xe,L as je}from"./react-Vu6nbGi5.js";import{_ as Ne,a as Q,K as be,N as ye,M as ge,a1 as Ie,W as we,i as A,h as Z,a2 as Ce,o as T,d as L,s as Ae,u as K,x as ke,c as P,a3 as Se,j as O,a4 as Ee,a5 as Le,q as Pe,C as Te,a6 as Y,a7 as Fe,g as Re,v as $e,w as Be,E as qe,F as Me,G as H,D as Ve,I as Oe,z as We,H as Ge,k as Ue,f as ze,a8 as De,a9 as Ke,J as Ye}from"./index-CMGTUvxy.js";import{h as J}from"./buy-CsLUNZO_.js";import{g as He,a as Je,w as Qe,S as Ze,G as Xe}from"./buy-gasless-7HSovA0-.js";import"./ethers-JeCAM1sd.js";import"./index-D8ylAHlw.js";const es=c.lazy(()=>Ne(()=>import("./index-Htk8eGLE.js").then(t=>t.i),__vite__mapDeps([0,1,2,3,4,5,6,7,8])).then(t=>({default:t.EmoteControls})));function ss(t){return e.jsx(c.Suspense,{fallback:null,children:e.jsx(es,{...t})})}function as({item:t}){const n=Q(I=>{var b;return(b=I.session)==null?void 0:b.address}),{data:r,isLoading:p}=be(n),g=n&&r?n:"default",m=t.category==="emote",[x,l]=c.useState("avatar"),h=!m&&x==="item",[s,i]=c.useState(!0);c.useEffect(()=>{i(!0)},[t.id,h]);const o=!!n&&!!r,f=o&&ye(t,ge(r)),N=Ie(t)[0],_=o&&!f&&!m;return e.jsxs(e.Fragment,{children:[p?null:e.jsx(we,{id:"shop-item-preview",contractAddress:t.contractAddress,tokenId:t.tokenId??void 0,itemId:t.tokenId?void 0:t.itemId??void 0,profile:h?void 0:f?g:"default",bodyShape:h||f?void 0:N,type:m?void 0:h?A.PreviewType.WEARABLE:A.PreviewType.AVATAR,emote:m||h?void 0:A.PreviewEmote.FASHION,disableBackground:!0,wheelZoom:m?1.5:void 0,wheelStart:m?100:void 0,dev:Z.chainId===80002,onLoad:()=>i(!1)},t.id),p||s?e.jsx("div",{className:"item-preview__loading","aria-busy":"true","aria-label":"Loading preview",children:e.jsx("span",{className:"item-preview__spinner","aria-hidden":!0})}):null,_&&!h?e.jsxs("p",{className:"item-preview__note",children:["Shown on a ",Ce(N)," body — this item isn’t made for your avatar’s shape."]}):null,m?e.jsx("div",{className:"item-preview__emote-controls",children:e.jsx(ss,{wearablePreviewId:"shop-item-preview",hideFrameInput:!0})}):e.jsxs("div",{className:"item-preview__toggle",role:"group","aria-label":"Preview mode",children:[e.jsx("button",{type:"button",className:x==="avatar"?"is-active":"","aria-pressed":x==="avatar",onClick:()=>l("avatar"),children:"On avatar"}),e.jsx("button",{type:"button",className:x==="item"?"is-active":"","aria-pressed":x==="item",onClick:()=>l("item"),children:"Item"})]})]})}function ts(t){return t==="male"?"♂":t==="female"?"♀":t==="unisex"?"⚥":""}function is({title:t,items:n,activeId:r,onSelect:p,onViewAll:g}){const m=c.useRef(null),x=T(i=>i.add),l=T(i=>i.items.map(o=>o.id));if(n.length===0)return null;function h(i){x(i,"carousel"),Ae.success(`“${i.name}” added to your cart.`)}function s(i){const o=m.current;o&&o.scrollBy({left:i*Math.round(o.clientWidth*.8),behavior:"smooth"})}return e.jsxs("section",{className:"collection-carousel",children:[e.jsxs("div",{className:"collection-carousel__head",children:[e.jsx("h2",{className:"collection-carousel__title",children:t}),e.jsxs("div",{className:"collection-carousel__head-right",children:[g?e.jsx("button",{className:"collection-carousel__viewall",onClick:g,children:"View all"}):null,e.jsxs("div",{className:"collection-carousel__arrows",children:[e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>s(-1),"aria-label":"Scroll left",children:"‹"}),e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>s(1),"aria-label":"Scroll right",children:"›"})]})]})]}),e.jsx("div",{className:"collection-carousel__track",ref:m,children:n.map(i=>{const o=ts(i.gender),f=i.id===r,N=i.priceCredits>0,_=l.includes(i.id);return e.jsxs("article",{className:`collection-carousel__card${f?" is-active":""}`,children:[e.jsx("button",{className:"collection-carousel__select","aria-label":`View ${i.name}`,"aria-current":f||void 0,onClick:()=>p(i)}),e.jsxs("div",{className:"collection-carousel__media",children:[i.thumbnail?e.jsx("img",{className:"collection-carousel__img",src:i.thumbnail,alt:i.name,loading:"lazy"}):null,N?e.jsx("button",{className:"collection-carousel__add",disabled:_,"aria-label":_?"In cart":`Add ${i.name} to cart`,title:_?"In cart":"Add to cart",onClick:I=>{I.stopPropagation(),_||h(i)},children:e.jsx("span",{className:`ico ${_?"ico-cart-solid":"ico-cart"}`,"aria-hidden":!0})}):null]}),e.jsxs("div",{className:"collection-carousel__body",children:[e.jsx("div",{className:"collection-carousel__name",title:i.name,children:i.name}),e.jsxs("div",{className:"collection-carousel__meta",children:[N?e.jsxs("span",{className:"collection-carousel__price",children:[e.jsx(L,{className:"collection-carousel__diamond"}),i.priceCredits]}):e.jsx("span",{className:"collection-carousel__price collection-carousel__na",children:"Not listed"}),e.jsxs("span",{className:"collection-carousel__chips",children:[e.jsx("span",{className:"chip chip--rarity",children:i.rarity}),o?e.jsx("span",{className:"chip chip--icon",children:o}):null]})]})]})]},i.id)})})]})}function rs(t){return Object.values(A.Rarity).includes(t)}function ns(t){return t==="male"?"Male":t==="female"?"Female":t==="unisex"?"Unisex":null}function cs(t){const n=t,r=(n.message??"").toLowerCase();return n.code===4001||r.includes("reject")||r.includes("denied")||r.includes("cancel")?"You cancelled the request.":r.includes("insufficient")?`You don't have enough ${Ue.name} — get more first.`:r.includes("no active listing")||r.includes("not for sale")?"This item is not for sale right now.":"Couldn't complete checkout — please try again."}function _s(){const{contractAddress:t,tokenId:n}=fe(),{state:r}=ve(),p=xe(),g=T(a=>a.add),m=T(a=>a.items),x=K(a=>a.toggle),{session:l}=Q(),{data:h}=ke(l),[s,i]=c.useState(()=>r!=null&&r.item?{...r.item,tradeId:r.tradeId??r.item.tradeId}:{id:`${t}-${n}`,name:"",creator:"",contractAddress:t??"",itemId:null,category:"wearable",rarity:"common",network:"MATIC",chainId:Z.chainId,thumbnail:"",priceCredits:0,gender:null,tokenId:n??void 0,tradeId:r==null?void 0:r.tradeId}),[o,f]=c.useState(!1),[N,_]=c.useState(null),[I,b]=c.useState(null),{data:w=[],isFetched:X}=P({queryKey:["collection-items",s.contractAddress],enabled:!!s.contractAddress,queryFn:()=>ze(s.contractAddress,{first:20}).then(a=>a.items)}),{data:F,isLoading:ee}=P({queryKey:["shop-item",s.contractAddress,n],enabled:!(r!=null&&r.item)&&!!s.contractAddress&&!!n,queryFn:()=>De(s.contractAddress,n)});c.useEffect(()=>{F&&i(a=>a.tradeId?a:{...F})},[F]);const[W,se]=c.useState(!1),{data:R=""}=P({queryKey:["item-desc",s.contractAddress,s.itemId],enabled:!!s.contractAddress&&!!s.itemId,staleTime:5*6e4,queryFn:()=>Ke(s.contractAddress,s.itemId)});c.useEffect(()=>{if(s.name||w.length===0)return;const a=n&&w.find(d=>d.tokenId===n||d.itemId===n)||w.find(d=>d.contractAddress===s.contractAddress);a&&i(d=>({...a,tradeId:d.tradeId??a.tradeId}))},[w]);const ae=c.useMemo(()=>{const a=new Set,d=[];for(const u of w){if(u.id===s.id||s.itemId&&u.itemId===s.itemId||s.tokenId&&u.tokenId===s.tokenId)continue;const E=`${u.contractAddress}-${u.itemId??u.tokenId??u.id}`;a.has(E)||(a.add(E),d.push(u))}return d},[w,s.id,s.itemId,s.tokenId]),{data:te,isLoading:k}=P({queryKey:["detail-trade",s.id,s.tradeId,s.contractAddress,s.itemId],enabled:!!s.contractAddress,queryFn:async()=>{if(s.tradeId)return s.tradeId;if(s.itemId){const a=await Ye(s.contractAddress,s.itemId);return(a==null?void 0:a.id)??null}return null}}),y=s.tradeId??te??void 0,j=!!y,ie=Se({priceCredits:s.priceCredits,compareAtCredits:s.compareAtCredits,saleEndsAt:s.saleEndsAt}),S=c.useMemo(()=>({...s,tradeId:y,id:y??s.id}),[s,y]),$=m.some(a=>a.id===S.id),B=K(a=>!!a.items[s.id]);c.useEffect(()=>{_(null),b(null)},[s.id]);const G=c.useRef(null);c.useEffect(()=>{!s.name||k||G.current===s.id||(G.current=s.id,O("Shop Viewed Item",{...Ee(s),for_sale:j}),Le(s))},[s.id,s.name,k,j]);function re(a){i(a);const d=a.tokenId??a.itemId;a.contractAddress&&d&&p(`/item/${a.contractAddress}/${d}`,{replace:!0,state:{item:a}}),typeof window<"u"&&window.scrollTo({top:0,behavior:"smooth"})}function ne(){!j||$||z||g(S,"item_detail")}async function ce(){var E;if(!j||!y)return;if(!l){b("Sign in to check out.");return}b(null),f(!0);let a,d="authorize",u=!1;try{_(`Buying ${s.name||"item"}…`);const v=await Re(y);if(!v)throw new Error("not for sale");if($e(v,l.address)){b("You can't buy your own listing."),_(null),f(!1);return}const q=(E=v.received)==null?void 0:E[0],_e=Be(q==null?void 0:q.amount),{credit:D,maxCreditedValue:pe}=await qe(l.identity,_e,y);a=D.id,d="submit";const M={trade:v,buyer:l.address,signer:l.signer,credits:[D],maxCreditedValue:pe};let C;if(He())try{C=await Je(M),await Qe(C),u=!0}catch(V){if(V instanceof Ze)u=!0;else if(V instanceof Xe)C=await J(M);else throw V}else C=await J(M);a=void 0,O("Shop Completed Purchase",{...Me([S]),payment_type:"credits",no_crypto_step:u,transaction_hash:C??null}),p("/success",{state:{items:[S],txHash:C}})}catch(v){H(v)||Ve(v,{flow:"buy",step:d,gasless:u}),a&&Oe(l.identity,[a]).catch(()=>{}),O(H(v)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:d,error_code:Ge(v),value_usd:We(S.priceCredits)}),b(cs(v)),_(null)}finally{f(!1)}}const le=rs(s.rarity)?s.rarity:A.Rarity.COMMON,[de]=A.Rarity.getGradient(le),U=ns(s.gender),oe=j&&ie,ue="More from this collection",z=Pe(s,l==null?void 0:l.address),me=j?$?"In cart":k?"Checking…":"Add to cart":"Not for sale",he=ee||!!s.contractAddress&&!X;return!s.name&&!he?e.jsxs("div",{className:"item-detail item-detail--notfound",children:[e.jsx("span",{className:"ico ico-cart item-detail__notfound-ico","aria-hidden":!0}),e.jsx("h1",{className:"item-detail__notfound-title",children:"This item isn’t available"}),e.jsx("p",{className:"muted",children:"It may have been delisted or moved. Browse Collectibles for something else."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>p("/assets"),children:"Browse Collectibles"})]}):e.jsxs("div",{className:"item-detail",children:[e.jsxs("nav",{className:"item-detail__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"item-detail__crumb-link",onClick:()=>p("/assets"),children:"Collectibles"}),e.jsx("span",{className:"item-detail__crumb-sep",children:"/"}),e.jsx("span",{className:"item-detail__crumb-current",children:s.name||"Item"})]}),e.jsxs("div",{className:"item-detail__main",children:[e.jsx("div",{className:"item-detail__preview",style:{background:`radial-gradient(circle at 50% 38%, ${de}33 0%, var(--media) 68%)`},children:s.name?e.jsx(as,{item:s}):e.jsx("div",{className:"item-preview__loading","aria-busy":"true","aria-label":"Loading preview",children:e.jsx("span",{className:"item-preview__spinner","aria-hidden":!0})})}),e.jsxs("div",{className:"item-detail__info",children:[e.jsxs("div",{className:"item-detail__info-head",children:[e.jsx("h1",{className:"item-detail__title",children:s.name||"Loading…"}),e.jsx("button",{className:`item-detail__fav${B?" is-on":""}`,onClick:()=>x(s),"aria-pressed":B,"aria-label":B?"Remove from favorites":"Add to favorites",children:e.jsx("span",{className:"ico ico-heart","aria-hidden":!0})})]}),s.creator?e.jsx(Te,{address:s.creator,className:"item-detail__creator",linkToProfile:!0}):null,e.jsxs("div",{className:"item-detail__chips",children:[e.jsx("span",{className:"chip chip--rarity",children:s.rarity}),e.jsx("span",{className:"chip",children:s.category==="emote"?"Emote":"Wearable"}),U?e.jsx("span",{className:"chip",children:U}):null]}),R?e.jsxs("div",{className:"item-detail__description",children:[e.jsx("p",{className:`item-detail__desc-text${W?" is-expanded":""}`,children:R}),R.length>140?e.jsx("button",{className:"link item-detail__desc-toggle",onClick:()=>se(a=>!a),children:W?"Show less":"Read more"}):null]}):null,e.jsxs("div",{className:"item-detail__card",children:[e.jsxs("div",{className:"item-detail__price-block",children:[e.jsx("div",{className:"item-detail__price-label",children:"Price"}),j?oe?e.jsxs("div",{className:"item-detail__price item-detail__price--sale",children:[e.jsxs("span",{className:"item-detail__price",children:[e.jsx(L,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:s.priceCredits})]}),e.jsxs("span",{className:"item-detail__price-was",children:[e.jsx(L,{className:"item-detail__diamond item-detail__diamond--was"}),s.compareAtCredits]}),Y(s.compareAtCredits,s.priceCredits)>0?e.jsxs("span",{className:"item-detail__sale-badge",children:["SALE -",Y(s.compareAtCredits,s.priceCredits),"%"]}):null,e.jsx(Fe,{endsAt:s.saleEndsAt,className:"item-detail__countdown"})]}):e.jsxs("div",{className:"item-detail__price",children:[e.jsx(L,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:s.priceCredits})]}):e.jsx("div",{className:"item-detail__price item-detail__price--none",children:"Not for sale"}),l?e.jsxs("div",{className:"item-detail__balance muted",children:["Your balance: ",e.jsx(L,{className:"ccy-mark"})," ",(h==null?void 0:h.credits)??0]}):null]}),e.jsx("div",{className:"item-detail__ctas",children:z?e.jsxs("p",{className:"item-detail__own-note muted",children:["This is your item — manage it in ",e.jsx(je,{to:"/my-assets",children:"My Assets"}),"."]}):e.jsxs(e.Fragment,{children:[j?e.jsx("button",{className:"btn btn--purple item-detail__cta",onClick:ce,disabled:o||k,children:o?"Buying…":"Buy now"}):null,e.jsxs("button",{className:"item-detail__addcart",onClick:ne,disabled:!j||$||k||o,children:[e.jsx("span",{className:"ico ico-cart-solid item-detail__addcart-ico","aria-hidden":!0}),me]})]})}),N?e.jsx("p",{className:"muted item-detail__status",children:N}):null,I?e.jsx("p",{className:"error item-detail__status",children:I}):null]})]})]}),e.jsx(is,{title:ue,items:ae,activeId:s.id,onSelect:re,onViewAll:s.contractAddress?()=>p(`/collection/${s.contractAddress}`):void 0})]})}export{_s as ItemDetail,_s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as ee,r as u,j as e,b as ae}from"./react-Vu6nbGi5.js";import{c as te,h as G,a as re,x as se,y as z,g as ne,v as ie,E as oe,I,j as M,H as W,G as $,d as T,Q as H,k as U,A as ce,R as de}from"./index-CMGTUvxy.js";import{r as le,a as q,m as ue}from"./mana-rate-BySaIkbs.js";import{S as Q,F as me,a as he}from"./FilterBar-CdU8B66A.js";import{S as Y}from"./SkeletonCards-BysJEVmg.js";import{L as ye}from"./LoadMore-BOCtgPLI.js";import{h as K}from"./buy-CsLUNZO_.js";import{g as pe,a as fe,w as ke,S as be,G as _e}from"./buy-gasless-7HSovA0-.js";import{u as ge}from"./useInfiniteGrid-CcvAkiyB.js";import"./ethers-JeCAM1sd.js";import"./index-D8ylAHlw.js";function xe(){return te({queryKey:["mana-rate",G.chainId],queryFn:()=>le(G.chainId),staleTime:6e4,refetchInterval:6e4,retry:1})}function O(a){const m=a,d=(m.message??"").toLowerCase();return m.code===4001||d.includes("reject")||d.includes("denied")||d.includes("cancel")?"You cancelled the request.":d.includes("insufficient")?`Not enough ${U.name} — get more first.`:d.includes("not found")||d.includes("no active listing")||d.includes("404")?"This item was just sold or removed. Refreshing the market…":d.includes("your own listing")?"You can't buy your own listing.":"Couldn't complete checkout — please try again."}function Ce(a){return{id:a.tradeId,tradeId:a.tradeId,name:a.name,creator:a.creator,contractAddress:a.contractAddress,itemId:a.itemId,category:a.category,wearableCategory:a.wearableCategory??void 0,rarity:a.rarity,network:a.network,chainId:a.chainId,thumbnail:a.thumbnail,priceCredits:0,gender:null}}function ve({listing:a,rate:m,onClose:d,onSold:p}){const{session:n}=re(),{data:o}=se(n),f=z(),k=ee(),[v,b]=u.useState("confirm"),[j,w]=u.useState("Locking today’s price…"),[x,C]=u.useState(null),[s,E]=u.useState(null),l=u.useRef(null),F=Math.ceil(q(a.manaWei,m)/10);u.useEffect(()=>{let h=!1;if(!n){b("error"),C("Sign in to check out.");return}return(async()=>{try{const r=await ne(a.tradeId);if(!r)throw new Error("not found");if(ie(r,n.address))throw new Error("You can't buy your own listing.");const c=q(a.manaWei,m);if(!Number.isFinite(c)||c<=0)throw new Error("price unavailable");const{credit:y,maxCreditedValue:R,usdCents:A}=await oe(n.identity,c,a.tradeId);if(h){I(n.identity,[y.id]).catch(()=>{});return}l.current=y.id,E({trade:r,credit:y,maxCreditedValue:R,usdCents:A,credits:Math.ceil(A/10)}),w("")}catch(r){if(h)return;console.error("[market] authorize failed",r),M($(r)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:W(r),value_usd:Math.round(q(a.manaWei,m))/100}),b("error"),C(O(r))}})(),()=>{h=!0,l.current&&n&&(I(n.identity,[l.current]).catch(()=>{}),l.current=null)}},[]);const _=!!s&&((o==null?void 0:o.credits)??0)<s.credits;async function L(){if(!n||!s)return;if(_){I(n.identity,[s.credit.id]).catch(()=>{}),l.current=null,k("/credits");return}b("working"),C(null);let h=!1;try{w("Confirming your purchase…");const r={trade:s.trade,buyer:n.address,signer:n.signer,credits:[s.credit],maxCreditedValue:s.maxCreditedValue};let c;if(pe())try{c=await fe(r),await ke(c),h=!0}catch(y){if(y instanceof be)h=!0;else if(y instanceof _e)c=await K(r);else throw y}else c=await K(r);l.current=null,M("Shop Completed Purchase",{items:[{item_id:a.itemId??null,contract_address:a.contractAddress,token_id:null,price_usd:s.usdCents/100}],value_credits:s.credits,value_usd:s.usdCents/100,purchase_type:"item",is_primary:!0,payment_type:"credits",no_crypto_step:h,transaction_hash:c??null}),f.invalidateQueries({queryKey:["usd-balance"]}),k("/success",{state:{items:[Ce(a)],txHash:c}})}catch(r){console.error("[market] buy now failed",r),I(n.identity,[s.credit.id]).catch(()=>{}),l.current=null,M($(r)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:W(r),value_usd:s.usdCents/100}),f.invalidateQueries({queryKey:["usd-balance"]});const c=O(r);C(c),b("error"),/sold or removed/i.test(c)&&p()}}function P(){n&&s&&I(n.identity,[s.credit.id]).catch(()=>{}),l.current=null,d()}const g=v==="working";return e.jsxs("div",{className:"mkt-modal",role:"dialog","aria-modal":"true","aria-label":`Buy ${a.name}`,children:[e.jsx("div",{className:"mkt-modal__scrim",onClick:g?void 0:P,"aria-hidden":!0}),e.jsxs("div",{className:"mkt-modal__card",children:[e.jsxs("div",{className:"mkt-modal__head",children:[e.jsx("div",{className:"mkt-modal__thumb",children:a.thumbnail?e.jsx("img",{src:a.thumbnail,alt:""}):null}),e.jsxs("div",{children:[e.jsx("div",{className:"mkt-modal__name",title:a.name,children:a.name||"Item"}),e.jsx("span",{className:"chip chip--rarity",children:a.rarity})]})]}),e.jsx("div",{className:"mkt-modal__price",children:s?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mkt-modal__price-label",children:"Final price"}),e.jsxs("div",{className:"mkt-modal__price-value",children:[e.jsx(T,{className:"mkt-modal__diamond"}),H(s.credits)]}),e.jsxs("div",{className:"mkt-modal__price-sub muted",children:["Locked for this purchase · $",(s.usdCents/100).toFixed(2)]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mkt-modal__price-label",children:"Today’s price"}),e.jsxs("div",{className:"mkt-modal__price-value mkt-modal__price-value--approx",children:[e.jsx("span",{className:"mkt-modal__approx","aria-hidden":!0,children:"≈"}),e.jsx(T,{className:"mkt-modal__diamond"}),H(F)]}),e.jsx("div",{className:"mkt-modal__price-sub muted",children:j||"Locking today’s price…"})]})}),n?e.jsxs("div",{className:"mkt-modal__balance muted",children:["Your balance: ",e.jsx(T,{className:"ccy-mark"})," ",(o==null?void 0:o.credits)??0]}):null,_?e.jsxs("p",{className:"muted mkt-modal__note",children:["You’ll need a few more ",U.name," to buy this."]}):null,j&&v==="working"?e.jsx("p",{className:"muted mkt-modal__note",children:j}):null,x?e.jsx("p",{className:"error mkt-modal__note",children:x}):null,e.jsxs("div",{className:"mkt-modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:P,disabled:g,children:"Cancel"}),e.jsx("button",{className:"btn btn--purple",onClick:L,disabled:g||!s,children:g?"Buying…":_?`Get ${U.name}`:"Confirm purchase"})]})]})]})}const je=48,B=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]}],we={Head:["head","hat","hair","facial_hair","eyes","eyebrows","mouth","mask","helmet","tiara","top_head"],"Upper Body":["upper_body"],Handwear:["hands_wear"],"Lower Body":["lower_body"],Feet:["feet"],Accessories:["earring","eyewear"],Skins:["skin"]};function Ne(a){return{id:a.tradeId,tradeId:a.tradeId,name:a.name,creator:a.creator,contractAddress:a.contractAddress,itemId:a.itemId,category:a.category,wearableCategory:a.wearableCategory??void 0,rarity:a.rarity,network:a.network,chainId:a.chainId,thumbnail:a.thumbnail,priceCredits:0,gender:null}}function Be(){const[a]=ae(),m=(a.get("q")??"").trim().toLowerCase(),d=z(),[p,n]=u.useState("wearable"),[o,f]=u.useState(null),[k,v]=u.useState([]),[b,j]=u.useState("newest"),[w,x]=u.useState(null),C=o?we[o]:void 0,s=(Q.find(t=>t.key===b)??Q[0]).server,E={category:p,rarities:k.length?k:void 0,wearableCategories:C,search:m||void 0,sortBy:s},{items:l,total:F,isLoading:_,error:L,hasNextPage:P,isFetchingNextPage:g,fetchNextPage:h}=ge(["legacy-listings",E],t=>de({...E,first:je,skip:t})),{data:r,isError:c}=xe(),y=t=>r?ue(t.manaWei,r):null;function R(t){n(t),f(null)}function A(t){v(i=>i.includes(t)?i.filter(S=>S!==t):[...i,t])}function V(){n("wearable"),f(null),v([])}function Z(t){const i=l.find(S=>S.tradeId===t.tradeId);i&&x(i)}function D(){d.invalidateQueries({queryKey:["legacy-listings"]})}const N=B.find(t=>t.key===p)??B[0],J=o?`${N.label} · ${o}`:N.label,X=p!=="wearable"||!!o||k.length>0;return e.jsxs("div",{className:"browse",children:[e.jsxs("div",{className:"market-banner",children:[e.jsx("span",{className:"market-banner__ico","aria-hidden":!0,children:"✨"}),e.jsx("span",{children:"Prices here follow the live market and may shift slightly at checkout."})]}),c?e.jsx("p",{className:"market-banner market-banner--warn",children:"The market price is temporarily unavailable — buying is paused for a moment. Please try again shortly."}):null,e.jsx(me,{rarities:k,onToggleRarity:A,sort:b,onSort:j,total:F,loading:_,query:m,anyActive:X,onClear:V,renderLeading:t=>e.jsx(he,{panelKey:"section",label:J,active:!!o||p!=="wearable",panel:t,children:e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:B.map(i=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${p===i.key?" is-active":""}`,onClick:()=>R(i.key),children:i.label})},i.key))}),N.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${o?"":" is-active"}`,onClick:()=>{f(null),t.close()},children:["All ",N.label]})}),N.sub.map(i=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${o===i?" is-active":""}`,onClick:()=>{f(S=>S===i?null:i),t.close()},children:i})},i))]}):null]})})}),L?e.jsx("p",{className:"error",children:"Couldn’t load the market — please try again."}):null,e.jsx("div",{className:"grid",children:_?e.jsx(Y,{count:15}):e.jsxs(e.Fragment,{children:[l.map(t=>e.jsx(ce,{item:Ne(t),mode:"market",marketPriceCredits:y(t),onBuyNow:Z},t.tradeId)),g?e.jsx(Y,{count:6}):null]})}),e.jsx(ye,{hasNextPage:P,isFetching:g,onLoadMore:()=>h()}),!_&&l.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null,w&&r?e.jsx(ve,{listing:w,rate:r,onClose:()=>x(null),onSold:()=>{x(null),D()}}):null]})}export{Be as Market,Be as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as U,r as d,j as s,L as re}from"./react-Vu6nbGi5.js";import{i as z,h as V,Y as le,y as B,d as q,k as C,p as ee,j as P,s as G,D as W,H as se,a as ce,c as D,aa as oe,g as de,ab as me}from"./index-CMGTUvxy.js";import{f as ue}from"./import-DZ2KCb9V.js";import{b as he,d as pe,i as ge,e as be,a as ye,c as xe}from"./buy-CsLUNZO_.js";import{s as je}from"./wallet-kind-BR9EEO7E.js";import{L as _e}from"./LoadMore-BOCtgPLI.js";import{u as fe}from"./useInfiniteGrid-CcvAkiyB.js";import"./ethers-JeCAM1sd.js";import"./mana-rate-BySaIkbs.js";import"./index-D8ylAHlw.js";const F=()=>`${V.builderServerUrl}/v1`;function ae(e){return Array.isArray(e)?e:"results"in e&&Array.isArray(e.results)?e.results:"data"in e&&Array.isArray(e.data)?e.data:[]}async function ne(e,i){const n=await le(e,{method:"GET",identity:i,metadata:{}});if(!n.ok)throw new Error(`builder-server ${n.status}: ${await n.text()}`);const c=await n.json();return c.data??c}function Ne(e,i){const n=i-e;return n>0?n:0}function ve(e){var i,n,c,r,l;return((n=(i=e.data)==null?void 0:i.wearable)==null?void 0:n.category)??((r=(c=e.data)==null?void 0:c.emote)==null?void 0:r.category)??((l=e.data)==null?void 0:l.category)??e.type??"wearable"}function J(e){return`${F()}/storage/contents/${e}`}function $(e,i){if(!e)return"";if(/^https?:\/\//.test(e))return e;const n=i==null?void 0:i[e];return n?J(n):/^(ba|Qm)/.test(e)?J(e):""}async function Ie(e,i){try{const n=await fetch(`${F()}/items/${e}/${i}/contents`);if(!n.ok)return{};const c=await n.json();return c.data??c}catch{return{}}}async function ke(e,i,n){const c=$(e.thumbnail,e.contents)||$("thumbnail.png",e.contents);if(c)return c;if(i&&n){const r=await Ie(i,n);return $(e.thumbnail,r)||$("thumbnail.png",r)||$("image.png",r)}return""}async function we(e,i){const n=`${F()}/${e.toLowerCase()}/collections?is_published=true`,c=await ne(n,i);return ae(c).filter(r=>r.is_published&&!!r.contract_address).map(r=>({id:r.id,name:r.name,contractAddress:r.contract_address.toLowerCase(),isPublished:r.is_published,isApproved:r.is_approved,minters:(r.minters??[]).map(l=>l.toLowerCase())}))}async function Ce(e,i){const n=`${F()}/collections/${e.id}/items`,c=await ne(n,i);return(await Promise.all(ae(c).map(async l=>{const v=l.rarity??"common",_=Number(l.total_supply??0)||0;let m=0;try{m=z.Rarity.getMaxSupply(v)}catch{m=0}const f=(l.contract_address??e.contractAddress).toLowerCase(),p=l.blockchain_item_id??"";return{id:l.id,collectionId:e.id,collectionName:e.name,contractAddress:f,blockchainItemId:p,name:l.name,category:ve(l),rarity:v,thumbnail:await ke(l,f,p),type:l.type??"wearable",isPublished:l.is_published??e.isPublished,isApproved:l.is_approved??e.isApproved,totalSupply:_,maxSupply:m,remainingSupply:Ne(_,m),minters:e.minters}}))).filter(Se)}function Se(e){return e.isPublished&&e.isApproved&&e.blockchainItemId!==""&&e.blockchainItemId!=null&&e.remainingSupply>0}async function Ae(e,i){const n=await we(e,i);return(await Promise.all(n.map(async r=>{try{return await Ce(r,i)}catch{return[]}}))).flat()}const Pe=1e3*60*60*24*182;function $e(e){const i=e,n=(i.message??"").toLowerCase();return i.code===4001||n.includes("reject")||n.includes("denied")||n.includes("cancel")?"You cancelled the request.":"Couldn't list your item — please try again."}function Le({asset:e,session:i,onClose:n}){const c=B(),r=U(),[l,v]=d.useState("10"),[_,m]=d.useState(null),[f,p]=d.useState(null),[g,k]=d.useState(!1),[j,I]=d.useState(null);async function S(){p(null);const o=Number(l);if(!Number.isInteger(o)||o<=0){p("Enter a whole number of credits");return}k(!0);try{m("Getting your item ready…"),await he({signer:i.signer,contractAddress:e.contractAddress,chainId:e.chainId}),m("Listing your item…");const N=await pe({signer:i.signer,nft:{contractAddress:e.contractAddress,tokenId:e.tokenId,network:e.network,chainId:e.chainId},usdPrice:o/10,expiresAtMs:Date.now()+Pe});m("Publishing…"),await ee(N,i.identity),m(null),I(o),P("Shop Listed Item",{item_id:e.itemId??e.tokenId??null,contract_address:e.contractAddress,price_credits:o,price_usd:o/10,listing_type:"secondary",is_primary:!1}),G.success(`“${e.name}” is now on sale!`),c.invalidateQueries({queryKey:["my-assets",i.address]})}catch(N){W(N,{flow:"list_secondary"}),P("Shop Listing Failed",{listing_type:"secondary",error_code:se(N)}),p($e(N)),m(null)}finally{k(!1)}}function x(){n(),r(`/item/${e.contractAddress}/${e.tokenId}`)}return j!==null?s.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),s.jsx("h2",{className:"modal__title",children:"It’s on sale! 🎉"}),e.image?s.jsx("img",{className:"modal__img",src:e.image,alt:e.name}):null,s.jsx("p",{className:"modal-success__name",children:e.name}),s.jsxs("p",{className:"muted small",children:["Listed for ",s.jsxs("strong",{children:[s.jsx(q,{className:"ccy-mark"})," ",j]})]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:n,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:x,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsxs("h2",{className:"modal__title",children:["List “",e.name,"”"]}),e.image?s.jsx("img",{className:"modal__img",src:e.image,alt:e.name}):null,s.jsxs("label",{className:"field",children:[s.jsxs("span",{children:["Price (",C.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:l,onChange:o=>v(o.target.value),disabled:g})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",C.name," (1 ",C.nameSingular," = $0.10)."]}),_?s.jsx("p",{className:"muted",children:_}):null,f?s.jsx("p",{className:"error",children:f}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:n,disabled:g,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:S,disabled:g,children:g?"Listing…":"Put on sale"})]})]})})}const Ee=1e3*60*60*24*182;function Me(e){const i=e,n=(i.message??"").toLowerCase();return i.code===4001||n.includes("reject")||n.includes("denied")||n.includes("cancel")?"You cancelled the request.":"Couldn't publish your item — please try again."}function qe({item:e,session:i,onClose:n}){const c=B(),r=U(),[l,v]=d.useState("10"),[_,m]=d.useState(null),[f,p]=d.useState(null),[g,k]=d.useState(!1),[j,I]=d.useState(null),[S,x]=d.useState(null),o=V.chainId,N=je(i.providerType);d.useEffect(()=>{let u=!1;return(async()=>{try{const b=await ge({contractAddress:e.contractAddress,chainId:o});u||I(b)}catch{u||I(!1)}})(),()=>{u=!0}},[e.contractAddress,o]);async function T(){p(null);const u=Number(l);if(!Number.isInteger(u)||u<=0){p("Enter a whole number of credits");return}k(!0);try{j||(m("Enabling sales for this collection…"),await be({signer:i.signer,contractAddress:e.contractAddress,chainId:o}),I(!0)),m("Publishing your item…");const b=await ye({signer:i.signer,item:{contractAddress:e.contractAddress,itemId:e.blockchainItemId,network:z.Network.MATIC,chainId:o},usdPrice:u/10,uses:e.remainingSupply,expiresAtMs:Date.now()+Ee});m("Finishing up…"),await ee(b,i.identity),m(null),x(u),P("Shop Listed Item",{item_id:e.blockchainItemId,contract_address:e.contractAddress,price_credits:u,price_usd:u/10,listing_type:"primary",is_primary:!0}),G.success(`“${e.name}” is now on sale!`),c.invalidateQueries({queryKey:["publishable-items"]}),c.invalidateQueries({queryKey:["collection-sale-state"]})}catch(b){W(b,{flow:"list_primary"}),P("Shop Listing Failed",{listing_type:"primary",error_code:se(b)}),p(Me(b)),m(null)}finally{k(!1)}}function O(){n(),r(`/item/${e.contractAddress}/${e.blockchainItemId}`)}const L=g?"Listing…":j===!1?"Enable & put on sale":"Put on sale";return S!==null?s.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:u=>u.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),s.jsx("h2",{className:"modal__title",children:"It’s on sale! 🎉"}),e.thumbnail?s.jsx("img",{className:"modal__img",src:e.thumbnail,alt:e.name}):null,s.jsx("p",{className:"modal-success__name",children:e.name}),s.jsxs("p",{className:"muted small",children:["Listed for ",s.jsxs("strong",{children:[s.jsx(q,{className:"ccy-mark"})," ",S]})," · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:n,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:O,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:u=>u.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsxs("h2",{className:"modal__title",children:["Publish “",e.name,"”"]}),e.thumbnail?s.jsx("img",{className:"modal__img",src:e.thumbnail,alt:e.name}):null,s.jsxs("p",{className:"muted small",children:["From your collection “",e.collectionName,"” · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("label",{className:"field",children:[s.jsxs("span",{children:["Price (",C.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:l,onChange:u=>v(u.target.value),disabled:g})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",C.name," (1 ",C.nameSingular," = $0.10)."]}),j===!1&&!g?N?s.jsxs("p",{className:"muted small primary-note",children:["First time selling from “",e.collectionName,"”? It needs a one-time approval, then you’ll confirm the listing — two quick confirmations. After this, listing more items from this collection is a single step."]}):s.jsxs("p",{className:"muted small primary-note",children:["First time selling from “",e.collectionName,"”? Setting it up takes a moment — after that, listing more items from this collection is instant."]}):j===!0&&!g?N?s.jsx("p",{className:"muted small primary-note",children:"This collection is ready — publishing is a single confirmation."}):s.jsx("p",{className:"muted small primary-note",children:"This collection is ready — publishing is instant."}):null,_?s.jsx("p",{className:"muted",children:_}):null,f?s.jsx("p",{className:"error",children:f}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:n,disabled:g,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:T,disabled:g||j===null,children:j===null?"Checking…":L})]})]})})}const Fe=48;function Te(e){return{id:e.id,name:e.name,creator:"",contractAddress:e.contractAddress,itemId:e.itemId,category:e.category,rarity:e.rarity??"common",network:e.network,chainId:e.chainId,thumbnail:e.image,priceCredits:e.listingPrice??0,gender:null,tokenId:e.tokenId}}function Z(e){return{id:`${e.contractAddress}-${e.blockchainItemId}`,name:e.name,creator:"",contractAddress:e.contractAddress,itemId:e.blockchainItemId,category:e.category,rarity:e.rarity,network:"MATIC",chainId:V.chainId,thumbnail:e.thumbnail,priceCredits:0,gender:null}}function We(){const{session:e,error:i,signIn:n,restore:c}=ce(),r=U(),l=B(),[v,_]=d.useState(null),[m,f]=d.useState(null),[p,g]=d.useState(null),[k,j]=d.useState(null);function I(a){const t=a.tokenId??a.itemId??"";!a.contractAddress||!t||r(`/item/${a.contractAddress}/${t}`,{state:{item:a}})}async function S(a,t,h){if(e){j(null),g(h);try{const y=await de(a);await xe({trade:y,signer:e.signer}),G.success(`“${t}” is no longer for sale.`),await l.invalidateQueries({queryKey:["my-assets",e.address]}),await l.invalidateQueries({queryKey:["collection-sale-state"]})}catch(y){const E=y,M=(E.message??"").toLowerCase(),X=E.code===4001||M.includes("reject")||M.includes("denied");X||W(y,{flow:"remove-listing",tradeId:a}),j(X?"You cancelled the request.":"Couldn't remove the listing — please try again.")}finally{g(null)}}}d.useEffect(()=>{c()},[c]);const x=e==null?void 0:e.address,{items:o,isLoading:N,error:T,hasNextPage:O,isFetchingNextPage:L,fetchNextPage:u}=fe(["my-assets",x],a=>oe(x,{first:Fe,skip:a}).then(t=>({items:t.assets,total:t.total})),{enabled:!!x}),{data:b}=D({queryKey:["importable",x],queryFn:()=>ue(x),enabled:!!x}),R=((b==null?void 0:b.creations.length)??0)+((b==null?void 0:b.owned.length)??0),{data:A,isLoading:te,isError:ie}=D({queryKey:["publishable-items",x],queryFn:()=>Ae(x,e.identity),enabled:!!e,retry:!1}),K=d.useMemo(()=>[...new Set((A??[]).map(a=>a.contractAddress))],[A]),{data:w}=D({queryKey:["collection-sale-state",x,K],enabled:K.length>0,queryFn:async()=>{const a=await Promise.all(K.map(async h=>[h,await me(h)])),t={};for(const[h,y]of a)for(const[E,M]of Object.entries(y))t[`${h}-${E}`]=M;return t}}),Q=a=>w==null?void 0:w[`${a.contractAddress}-${a.blockchainItemId}`],Y=d.useMemo(()=>(A??[]).filter(a=>{var t;return(t=Q(a))==null?void 0:t.isOnSale}),[A,w]),H=d.useMemo(()=>{var t;const a=new Map;for(const h of A??[]){if((t=w==null?void 0:w[`${h.contractAddress}-${h.blockchainItemId}`])!=null&&t.isOnSale)continue;const y=a.get(h.collectionId)??{id:h.collectionId,name:h.collectionName,items:[]};y.items.push(h),a.set(h.collectionId,y)}return[...a.values()]},[A,w]);return e?s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),R>0?s.jsxs(re,{className:"import-banner",to:"/import",children:[s.jsx("span",{className:"import-banner__ico","aria-hidden":!0,children:"📦"}),s.jsxs("span",{className:"import-banner__text",children:[s.jsx("strong",{children:"Import your listings"}),s.jsxs("span",{className:"import-banner__sub",children:["You have ",R," item",R===1?"":"s"," for sale elsewhere — bring them into the Shop."]})]}),s.jsx("span",{className:"import-banner__cta",children:"Import"})]}):null,s.jsxs("div",{className:"myassets__section",children:[s.jsxs("div",{className:"myassets__section-head",children:[s.jsx("h2",{className:"myassets__section-title",children:"Items you own"}),s.jsx("p",{className:"myassets__section-sub",children:"Wearables & emotes you’ve bought — resell them in the Shop."})]}),T?s.jsx("p",{className:"error",children:"Couldn’t load your items — please try again."}):null,k?s.jsx("p",{className:"error",children:k}):null,s.jsxs("div",{className:"asset-grid",children:[N?Array.from({length:8}).map((a,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`sk-${t}`)):o.map(a=>s.jsxs("article",{className:"asset-card asset-card--link",children:[s.jsx("button",{className:"card-link-overlay","aria-label":`View ${a.name}`,onClick:()=>I(Te(a))}),s.jsx("div",{className:"asset-card__img",children:a.image?s.jsx("img",{src:a.image,alt:a.name}):null}),s.jsx("div",{className:"asset-card__name",title:a.name,children:a.name}),a.isOnSale?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"asset-card__listed",children:[s.jsxs("span",{className:"asset-card__price",children:[s.jsx(q,{className:"ccy-mark"})," ",a.listingPrice]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost asset-card__remove",disabled:p===a.id||!a.tradeId,onClick:t=>{t.stopPropagation(),a.tradeId&&S(a.tradeId,a.name,a.id)},children:p===a.id?"Removing…":"Remove listing"})]}):s.jsx("button",{className:"btn btn--sm",onClick:t=>{t.stopPropagation(),P("Shop Started Listing",{listing_type:"secondary",item_id:a.itemId??a.tokenId??null}),_(a)},children:"Put on sale"})]},a.id)),L?Array.from({length:4}).map((a,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`msk-${t}`)):null]}),s.jsx(_e,{hasNextPage:O,isFetching:L,onLoadMore:()=>u()}),!N&&o.length===0?s.jsx("p",{className:"muted",children:"No items in your wardrobe yet."}):null]}),s.jsxs("div",{className:"myassets__section",children:[s.jsxs("div",{className:"myassets__section-head",children:[s.jsx("h2",{className:"myassets__section-title",children:"Your creations"}),s.jsxs("p",{className:"myassets__section-sub",children:["Items you made. Put them on sale in the Shop — set a price in ",C.name," and buyers pay with ",C.name,"."]})]}),te?s.jsx("div",{className:"publish-grid",children:Array.from({length:4}).map((a,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`pub-sk-${t}`))}):ie?s.jsx("p",{className:"publish-empty",children:"We couldn’t load your collections right now. Please try again in a moment."}):Y.length===0&&H.length===0?s.jsx("p",{className:"publish-empty",children:"You don’t have any items to publish yet."}):s.jsxs(s.Fragment,{children:[Y.length>0?s.jsxs("div",{className:"creations-collection",children:[s.jsx("h3",{className:"creations-collection__name",children:"On sale"}),s.jsx("div",{className:"publish-grid",children:Y.map(a=>{var t;return s.jsxs("article",{className:"publish-card publish-card--link",children:[s.jsx("button",{className:"card-link-overlay","aria-label":`View ${a.name}`,onClick:()=>I(Z(a))}),s.jsx("div",{className:"publish-card__img",children:a.thumbnail?s.jsx("img",{src:a.thumbnail,alt:a.name}):null}),s.jsx("div",{className:"publish-card__name",title:a.name,children:a.name}),s.jsxs("div",{className:"publish-card__listed",children:[s.jsxs("span",{className:"publish-card__price",children:[s.jsx(q,{className:"ccy-mark"})," ",((t=Q(a))==null?void 0:t.priceCredits)??0]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost publish-card__cta",disabled:p===a.id,onClick:h=>{h.stopPropagation();const y=Q(a);y!=null&&y.tradeId&&S(y.tradeId,a.name,a.id)},children:p===a.id?"Removing…":"Remove listing"})]},`${a.contractAddress}-${a.blockchainItemId}`)})})]}):null,H.map(a=>s.jsxs("div",{className:"creations-collection",children:[s.jsx("h3",{className:"creations-collection__name",children:a.name}),s.jsx("div",{className:"publish-grid",children:a.items.map(t=>s.jsxs("article",{className:"publish-card publish-card--link",children:[s.jsx("button",{className:"card-link-overlay","aria-label":`View ${t.name}`,onClick:()=>I(Z(t))}),s.jsx("div",{className:"publish-card__img",children:t.thumbnail?s.jsx("img",{src:t.thumbnail,alt:t.name}):null}),s.jsx("div",{className:"publish-card__name",title:t.name,children:t.name}),s.jsxs("div",{className:"publish-card__meta",children:[s.jsx("span",{className:"publish-chip publish-chip--rarity",children:t.rarity}),s.jsxs("span",{className:"publish-card__supply",children:[t.remainingSupply.toLocaleString()," available"]})]}),s.jsx("button",{className:"btn btn--sm btn--purple publish-card__cta",onClick:h=>{h.stopPropagation(),P("Shop Started Listing",{listing_type:"primary",item_id:t.blockchainItemId}),f(t)},children:"Put on sale"})]},`${t.contractAddress}-${t.blockchainItemId}`))})]},a.id))]})]}),v?s.jsx(Le,{asset:v,session:e,onClose:()=>_(null)}):null,m?s.jsx(qe,{item:m,session:e,onClose:()=>f(null)}):null]}):s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),s.jsx("p",{className:"muted",children:"Sign in to sell your items."}),s.jsx("div",{className:"connect-row",children:s.jsx("button",{className:"btn btn--purple",onClick:()=>n(),children:"Sign in"})}),i?s.jsx("p",{className:"error",children:i}):null]})}export{We as MyAssets};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as s,d as k,a as w,N as A}from"./react-Vu6nbGi5.js";import{a as I,K as P,L as E,M as S,N as R,O as T,P as L,W as j,i as t,h as i}from"./index-CMGTUvxy.js";import{s as C}from"./wallet-kind-BR9EEO7E.js";import"./ethers-JeCAM1sd.js";function F(){return s.jsxs("div",{className:"success-anim",role:"img","aria-label":"Purchase successful",children:[s.jsxs("svg",{className:"success-anim__svg",viewBox:"0 0 120 120",children:[s.jsx("circle",{className:"success-anim__ring",cx:"60",cy:"60",r:"54"}),s.jsx("path",{className:"success-anim__check",d:"M37 61 l16 16 l30 -34"})]}),s.jsx("span",{className:"success-anim__spark success-anim__spark--1","aria-hidden":!0,children:"✦"}),s.jsx("span",{className:"success-anim__spark success-anim__spark--2","aria-hidden":!0,children:"✦"}),s.jsx("span",{className:"success-anim__spark success-anim__spark--3","aria-hidden":!0,children:"◈"}),s.jsx("span",{className:"success-anim__spark success-anim__spark--4","aria-hidden":!0,children:"✦"})]})}const H=i.chainId===80002?"https://decentraland.zone/jump":"https://decentraland.org/jump",M=i.chainId===80002?"https://amoy.polygonscan.com/tx/":"https://polygonscan.com/tx/";function B(){const{state:r}=k(),u=w(),{session:e}=I(),{data:g}=P(e==null?void 0:e.address),c=(r==null?void 0:r.items)??[];if(c.length===0)return s.jsx(A,{to:"/assets",replace:!0});const o=c[0],l=c.filter(a=>a.category!=="emote"),N=c.find(a=>a.category==="emote")??null,p=l.map(E).filter(a=>!!a),d=S(g),b=!!d&&l.every(a=>R(a,d)),f=T(l)??d??L,h=!!(e!=null&&e.address)&&b,_=h?e.address:"default",x=h?void 0:f,n=N??o,m=n.category==="emote",v=r==null?void 0:r.txHash,y=!!v&&C(e==null?void 0:e.providerType);return s.jsxs("div",{className:"success",children:[s.jsx("div",{className:"success__preview",children:p.length>0?s.jsx(j,{profile:_,bodyShape:x,urns:p,type:t.PreviewType.AVATAR,emote:t.PreviewEmote.FASHION,background:"ecebed",dev:i.chainId===80002},o.id):s.jsx(j,{contractAddress:n.contractAddress,tokenId:n.tokenId??void 0,itemId:n.tokenId?void 0:n.itemId??void 0,profile:_,bodyShape:m?void 0:x,type:m?void 0:t.PreviewType.AVATAR,emote:m?void 0:t.PreviewEmote.FASHION,background:"ecebed",dev:i.chainId===80002},n.id)}),s.jsxs("div",{className:"success__panel",children:[s.jsx(F,{}),s.jsx("h1",{className:"success__title",children:"It’s yours!"}),c.length===1?s.jsxs("p",{className:"success__sub",children:[s.jsx("strong",{children:o.name})," is now in your wardrobe."]}):s.jsxs(s.Fragment,{children:[s.jsxs("p",{className:"success__sub",children:[c.length," items are now in your wardrobe."]}),s.jsx("ul",{className:"success__list",children:c.map(a=>s.jsx("li",{children:a.name},a.id))})]}),s.jsxs("div",{className:"success__links",children:[s.jsx("button",{className:"success__receipt",onClick:()=>u("/my-purchases"),children:"View order"}),y?s.jsx("a",{className:"success__receipt",href:`${M}${v}`,target:"_blank",rel:"noreferrer",children:"View transaction ↗"}):null]}),s.jsxs("div",{className:"success__actions",children:[s.jsx("a",{className:"btn btn--purple",href:H,target:"_blank",rel:"noreferrer",children:"Use it in-world"}),s.jsx("button",{className:"btn btn--ghost",onClick:()=>u("/assets"),children:"Keep shopping"})]})]})]})}export{B as Success,B as default};
|
package/assets/buy-CsLUNZO_.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as p,h as P,B as H}from"./index-CMGTUvxy.js";import{g as l,C as f,a as C}from"./index-D8ylAHlw.js";import{C as g,a as Y,b as _,h as k,r as D,c as v,J as O,B as h,d as E,u as Z}from"./ethers-JeCAM1sd.js";function A(){return new O(P.rpcUrl)}const M=e=>Math.floor(e/1e3);function I(e){switch(e.assetType){case p.TradeAssetType.ERC721:return e.tokenId;case p.TradeAssetType.COLLECTION_ITEM:return e.itemId;case p.TradeAssetType.ERC20:case p.TradeAssetType.USD_PEGGED_MANA:return e.amount;default:throw new Error(`Unsupported assetType ${e.assetType}`)}}function U(e){return{checks:{uses:e.checks.uses,expiration:M(e.checks.expiration),effective:M(e.checks.effective),salt:v(e.checks.salt,32),contractSignatureIndex:e.checks.contractSignatureIndex,signerSignatureIndex:e.checks.signerSignatureIndex,allowedRoot:v(e.checks.allowedRoot||"0x",32),externalChecks:(e.checks.externalChecks??[]).map(t=>({contractAddress:t.contractAddress,selector:t.selector,value:t.value?t.value:"0x",required:t.required}))},sent:e.sent.map(t=>({assetType:t.assetType,contractAddress:t.contractAddress,value:I(t),extra:t.extra?t.extra:"0x"})),received:e.received.map(t=>({assetType:t.assetType,contractAddress:t.contractAddress,value:I(t),extra:t.extra?t.extra:"0x",beneficiary:t.beneficiary}))}}const L={Trade:[{name:"checks",type:"Checks"},{name:"sent",type:"AssetWithoutBeneficiary[]"},{name:"received",type:"Asset[]"}],Asset:[{name:"assetType",type:"uint256"},{name:"contractAddress",type:"address"},{name:"value",type:"uint256"},{name:"extra",type:"bytes"},{name:"beneficiary",type:"address"}],AssetWithoutBeneficiary:[{name:"assetType",type:"uint256"},{name:"contractAddress",type:"address"},{name:"value",type:"uint256"},{name:"extra",type:"bytes"}],Checks:[{name:"uses",type:"uint256"},{name:"expiration",type:"uint256"},{name:"effective",type:"uint256"},{name:"salt",type:"bytes32"},{name:"contractSignatureIndex",type:"uint256"},{name:"signerSignatureIndex",type:"uint256"},{name:"allowedRoot",type:"bytes32"},{name:"externalChecks",type:"ExternalCheck[]"}],ExternalCheck:[{name:"contractAddress",type:"address"},{name:"selector",type:"bytes4"},{name:"value",type:"bytes"},{name:"required",type:"bool"}]},B=["function contractSignatureIndex() view returns (uint256)","function signerSignatureIndex(address) view returns (uint256)"],R=["function isApprovedForAll(address owner, address operator) view returns (bool)","function setApprovalForAll(address operator, bool approved)"],b=["function globalMinters(address minter) view returns (bool)","function setMinters(address[] minters, bool[] values)"],J={chainId:"0x13882",chainName:"Polygon Amoy",nativeCurrency:{name:"POL",symbol:"POL",decimals:18},rpcUrls:["https://rpc-amoy.polygon.technology"],blockExplorerUrls:["https://amoy.polygonscan.com"]};async function T(e,t){if((await e.getNetwork()).chainId===t)return;const s=Y(t);try{await e.send("wallet_switchEthereumChain",[{chainId:s}])}catch(a){if(a.code===4902&&t===80002)await e.send("wallet_addEthereumChain",[J]);else throw a}}async function ce(e){const t=l(f.OffChainMarketplaceV2,e.chainId),n=await e.signer.getAddress();if(await new g(e.contractAddress,R,A()).isApprovedForAll(n,t.address))return;await T(e.signer.provider,e.chainId),await(await new g(e.contractAddress,R,e.signer).setApprovalForAll(t.address,!0)).wait()}async function ie(e){const{signer:t,nft:n,usdPrice:s,expiresAtMs:a,fingerprint:c=""}=e,r=(await t.getAddress()).toLowerCase(),i=l(f.OffChainMarketplaceV2,n.chainId),o=l(f.MANAToken,n.chainId),u=new g(i.address,B,A()),d=await u.contractSignatureIndex(),m=await u.signerSignatureIndex(r),x={signer:r,network:n.network,chainId:n.chainId,type:p.TradeType.PUBLIC_NFT_ORDER,checks:{uses:1,expiration:a,effective:Date.now(),salt:k(D(32)),contractSignatureIndex:d.toNumber(),signerSignatureIndex:m.toNumber(),allowedRoot:"0x",externalChecks:[]},sent:[{assetType:p.TradeAssetType.ERC721,contractAddress:n.contractAddress,tokenId:n.tokenId,extra:c}],received:[{assetType:p.TradeAssetType.USD_PEGGED_MANA,contractAddress:o.address,amount:_(String(s)).toString(),extra:"",beneficiary:r}]},w={name:i.name,version:i.version,salt:v(k(n.chainId),32),verifyingContract:i.address},y=await t._signTypedData(w,L,U(x));return{...x,signature:y}}async function oe(e){const t=l(f.OffChainMarketplaceV2,e.chainId),n=new g(e.contractAddress,b,A());try{return await n.globalMinters(t.address)}catch{return!1}}async function de(e){const t=l(f.OffChainMarketplaceV2,e.chainId),n=new g(e.contractAddress,b,A());let s=!1;try{s=await n.globalMinters(t.address)}catch{s=!1}if(s)return;await T(e.signer.provider,e.chainId),await(await new g(e.contractAddress,b,e.signer).setMinters([t.address],[!0])).wait()}async function ue(e){const{signer:t,item:n,usdPrice:s,expiresAtMs:a}=e,c=(await t.getAddress()).toLowerCase(),r=l(f.OffChainMarketplaceV2,n.chainId),i=l(f.MANAToken,n.chainId),o=new g(r.address,B,A()),u=await o.contractSignatureIndex(),d=await o.signerSignatureIndex(c),m=Math.max(1,Math.floor(e.uses??1)),x={signer:c,network:n.network,chainId:n.chainId,type:p.TradeType.PUBLIC_ITEM_ORDER,checks:{uses:m,expiration:a,effective:Date.now(),salt:k(D(32)),contractSignatureIndex:u.toNumber(),signerSignatureIndex:d.toNumber(),allowedRoot:"0x",externalChecks:[]},sent:[{assetType:p.TradeAssetType.COLLECTION_ITEM,contractAddress:n.contractAddress,itemId:n.itemId,extra:""}],received:[{assetType:p.TradeAssetType.USD_PEGGED_MANA,contractAddress:i.address,amount:_(String(s)).toString(),extra:"",beneficiary:c}]},w={name:r.name,version:r.version,salt:v(k(n.chainId),32),verifyingContract:r.address},y=await t._signTypedData(w,L,U(x));return{...x,signature:y}}const{defaultAbiCoder:K,Interface:X,hexZeroPad:S,hexlify:j,randomBytes:z}=Z,Q="tuple(address signer,bytes signature,tuple(uint256 uses,uint256 expiration,uint256 effective,bytes32 salt,uint256 contractSignatureIndex,uint256 signerSignatureIndex,bytes32 allowedRoot,bytes32[] allowedProof,tuple(address contractAddress,bytes4 selector,bytes value,bool required)[] externalChecks) checks,tuple(uint256 assetType,address contractAddress,uint256 value,address beneficiary,bytes extra)[] sent,tuple(uint256 assetType,address contractAddress,uint256 value,address beneficiary,bytes extra)[] received)[]",G="0x"+"0".repeat(64),N=e=>{const t=Number(e);return t>1e12?Math.floor(t/1e3):t};function V(e,t){return{signer:e.signer,signature:e.signature,checks:{uses:e.checks.uses,expiration:N(e.checks.expiration),effective:N(e.checks.effective),salt:S(e.checks.salt,32),contractSignatureIndex:e.checks.contractSignatureIndex,signerSignatureIndex:e.checks.signerSignatureIndex,allowedRoot:e.checks.allowedRoot&&e.checks.allowedRoot!=="0x"?e.checks.allowedRoot:G,allowedProof:[],externalChecks:(e.checks.externalChecks??[]).map(n=>({contractAddress:n.contractAddress,selector:n.selector,value:n.value,required:n.required}))},sent:e.sent.map(n=>({assetType:n.assetType,contractAddress:n.contractAddress,value:I(n),beneficiary:t,extra:n.extra||"0x"})),received:e.received.map(n=>({assetType:n.assetType,contractAddress:n.contractAddress,value:I(n),beneficiary:"beneficiary"in n&&n.beneficiary?n.beneficiary:t,extra:n.extra||"0x"}))}}function ee(e,t,n){const s=new X(n).getSighash("accept"),a=K.encode([Q],[e.map(c=>V(c,t))]);return{selector:s,data:a}}function F(e){if(e!==80002)return{};const t=E("30","gwei");return{maxPriorityFeePerGas:t,maxFeePerGas:t.add(E("50","gwei"))}}function te(e){return e?e.startsWith("0x")?S(e,32):S("0x"+H.from(e).toString("hex"),32):G}function W(e,t,n,s,a,c){const{selector:r,data:i}=ee(n,s,t),o=a.reduce((d,m)=>d.add(h.from(m.availableAmount)),h.from(0)),u=h.from(c).sub(o);return{credits:a.map(d=>({value:d.amount,expiresAt:Number(d.expiresAt),salt:te(d.id)})),creditsSignatures:a.map(d=>d.signature),externalCall:{target:e,selector:r,data:i,expiresAt:Math.floor(Date.now()/1e3)+3600*24,salt:j(z(32))},customExternalCallSignature:"0x",maxUncreditedValue:u.isNegative()?"0":u.toString(),maxCreditedValue:c}}async function ne(e){const t=e.received[0],n=t.amount??"0";if(t.assetType!==p.TradeAssetType.USD_PEGGED_MANA)return n;const s=l(C(e.contract),e.chainId),a=new O(P.rpcUrl),r=await new g(s.address,["function manaUsdAggregator() view returns (address)"],a).manaUsdAggregator(),i=new g(r,["function decimals() view returns (uint8)","function latestRoundData() view returns (uint80,int256,uint256,uint256,uint80)"],a),o=await i.decimals(),u=await i.latestRoundData(),d=h.from(u[1]);return h.from(n).mul(h.from(10).pow(o)).div(d).mul(102).div(100).toString()}async function $(e,t,n){const s=n.provider;await T(s,e);const a=await s.getNetwork();if(a.chainId!==e)throw new Error(`Wrong network: wallet is on chain ${a.chainId}, expected ${e}. Switch networks and try again.`);const c=l(f.CreditsManager,e);return(await(await new g(c.address,c.abi,n).useCredits(t,F(e))).wait()).transactionHash}async function le(e){const{trade:t,signer:n}=e,s=(await n.getAddress()).toLowerCase();await T(n.provider,t.chainId);const a=l(C(t.contract),t.chainId),c=V(t,s);return(await(await new g(a.address,a.abi,n).cancelSignature([c],F(t.chainId))).wait()).transactionHash}async function pe(e){const{trade:t,buyer:n,signer:s,credits:a}=e;if(a.length===0)throw new Error("No credits to spend");const c=l(C(t.contract),t.chainId),r=e.maxCreditedValue??await ne(t),i=W(c.address,c.abi,[t],n,a,r);return $(t.chainId,i,s)}async function ge(e){const{purchases:t,buyer:n,signer:s}=e;if(t.length===0)throw new Error("No items to buy");const a=new Map;for(const r of t){const i=`${r.trade.chainId}:${r.trade.contract.toLowerCase()}`,o=a.get(i);o?o.push(r):a.set(i,[r])}const c=[];for(const r of a.values()){const{chainId:i,contract:o}=r[0].trade,u=l(C(o),i),d=r.map(y=>y.trade),m=r.flatMap(y=>y.credits),x=r.reduce((y,q)=>y.add(h.from(q.maxCreditedValue)),h.from(0)).toString(),w=W(u.address,u.abi,d,n,m,x);c.push(await $(i,w,s))}return c}export{ue as a,ce as b,le as c,ie as d,de as e,ge as f,W as g,pe as h,oe as i};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as P}from"./index-CMGTUvxy.js";import{g as M}from"./buy-CsLUNZO_.js";import{g as m,a as N,C as y}from"./index-D8ylAHlw.js";import{u as I,C as F,J as U,B as x,h as A}from"./ethers-JeCAM1sd.js";const E="".trim().toLowerCase(),p={enabled:E!=="0"&&E!=="false",relayerUrl:"https://transactions-api.decentraland.zone/v1"};function B(){return p.enabled}const{Interface:b,hexZeroPad:G}=I;class u extends Error{constructor(e,a="unknown"){super(e),this.reason=a,this.name="GaslessUnavailableError"}}class v extends Error{constructor(e,a){super("Purchase not yet confirmed"),this.txHash=e,this.name="SettlementPendingError",a&&"cause"in a&&(this.cause=a.cause)}}const O=[{name:"nonce",type:"uint256"},{name:"from",type:"address"},{name:"functionData",type:"bytes"}];function _(n){return G(A(n),32)}function $(n,e,a,c){return new b(n).encodeFunctionData("executeMetaTransaction",[e,a,c])}function S(){return new U(P.rpcUrl)}async function T(n,e,a,c){const r=m(y.CreditsManager,n),o=await new F(r.address,["function getNonce(address) view returns (uint256)"],S()).getNonce(e),i=a,d={name:r.name,version:r.version,verifyingContract:r.address,salt:_(n)},l={nonce:o.toString(),from:e,functionData:i};let g;try{g=await c._signTypedData(d,{MetaTransaction:O},l)}catch(s){const w=(s==null?void 0:s.message)??"signature failed";throw new u(w,/denied/i.test(w)?"unknown":"contract-account")}const C=$(r.abi,e,i,g);let t;try{const s=await fetch(`${p.relayerUrl}/transactions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({transactionData:{from:e,params:[r.address,C]}})});if(t=await s.json(),!s.ok&&(t==null?void 0:t.ok)!==!0&&!(t!=null&&t.txHash))throw new u((t==null?void 0:t.message)??`relayer ${s.status}`,"relayer")}catch(s){throw s instanceof u?s:new u((s==null?void 0:s.message)??"relayer unreachable","relayer")}if((t==null?void 0:t.ok)===!1||!(t!=null&&t.txHash))throw new u((t==null?void 0:t.message)??"relayer rejected the transaction","relayer");return t.txHash}async function L(n,e){const a=S();let c;try{c=await a.waitForTransaction(n,1,(e==null?void 0:e.timeoutMs)??12e4)}catch(r){throw new v(n,{cause:r})}if(!c)throw new v(n);if(c.status===0)throw new Error("Purchase reverted")}async function R(n){if(!p.enabled)throw new u("gasless checkout disabled","disabled");const{trade:e,buyer:a,signer:c,credits:r,maxCreditedValue:f}=n;if(r.length===0)throw new Error("No credits to spend");const o=m(N(e.contract),e.chainId),i=M(o.address,o.abi,[e],a,r,f),d=m(y.CreditsManager,e.chainId),l=new b(d.abi).encodeFunctionData("useCredits",[i]);return T(e.chainId,a,l,c)}async function z(n){if(!p.enabled)throw new u("gasless checkout disabled","disabled");const{purchases:e,buyer:a,signer:c}=n;if(e.length===0)throw new Error("No items to buy");const r=new Map;for(const o of e){const i=`${o.trade.chainId}:${o.trade.contract.toLowerCase()}`,d=r.get(i);d?d.push(o):r.set(i,[o])}const f=[];for(const o of r.values()){const{chainId:i,contract:d}=o[0].trade,l=m(N(d),i),g=o.map(h=>h.trade),C=o.flatMap(h=>h.credits),t=o.reduce((h,D)=>h.add(x.from(D.maxCreditedValue)),x.from(0)).toString(),s=M(l.address,l.abi,g,a,C,t),w=m(y.CreditsManager,i),k=new b(w.abi).encodeFunctionData("useCredits",[s]);f.push(await T(i,a,k,c))}return f}export{u as G,v as S,R as a,z as b,B as g,L as w};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{w as r}from"./utils-BmX8TqzP.js";import{d as a}from"./decimals-Chd6RszM.js";import"./ethers-JeCAM1sd.js";import"./react-Vu6nbGi5.js";import"./signing-B2qIRPvY.js";import"./index-CMGTUvxy.js";async function s(c){return r(()=>a(c),{cacheKey:`${c.contract.chain.id}:${c.contract.address}:decimals`,cacheTime:Number.POSITIVE_INFINITY})}export{s as decimals};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.defineProperty;var h=(t,a,e)=>a in t?p(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e;var d=(t,a,e)=>h(t,typeof a!="symbol"?a+"":a,e);import{g as m,p as u,h as l}from"./index-CMGTUvxy.js";import{c as y,e as A,a as I,b as T,d as S}from"./buy-CsLUNZO_.js";import{r as L,m as M}from"./mana-rate-BySaIkbs.js";const g=1e3*60*60*24*182;async function O(t){const a=await fetch(`${l.marketplaceServerUrl}/v3/catalog/importable?seller=${t.toLowerCase()}`);if(!a.ok)throw new Error(`fetchImportable ${a.status}`);const{data:e}=await a.json(),r=e??[];if(r.length===0)return{creations:[],owned:[]};const o=r[0].chainId||l.chainId,n=await L(o),c=r.map(s=>({...s,suggestedCredits:M(s.manaWei,n)??1}));return{creations:c.filter(s=>s.listingType==="primary"),owned:c.filter(s=>s.listingType==="secondary")}}const w=[3e3,3e3,4e3,5e3,6e3,8e3,8e3];async function f(t,a){for(let e=0;;e++)try{await u(t,a);return}catch(r){if(!/already an open order/i.test((r==null?void 0:r.message)??"")||e>=w.length)throw r;await new Promise(n=>setTimeout(n,w[e]))}}class R extends Error{constructor(e){super("Your old listing was removed, but re-listing in the Shop failed — re-list it from My Assets.");d(this,"original");this.name="RelistFailedError",this.original=e}}async function P(t,a,e,r={}){const o=a/10,n=t.chainId,c=t.network;let s=!1;if(r.cancelOld!==!1){const i=await m(t.oldTradeId).catch(()=>null);i&&(await y({trade:i,signer:e.signer}),s=!0)}try{if(t.listingType==="primary"){await A({signer:e.signer,contractAddress:t.contractAddress,chainId:n});const i=await I({signer:e.signer,item:{contractAddress:t.contractAddress,itemId:t.itemId??"",network:c,chainId:n},usdPrice:o,uses:t.available,expiresAtMs:Date.now()+g});await f(i,e.identity)}else{await T({signer:e.signer,contractAddress:t.contractAddress,chainId:n});const i=await S({signer:e.signer,nft:{contractAddress:t.contractAddress,tokenId:t.tokenId??"",network:c,chainId:n},usdPrice:o,expiresAtMs:Date.now()+g});await f(i,e.identity)}}catch(i){throw s?new R(i):i}}export{R,O as f,P as i};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r}from"./index-CMGTUvxy.js";var e=r();export{e as n};
|