@dcl/shop 0.1.0-28716682285.commit-81d5035 → 0.1.0-28716868442.commit-8bfb3b0
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/{Assets-DZF_BGDq.js → Assets-nmQB2810.js} +1 -1
- package/assets/Cart-CVq8ErN4.js +1 -0
- package/assets/{Collection-C7QMeo-8.js → Collection-DrWaGsbD.js} +1 -1
- package/assets/{Creator-DalHYmPv.js → Creator-CODX4HY-.js} +1 -1
- package/assets/{ExchangeController-CR_0ng5W.js → ExchangeController-DGYlS1u1.js} +1 -1
- package/assets/GetCredits-BJ-vtPKx.js +2 -0
- package/assets/{HelpersUtil-CfV3xayn.js → HelpersUtil-Cs7A9lff.js} +1 -1
- package/assets/ImportListings-DWEJuGBQ.js +1 -0
- package/assets/ItemDetail-CLZiYPr_.js +1 -0
- package/assets/{Market-Cggj0BCU.js → Market-C5YZkU0k.js} +1 -1
- package/assets/MyAssets-DiQ1f-Nx.js +1 -0
- package/assets/{MyFavorites-DUAHlk2T.js → MyFavorites-D2neF-WT.js} +1 -1
- package/assets/{MyPurchases-DAwS8VjK.js → MyPurchases-CX-sT4T9.js} +1 -1
- package/assets/{RealCheckout-BtdQ4wYN.js → RealCheckout-DVYTPQMi.js} +1 -1
- package/assets/{Success-CXbDOKvL.js → Success-Dty0MEac.js} +1 -1
- package/assets/{SwapController-jQKmoGp2.js → SwapController-CTsLqo0R.js} +1 -1
- package/assets/{TradeService-qV7BPpRs.js → TradeService-Co6yXz1n.js} +1 -1
- package/assets/{W3MFrameProviderSingleton-DyH4u3WJ.js → W3MFrameProviderSingleton-DBf03HGk.js} +3 -3
- package/assets/{WebCryptoP256-DAh3RA9Y.js → WebCryptoP256-BMVi41Tf.js} +1 -1
- package/assets/{basic-Xr6dWq86.js → basic-BKlH1yZE.js} +1 -1
- package/assets/{biconomy-CkHCPJwz.js → biconomy-BuC8Y20q.js} +1 -1
- package/assets/{buy-gasless-CyxaR54s.js → buy-gasless-EwLKJESl.js} +1 -1
- package/assets/{buy-BDt3qh_Q.js → buy-qVYsiH8c.js} +1 -1
- package/assets/{ccip-xXRTc90o.js → ccip-BXAlyEXK.js} +1 -1
- package/assets/{ccip-BQIKnazd.js → ccip-BhXlCEl_.js} +1 -1
- package/assets/{collection-x0DaoqN4.js → collection-yK7CsBpq.js} +1 -1
- package/assets/{controller-xFYZ2tIS.js → controller-D31V5T7x.js} +2 -2
- package/assets/{core-BKZ4YKYj.js → core-HiY9JG8Q.js} +4 -4
- package/assets/{custom-DGEuqAtF.js → custom-CNeK1SBe.js} +1 -1
- package/assets/{data-capture-DpMm1B-r.js → data-capture-BGCV8f_8.js} +1 -1
- package/assets/decimals-690uYbRk.js +1 -0
- package/assets/{decimals-9X9HFAfo.js → decimals-eyiqtEAM.js} +1 -1
- package/assets/{detectExtension-D_FUQ2kn.js → detectExtension-HGgsLFYa.js} +1 -1
- package/assets/{email-8VZFOLCd.js → email-D3mSaTDc.js} +1 -1
- package/assets/{embedded-wallet-i0dfZ3jn.js → embedded-wallet-BIpOn63k.js} +1 -1
- package/assets/{engine-Cz8a0LUY.js → engine-Cp4bGvGY.js} +1 -1
- package/assets/{estimate-l1-fee-CeaPum-g.js → estimate-l1-fee-DqCr-VRj.js} +1 -1
- package/assets/{eth_estimateGas-Ch2Qo3Ym.js → eth_estimateGas-Btj3BdU3.js} +1 -1
- package/assets/{eth_getStorageAt-D6WJN9sx.js → eth_getStorageAt-cAsXEzwb.js} +1 -1
- package/assets/{eth_getTransactionCount-BRWa6Gde.js → eth_getTransactionCount-9mRngMvR.js} +1 -1
- package/assets/{extractIPFS-VtWbdMOz.js → extractIPFS-Cos3MMqA.js} +1 -1
- package/assets/{features-CkL7kILZ.js → features-CS9ITEyv.js} +1 -1
- package/assets/{fetchTokenMetadata-BXmwN0lx.js → fetchTokenMetadata--27nDLvT.js} +2 -2
- package/assets/{get-ecosystem-wallet-info-VhSMDJcW.js → get-ecosystem-wallet-info-DsGpr1v9.js} +1 -1
- package/assets/{getBalance-CMO7qPbW.js → getBalance-C1EIeWK3.js} +1 -1
- package/assets/{getInstalledModules-C8ciIxny.js → getInstalledModules-CSy_anIJ.js} +1 -1
- package/assets/{getNFT-BobGZ6K9.js → getNFT-Biv4Mkbw.js} +1 -1
- package/assets/{getNFT-CXOP2pMP.js → getNFT-C3k4-I_M.js} +2 -2
- package/assets/{hashTypedData-DvxOZf8f.js → hashTypedData-D-eX1daT.js} +1 -1
- package/assets/{hashTypedData-BYzWFHY1.js → hashTypedData-DCkFFbNQ.js} +1 -1
- package/assets/{import-MraNS_pv.js → import-DjExR-_c.js} +1 -1
- package/assets/{in-app-wallet-calls-CSBUm0WX.js → in-app-wallet-calls-BsZ7t_xW.js} +1 -1
- package/assets/{index-07l384vR.js → index-0QSHJ5kM.js} +1 -1
- package/assets/{index-R06QFYVY.js → index-B-iF1tO2.js} +1 -1
- package/assets/{index-PJXSqGcO.js → index-B91_eufC.js} +1 -1
- package/assets/{index-DPiqU2Qi.js → index-BBWsjtyi.js} +1 -1
- package/assets/{index-CnuiHcBF.js → index-BDnsSs1l.js} +1 -1
- package/assets/{index-BLDgd2FN.js → index-BEDCm9Wu.js} +1 -1
- package/assets/{index-CVqa84jW.js → index-BP1BUYI1.js} +1 -1
- package/assets/{index-Lqy4HRG5.js → index-BSTJA_7O.js} +2 -2
- package/assets/{index-BISQjaPy.js → index-BTkTkfcn.js} +1 -1
- package/assets/{index-CQjEYJsK.js → index-BbTcdIk0.js} +1 -1
- package/assets/{index-DXkd_D0R.js → index-BgPhxGKT.js} +1 -1
- package/assets/{index-CeOCXdzw.js → index-BkdaY7_G.js} +3 -3
- package/assets/{index-CZGhYHpa.js → index-BnFty3Li.js} +1 -1
- package/assets/{index-BVdflf99.js → index-BoJsJx--.js} +1 -1
- package/assets/{index-BvM6IpIn.js → index-Brg6cgDQ.js} +1 -1
- package/assets/{index-BEs7D61b.js → index-C0nXxFCO.js} +1 -1
- package/assets/{index-Bo1wSLQe.js → index-CJEb8Kzs.js} +1 -1
- package/assets/{index-C9CXoAJ2.js → index-CLE07-_x.js} +1 -1
- package/assets/{index-CsKQpaxl.js → index-CLXqEKlA.js} +1 -1
- package/assets/{index-B0b2BDzP.js → index-CLkVyB5o.js} +1 -1
- package/assets/{index-BfPP6XcF.js → index-CLy-wBAP.js} +2 -2
- package/assets/{index-Bi33Lec8.js → index-CQtzuPXx.js} +1 -1
- package/assets/{index-BfbFKF-_.js → index-CWRbefrn.js} +1 -1
- package/assets/{index-BOBTvczf.js → index-CWgv2cWv.js} +1 -1
- package/assets/{index-XN4xrhWa.js → index-CXiOQLIu.js} +1 -1
- package/assets/{index-CT8vHTeA.js → index-CdcrnJ5_.js} +1 -1
- package/assets/{index-DD9FbX3n.js → index-Cj7vACZe.js} +1 -1
- package/assets/{index-MrzRV9Q8.js → index-Cmk_xiBk.js} +1 -1
- package/assets/{index-C62Ww3lh.js → index-CqIROolS.js} +1 -1
- package/assets/{index-BTPsPO-G.js → index-CrBV_1yu.js} +1 -1
- package/assets/{index-Dxonssii.js → index-CyqLliR_.js} +3 -3
- package/assets/{index-C73nwsCH.js → index-D-S19rzI.js} +1 -1
- package/assets/{index-CbSQFzfb.js → index-D1cUVAY6.js} +1 -1
- package/assets/{index-C6XcSqXs.js → index-D5uLI4BM.js} +1 -1
- package/assets/{index-BmYqfzkI.js → index-DDLsPu5_.js} +12 -12
- package/assets/{index-CnG74PqV.js → index-DGoPqCsR.js} +1 -1
- package/assets/{index-DZoe-51F.js → index-DOExxORl.js} +1 -1
- package/assets/{index-Dgb5np7p.js → index-DUVY_38U.js} +1 -1
- package/assets/{index-BmNZbfHe.js → index-DccLoKMC.js} +2 -2
- package/assets/{index-FroDaHJR.js → index-DgAZv7hc.js} +1 -1
- package/assets/{index-B_00Os6M.js → index-DpcKgN-v.js} +1 -1
- package/assets/{index-A9JhdvF3.js → index-DquEMs4O.js} +1 -1
- package/assets/{index-BAagTwYN.js → index-KarPC4Z4.js} +1 -1
- package/assets/{index-Dhf1C0Kj.js → index-NdfBDpoO.js} +1 -1
- package/assets/{index-yUE19psb.js → index-Xk2toQGa.js} +1 -1
- package/assets/{index-ChQpTYWw.js → index-XzW65SVh.js} +1 -1
- package/assets/{index-D9se8tx4.js → index-cWedEEGZ.js} +1 -1
- package/assets/{index-CKmLGQME.js → index-kpX0X-RL.js} +1 -1
- package/assets/{index--3veqSx1.js → index-m9UlXIqW.js} +1 -1
- package/assets/{index-ChHoaBBu.js → index-xmSB5b1v.js} +1 -1
- package/assets/{index-CV6GodQX.js → index-zhHTnO6h.js} +1 -1
- package/assets/{index.es-Bzum_YS0.js → index.es-BtrYS_gk.js} +4 -4
- package/assets/{index.es-C0jq0YX8.js → index.es-CFwo152a.js} +1 -1
- package/assets/{index.es-CfPSe5Iz.js → index.es-Cw0Wg8zr.js} +1 -1
- package/assets/{localBatchGatewayRequest-BnMlZrXd.js → localBatchGatewayRequest-W5wM5RIw.js} +1 -1
- package/assets/{mana-rate-XfDebPT_.js → mana-rate-D91Nq-wO.js} +1 -1
- package/assets/network-ivZE_UMc.js +1 -0
- package/assets/{networks-DEhdIFNC.js → networks-DLxu9QYW.js} +1 -1
- package/assets/{onramp-C3j52sn0.js → onramp-DjMFTSAW.js} +1 -1
- package/assets/{openzeppelin-BTTAmnTW.js → openzeppelin-2ZkXoMQF.js} +1 -1
- package/assets/{ownerOf-RMAXTCdV.js → ownerOf-BAgrPslR.js} +1 -1
- package/assets/{parseNft-VKRkeiLD.js → parseNft-xmwbSwKx.js} +2 -2
- package/assets/{parseSignature-D30lji4A.js → parseSignature-DS_qYYXg.js} +3 -3
- package/assets/{parseSignature-CGlxNo0q.js → parseSignature-Dfqx4qdB.js} +1 -1
- package/assets/{pay-with-exchange-BvYYQIth.js → pay-with-exchange-BfqKWl-i.js} +1 -1
- package/assets/{qr-overlay-17TocZNH.js → qr-overlay-CuzJkOyH.js} +1 -1
- package/assets/{receive-C68u0-IH.js → receive-BXV5EvIe.js} +1 -1
- package/assets/{resolveImplementation-DfcgAZ7i.js → resolveImplementation-Cp1kSEV-.js} +1 -1
- package/assets/{rpc-BmefAEZX.js → rpc-Dtax0ZGB.js} +1 -1
- package/assets/{secp256k1-BJfT_BJS.js → secp256k1-C95i4S9L.js} +1 -1
- package/assets/{secp256k1-BO5hBgBV.js → secp256k1-D8wYY9C6.js} +1 -1
- package/assets/{secp256k1-DMHqss-g.js → secp256k1-yf38iHjx.js} +1 -1
- package/assets/{send-UIx8SeHj.js → send-bACcTxXh.js} +1 -1
- package/assets/{send-batch-transaction-CBhZSE7o.js → send-batch-transaction-vUlQ3f8W.js} +1 -1
- package/assets/{send-eip712-transaction-CYSTjMP2.js → send-eip712-transaction-BAhg0sSO.js} +2 -2
- package/assets/{send-gasless-transaction-DwC-e3jQ.js → send-gasless-transaction-Bbc--ckt.js} +2 -2
- package/assets/{sendRawTransaction-B_tunbjM.js → sendRawTransaction-Cn-exoEI.js} +3 -3
- package/assets/{serializeTransaction-DvYsEu0f.js → serializeTransaction-CI3T0WRP.js} +1 -1
- package/assets/{session-proposal-D-hIho9_.js → session-proposal-D0XHSqV_.js} +1 -1
- package/assets/{session-request-DD56Mdft.js → session-request-BsTTXWj7.js} +2 -2
- package/assets/{sha256-D-iwlmab.js → sha256-DMkvy9Cz.js} +1 -1
- package/assets/{signing-Cs3KRA5P.js → signing-DeH43Aaw.js} +4 -4
- package/assets/{socials-BNBBd15t.js → socials-D-IAo2yx.js} +1 -1
- package/assets/{swaps-Cm5YfdSu.js → swaps-BWMX0U3I.js} +1 -1
- package/assets/{thirdweb-C9J5fNOj.js → thirdweb-iPhsIfpR.js} +3 -3
- package/assets/{totalSupply-C8BmQbty.js → totalSupply-CSwsdpN_.js} +1 -1
- package/assets/{transactionReceipt-Bf7wcNWm.js → transactionReceipt-U1NdpKCV.js} +1 -1
- package/assets/{transactions-CuXfm9a0.js → transactions-BkfWn19q.js} +1 -1
- package/assets/{useInfiniteGrid-BM3TcyEh.js → useInfiniteGrid-6pBFQ8Kh.js} +1 -1
- package/assets/{verifyHash-1pRB3CwV.js → verifyHash-C7RY1nlI.js} +1 -1
- package/assets/{w3m-modal-Cml_eV0H.js → w3m-modal-1UZQLvps.js} +1 -1
- package/assets/{w3m-modal-B1-SYsNz.js → w3m-modal-DMTcXY8g.js} +1 -1
- package/assets/{wait-for-tx-receipt-Bd0-eoIT.js → wait-for-tx-receipt-Dy501zTV.js} +1 -1
- package/assets/{wallet-kind-Dt8fQXzn.js → wallet-kind-By432Wm8.js} +1 -1
- package/assets/{wallets-D8fixhFd.js → wallets-DpuodgNe.js} +6 -6
- package/assets/{web-connector-Cr9k7RR3.js → web-connector-C0IKOCFh.js} +3 -3
- package/assets/{writeContract-ZNyMwark.js → writeContract-B_fZae2g.js} +1 -1
- package/assets/{zoraTestnet-CzFN1G81.js → zoraTestnet-DBtbozoi.js} +1 -1
- package/index.html +8 -8
- package/package.json +2 -2
- package/assets/Cart-4PH7DZlC.js +0 -1
- package/assets/GetCredits-BY6Izy9M.js +0 -2
- package/assets/ImportListings-CHMxShJz.js +0 -1
- package/assets/ItemDetail-C6PGxnP4.js +0 -1
- package/assets/MyAssets-BlcOdmvf.js +0 -1
- package/assets/decimals-DpVCb2xf.js +0 -1
- package/assets/network-flD-kLcV.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as K,r as t,j as e}from"./react-E8ng6RF2.js";import{t as M,C as Q,A as V,f as X}from"./index-
|
|
1
|
+
import{u as K,r as t,j as e}from"./react-E8ng6RF2.js";import{t as M,C as Q,A as V,f as X}from"./index-DDLsPu5_.js";import{S as F}from"./SkeletonCards-yV2mi4oc.js";import{L as ee}from"./LoadMore-DB6TwvRe.js";import{u as se}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";const re=48,k=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]},{key:"ens",label:"NAMEs",sub:[]},{key:"parcel",label:"Lands",sub:[]}],te={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"]},ie=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],f=[{key:"newest",label:"Newest",server:"newest"},{key:"price-asc",label:"Price: Low to High",server:"cheapest"},{key:"price-desc",label:"Price: High to Low",server:"most_expensive"},{key:"name",label:"Name (A–Z)",server:"name"}];function de(){const[B]=K(),l=(B.get("q")??"").trim().toLowerCase(),[n,C]=t.useState("wearable"),[r,x]=t.useState(null),[i,S]=t.useState([]),[p,w]=t.useState(""),[m,$]=t.useState(""),[u,H]=t.useState("newest"),[a,d]=t.useState(null),h=p&&!Number.isNaN(Number(p))?Number(p):void 0,b=m&&!Number.isNaN(Number(m))?Number(m):void 0,I=r?te[r]:void 0,q=(f.find(s=>s.key===u)??f[0]).server,A={category:n,rarities:i.length?i:void 0,wearableCategories:I,minPriceCredits:h,maxPriceCredits:b,search:l||void 0,sortBy:q},{items:P,total:y,isLoading:c,error:L,hasNextPage:O,isFetchingNextPage:E,fetchNextPage:T}=se(["listings",A],s=>X({...A,first:re,skip:s})),N=y,R=t.useRef(null);t.useEffect(()=>{c||!l||R.current===l||(R.current=l,M("Shop Searched",{query:l,result_count:N}))},[l,c,N]);const g=t.useRef("__init__");t.useEffect(()=>{if(c)return;const s=JSON.stringify({category:n,subCategory:r,rarities:i,min:h,max:b,sort:u});if(g.current==="__init__"||g.current===s){g.current=s;return}g.current=s,M("Shop Applied Filter",{filters:{category:n,sub_category:r,rarities:i,min_price_credits:h??null,max_price_credits:b??null,sort:u},result_count:N})},[n,r,i,h,b,u,c,N]);function U(s){C(s),x(null)}function G(s){S(o=>o.includes(s)?o.filter(D=>D!==s):[...o,s])}function Z(){C("wearable"),x(null),S([]),w(""),$(""),d(null)}function j(s){d(o=>o===s?null:s)}const J=f.find(s=>s.key===u)??f[0],_=k.find(s=>s.key===n)??k[0],W=r?`${_.label} · ${r}`:_.label,v=!!(h||b),Y=v?`${p||"0"}–${m||"∞"}`:"Price",z=n!=="wearable"||!!r||i.length>0||v;return e.jsxs("div",{className:"browse",children:[a?e.jsx("div",{className:"filterbar__scrim",onClick:()=>d(null),"aria-hidden":!0}):null,e.jsxs("div",{className:"filterbar",children:[e.jsxs("div",{className:"filterbar__filters",children:[e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="section"?" is-open":""}${r||n!=="wearable"?" is-active":""}`,onClick:()=>j("section"),children:[W," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="section"?e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:k.map(s=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${n===s.key?" is-active":""}`,onClick:()=>U(s.key),children:s.label})},s.key))}),_.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${r?"":" is-active"}`,onClick:()=>{x(null),d(null)},children:["All ",_.label]})}),_.sub.map(s=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${r===s?" is-active":""}`,onClick:()=>{x(o=>o===s?null:s),d(null)},children:s})},s))]}):null]}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="rarity"?" is-open":""}${i.length?" is-active":""}`,onClick:()=>j("rarity"),children:["Rarity ",i.length?e.jsx("span",{className:"filterbar__badge",children:i.length}):null," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:ie.map(s=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:i.includes(s),onChange:()=>G(s)}),e.jsx("span",{children:s})]},s))}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="price"?" is-open":""}${v?" is-active":""}`,onClick:()=>j("price"),children:[Y," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="price"?e.jsxs("div",{className:"filter-pop filter-pop--price",children:[e.jsxs("div",{className:"filter-pop__price-row",children:[e.jsx("input",{type:"number",min:"0",placeholder:"Min",value:p,onChange:s=>w(s.target.value)}),e.jsx("span",{children:"–"}),e.jsx("input",{type:"number",min:"0",placeholder:"Max",value:m,onChange:s=>$(s.target.value)})]}),e.jsxs("p",{className:"filter-pop__hint",children:["Price in ",Q.name]})]}):null]}),z?e.jsx("button",{className:"filterbar__clear",onClick:Z,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[c?"…":`${y.toLocaleString()} item${y===1?"":"s"}`,l?` for “${l}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${a==="sort"?" is-open":""}`,onClick:()=>j("sort"),children:["Sort by: ",J.label," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:f.map(s=>e.jsx("button",{className:`filter-pop__sort${s.key===u?" is-active":""}`,onClick:()=>{H(s.key),d(null)},children:s.label},s.key))}):null]})]})]}),L?e.jsx("p",{className:"error",children:L.message}):null,e.jsx("div",{className:"grid",children:c?e.jsx(F,{count:15}):e.jsxs(e.Fragment,{children:[P.map(s=>e.jsx(V,{item:s},s.id)),E?e.jsx(F,{count:6}):null]})}),e.jsx(ee,{hasNextPage:O,isFetching:E,onLoadMore:()=>T()}),!c&&P.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null]})}export{de as Assets};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as L,r as b,j as e,L as T}from"./react-E8ng6RF2.js";import{j as _,c as Q,e as K,k as W,l as $,C as d,t as v,m as q,h as A,n as M,o as H,q as V,r as I,s as P,v as D,w as J,x as O,f as X}from"./index-DDLsPu5_.js";import{f as F}from"./buy-qVYsiH8c.js";import{g as Z,b as ee,w as se,G as ae}from"./buy-gasless-EwLKJESl.js";import"./ethers-BxoDGoYp.js";import"./index-0QSHJ5kM.js";function te(a){const o=a,l=(o.message??"").toLowerCase();return o.code===4001||l.includes("reject")||l.includes("denied")||l.includes("cancel")?"You cancelled the request.":l.includes("insufficient")?`You don't have enough ${d.name} — get more first.`:l.includes("no active listing")?o.message:"Couldn't complete checkout — please try again."}function re(a){return O(a.received[0].amount)}function ue(){const a=_(s=>s.items),o=_(s=>s.remove),l=_(s=>s.clear),U=_(s=>s.add),{session:t}=Q(),{data:f}=K({queryKey:["upsell-listings"],queryFn:()=>X({first:40}),staleTime:6e4}),{data:n}=W(t),g=$(),Y=L(),[N,m]=b.useState(null),[C,y]=b.useState(null),[p,w]=b.useState(!1),u=a.reduce((s,h)=>s+h.priceCredits,0),z=new Set(a.map(s=>s.id)),k=((f==null?void 0:f.items)??[]).filter(s=>!z.has(s.id)).slice(0,6);async function G(){if(!t){y("Sign in to check out.");return}y(null),w(!0),v("Shop Started Checkout",{cart_size:a.length,cart_value_credits:u,cart_value_usd:q(u),has_sufficient_credits:((n==null?void 0:n.credits)??0)>=u});const s=a.slice(),h=[];let x="authorize",S=!1;try{m("Preparing your order…");const c=[];for(const r of a){const j=r.tradeId?await A(r.tradeId):await M(r.contractAddress,r.itemId??"");if(!j)throw new Error(`No active listing for ${r.name}.`);const R=re(j),{credit:E,maxCreditedValue:B}=await H(t.identity,R,r.tradeId);h.push(E.id),c.push({trade:j,credits:[E],maxCreditedValue:B})}m("Confirming your purchase…"),x="submit";let i=[];if(Z())try{i=await ee({purchases:c,buyer:t.address,signer:t.signer}),await Promise.all(i.map(r=>se(r))),S=!0}catch(r){if(!(r instanceof ae))throw r;i=await F({purchases:c,buyer:t.address,signer:t.signer})}else i=await F({purchases:c,buyer:t.address,signer:t.signer});l(),m("Purchased! 🎉"),v("Shop Completed Purchase",{...V(s),payment_type:"credits",no_crypto_step:S,transaction_hash:i[0]??null}),g.invalidateQueries({queryKey:["usd-balance"]}),Y("/success",{state:{items:s,txHash:i[0]}})}catch(c){if(I(c)||P(c,{flow:"cart_checkout",step:x,cart_size:a.length}),v(I(c)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:x,error_code:D(c),value_usd:q(u),cart_size:a.length}),h.length){try{await J(t.identity,h)}catch(i){P(i,{flow:"cart_checkout",step:"release"})}g.invalidateQueries({queryKey:["usd-balance"]})}y(te(c)),m(null)}finally{w(!1)}}return a.length===0?e.jsxs("div",{className:"cart cart--empty",children:[e.jsx("span",{className:"ico ico-cart cart-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"cart-empty__title",children:"Your cart is empty"}),e.jsx("p",{className:"muted",children:"Find something you love and it’ll show up here."}),e.jsx(T,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):e.jsxs("div",{className:"cart",children:[e.jsxs("h1",{children:["Cart (",a.length,")"]}),e.jsx("div",{className:"cart__list",children:a.map(s=>e.jsxs("div",{className:"cart__row",children:[e.jsx("div",{className:"cart__thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:s.name}):null}),e.jsxs("div",{className:"cart__info",children:[e.jsx("div",{className:"cart__name",children:s.name}),e.jsx("div",{className:"muted",children:s.creator?`By ${s.creator}`:""})]}),e.jsxs("div",{className:"cart__price",children:[d.symbol," ",s.priceCredits]}),e.jsx("button",{className:"link",onClick:()=>o(s.id),disabled:p,children:"Remove"})]},s.id))}),e.jsxs("div",{className:"cart__foot",children:[e.jsxs("div",{className:"cart__total",children:[e.jsxs("div",{children:["Total ",e.jsxs("strong",{children:[d.symbol," ",u]})]}),t?e.jsxs("div",{className:"muted cart__balance",children:["Your balance: ",d.symbol," ",(n==null?void 0:n.credits)??0]}):null]}),e.jsxs("div",{className:"cart__actions",children:[e.jsxs(T,{className:"btn btn--ghost",to:"/credits",children:["Get ",d.name]}),null,e.jsx("button",{className:"btn btn--ghost",onClick:l,disabled:p,children:"Clear"}),e.jsx("button",{className:"btn btn--purple",onClick:G,disabled:p,children:"Checkout"})]})]}),N?e.jsx("p",{className:"muted",style:{marginTop:12},children:N}):null,C?e.jsx("p",{className:"error",style:{marginTop:12},children:C}):null,k.length>0?e.jsxs("div",{className:"cart-upsell",children:[e.jsx("h2",{className:"cart-upsell__title",children:"You might also like"}),e.jsx("div",{className:"cart-upsell__row",children:k.map(s=>e.jsxs("div",{className:"cart-upsell__card",children:[e.jsx("div",{className:"cart-upsell__thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:s.name}):null}),e.jsx("div",{className:"cart-upsell__name",title:s.name,children:s.name}),e.jsxs("div",{className:"cart-upsell__price",children:[d.symbol," ",s.priceCredits]}),e.jsx("button",{className:"btn btn--sm cart-upsell__add",onClick:()=>U(s,"upsell"),disabled:p,children:"Add"})]},s.id))})]}):null]})}export{ue as Cart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as g,b as h,j as e}from"./react-E8ng6RF2.js";import{a as x,A as j,b as _}from"./index-
|
|
1
|
+
import{a as g,b as h,j as e}from"./react-E8ng6RF2.js";import{a as x,A as j,b as _}from"./index-DDLsPu5_.js";import{A as N}from"./collection-yK7CsBpq.js";import{S as m}from"./SkeletonCards-yV2mi4oc.js";import{L as f}from"./LoadMore-DB6TwvRe.js";import{u as b}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";const C=48;function F(){var i;const{contractAddress:o}=g(),d=h(),{items:s,total:t,isLoading:a,error:c,hasNextPage:p,isFetchingNextPage:n,fetchNextPage:u}=b(["collection-page",o],l=>_(o,{first:C,skip:l}),{enabled:!!o}),r=(i=s[0])==null?void 0:i.creator;return e.jsxs("div",{className:"collection-page",children:[e.jsxs("nav",{className:"collection-page__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"collection-page__crumb-link",onClick:()=>d("/assets"),children:"Collectibles"}),e.jsx("span",{className:"collection-page__crumb-sep",children:"/"}),e.jsx("span",{className:"collection-page__crumb-current",children:"Collection"})]}),e.jsxs("header",{className:"collection-page__head",children:[e.jsx("h1",{className:"collection-page__title",children:"Collection"}),r?e.jsx(x,{address:r,className:"collection-page__creator"}):null,e.jsx("span",{className:"muted collection-page__count",children:a?"…":`${t.toLocaleString()} item${t===1?"":"s"}`})]}),!a&&s.length>0?e.jsx(N,{items:s,source:"collection"}):null,c?e.jsx("p",{className:"error",children:c.message}):null,e.jsx("div",{className:"grid",children:a?e.jsx(m,{count:12}):e.jsxs(e.Fragment,{children:[s.map(l=>e.jsx(j,{item:l},l.id)),n?e.jsx(m,{count:6}):null]})}),e.jsx(f,{hasNextPage:p,isFetching:n,onLoadMore:()=>u()}),!a&&!c&&s.length===0?e.jsx("p",{className:"muted",children:"This collection has no items to show."}):null]})}export{F as Collection,F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,a as g,b as p}from"./react-E8ng6RF2.js";import{
|
|
1
|
+
import{j as e,a as g,b as p}from"./react-E8ng6RF2.js";import{D as i,a as h,A as x,E as j}from"./index-DDLsPu5_.js";import{A as f}from"./collection-yK7CsBpq.js";import{S as m}from"./SkeletonCards-yV2mi4oc.js";import{L as b}from"./LoadMore-DB6TwvRe.js";import{u as N}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";function _({address:s,className:r=""}){const o=i(t=>t.followed.includes(s.toLowerCase())),a=i(t=>t.toggle);return s?e.jsx("button",{type:"button",className:`btn btn--sm ${o?"btn--ghost":"btn--outline"} ${r}`.trim(),"aria-pressed":o,title:o?"Unfollow creator":"Follow creator",onClick:()=>a(s),children:o?"Following":"Follow"}):null}const C=48;function E(){const{address:s}=g(),r=p(),{items:o,total:a,isLoading:t,error:n,hasNextPage:u,isFetchingNextPage:c,fetchNextPage:d}=N(["creator-page",s],l=>j(s,{first:C,skip:l}),{enabled:!!s});return e.jsxs("div",{className:"collection-page",children:[e.jsxs("nav",{className:"collection-page__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"collection-page__crumb-link",onClick:()=>r("/assets"),children:"Collectibles"}),e.jsx("span",{className:"collection-page__crumb-sep",children:"/"}),e.jsx("span",{className:"collection-page__crumb-current",children:"Creator"})]}),e.jsxs("header",{className:"collection-page__head",children:[s?e.jsx(h,{address:s,className:"collection-page__title-creator"}):null,s?e.jsx(_,{address:s}):null,e.jsx("span",{className:"muted collection-page__count",children:t?"…":`${a.toLocaleString()} item${a===1?"":"s"}`})]}),!t&&o.length>0?e.jsx(f,{items:o,source:"creator"}):null,n?e.jsx("p",{className:"error",children:n.message}):null,e.jsx("div",{className:"grid",children:t?e.jsx(m,{count:12}):e.jsxs(e.Fragment,{children:[o.map(l=>e.jsx(x,{item:l},l.id)),c?e.jsx(m,{count:6}):null]})}),e.jsx(b,{hasNextPage:u,isFetching:c,onLoadMore:()=>d()}),!t&&!n&&o.length===0?e.jsx("p",{className:"muted",children:"This creator has no items to show yet."}):null]})}export{E as Creator,E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as l,E as w,b as E,S as A,d as k,O as U,N as P,g as f,B as x,e as N,i as I,p as L}from"./W3MFrameProviderSingleton-
|
|
1
|
+
import{C as l,E as w,b as E,S as A,d as k,O as U,N as P,g as f,B as x,e as N,i as I,p as L}from"./W3MFrameProviderSingleton-DBf03HGk.js";import{g as T,a as W,f as b,b as _,c as v}from"./index-CyqLliR_.js";const D=0,C={paymentAsset:null,amount:null,tokenAmount:0,priceLoading:!1,error:null,exchanges:[],isLoading:!1,currentPayment:void 0,isPaymentInProgress:!1,paymentId:"",assets:[]},e=L(C),m={state:e,subscribe(t){return I(e,()=>t(e))},subscribeKey(t,n){return N(e,t,n)},resetState(){Object.assign(e,{...C})},async getAssetsForNetwork(t){const n=v(t),s=await m.getAssetsImageAndPrice(n),r=n.map(a=>{var c,o,p,y;const u=a.asset==="native"?f():`${a.network}:${a.asset}`,i=s.find(S=>{var g,d,h;return((h=(d=(g=S.fungibles)==null?void 0:g[0])==null?void 0:d.address)==null?void 0:h.toLowerCase())===u.toLowerCase()});return{...a,price:((o=(c=i==null?void 0:i.fungibles)==null?void 0:c[0])==null?void 0:o.price)||1,metadata:{...a.metadata,iconUrl:(y=(p=i==null?void 0:i.fungibles)==null?void 0:p[0])==null?void 0:y.iconUrl}}});return e.assets=r,r},async getAssetsImageAndPrice(t){const n=t.map(r=>r.asset==="native"?f():`${r.network}:${r.asset}`);return await Promise.all(n.map(r=>x.fetchTokenPrice({addresses:[r]})))},getTokenAmount(){var s;if(!((s=e==null?void 0:e.paymentAsset)!=null&&s.price))throw new Error("Cannot get token price");const t=P.bigNumber(e.amount??0).round(8),n=P.bigNumber(e.paymentAsset.price).round(8);return t.div(n).round(8).toNumber()},setAmount(t){var n;e.amount=t,(n=e.paymentAsset)!=null&&n.price&&(e.tokenAmount=m.getTokenAmount())},setPaymentAsset(t){e.paymentAsset=t},isPayWithExchangeEnabled(){var t;return(t=U.state.remoteFeatures)==null?void 0:t.payWithExchange},isPayWithExchangeSupported(){return m.isPayWithExchangeEnabled()&&l.state.activeCaipNetwork&&k.PAY_WITH_EXCHANGE_SUPPORTED_CHAIN_NAMESPACES.includes(l.state.activeCaipNetwork.chainNamespace)},async fetchExchanges(){var t;try{const n=m.isPayWithExchangeSupported();if(!e.paymentAsset||!n){e.exchanges=[],e.isLoading=!1;return}e.isLoading=!0;const s=await _({page:D,asset:b(e.paymentAsset.network,e.paymentAsset.asset),amount:((t=e.amount)==null?void 0:t.toString())??"0"});e.exchanges=s.exchanges.slice(0,2)}catch{throw A.showError("Unable to get exchanges"),new Error("Unable to get exchanges")}finally{e.isLoading=!1}},async getPayUrl(t,n){try{const s=Number(n.amount),r=await W({exchangeId:t,asset:b(n.network,n.asset),amount:s.toString(),recipient:`${n.network}:${n.recipient}`});return w.sendEvent({type:"track",event:"PAY_EXCHANGE_SELECTED",properties:{exchange:{id:t},configuration:{network:n.network,asset:n.asset,recipient:n.recipient,amount:s},currentPayment:{type:"exchange",exchangeId:t},source:"fund-from-exchange",headless:!1}}),r}catch(s){throw s instanceof Error&&s.message.includes("is not supported")?new Error("Asset not supported"):new Error(s.message)}},async handlePayWithExchange(t){var n;try{const s=(n=l.getAccountData())==null?void 0:n.address;if(!s)throw new Error("No account connected");if(!e.paymentAsset)throw new Error("No payment asset selected");const r=E.returnOpenHref("","popupWindow","scrollbar=yes,width=480,height=720");if(!r)throw new Error("Could not create popup window");e.isPaymentInProgress=!0,e.paymentId=crypto.randomUUID(),e.currentPayment={type:"exchange",exchangeId:t};const{network:a,asset:u}=e.paymentAsset,i={network:a,asset:u,amount:e.tokenAmount,recipient:s},c=await m.getPayUrl(t,i);if(!c){try{r.close()}catch(o){console.error("Unable to close popup window",o)}throw new Error("Unable to initiate payment")}e.currentPayment.sessionId=c.sessionId,e.currentPayment.status="IN_PROGRESS",e.currentPayment.exchangeId=t,r.location.href=c.url}catch{e.error="Unable to initiate payment",A.showError(e.error)}},async waitUntilComplete({exchangeId:t,sessionId:n,paymentId:s,retries:r=20}){const a=await m.getBuyStatus(t,n,s);if(a.status==="SUCCESS"||a.status==="FAILED")return a;if(r===0)throw new Error("Unable to get deposit status");return await new Promise(u=>{setTimeout(u,5e3)}),m.waitUntilComplete({exchangeId:t,sessionId:n,paymentId:s,retries:r-1})},async getBuyStatus(t,n,s){var r,a,u,i,c;try{if(!e.currentPayment)throw new Error("No current payment");const o=await T({sessionId:n,exchangeId:t});if(e.currentPayment.status=o.status,o.status==="SUCCESS"||o.status==="FAILED"){const p=(r=l.getAccountData())==null?void 0:r.address;e.currentPayment.result=o.txHash,e.isPaymentInProgress=!1,w.sendEvent({type:"track",event:o.status==="SUCCESS"?"PAY_SUCCESS":"PAY_ERROR",properties:{message:o.status==="FAILED"?E.parseError(e.error):void 0,source:"fund-from-exchange",paymentId:s,configuration:{network:((a=e.paymentAsset)==null?void 0:a.network)||"",asset:((u=e.paymentAsset)==null?void 0:u.asset)||"",recipient:p||"",amount:e.amount??0},currentPayment:{type:"exchange",exchangeId:(i=e.currentPayment)==null?void 0:i.exchangeId,sessionId:(c=e.currentPayment)==null?void 0:c.sessionId,result:o.txHash}}})}return o}catch{return{status:"UNKNOWN",txHash:""}}},reset(){e.currentPayment=void 0,e.isPaymentInProgress=!1,e.paymentId="",e.paymentAsset=null,e.amount=0,e.tokenAmount=0,e.priceLoading=!1,e.error=null,e.exchanges=[],e.isLoading=!1}};export{m as E};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RealCheckout-DVYTPQMi.js","assets/react-E8ng6RF2.js","assets/index-DDLsPu5_.js","assets/ethers-BxoDGoYp.js","assets/index-xq0r0dow.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{H as B,c as T,l as D,t as _,s as k,v,C as u,F as V,I as w,_ as A}from"./index-DDLsPu5_.js";import{b as F,r as o,j as e}from"./react-E8ng6RF2.js";import{C}from"./CircularProgress-D-iaLmF3.js";import"./ethers-BxoDGoYp.js";import"./generateUtilityClasses-sji8XAMf.js";const U=.1,E=[{id:"pack_5",usd:5,credits:x(5)},{id:"pack_10",usd:10,credits:x(10)},{id:"pack_25",usd:25,credits:x(25),bestValue:!0},{id:"pack_50",usd:50,credits:x(50)}];function x(t){return Math.round(t/U)}function P(t){return E.find(s=>s.id===t)}const y="mock_cs_";function Y(){return!0}async function z(t,s){const a=P(t);if(!a)throw new Error("Unknown pack");return K(a)}async function q(t,s={}){const{intervalMs:a,timeoutMs:c,signal:n,identity:i}=s;if(t.startsWith(y)||Y())return L(t,s)}function K(t){const s=`${y}${t.id}_${Date.now()}`;return $(400).then(()=>({orderId:s,clientSecret:`${y}${t.id}`,mock:!0}))}async function L(t,s={}){await $(s.intervalMs??900);const a=t.replace(y,"").replace(/_\d+$/,""),c=P(a),n=(c==null?void 0:c.credits)??0;if(s.address&&c)try{const i=await B(s.address,Math.round(c.usd*100));return{status:"credited",creditsGranted:n,newBalance:i.credits}}catch(i){return{status:"failed",error:i.message}}return{status:"credited",creditsGranted:n,newBalance:n}}function $(t,s){return new Promise((a,c)=>{setTimeout(a,t)})}const f="mock",O=o.lazy(()=>A(()=>import("./RealCheckout-DVYTPQMi.js"),__vite__mapDeps([0,1,2,3,4])));function S(t){const s=t;if((s==null?void 0:s.name)==="AbortError")return"You cancelled the request.";const a=((s==null?void 0:s.message)??"").toLowerCase();return a.includes("sign in")?`Sign in to get ${u.name}.`:a.includes("timed out")?`This is taking longer than usual — your ${u.name} will appear shortly.`:"Couldn't complete your purchase — please try again."}function te(){const t=F(),{session:s,signIn:a}=T(),c=D(),[n,i]=o.useState("select"),[r,h]=o.useState(null),[m,N]=o.useState(null),[R,b]=o.useState(null),[G,p]=o.useState(null),j=o.useRef(null);o.useEffect(()=>()=>{var d;return(d=j.current)==null?void 0:d.abort()},[]);const I=o.useCallback(async d=>{if(!s){a();return}p(null),h(d),i("paying"),_("Shop Started Buy Credits",{pack_usd:d.usd,credits:d.credits,provider:f});try{const l=await z(d.id,{address:s.address,identity:s.identity});N(l)}catch(l){k(l,{flow:"get_credits",step:"checkout",provider:f}),_("Shop Buy Credits Failed",{step:"checkout",error_code:v(l),pack_usd:d.usd}),p(S(l)),i("error")}},[s,a]),M=o.useCallback(async()=>{if(!m)return;i("processing");const d=new AbortController;j.current=d;try{const l=await q(m.orderId,{signal:d.signal,address:s==null?void 0:s.address,identity:s==null?void 0:s.identity});l.status==="credited"?(b(l.creditsGranted??(r==null?void 0:r.credits)??0),i("success"),_("Shop Completed Buy Credits",{order_id:m.orderId,pack_usd:(r==null?void 0:r.usd)??null,credits:l.creditsGranted??(r==null?void 0:r.credits)??0,provider:f}),c.invalidateQueries({queryKey:["usd-balance"]})):(_("Shop Buy Credits Failed",{step:"grant",error_code:"grant_failed",pack_usd:(r==null?void 0:r.usd)??null}),p(l.error??`Couldn't add your ${u.name} — please try again.`),i("error"))}catch(l){k(l,{flow:"get_credits",step:"grant",order_id:m.orderId}),_("Shop Buy Credits Failed",{step:"grant",error_code:v(l),pack_usd:(r==null?void 0:r.usd)??null}),p(S(l)),i("error")}},[m,r,s,c]);function g(){var d;(d=j.current)==null||d.abort(),i("select"),h(null),N(null),b(null),p(null)}return e.jsxs("div",{className:"getcredits",children:[e.jsxs("header",{className:"getcredits__head",children:[e.jsxs("h1",{className:"getcredits__title",children:["Get ",u.name]}),e.jsxs("p",{className:"muted",children:["Add ",u.name," to your account to shop. Pay with any card."]})]}),n==="select"&&e.jsx(Q,{onSelect:I}),n==="paying"&&r&&e.jsx(W,{pack:r,checkout:m,onPaid:M,onCancel:g}),n==="processing"&&e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:40}),e.jsxs("p",{className:"getcredits__status-title",children:["Adding your ",u.name,"…"]}),e.jsx("p",{className:"muted",children:"Payment received. Just a moment while we top up your balance."})]}),n==="success"&&e.jsxs("div",{className:"getcredits__status getcredits__status--ok",role:"status","aria-live":"polite",children:[e.jsx("div",{className:"getcredits__confetti","aria-hidden":!0,children:"🎉"}),e.jsx("p",{className:"getcredits__status-title",children:"You’re all set!"}),e.jsxs("p",{className:"muted",children:[e.jsxs("strong",{children:[u.symbol," ",R]})," ",u.name," added to your account."]}),e.jsxs("div",{className:"getcredits__status-actions",children:[e.jsx("button",{className:"btn",onClick:()=>t("/cart"),children:"Back to cart"}),e.jsxs("button",{className:"btn btn--ghost",onClick:g,children:["Get more ",u.name]})]})]}),n==="error"&&e.jsxs("div",{className:"getcredits__status getcredits__status--err",role:"alert",children:[e.jsx("p",{className:"getcredits__status-title",children:"Something went wrong"}),e.jsx("p",{className:"error",children:G}),e.jsx("div",{className:"getcredits__status-actions",children:e.jsx("button",{className:"btn",onClick:g,children:"Try again"})})]})]})}function Q({onSelect:t}){return e.jsx("div",{className:"packs",children:E.map(s=>e.jsxs("button",{type:"button",className:`pack${s.bestValue?" pack--best":""}`,onClick:()=>t(s),"aria-label":`Get ${w(s.credits)} for $${s.usd}`,children:[s.bestValue&&e.jsx("span",{className:"pack__ribbon",children:"Best value"}),e.jsxs("span",{className:"pack__credits",children:[e.jsx(V,{className:"pack__credits-ico"}),s.credits]}),e.jsx("span",{className:"pack__label",children:u.name}),e.jsxs("span",{className:"pack__price",children:["$",s.usd]}),e.jsxs("span",{className:"pack__cta",children:["Get ",u.name]})]},s.id))})}function W({pack:t,checkout:s,onPaid:a,onCancel:c}){return e.jsxs("div",{className:"pay",children:[e.jsxs("div",{className:"pay__summary",children:[e.jsx("button",{className:"link",onClick:c,children:"← Choose a different pack"}),e.jsxs("div",{className:"pay__summary-row",children:[e.jsx("span",{children:"You’ll get"}),e.jsxs("strong",{children:[u.symbol," ",w(t.credits)]})]}),e.jsxs("div",{className:"pay__summary-row pay__summary-row--total",children:[e.jsx("span",{children:"You pay"}),e.jsxs("strong",{children:["$",t.usd]})]})]}),e.jsx("div",{className:"pay__form",children:s?s.mock?e.jsx(H,{onPaid:a,amountUsd:t.usd}):e.jsx(o.Suspense,{fallback:e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:32}),e.jsx("p",{className:"muted",children:"Getting the payment form ready…"})]}),children:e.jsx(O,{clientSecret:s.clientSecret,onComplete:a})}):e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:32}),e.jsx("p",{className:"muted",children:"Getting the payment form ready…"})]})})]})}function H({onPaid:t,amountUsd:s}){const[a,c]=o.useState("4242 4242 4242 4242"),[n,i]=o.useState(!1);function r(){i(!0),setTimeout(()=>t(),700)}return e.jsxs("div",{className:"card-form","aria-label":"Payment details",children:[e.jsx("p",{className:"muted small card-form__note",children:"Demo mode — no real charge is made."}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Card number"}),e.jsx("input",{value:a,onChange:h=>c(h.target.value),disabled:n,inputMode:"numeric"})]}),e.jsxs("div",{className:"card-form__row",children:[e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Expiry"}),e.jsx("input",{defaultValue:"12 / 34",disabled:n})]}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"CVC"}),e.jsx("input",{defaultValue:"123",disabled:n,inputMode:"numeric"})]})]}),e.jsx("button",{className:"btn btn--purple card-form__pay",onClick:r,disabled:n,children:n?"Processing…":`Pay $${s}`})]})}export{te as GetCredits,te as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as f,b as h}from"./lit-element-B3y9oplH.js";import{n as m}from"./class-map-CxwNmq0D.js";import{c as p}from"./index-
|
|
1
|
+
import{i as f,b as h}from"./lit-element-B3y9oplH.js";import{n as m}from"./class-map-CxwNmq0D.js";import{c as p}from"./index-CrBV_1yu.js";import{d as g,r as v}from"./index-CyqLliR_.js";import{C as c}from"./ConstantsUtil-CkFCQ14z.js";import{R as $,O as u}from"./W3MFrameProviderSingleton-DBf03HGk.js";import{au as y}from"./NetworkUtil-DRBYr7tG.js";const b=g`
|
|
2
2
|
:host {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as L,r as d,j as e,L as E}from"./react-E8ng6RF2.js";import{t as M,s as Q,C as m,c as A,l as K,e as F,G as P}from"./index-DDLsPu5_.js";import{i as R,f as Y}from"./import-DjExR-_c.js";import{s as W}from"./wallet-kind-By432Wm8.js";import"./ethers-BxoDGoYp.js";import"./buy-qVYsiH8c.js";import"./index-0QSHJ5kM.js";import"./mana-rate-D91Nq-wO.js";function G({queue:n,session:k,onClose:N,onDone:_}){const f=L(),r=W(k.providerType),[c,y]=d.useState(()=>n.map(()=>"pending")),[b,C]=d.useState("running"),I=d.useRef(!1);d.useEffect(()=>{if(I.current)return;I.current=!0;let a=!1;return(async()=>{for(let i=0;i<n.length;i++){if(a)return;y(o=>o.map((h,u)=>u===i?"active":h));try{await R(n[i].item,n[i].priceCredits,k),M("Shop Migrated Listing",{item_id:n[i].item.itemId??n[i].item.oldTradeId??null,contract_address:n[i].item.contractAddress,new_price_credits:n[i].priceCredits,new_price_usd:n[i].priceCredits/10}),a||y(o=>o.map((h,u)=>u===i?"done":h))}catch(o){const h=o,u=h.code===4001||/reject|denied|cancel/i.test(h.message??"");u||Q(o,{flow:"import_listing",itemId:n[i].item.itemId??n[i].item.oldTradeId}),a||y(S=>S.map((w,t)=>t===i?u?"skipped":"failed":w))}}a||C("finished")})(),()=>{a=!0}},[]);const p=c.filter(a=>a==="done").length,x=c.findIndex(a=>a==="active"),g=Math.round(c.filter(a=>a!=="pending"&&a!=="active").length/n.length*100);function j(){_(),N()}if(b==="finished"){const a=c.filter(i=>i==="skipped"||i==="failed").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:p>0?"You're in the Shop! 🎉":"Nothing listed"}),e.jsxs("p",{className:"muted",style:{margin:0},children:[p>0?`${p} ${p===1?"item is":"items are"} now for sale with ${m.name}.`:"No items were listed.",a>0?` ${a} skipped — you can try those again anytime.`:""]}),e.jsxs("div",{className:"modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:j,children:"Done"}),p>0?e.jsx("button",{className:"btn btn--purple",onClick:()=>{_(),N(),f("/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:[r?"Confirm each item to add it to the Shop.":"Adding your items to the Shop."," ",x>=0?`${x+1} of ${n.length}`:""]}),e.jsx("div",{className:"migrate__progress",children:e.jsx("div",{className:"migrate__bar",style:{width:`${g}%`}})}),e.jsx("ul",{className:"migrate__list",children:n.map((a,i)=>e.jsxs("li",{className:`migrate__row migrate__row--${c[i]}`,children:[e.jsx("span",{className:"migrate__thumb",children:a.item.thumbnail?e.jsx("img",{src:a.item.thumbnail,alt:""}):null}),e.jsx("span",{className:"migrate__name",title:a.item.name,children:a.item.name||"Item"}),e.jsxs("span",{className:"migrate__price",children:[m.symbol," ",a.priceCredits.toLocaleString()]}),e.jsx("span",{className:"migrate__status",children:c[i]==="active"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"spinner migrate__spin","aria-hidden":!0})," ",r?"Confirm…":"Adding…"]}):c[i]==="done"?e.jsx("span",{className:"migrate__tick",children:"✓"}):c[i]==="skipped"?e.jsx("span",{className:"migrate__skip",children:"Skipped"}):c[i]==="failed"?e.jsx("span",{className:"migrate__skip",children:"Failed"}):e.jsx("span",{className:"migrate__wait",children:"Waiting"})})]},a.item.oldTradeId))}),e.jsx("p",{className:"muted small migrate__hint",children:r?"A quick confirmation pops up for each item. Keep this open.":"This only takes a moment — keep this open."})]})})}const O=[{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 Z(){const{session:n,signIn:k,restore:N}=A(),_=K(),f=n==null?void 0:n.address;d.useEffect(()=>{N()},[N]);const{data:r,isLoading:c}=F({queryKey:["importable",f],queryFn:()=>Y(f),enabled:!!f}),[y,b]=d.useState({}),[C,I]=d.useState(new Set),[p,x]=d.useState(null),g=d.useMemo(()=>[...(r==null?void 0:r.creations)??[],...(r==null?void 0:r.owned)??[]],[r]);d.useEffect(()=>{g.length&&b(t=>{const l={...t};for(const s of g)l[s.oldTradeId]==null&&(l[s.oldTradeId]=s.suggestedCredits);return l})},[g]);const j=t=>!C.has(t),a=t=>y[t.oldTradeId]??t.suggestedCredits,i=g.filter(t=>j(t.oldTradeId)),o=i.reduce((t,l)=>t+a(l),0);function h(t,l){const s=l.replace(/[^\d]/g,"");b(v=>({...v,[t]:s===""?0:parseInt(s,10)}))}function u(t){I(l=>{const s=new Set(l);return s.has(t)?s.delete(t):s.add(t),s})}function S(t){return t.map(l=>({item:l,priceCredits:Math.max(1,a(l))}))}function w(){_.invalidateQueries({queryKey:["importable"]}),_.invalidateQueries({queryKey:["listings"]}),_.invalidateQueries({queryKey:["my-assets"]}),_.invalidateQueries({queryKey:["collection-sale-state"]}),P.success("Your Shop is updated.")}return n?!c&&g.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(E,{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 ",m.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("span",{className:"imp__diamond",children:m.symbol})," 1 ",m.nameSingular," = $0.10 · prices rounded up"]}),c?e.jsx("div",{className:"imp__list",children:Array.from({length:4}).map((t,l)=>e.jsx("div",{className:"imp-row imp-row--skeleton"},l))}):O.map(t=>{const l=(r==null?void 0:r[t.key])??[];return l.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:t.title}),e.jsx("span",{className:"imp__section-sub",children:t.sub})]}),e.jsx("div",{className:"imp__list",children:l.map(s=>{const v=a(s),$=v!==s.suggestedCredits;return e.jsxs("article",{className:`imp-row${j(s.oldTradeId)?"":" is-off"}`,children:[e.jsx("input",{type:"checkbox",className:"imp-check",checked:j(s.oldTradeId),onChange:()=>u(s.oldTradeId),"aria-label":`Include ${s.name}`}),e.jsx("div",{className:"imp-thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:""}):null}),e.jsxs("div",{className:"imp-meta",children:[e.jsx("div",{className:"imp-name",title:s.name,children:s.name||"Item"}),e.jsx("span",{className:"imp-chip",children:s.rarity})]}),e.jsxs("div",{className:"imp-price",children:[e.jsxs("div",{className:"imp-price__field",children:[e.jsx("span",{className:"imp-price__diamond","aria-hidden":!0,children:m.symbol}),e.jsx("input",{className:"imp-price__input",inputMode:"numeric",value:v.toLocaleString(),onChange:T=>h(s.oldTradeId,T.target.value),"aria-label":`Price in ${m.name} for ${s.name}`})]}),e.jsxs("div",{className:"imp-price__sub",children:[e.jsxs("span",{children:["$",(v*.1).toFixed(2)]}),$?e.jsxs("button",{className:"imp-price__reset",onClick:()=>b(T=>({...T,[s.oldTradeId]:s.suggestedCredits})),children:["Reset to ",m.symbol,s.suggestedCredits.toLocaleString()]}):null]})]}),e.jsx("div",{className:"imp-action",children:e.jsx("button",{className:"btn btn--sm imp-row__list",disabled:!j(s.oldTradeId),onClick:()=>x(S([s])),children:"List"})})]},s.oldTradeId)})})]},t.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("span",{className:"imp__diamond",children:m.symbol})," ",o.toLocaleString()]}),e.jsxs("div",{className:"imp-dock__sub",children:[i.length," item",i.length===1?"":"s"," selected · $",(o*.1).toFixed(2)]})]}),e.jsx("span",{className:"imp-dock__spacer"}),e.jsxs("button",{className:"btn btn--purple imp-dock__cta",disabled:i.length===0,onClick:()=>x(S(i)),children:["List all (",i.length,")"]})]})}),p&&n?e.jsx(G,{queue:p,session:n,onClose:()=>x(null),onDone:w}):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:()=>k(),children:"Sign in"})]})}export{Z as ImportListings};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,r as o,a as ne,d as le,b as de}from"./react-E8ng6RF2.js";import{c as V,O as oe,W as ue,y as E,i as O,j as S,F as K,G as me,k as he,e as F,t as L,P as fe,R as _e,a as pe,C as Y,h as xe,x as ve,o as be,q as je,r as G,s as Ie,w as Ne,m as ye,v as ge,b as we,S as ke,n as Ce}from"./index-DDLsPu5_.js";import{h as U}from"./buy-qVYsiH8c.js";import{g as Ae,a as Ee,w as Se,G as Te}from"./buy-gasless-EwLKJESl.js";import"./ethers-BxoDGoYp.js";import"./index-0QSHJ5kM.js";function Pe({item:i}){const c=V(b=>{var l;return(l=b.session)==null?void 0:l.address}),{data:r}=oe(c),m=c&&r?c:"default",f=i.category==="emote";return e.jsx(ue,{id:"shop-item-preview",contractAddress:i.contractAddress,tokenId:i.tokenId??void 0,itemId:i.tokenId?void 0:i.itemId??void 0,profile:m,type:f?void 0:E.PreviewType.AVATAR,emote:f?void 0:E.PreviewEmote.FASHION,disableBackground:!0,wheelZoom:f?1.5:void 0,wheelStart:f?100:void 0,dev:O.chainId===80002,disableFadeEffect:!0},i.id)}function Re(i){return i==="male"?"♂":i==="female"?"♀":i==="unisex"?"⚥":""}function $e({title:i,items:c,activeId:r,onSelect:m,onViewAll:f}){const b=o.useRef(null),l=S(a=>a.add),g=S(a=>a.items.map(u=>u.id));if(c.length===0)return null;function s(a){l(a,"carousel"),me.success(`“${a.name}” added to your cart.`)}function j(a){const u=b.current;u&&u.scrollBy({left:a*Math.round(u.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:i}),e.jsxs("div",{className:"collection-carousel__head-right",children:[f?e.jsx("button",{className:"collection-carousel__viewall",onClick:f,children:"View all"}):null,e.jsxs("div",{className:"collection-carousel__arrows",children:[e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>j(-1),"aria-label":"Scroll left",children:"‹"}),e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>j(1),"aria-label":"Scroll right",children:"›"})]})]})]}),e.jsx("div",{className:"collection-carousel__track",ref:b,children:c.map(a=>{const u=Re(a.gender),w=a.id===r,I=a.priceCredits>0,p=g.includes(a.id);return e.jsxs("article",{className:`collection-carousel__card${w?" is-active":""}`,onClick:()=>m(a),role:"button",tabIndex:0,"aria-current":w||void 0,onKeyDown:h=>{(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),m(a))},children:[e.jsxs("div",{className:"collection-carousel__media",children:[a.thumbnail?e.jsx("img",{className:"collection-carousel__img",src:a.thumbnail,alt:a.name,loading:"lazy"}):null,I?e.jsx("button",{className:"collection-carousel__add",disabled:p,"aria-label":p?"In cart":`Add ${a.name} to cart`,title:p?"In cart":"Add to cart",onClick:h=>{h.stopPropagation(),p||s(a)},children:e.jsx("span",{className:`ico ${p?"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:a.name,children:a.name}),e.jsxs("div",{className:"collection-carousel__meta",children:[I?e.jsxs("span",{className:"collection-carousel__price",children:[e.jsx(K,{className:"collection-carousel__diamond"}),a.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:a.rarity}),u?e.jsx("span",{className:"chip chip--icon",children:u}):null]})]})]})]},a.id)})})]})}function Fe(i){return Object.values(E.Rarity).includes(i)}function Le(i){return i==="male"?"Male":i==="female"?"Female":i==="unisex"?"Unisex":null}function Be(i){const c=i,r=(c.message??"").toLowerCase();return c.code===4001||r.includes("reject")||r.includes("denied")||r.includes("cancel")?"You cancelled the request.":r.includes("insufficient")?`You don't have enough ${Y.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 Oe(){const{contractAddress:i,tokenId:c}=ne(),{state:r}=le(),m=de(),f=S(t=>t.add),b=S(t=>t.items),{session:l}=V(),{data:g}=he(l),[s,j]=o.useState(()=>r!=null&&r.item?{...r.item,tradeId:r.tradeId??r.item.tradeId}:{id:`${i}-${c}`,name:"",creator:"",contractAddress:i??"",itemId:null,category:"wearable",rarity:"common",network:"MATIC",chainId:O.chainId,thumbnail:"",priceCredits:0,gender:null,tokenId:c??void 0,tradeId:r==null?void 0:r.tradeId}),[a,u]=o.useState(!1),[w,I]=o.useState(null),[p,h]=o.useState(null),{data:N=[],isFetched:z}=F({queryKey:["collection-items",s.contractAddress],enabled:!!s.contractAddress,queryFn:()=>we(s.contractAddress,{first:20}).then(t=>t.items)}),{data:T,isLoading:D}=F({queryKey:["shop-item",s.contractAddress,c],enabled:!(r!=null&&r.item)&&!!s.contractAddress&&!!c,queryFn:()=>ke(s.contractAddress,c)});o.useEffect(()=>{T&&j(t=>t.tradeId?t:{...T})},[T]),o.useEffect(()=>{if(s.name||N.length===0)return;const t=c&&N.find(n=>n.tokenId===c||n.itemId===c)||N.find(n=>n.contractAddress===s.contractAddress);t&&j(n=>({...t,tradeId:n.tradeId??t.tradeId}))},[N]);const H=o.useMemo(()=>{const t=new Set,n=[];for(const d of N){if(d.id===s.id||s.itemId&&d.itemId===s.itemId||s.tokenId&&d.tokenId===s.tokenId)continue;const A=`${d.contractAddress}-${d.itemId??d.tokenId??d.id}`;t.has(A)||(t.add(A),n.push(d))}return n},[N,s.id,s.itemId,s.tokenId]),{data:Q,isLoading:k}=F({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 t=await Ce(s.contractAddress,s.itemId);return(t==null?void 0:t.id)??null}return null}}),v=s.tradeId??Q??void 0,x=!!v,C=o.useMemo(()=>({...s,tradeId:v,id:v??s.id}),[s,v]),P=b.some(t=>t.id===C.id);o.useEffect(()=>{I(null),h(null)},[s.id]);const B=o.useRef(null);o.useEffect(()=>{!s.name||k||B.current===s.id||(B.current=s.id,L("Shop Viewed Item",{...fe(s),for_sale:x}),_e(s))},[s.id,s.name,k,x]);function Z(t){j(t);const n=t.tokenId??t.itemId;t.contractAddress&&n&&m(`/item/${t.contractAddress}/${n}`,{replace:!0,state:{item:t}}),typeof window<"u"&&window.scrollTo({top:0,behavior:"smooth"})}function J(){!x||P||f(C,"item_detail")}async function X(){var A;if(!x||!v)return;if(!l){h("Log in to check out.");return}h(null),u(!0);let t,n="authorize",d=!1;try{I(`Buying ${s.name||"item"}…`);const _=await xe(v);if(!_)throw new Error("not for sale");const R=(A=_.received)==null?void 0:A[0],re=ve(R==null?void 0:R.amount),{credit:M,maxCreditedValue:ce}=await be(l.identity,re,v);t=M.id,n="submit";const $={trade:_,buyer:l.address,signer:l.signer,credits:[M],maxCreditedValue:ce};let y;if(Ae())try{y=await Ee($),await Se(y),d=!0}catch(W){if(!(W instanceof Te))throw W;y=await U($)}else y=await U($);t=void 0,L("Shop Completed Purchase",{...je([C]),payment_type:"credits",no_crypto_step:d,transaction_hash:y??null}),m("/success",{state:{items:[C],txHash:y}})}catch(_){G(_)||Ie(_,{flow:"buy",step:n,gasless:d}),t&&Ne(l.identity,[t]).catch(()=>{}),L(G(_)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:n,error_code:ge(_),value_usd:ye(C.priceCredits)}),h(Be(_)),I(null)}finally{u(!1)}}const ee=Fe(s.rarity)?s.rarity:E.Rarity.COMMON,[se]=E.Rarity.getGradient(ee),q=Le(s.gender),te="More from this collection",ae=x?P?"In cart":k?"Checking…":"Add to cart":"Not for sale",ie=D||!!s.contractAddress&&!z;return!s.name&&!ie?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 the shop for something else."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>m("/assets"),children:"Browse the shop"})]}):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:()=>m("/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%, ${se}33 0%, var(--media) 68%)`},children:e.jsx(Pe,{item:s})}),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","aria-label":"Add to favorites",children:e.jsx("span",{className:"ico ico-heart","aria-hidden":!0})})]}),s.creator?e.jsx(pe,{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"}),q?e.jsx("span",{className:"chip",children:q}):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"}),x?e.jsxs("div",{className:"item-detail__price",children:[e.jsx(K,{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: ",Y.symbol," ",(g==null?void 0:g.credits)??0]}):null]}),e.jsxs("div",{className:"item-detail__ctas",children:[x?e.jsx("button",{className:"btn btn--purple item-detail__cta",onClick:X,disabled:a||k,children:a?"Working…":"Buy now"}):null,e.jsxs("button",{className:"item-detail__addcart",onClick:J,disabled:!x||P||k||a,children:[e.jsx("span",{className:"ico ico-cart-solid item-detail__addcart-ico","aria-hidden":!0}),ae]})]}),w?e.jsx("p",{className:"muted item-detail__status",children:w}):null,p?e.jsx("p",{className:"error item-detail__status",children:p}):null]})]})]}),e.jsx($e,{title:te,items:H,activeId:s.id,onSelect:Z,onViewAll:s.contractAddress?()=>m(`/collection/${s.contractAddress}`):void 0})]})}export{Oe as ItemDetail,Oe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as te,r as c,j as e,u as ie}from"./react-E8ng6RF2.js";import{e as ne,i as B,c as le,k as ce,l as V,h as oe,o as de,v as S,t as T,r as G,s as H,E as Q,H as K,C as $,A as ue,I as me}from"./index-BmYqfzkI.js";import{r as he,a as U,m as pe}from"./mana-rate-XfDebPT_.js";import{S as O}from"./SkeletonCards-yV2mi4oc.js";import{L as fe}from"./LoadMore-DB6TwvRe.js";import{h as Y}from"./buy-BDt3qh_Q.js";import{g as _e,a as ye,w as be,G as ke}from"./buy-gasless-CyxaR54s.js";import{u as xe}from"./useInfiniteGrid-BM3TcyEh.js";import"./ethers-BxoDGoYp.js";import"./index-07l384vR.js";function ve(){return ne({queryKey:["mana-rate",B.chainId],queryFn:()=>he(B.chainId),staleTime:6e4,refetchInterval:6e4,retry:1})}function z(r){const u=r,o=(u.message??"").toLowerCase();return u.code===4001||o.includes("reject")||o.includes("denied")||o.includes("cancel")?"You cancelled the request.":o.includes("insufficient")?`Not enough ${$.name} — get more first.`:o.includes("not found")||o.includes("no active listing")||o.includes("404")?"This item was just sold or removed. Refreshing the market…":"Couldn't complete checkout — please try again."}function ge(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function je({listing:r,rate:u,onClose:o,onSold:k}){const{session:i}=le(),{data:n}=ce(i),x=V(),m=te(),[N,y]=c.useState("confirm"),[w,h]=c.useState("Locking today’s price…"),[_,v]=c.useState(null),[s,R]=c.useState(null),p=c.useRef(null),A=Math.ceil(U(r.manaWei,u)/10);c.useEffect(()=>{let b=!1;if(!i){y("error"),v("Log in to check out.");return}return(async()=>{try{const t=await oe(r.tradeId);if(!t)throw new Error("not found");const l=U(r.manaWei,u);if(!Number.isFinite(l)||l<=0)throw new Error("price unavailable");const{credit:d,maxCreditedValue:F,usdCents:P}=await de(i.identity,l,r.tradeId);if(b){S(i.identity,[d.id]).catch(()=>{});return}p.current=d.id,R({trade:t,credit:d,maxCreditedValue:F,usdCents:P,credits:Math.ceil(P/10)}),h("")}catch(t){if(b)return;console.error("[market] authorize failed",t),T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:G(t),value_usd:Math.round(U(r.manaWei,u))/100}),y("error"),v(z(t))}})(),()=>{b=!0,p.current&&i&&(S(i.identity,[p.current]).catch(()=>{}),p.current=null)}},[]);const g=!!s&&((n==null?void 0:n.credits)??0)<s.credits;async function L(){if(!i||!s)return;if(g){S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,m("/credits");return}y("working"),v(null);let b=!1;try{h("Confirming your purchase…");const t={trade:s.trade,buyer:i.address,signer:i.signer,credits:[s.credit],maxCreditedValue:s.maxCreditedValue};let l;if(_e())try{l=await ye(t),await be(l),b=!0}catch(d){if(!(d instanceof ke))throw d;l=await Y(t)}else l=await Y(t);p.current=null,T("Shop Completed Purchase",{items:[{item_id:r.itemId??null,contract_address:r.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:b,transaction_hash:l??null}),x.invalidateQueries({queryKey:["usd-balance"]}),m("/success",{state:{items:[ge(r)],txHash:l}})}catch(t){console.error("[market] buy now failed",t),S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:G(t),value_usd:s.usdCents/100}),x.invalidateQueries({queryKey:["usd-balance"]});const l=z(t);v(l),y("error"),/sold or removed/i.test(l)&&k()}}function C(){i&&s&&S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,o()}const j=N==="working";return e.jsxs("div",{className:"mkt-modal",role:"dialog","aria-modal":"true","aria-label":`Buy ${r.name}`,children:[e.jsx("div",{className:"mkt-modal__scrim",onClick:j?void 0:C,"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:r.thumbnail?e.jsx("img",{src:r.thumbnail,alt:""}):null}),e.jsxs("div",{children:[e.jsx("div",{className:"mkt-modal__name",title:r.name,children:r.name||"Item"}),e.jsx("span",{className:"chip chip--rarity",children:r.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(Q,{className:"mkt-modal__diamond"}),K(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(Q,{className:"mkt-modal__diamond"}),K(A)]}),e.jsx("div",{className:"mkt-modal__price-sub muted",children:w||"Locking today’s price…"})]})}),i?e.jsxs("div",{className:"mkt-modal__balance muted",children:["Your balance: ",$.symbol," ",(n==null?void 0:n.credits)??0]}):null,g?e.jsxs("p",{className:"muted mkt-modal__note",children:["You’ll need a few more ",$.name," to buy this."]}):null,w&&N==="working"?e.jsx("p",{className:"muted mkt-modal__note",children:w}):null,_?e.jsx("p",{className:"error mkt-modal__note",children:_}):null,e.jsxs("div",{className:"mkt-modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:C,disabled:j,children:"Cancel"}),e.jsx("button",{className:"btn btn--purple",onClick:L,disabled:j||!s,children:j?"Working…":g?`Get ${$.name}`:"Confirm purchase"})]})]})]})}const Ce=48,W=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]}],Ne={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"]},we=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],E=[{key:"newest",label:"Newest",server:"newest"},{key:"price-asc",label:"Price: Low to High",server:"cheapest"},{key:"price-desc",label:"Price: High to Low",server:"most_expensive"},{key:"name",label:"Name (A–Z)",server:"name"}];function Ie(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function Te(){const[r]=ie(),u=(r.get("q")??"").trim().toLowerCase(),o=V(),[k,i]=c.useState("wearable"),[n,x]=c.useState(null),[m,N]=c.useState([]),[y,w]=c.useState("newest"),[h,_]=c.useState(null),[v,s]=c.useState(null),R=n?Ne[n]:void 0,p=(E.find(a=>a.key===y)??E[0]).server,A={category:k,rarities:m.length?m:void 0,wearableCategories:R,search:u||void 0,sortBy:p},{items:g,total:L,isLoading:C,error:j,hasNextPage:b,isFetchingNextPage:t,fetchNextPage:l}=xe(["legacy-listings",A],a=>me({...A,first:Ce,skip:a})),{data:d,isError:F}=ve(),P=a=>d?pe(a.manaWei,d):null;function Z(a){i(a),x(null)}function D(a){N(f=>f.includes(a)?f.filter(q=>q!==a):[...f,a])}function J(){i("wearable"),x(null),N([]),_(null)}function M(a){_(f=>f===a?null:a)}function X(a){const f=g.find(q=>q.tradeId===a.tradeId);f&&s(f)}function ee(){o.invalidateQueries({queryKey:["legacy-listings"]})}const ae=E.find(a=>a.key===y)??E[0],I=W.find(a=>a.key===k)??W[0],re=n?`${I.label} · ${n}`:I.label,se=k!=="wearable"||!!n||m.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."})]}),F?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,h?e.jsx("div",{className:"filterbar__scrim",onClick:()=>_(null),"aria-hidden":!0}):null,e.jsxs("div",{className:"filterbar",children:[e.jsxs("div",{className:"filterbar__filters",children:[e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="section"?" is-open":""}${n||k!=="wearable"?" is-active":""}`,onClick:()=>M("section"),children:[re," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="section"?e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:W.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${k===a.key?" is-active":""}`,onClick:()=>Z(a.key),children:a.label})},a.key))}),I.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${n?"":" is-active"}`,onClick:()=>{x(null),_(null)},children:["All ",I.label]})}),I.sub.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${n===a?" is-active":""}`,onClick:()=>{x(f=>f===a?null:a),_(null)},children:a})},a))]}):null]}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="rarity"?" is-open":""}${m.length?" is-active":""}`,onClick:()=>M("rarity"),children:["Rarity ",m.length?e.jsx("span",{className:"filterbar__badge",children:m.length}):null," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:we.map(a=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:m.includes(a),onChange:()=>D(a)}),e.jsx("span",{children:a})]},a))}):null]}),se?e.jsx("button",{className:"filterbar__clear",onClick:J,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[C?"…":`${L.toLocaleString()} item${L===1?"":"s"}`,u?` for “${u}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${h==="sort"?" is-open":""}`,onClick:()=>M("sort"),children:["Sort by: ",ae.label," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:E.map(a=>e.jsx("button",{className:`filter-pop__sort${a.key===y?" is-active":""}`,onClick:()=>{w(a.key),_(null)},children:a.label},a.key))}):null]})]})]}),j?e.jsx("p",{className:"error",children:j.message}):null,e.jsx("div",{className:"grid",children:C?e.jsx(O,{count:15}):e.jsxs(e.Fragment,{children:[g.map(a=>e.jsx(ue,{item:Ie(a),mode:"market",marketPriceCredits:P(a),onBuyNow:X},a.tradeId)),t?e.jsx(O,{count:6}):null]})}),e.jsx(fe,{hasNextPage:b,isFetching:t,onLoadMore:()=>l()}),!C&&g.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null,v&&d?e.jsx(je,{listing:v,rate:d,onClose:()=>s(null),onSold:()=>{s(null),ee()}}):null]})}export{Te as Market,Te as default};
|
|
1
|
+
import{b as te,r as c,j as e,u as ie}from"./react-E8ng6RF2.js";import{e as ne,i as B,c as le,k as ce,l as V,h as oe,o as de,w as S,t as T,v as G,r as H,F as Q,I as K,C as $,A as ue,J as me}from"./index-DDLsPu5_.js";import{r as he,a as U,m as pe}from"./mana-rate-D91Nq-wO.js";import{S as O}from"./SkeletonCards-yV2mi4oc.js";import{L as fe}from"./LoadMore-DB6TwvRe.js";import{h as Y}from"./buy-qVYsiH8c.js";import{g as _e,a as ye,w as be,G as ke}from"./buy-gasless-EwLKJESl.js";import{u as xe}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";import"./index-0QSHJ5kM.js";function ve(){return ne({queryKey:["mana-rate",B.chainId],queryFn:()=>he(B.chainId),staleTime:6e4,refetchInterval:6e4,retry:1})}function z(r){const u=r,o=(u.message??"").toLowerCase();return u.code===4001||o.includes("reject")||o.includes("denied")||o.includes("cancel")?"You cancelled the request.":o.includes("insufficient")?`Not enough ${$.name} — get more first.`:o.includes("not found")||o.includes("no active listing")||o.includes("404")?"This item was just sold or removed. Refreshing the market…":"Couldn't complete checkout — please try again."}function ge(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function je({listing:r,rate:u,onClose:o,onSold:k}){const{session:i}=le(),{data:n}=ce(i),x=V(),m=te(),[N,y]=c.useState("confirm"),[w,h]=c.useState("Locking today’s price…"),[_,v]=c.useState(null),[s,R]=c.useState(null),p=c.useRef(null),E=Math.ceil(U(r.manaWei,u)/10);c.useEffect(()=>{let b=!1;if(!i){y("error"),v("Log in to check out.");return}return(async()=>{try{const t=await oe(r.tradeId);if(!t)throw new Error("not found");const l=U(r.manaWei,u);if(!Number.isFinite(l)||l<=0)throw new Error("price unavailable");const{credit:d,maxCreditedValue:F,usdCents:P}=await de(i.identity,l,r.tradeId);if(b){S(i.identity,[d.id]).catch(()=>{});return}p.current=d.id,R({trade:t,credit:d,maxCreditedValue:F,usdCents:P,credits:Math.ceil(P/10)}),h("")}catch(t){if(b)return;console.error("[market] authorize failed",t),T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:G(t),value_usd:Math.round(U(r.manaWei,u))/100}),y("error"),v(z(t))}})(),()=>{b=!0,p.current&&i&&(S(i.identity,[p.current]).catch(()=>{}),p.current=null)}},[]);const g=!!s&&((n==null?void 0:n.credits)??0)<s.credits;async function L(){if(!i||!s)return;if(g){S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,m("/credits");return}y("working"),v(null);let b=!1;try{h("Confirming your purchase…");const t={trade:s.trade,buyer:i.address,signer:i.signer,credits:[s.credit],maxCreditedValue:s.maxCreditedValue};let l;if(_e())try{l=await ye(t),await be(l),b=!0}catch(d){if(!(d instanceof ke))throw d;l=await Y(t)}else l=await Y(t);p.current=null,T("Shop Completed Purchase",{items:[{item_id:r.itemId??null,contract_address:r.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:b,transaction_hash:l??null}),x.invalidateQueries({queryKey:["usd-balance"]}),m("/success",{state:{items:[ge(r)],txHash:l}})}catch(t){console.error("[market] buy now failed",t),S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:G(t),value_usd:s.usdCents/100}),x.invalidateQueries({queryKey:["usd-balance"]});const l=z(t);v(l),y("error"),/sold or removed/i.test(l)&&k()}}function C(){i&&s&&S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,o()}const j=N==="working";return e.jsxs("div",{className:"mkt-modal",role:"dialog","aria-modal":"true","aria-label":`Buy ${r.name}`,children:[e.jsx("div",{className:"mkt-modal__scrim",onClick:j?void 0:C,"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:r.thumbnail?e.jsx("img",{src:r.thumbnail,alt:""}):null}),e.jsxs("div",{children:[e.jsx("div",{className:"mkt-modal__name",title:r.name,children:r.name||"Item"}),e.jsx("span",{className:"chip chip--rarity",children:r.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(Q,{className:"mkt-modal__diamond"}),K(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(Q,{className:"mkt-modal__diamond"}),K(E)]}),e.jsx("div",{className:"mkt-modal__price-sub muted",children:w||"Locking today’s price…"})]})}),i?e.jsxs("div",{className:"mkt-modal__balance muted",children:["Your balance: ",$.symbol," ",(n==null?void 0:n.credits)??0]}):null,g?e.jsxs("p",{className:"muted mkt-modal__note",children:["You’ll need a few more ",$.name," to buy this."]}):null,w&&N==="working"?e.jsx("p",{className:"muted mkt-modal__note",children:w}):null,_?e.jsx("p",{className:"error mkt-modal__note",children:_}):null,e.jsxs("div",{className:"mkt-modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:C,disabled:j,children:"Cancel"}),e.jsx("button",{className:"btn btn--purple",onClick:L,disabled:j||!s,children:j?"Working…":g?`Get ${$.name}`:"Confirm purchase"})]})]})]})}const Ce=48,W=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]}],Ne={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"]},we=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],A=[{key:"newest",label:"Newest",server:"newest"},{key:"price-asc",label:"Price: Low to High",server:"cheapest"},{key:"price-desc",label:"Price: High to Low",server:"most_expensive"},{key:"name",label:"Name (A–Z)",server:"name"}];function Ie(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function Te(){const[r]=ie(),u=(r.get("q")??"").trim().toLowerCase(),o=V(),[k,i]=c.useState("wearable"),[n,x]=c.useState(null),[m,N]=c.useState([]),[y,w]=c.useState("newest"),[h,_]=c.useState(null),[v,s]=c.useState(null),R=n?Ne[n]:void 0,p=(A.find(a=>a.key===y)??A[0]).server,E={category:k,rarities:m.length?m:void 0,wearableCategories:R,search:u||void 0,sortBy:p},{items:g,total:L,isLoading:C,error:j,hasNextPage:b,isFetchingNextPage:t,fetchNextPage:l}=xe(["legacy-listings",E],a=>me({...E,first:Ce,skip:a})),{data:d,isError:F}=ve(),P=a=>d?pe(a.manaWei,d):null;function Z(a){i(a),x(null)}function J(a){N(f=>f.includes(a)?f.filter(q=>q!==a):[...f,a])}function D(){i("wearable"),x(null),N([]),_(null)}function M(a){_(f=>f===a?null:a)}function X(a){const f=g.find(q=>q.tradeId===a.tradeId);f&&s(f)}function ee(){o.invalidateQueries({queryKey:["legacy-listings"]})}const ae=A.find(a=>a.key===y)??A[0],I=W.find(a=>a.key===k)??W[0],re=n?`${I.label} · ${n}`:I.label,se=k!=="wearable"||!!n||m.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."})]}),F?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,h?e.jsx("div",{className:"filterbar__scrim",onClick:()=>_(null),"aria-hidden":!0}):null,e.jsxs("div",{className:"filterbar",children:[e.jsxs("div",{className:"filterbar__filters",children:[e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="section"?" is-open":""}${n||k!=="wearable"?" is-active":""}`,onClick:()=>M("section"),children:[re," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="section"?e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:W.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${k===a.key?" is-active":""}`,onClick:()=>Z(a.key),children:a.label})},a.key))}),I.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${n?"":" is-active"}`,onClick:()=>{x(null),_(null)},children:["All ",I.label]})}),I.sub.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${n===a?" is-active":""}`,onClick:()=>{x(f=>f===a?null:a),_(null)},children:a})},a))]}):null]}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="rarity"?" is-open":""}${m.length?" is-active":""}`,onClick:()=>M("rarity"),children:["Rarity ",m.length?e.jsx("span",{className:"filterbar__badge",children:m.length}):null," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:we.map(a=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:m.includes(a),onChange:()=>J(a)}),e.jsx("span",{children:a})]},a))}):null]}),se?e.jsx("button",{className:"filterbar__clear",onClick:D,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[C?"…":`${L.toLocaleString()} item${L===1?"":"s"}`,u?` for “${u}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${h==="sort"?" is-open":""}`,onClick:()=>M("sort"),children:["Sort by: ",ae.label," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:A.map(a=>e.jsx("button",{className:`filter-pop__sort${a.key===y?" is-active":""}`,onClick:()=>{w(a.key),_(null)},children:a.label},a.key))}):null]})]})]}),j?e.jsx("p",{className:"error",children:j.message}):null,e.jsx("div",{className:"grid",children:C?e.jsx(O,{count:15}):e.jsxs(e.Fragment,{children:[g.map(a=>e.jsx(ue,{item:Ie(a),mode:"market",marketPriceCredits:P(a),onBuyNow:X},a.tradeId)),t?e.jsx(O,{count:6}):null]})}),e.jsx(fe,{hasNextPage:b,isFetching:t,onLoadMore:()=>l()}),!C&&g.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null,v&&d?e.jsx(je,{listing:v,rate:d,onClose:()=>s(null),onSold:()=>{s(null),ee()}}):null]})}export{Te as Market,Te as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as Y,r as m,j as s,L as re}from"./react-E8ng6RF2.js";import{y as z,i as W,T as le,l as G,C as j,p as ee,t as P,G as B,s as V,v as se,c as ce,e as U,U as oe,h as de,V as me}from"./index-DDLsPu5_.js";import{f as ue}from"./import-DjExR-_c.js";import{a as he,b as pe,i as be,e as ge,c as ye,d as fe}from"./buy-qVYsiH8c.js";import{s as xe}from"./wallet-kind-By432Wm8.js";import{L as _e}from"./LoadMore-DB6TwvRe.js";import{u as je}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";import"./mana-rate-D91Nq-wO.js";import"./index-0QSHJ5kM.js";const T=()=>`${W.builderServerUrl}/v1`;function ne(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 te(e,i){const t=await le(e,{method:"GET",identity:i,metadata:{}});if(!t.ok)throw new Error(`builder-server ${t.status}: ${await t.text()}`);const o=await t.json();return o.data??o}function Ne(e,i){const t=i-e;return t>0?t:0}function ve(e){var i,t,o,l,c;return((t=(i=e.data)==null?void 0:i.wearable)==null?void 0:t.category)??((l=(o=e.data)==null?void 0:o.emote)==null?void 0:l.category)??((c=e.data)==null?void 0:c.category)??e.type??"wearable"}function J(e){return`${T()}/storage/contents/${e}`}function $(e,i){if(!e)return"";if(/^https?:\/\//.test(e))return e;const t=i==null?void 0:i[e];return t?J(t):/^(ba|Qm)/.test(e)?J(e):""}async function Ie(e,i){try{const t=await fetch(`${T()}/items/${e}/${i}/contents`);if(!t.ok)return{};const o=await t.json();return o.data??o}catch{return{}}}async function ke(e,i,t){const o=$(e.thumbnail,e.contents)||$("thumbnail.png",e.contents);if(o)return o;if(i&&t){const l=await Ie(i,t);return $(e.thumbnail,l)||$("thumbnail.png",l)||$("image.png",l)}return""}async function we(e,i){const t=`${T()}/${e.toLowerCase()}/collections?is_published=true`,o=await te(t,i);return ne(o).filter(l=>l.is_published&&!!l.contract_address).map(l=>({id:l.id,name:l.name,contractAddress:l.contract_address.toLowerCase(),isPublished:l.is_published,isApproved:l.is_approved,minters:(l.minters??[]).map(c=>c.toLowerCase())}))}async function Se(e,i){const t=`${T()}/collections/${e.id}/items`,o=await te(t,i);return(await Promise.all(ne(o).map(async c=>{const k=c.rarity??"common",N=Number(c.total_supply??0)||0;let u=0;try{u=z.Rarity.getMaxSupply(k)}catch{u=0}const v=(c.contract_address??e.contractAddress).toLowerCase(),p=c.blockchain_item_id??"";return{id:c.id,collectionId:e.id,collectionName:e.name,contractAddress:v,blockchainItemId:p,name:c.name,category:ve(c),rarity:k,thumbnail:await ke(c,v,p),type:c.type??"wearable",isPublished:c.is_published??e.isPublished,isApproved:c.is_approved??e.isApproved,totalSupply:N,maxSupply:u,remainingSupply:Ne(N,u),minters:e.minters}}))).filter(Ce)}function Ce(e){return e.isPublished&&e.isApproved&&e.blockchainItemId!==""&&e.blockchainItemId!=null&&e.remainingSupply>0}async function Ae(e,i){const t=await we(e,i);return(await Promise.all(t.map(async l=>{try{return await Se(l,i)}catch{return[]}}))).flat()}const Pe=1e3*60*60*24*182;function $e(e){const i=e,t=(i.message??"").toLowerCase();return i.code===4001||t.includes("reject")||t.includes("denied")||t.includes("cancel")?"You cancelled the request.":"Couldn't list your item — please try again."}function Le({asset:e,session:i,onClose:t}){const o=G(),l=Y(),[c,k]=m.useState("10"),[N,u]=m.useState(null),[v,p]=m.useState(null),[b,w]=m.useState(!1),[x,_]=m.useState(null);async function C(){p(null);const d=Number(c);if(!Number.isInteger(d)||d<=0){p("Enter a whole number of credits");return}w(!0);try{u("Getting your item ready…"),await he({signer:i.signer,contractAddress:e.contractAddress,chainId:e.chainId}),u("Listing your item…");const I=await pe({signer:i.signer,nft:{contractAddress:e.contractAddress,tokenId:e.tokenId,network:e.network,chainId:e.chainId},usdPrice:d/10,expiresAtMs:Date.now()+Pe});u("Publishing…"),await ee(I,i.identity),u(null),_(d),P("Shop Listed Item",{item_id:e.itemId??e.tokenId??null,contract_address:e.contractAddress,price_credits:d,price_usd:d/10,listing_type:"secondary",is_primary:!1}),B.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["my-assets",i.address]})}catch(I){V(I,{flow:"list_secondary"}),P("Shop Listing Failed",{listing_type:"secondary",error_code:se(I)}),p($e(I)),u(null)}finally{w(!1)}}function f(){t(),l(`/item/${e.contractAddress}/${e.tokenId}`)}return x!==null?s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:d=>d.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:[j.symbol," ",x]})]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:f,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:d=>d.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 (",j.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:d=>k(d.target.value),disabled:b})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",j.name," (1 ",j.nameSingular," = $0.10)."]}),N?s.jsx("p",{className:"muted",children:N}):null,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,disabled:b,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:C,disabled:b,children:b?"Working…":"List for sale"})]})]})})}const Ee=1e3*60*60*24*182;function Me(e){const i=e,t=(i.message??"").toLowerCase();return i.code===4001||t.includes("reject")||t.includes("denied")||t.includes("cancel")?"You cancelled the request.":"Couldn't publish your item — please try again."}function qe({item:e,session:i,onClose:t}){const o=G(),l=Y(),[c,k]=m.useState("10"),[N,u]=m.useState(null),[v,p]=m.useState(null),[b,w]=m.useState(!1),[x,_]=m.useState(null),[C,f]=m.useState(null),d=W.chainId,I=xe(i.providerType);m.useEffect(()=>{let h=!1;return(async()=>{try{const g=await be({contractAddress:e.contractAddress,chainId:d});h||_(g)}catch{h||_(!1)}})(),()=>{h=!0}},[e.contractAddress,d]);async function L(){p(null);const h=Number(c);if(!Number.isInteger(h)||h<=0){p("Enter a whole number of credits");return}w(!0);try{x||(u("Enabling sales for this collection…"),await ge({signer:i.signer,contractAddress:e.contractAddress,chainId:d}),_(!0)),u("Publishing your item…");const g=await ye({signer:i.signer,item:{contractAddress:e.contractAddress,itemId:e.blockchainItemId,network:z.Network.MATIC,chainId:d},usdPrice:h/10,uses:e.remainingSupply,expiresAtMs:Date.now()+Ee});u("Finishing up…"),await ee(g,i.identity),u(null),f(h),P("Shop Listed Item",{item_id:e.blockchainItemId,contract_address:e.contractAddress,price_credits:h,price_usd:h/10,listing_type:"primary",is_primary:!0}),B.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["publishable-items"]}),o.invalidateQueries({queryKey:["collection-sale-state"]})}catch(g){V(g,{flow:"list_primary"}),P("Shop Listing Failed",{listing_type:"primary",error_code:se(g)}),p(Me(g)),u(null)}finally{w(!1)}}function D(){t(),l(`/item/${e.contractAddress}/${e.blockchainItemId}`)}const E=b?"Working…":x===!1?"Enable & publish":"Publish for sale";return C!==null?s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:h=>h.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:[j.symbol," ",C]})," · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:D,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:h=>h.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 (",j.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:h=>k(h.target.value),disabled:b})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",j.name," (1 ",j.nameSingular," = $0.10)."]}),x===!1&&!b?I?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."]}):x===!0&&!b?I?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,N?s.jsx("p",{className:"muted",children:N}):null,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,disabled:b,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:L,disabled:b||x===null,children:x===null?"Checking…":E})]})]})})}const Fe=48;function Z(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 F(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:W.chainId,thumbnail:e.thumbnail,priceCredits:0,gender:null}}function Be(){const{session:e,error:i,signIn:t,restore:o}=ce(),l=Y(),c=G(),[k,N]=m.useState(null),[u,v]=m.useState(null),[p,b]=m.useState(null),[w,x]=m.useState(null);function _(n){const a=n.tokenId??n.itemId??"";!n.contractAddress||!a||l(`/item/${n.contractAddress}/${a}`,{state:{item:n}})}async function C(n,a,r){if(e){x(null),b(r);try{const y=await de(n);await fe({trade:y,signer:e.signer}),B.success(`“${a}” is no longer for sale.`),await c.invalidateQueries({queryKey:["my-assets",e.address]}),await c.invalidateQueries({queryKey:["collection-sale-state"]})}catch(y){const M=y,q=(M.message??"").toLowerCase(),X=M.code===4001||q.includes("reject")||q.includes("denied");X||V(y,{flow:"remove-listing",tradeId:n}),x(X?"You cancelled the request.":"Couldn't remove the listing — please try again.")}finally{b(null)}}}m.useEffect(()=>{o()},[o]);const f=e==null?void 0:e.address,{items:d,isLoading:I,error:L,hasNextPage:D,isFetchingNextPage:E,fetchNextPage:h}=je(["my-assets",f],n=>oe(f,{first:Fe,skip:n}).then(a=>({items:a.assets,total:a.total})),{enabled:!!f}),{data:g}=U({queryKey:["importable",f],queryFn:()=>ue(f),enabled:!!f}),K=((g==null?void 0:g.creations.length)??0)+((g==null?void 0:g.owned.length)??0),{data:A,isLoading:ae,isError:ie}=U({queryKey:["publishable-items",f],queryFn:()=>Ae(f,e.identity),enabled:!!e,retry:!1}),O=m.useMemo(()=>[...new Set((A??[]).map(n=>n.contractAddress))],[A]),{data:S}=U({queryKey:["collection-sale-state",f,O],enabled:O.length>0,queryFn:async()=>{const n=await Promise.all(O.map(async r=>[r,await me(r)])),a={};for(const[r,y]of n)for(const[M,q]of Object.entries(y))a[`${r}-${M}`]=q;return a}}),R=n=>S==null?void 0:S[`${n.contractAddress}-${n.blockchainItemId}`],Q=m.useMemo(()=>(A??[]).filter(n=>{var a;return(a=R(n))==null?void 0:a.isOnSale}),[A,S]),H=m.useMemo(()=>{var a;const n=new Map;for(const r of A??[]){if((a=S==null?void 0:S[`${r.contractAddress}-${r.blockchainItemId}`])!=null&&a.isOnSale)continue;const y=n.get(r.collectionId)??{id:r.collectionId,name:r.collectionName,items:[]};y.items.push(r),n.set(r.collectionId,y)}return[...n.values()]},[A,S]);return e?s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),K>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 ",K," item",K===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."})]}),L?s.jsx("p",{className:"error",children:L.message}):null,w?s.jsx("p",{className:"error",children:w}):null,s.jsxs("div",{className:"asset-grid",children:[I?Array.from({length:8}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`sk-${a}`)):d.map(n=>s.jsxs("article",{className:"asset-card asset-card--link",onClick:()=>_(Z(n)),role:"link",tabIndex:0,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),_(Z(n)))},children:[s.jsx("div",{className:"asset-card__img",children:n.image?s.jsx("img",{src:n.image,alt:n.name}):null}),s.jsx("div",{className:"asset-card__name",title:n.name,children:n.name}),n.isOnSale?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"asset-card__listed",children:[s.jsxs("span",{className:"asset-card__price",children:[j.symbol," ",n.listingPrice]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost asset-card__remove",disabled:p===n.id||!n.tradeId,onClick:a=>{a.stopPropagation(),n.tradeId&&C(n.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]}):s.jsx("button",{className:"btn btn--sm",onClick:a=>{a.stopPropagation(),P("Shop Started Listing",{listing_type:"secondary",item_id:n.itemId??n.tokenId??null}),N(n)},children:"List for sale"})]},n.id)),E?Array.from({length:4}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`msk-${a}`)):null]}),s.jsx(_e,{hasNextPage:D,isFetching:E,onLoadMore:()=>h()}),!I&&d.length===0?s.jsx("p",{className:"muted",children:"No items in your inventory 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 ",j.name," and buyers pay with ",j.name,"."]})]}),ae?s.jsx("div",{className:"publish-grid",children:Array.from({length:4}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`pub-sk-${a}`))}):ie?s.jsx("p",{className:"publish-empty",children:"We couldn’t load your collections right now. Please try again in a moment."}):Q.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:[Q.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:Q.map(n=>{var a;return s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>_(F(n)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),_(F(n)))},children:[s.jsx("div",{className:"publish-card__img",children:n.thumbnail?s.jsx("img",{src:n.thumbnail,alt:n.name}):null}),s.jsx("div",{className:"publish-card__name",title:n.name,children:n.name}),s.jsxs("div",{className:"publish-card__listed",children:[s.jsxs("span",{className:"publish-card__price",children:[j.symbol," ",((a=R(n))==null?void 0:a.priceCredits)??0]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost publish-card__cta",disabled:p===n.id,onClick:r=>{r.stopPropagation();const y=R(n);y!=null&&y.tradeId&&C(y.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]},`${n.contractAddress}-${n.blockchainItemId}`)})})]}):null,H.map(n=>s.jsxs("div",{className:"creations-collection",children:[s.jsx("h3",{className:"creations-collection__name",children:n.name}),s.jsx("div",{className:"publish-grid",children:n.items.map(a=>s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>_(F(a)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),_(F(a)))},children:[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__meta",children:[s.jsx("span",{className:"publish-chip publish-chip--rarity",children:a.rarity}),s.jsxs("span",{className:"publish-card__supply",children:[a.remainingSupply.toLocaleString()," available"]})]}),s.jsx("button",{className:"btn btn--sm btn--purple publish-card__cta",onClick:r=>{r.stopPropagation(),P("Shop Started Listing",{listing_type:"primary",item_id:a.blockchainItemId}),v(a)},children:"Put on sale"})]},`${a.contractAddress}-${a.blockchainItemId}`))})]},n.id))]})]}),k?s.jsx(Le,{asset:k,session:e,onClose:()=>N(null)}):null,u?s.jsx(qe,{item:u,session:e,onClose:()=>v(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:()=>t(),children:"Sign in"})}),i?s.jsx("p",{className:"error",children:i}):null]})}export{Be as MyAssets};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,j as s,L as n}from"./react-E8ng6RF2.js";import{u as c,A as l}from"./index-
|
|
1
|
+
import{r as o,j as s,L as n}from"./react-E8ng6RF2.js";import{u as c,A as l}from"./index-DDLsPu5_.js";import{L as m}from"./LoadMore-DB6TwvRe.js";import"./ethers-BxoDGoYp.js";const i=24;function v(){const t=c(e=>Object.values(e.items)),[a,r]=o.useState(i);return t.length===0?s.jsxs("div",{className:"favorites-empty",children:[s.jsx("span",{className:"ico ico-heart favorites-empty__ico","aria-hidden":!0}),s.jsx("p",{className:"favorites-empty__title",children:"No favorites yet"}),s.jsx("p",{className:"muted",children:"Tap the heart on any item to save it here."}),s.jsx(n,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):s.jsxs("section",{className:"favorites",children:[s.jsxs("div",{className:"favorites__head",children:[s.jsx("h1",{children:"My Favorites"}),s.jsxs("span",{className:"favorites__count",children:[t.length," item",t.length>1?"s":""]})]}),s.jsx("div",{className:"grid",children:t.slice(0,a).map(e=>s.jsx(l,{item:e},e.id))}),s.jsx(m,{hasNextPage:a<t.length,isFetching:!1,onLoadMore:()=>r(e=>e+i)})]})}export{v as MyFavorites};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,L as o}from"./react-E8ng6RF2.js";import{c as u,d as l,e as m,C as p,g as x}from"./index-
|
|
1
|
+
import{j as e,L as o}from"./react-E8ng6RF2.js";import{c as u,d as l,e as m,C as p,g as x}from"./index-DDLsPu5_.js";import{L as _}from"./LoadMore-DB6TwvRe.js";import{u as j}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";const N=24;function g(s){try{return new Date(s).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}function f({status:s}){return s==="PENDING"?e.jsx("span",{className:"purchase__badge purchase__badge--pending",children:"Processing"}):e.jsx("span",{className:"purchase__badge purchase__badge--done",children:"Completed"})}function y({purchase:s}){const{data:a}=m({queryKey:["trade-display",s.tradeId],queryFn:()=>x(s.tradeId),enabled:!!s.tradeId,staleTime:3e5}),t=(a==null?void 0:a.name)??"Item",i=(a==null?void 0:a.thumbnail)??"",n=(a==null?void 0:a.tokenId)??(a==null?void 0:a.itemId)??"",h=a!=null&&a.contractAddress&&n?`/item/${a.contractAddress}/${n}`:void 0,c=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"purchase__thumb",children:i?e.jsx("img",{src:i,alt:t}):null}),e.jsxs("div",{className:"purchase__info",children:[e.jsx("div",{className:"purchase__name",title:t,children:t}),e.jsx("div",{className:"muted purchase__date",children:g(s.createdAt)})]}),e.jsx(f,{status:s.status}),e.jsxs("div",{className:"purchase__price",children:[p.symbol," ",s.credits]})]});return h?e.jsx(o,{className:"purchase",to:h,children:c}):e.jsx("div",{className:"purchase",children:c})}function L(){const{session:s}=u(),{items:a,isLoading:t,hasNextPage:i,isFetchingNextPage:n,fetchNextPage:h}=j(["purchases",s==null?void 0:s.address],r=>l(s.address,s.identity,{first:N,skip:r}),{enabled:!!s});if(!s)return e.jsxs("div",{className:"purchases-empty",children:[e.jsx("span",{className:"ico ico-cart purchases-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"purchases-empty__title",children:"Sign in to see your purchases"}),e.jsx("p",{className:"muted",children:"Your order history shows up here once you sign in."})]});const c=a.filter(r=>r.status!=="EXPIRED");return!t&&c.length===0?e.jsxs("div",{className:"purchases-empty",children:[e.jsx("span",{className:"ico ico-cart purchases-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"purchases-empty__title",children:"No purchases yet"}),e.jsx("p",{className:"muted",children:"When you buy something it’ll appear here."}),e.jsx(o,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):e.jsxs("section",{className:"purchases",children:[e.jsxs("div",{className:"purchases__head",children:[e.jsx("h1",{children:"My Purchases"}),t?null:e.jsxs("span",{className:"purchases__count",children:[c.length," order",c.length>1?"s":""]})]}),e.jsx("div",{className:"purchases__list",children:t?Array.from({length:4}).map((r,d)=>e.jsx("div",{className:"purchase purchase--skeleton"},d)):e.jsxs(e.Fragment,{children:[c.map(r=>e.jsx(y,{purchase:r},r.id)),n?Array.from({length:2}).map((r,d)=>e.jsx("div",{className:"purchase purchase--skeleton"},`m-${d}`)):null]})}),e.jsx(_,{hasNextPage:i,isFetching:n,onLoadMore:()=>h()})]})}export{L as MyPurchases};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as Ee,R as a,r as be,j as W}from"./react-E8ng6RF2.js";import{i as ke}from"./index-
|
|
1
|
+
import{g as Ee,R as a,r as be,j as W}from"./react-E8ng6RF2.js";import{i as ke}from"./index-DDLsPu5_.js";import"./ethers-BxoDGoYp.js";var q={exports:{}},D,V;function Pe(){if(V)return D;V=1;var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return D=n,D}var B,G;function we(){if(G)return B;G=1;var n=Pe();function e(){}function t(){}return t.resetWarningCache=e,B=function(){function r(u,s,c,y,f,S){if(S!==n){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}}r.isRequired=r;function o(){return r}var i={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:t,resetWarningCache:e};return i.PropTypes=i,i},B}var J;function Re(){return J||(J=1,q.exports=we()()),q.exports}var xe=Re();const d=Ee(xe);var re="https://js.stripe.com/v3",je=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;var Oe=function(){for(var e=document.querySelectorAll('script[src^="'.concat(re,'"]')),t=0;t<e.length;t++){var r=e[t];if(je.test(r.src))return r}return null},z=function(e){var t="",r=document.createElement("script");r.src="".concat(re).concat(t);var o=document.head||document.body;if(!o)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return o.appendChild(r),r},Te=function(e,t){!e||!e._registerWrapper||e._registerWrapper({name:"stripe-js",version:"4.6.0",startTime:t})},R=null,N=null,L=null,Ae=function(e){return function(){e(new Error("Failed to load Stripe.js"))}},Ne=function(e,t){return function(){window.Stripe?e(window.Stripe):t(new Error("Stripe.js not available"))}},Le=function(e){return R!==null?R:(R=new Promise(function(t,r){if(typeof window>"u"||typeof document>"u"){t(null);return}if(window.Stripe){t(window.Stripe);return}try{var o=Oe();if(!(o&&e)){if(!o)o=z(e);else if(o&&L!==null&&N!==null){var i;o.removeEventListener("load",L),o.removeEventListener("error",N),(i=o.parentNode)===null||i===void 0||i.removeChild(o),o=z(e)}}L=Ne(t,r),N=Ae(r),o.addEventListener("load",L),o.addEventListener("error",N)}catch(u){r(u);return}}),R.catch(function(t){return R=null,Promise.reject(t)}))},Ie=function(e,t,r){if(e===null)return null;var o=e.apply(void 0,t);return Te(o,r),o},x,ne=!1,oe=function(){return x||(x=Le(null).catch(function(e){return x=null,Promise.reject(e)}),x)};Promise.resolve().then(function(){return oe()}).catch(function(n){ne||console.warn(n)});var Ue=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];ne=!0;var o=Date.now();return oe().then(function(i){return Ie(i,t,o)})};function H(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable})),t.push.apply(t,r)}return t}function X(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?H(Object(t),!0).forEach(function(r){ie(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):H(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function I(n){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?I=function(e){return typeof e}:I=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},I(n)}function ie(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ae(n,e){return _e(n)||We(n,e)||qe(n,e)||De()}function _e(n){if(Array.isArray(n))return n}function We(n,e){var t=n&&(typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"]);if(t!=null){var r=[],o=!0,i=!1,u,s;try{for(t=t.call(n);!(o=(u=t.next()).done)&&(r.push(u.value),!(e&&r.length===e));o=!0);}catch(c){i=!0,s=c}finally{try{!o&&t.return!=null&&t.return()}finally{if(i)throw s}}return r}}function qe(n,e){if(n){if(typeof n=="string")return Q(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Q(n,e)}}function Q(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function De(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var C=function(e,t,r){var o=!!r,i=a.useRef(r);a.useEffect(function(){i.current=r},[r]),a.useEffect(function(){if(!o||!e)return function(){};var u=function(){i.current&&i.current.apply(i,arguments)};return e.on(t,u),function(){e.off(t,u)}},[o,t,e,i])},Y=function(e){var t=a.useRef(e);return a.useEffect(function(){t.current=e},[e]),t.current},w=function(e){return e!==null&&I(e)==="object"},Be=function(e){return w(e)&&typeof e.then=="function"},Me=function(e){return w(e)&&typeof e.elements=="function"&&typeof e.createToken=="function"&&typeof e.createPaymentMethod=="function"&&typeof e.confirmCardPayment=="function"},Z="[object Object]",Ye=function n(e,t){if(!w(e)||!w(t))return e===t;var r=Array.isArray(e),o=Array.isArray(t);if(r!==o)return!1;var i=Object.prototype.toString.call(e)===Z,u=Object.prototype.toString.call(t)===Z;if(i!==u)return!1;if(!i&&!r)return e===t;var s=Object.keys(e),c=Object.keys(t);if(s.length!==c.length)return!1;for(var y={},f=0;f<s.length;f+=1)y[s[f]]=!0;for(var S=0;S<c.length;S+=1)y[c[S]]=!0;var m=Object.keys(y);if(m.length!==s.length)return!1;var h=e,k=t,E=function(P){return n(h[P],k[P])};return m.every(E)},Fe=function(e,t,r){return w(e)?Object.keys(e).reduce(function(o,i){var u=!w(t)||!Ye(e[i],t[i]);return r.includes(i)?(u&&console.warn("Unsupported prop change: options.".concat(i," is not a mutable property.")),o):u?X(X({},o||{}),{},ie({},i,e[i])):o},null):null},ue="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",ee=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ue;if(e===null||Me(e))return e;throw new Error(t)},$e=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ue;if(Be(e))return{tag:"async",stripePromise:Promise.resolve(e).then(function(o){return ee(o,t)})};var r=ee(e,t);return r===null?{tag:"empty"}:{tag:"sync",stripe:r}},Ke=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:"react-stripe-js",version:"2.8.1"}),e.registerAppInfo({name:"react-stripe-js",version:"2.8.1",url:"https://stripe.com/docs/stripe-js/react"}))},ce=a.createContext(null);ce.displayName="ElementsContext";var Ve=function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e};d.any,d.object;d.func.isRequired;var se=a.createContext(null);se.displayName="CustomCheckoutSdkContext";var Ge=function(e,t){if(!e)throw new Error("Could not find CustomCheckoutProvider context; You need to wrap the part of your app that ".concat(t," in an <CustomCheckoutProvider> provider."));return e},Je=a.createContext(null);Je.displayName="CustomCheckoutContext";d.any,d.shape({clientSecret:d.string.isRequired,elementsOptions:d.object}).isRequired;var te=function(e){var t=a.useContext(se),r=a.useContext(ce);if(t&&r)throw new Error("You cannot wrap the part of your app that ".concat(e," in both <CustomCheckoutProvider> and <Elements> providers."));return t?Ge(t,e):Ve(r,e)},ze=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},p=function(e,t){var r="".concat(ze(e),"Element"),o=function(c){var y=c.id,f=c.className,S=c.options,m=S===void 0?{}:S,h=c.onBlur,k=c.onFocus,E=c.onReady,j=c.onChange,P=c.onEscape,le=c.onClick,pe=c.onLoadError,fe=c.onLoaderStart,me=c.onNetworksChange,he=c.onConfirm,ve=c.onCancel,Ce=c.onShippingAddressChange,ye=c.onShippingRateChange,O=te("mounts <".concat(r,">")),T="elements"in O?O.elements:null,A="customCheckoutSdk"in O?O.customCheckoutSdk:null,ge=a.useState(null),$=ae(ge,2),v=$[0],Se=$[1],b=a.useRef(null),U=a.useRef(null);C(v,"blur",h),C(v,"focus",k),C(v,"escape",P),C(v,"click",le),C(v,"loaderror",pe),C(v,"loaderstart",fe),C(v,"networkschange",me),C(v,"confirm",he),C(v,"cancel",ve),C(v,"shippingaddresschange",Ce),C(v,"shippingratechange",ye),C(v,"change",j);var _;E&&(e==="expressCheckout"?_=E:_=function(){E(v)}),C(v,"ready",_),a.useLayoutEffect(function(){if(b.current===null&&U.current!==null&&(T||A)){var g=null;A?g=A.createElement(e,m):T&&(g=T.create(e,m)),b.current=g,Se(g),g&&g.mount(U.current)}},[T,A,m]);var K=Y(m);return a.useEffect(function(){if(b.current){var g=Fe(m,K,["paymentRequest"]);g&&"update"in b.current&&b.current.update(g)}},[m,K]),a.useLayoutEffect(function(){return function(){if(b.current&&typeof b.current.destroy=="function")try{b.current.destroy(),b.current=null}catch{}}},[]),a.createElement("div",{id:y,className:f,ref:U})},i=function(c){te("mounts <".concat(r,">"));var y=c.id,f=c.className;return a.createElement("div",{id:y,className:f})},u=t?i:o;return u.propTypes={id:d.string,className:d.string,onChange:d.func,onBlur:d.func,onFocus:d.func,onReady:d.func,onEscape:d.func,onClick:d.func,onLoadError:d.func,onLoaderStart:d.func,onNetworksChange:d.func,onConfirm:d.func,onCancel:d.func,onShippingAddressChange:d.func,onShippingRateChange:d.func,options:d.object},u.displayName=r,u.__elementType=e,u},l=typeof window>"u",F=a.createContext(null);F.displayName="EmbeddedCheckoutProviderContext";var de=function(){var e=a.useContext(F);if(!e)throw new Error("<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>");return e},He="Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",Xe=function(e){var t=e.stripe,r=e.options,o=e.children,i=a.useMemo(function(){return $e(t,He)},[t]),u=a.useRef(null),s=a.useRef(null),c=a.useState({embeddedCheckout:null}),y=ae(c,2),f=y[0],S=y[1];a.useEffect(function(){if(!(s.current||u.current)){var k=function(j){s.current||u.current||(s.current=j,u.current=s.current.initEmbeddedCheckout(r).then(function(P){S({embeddedCheckout:P})}))};i.tag==="async"&&!s.current&&(r.clientSecret||r.fetchClientSecret)?i.stripePromise.then(function(E){E&&k(E)}):i.tag==="sync"&&!s.current&&(r.clientSecret||r.fetchClientSecret)&&k(i.stripe)}},[i,r,f,s]),a.useEffect(function(){return function(){f.embeddedCheckout?(u.current=null,f.embeddedCheckout.destroy()):u.current&&u.current.then(function(){u.current=null,f.embeddedCheckout&&f.embeddedCheckout.destroy()})}},[f.embeddedCheckout]),a.useEffect(function(){Ke(s)},[s]);var m=Y(t);a.useEffect(function(){m!==null&&m!==t&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.")},[m,t]);var h=Y(r);return a.useEffect(function(){if(h!=null){if(r==null){console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.");return}r.clientSecret===void 0&&r.fetchClientSecret===void 0&&console.warn("Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`."),h.clientSecret!=null&&r.clientSecret!==h.clientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),h.fetchClientSecret!=null&&r.fetchClientSecret!==h.fetchClientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),h.onComplete!=null&&r.onComplete!==h.onComplete&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it."),h.onShippingDetailsChange!=null&&r.onShippingDetailsChange!==h.onShippingDetailsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it."),h.onLineItemsChange!=null&&r.onLineItemsChange!==h.onLineItemsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.")}},[h,r]),a.createElement(F.Provider,{value:f},o)},Qe=function(e){var t=e.id,r=e.className,o=de(),i=o.embeddedCheckout,u=a.useRef(!1),s=a.useRef(null);return a.useLayoutEffect(function(){return!u.current&&i&&s.current!==null&&(i.mount(s.current),u.current=!0),function(){if(u.current&&i)try{i.unmount(),u.current=!1}catch{}}},[i]),a.createElement("div",{ref:s,id:t,className:r})},Ze=function(e){var t=e.id,r=e.className;return de(),a.createElement("div",{id:t,className:r})},et=l?Ze:Qe;p("auBankAccount",l);p("card",l);p("cardNumber",l);p("cardExpiry",l);p("cardCvc",l);p("fpxBank",l);p("iban",l);p("idealBank",l);p("p24Bank",l);p("epsBank",l);p("payment",l);p("expressCheckout",l);p("currencySelector",l);p("paymentRequestButton",l);p("linkAuthentication",l);p("address",l);p("shippingAddress",l);p("paymentMethodMessaging",l);p("affirmMessage",l);p("afterpayClearpayMessage",l);let M=null;function tt(){return M||(M=Ue(ke.stripePublishableKey)),M}function it({clientSecret:n,onComplete:e}){const t=be.useMemo(()=>({clientSecret:n,onComplete:e}),[n,e]);return W.jsx("div",{className:"stripe-embed",children:W.jsx(Xe,{stripe:tt(),options:t,children:W.jsx(et,{})})})}export{it as RealCheckout,it as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as s,d as _,b as x,N as j}from"./react-E8ng6RF2.js";import{c as v,W as h,
|
|
1
|
+
import{j as s,d as _,b as x,N as j}from"./react-E8ng6RF2.js";import{c as v,W as h,y as t,i as r}from"./index-DDLsPu5_.js";import{s as N}from"./wallet-kind-By432Wm8.js";import"./ethers-BxoDGoYp.js";function g(){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 b=r.chainId===80002?"https://decentraland.zone/jump":"https://decentraland.org/jump",f=r.chainId===80002?"https://amoy.polygonscan.com/tx/":"https://polygonscan.com/tx/";function k(e){return e.itemId?`urn:decentraland:${r.chainId===80002?"amoy":"matic"}:collections-v2:${e.contractAddress.toLowerCase()}:${e.itemId}`:null}function E(){const{state:e}=_(),o=x(),{session:a}=v(),n=(e==null?void 0:e.items)??[];if(n.length===0)return s.jsx(j,{to:"/assets",replace:!0});const c=n[0],d=(a==null?void 0:a.address)??"default",l=c.category==="emote",m=l?[]:n.map(k).filter(i=>!!i),u=e==null?void 0:e.txHash,p=!!u&&N(a==null?void 0:a.providerType);return s.jsxs("div",{className:"success",children:[s.jsx("div",{className:"success__preview",children:m.length>0?s.jsx(h,{profile:d,urns:m,type:t.PreviewType.AVATAR,emote:t.PreviewEmote.FASHION,background:"ecebed",dev:r.chainId===80002},c.id):s.jsx(h,{contractAddress:c.contractAddress,tokenId:c.tokenId??void 0,itemId:c.tokenId?void 0:c.itemId??void 0,profile:d,type:l?void 0:t.PreviewType.AVATAR,emote:l?void 0:t.PreviewEmote.FASHION,background:"ecebed",dev:r.chainId===80002},c.id)}),s.jsxs("div",{className:"success__panel",children:[s.jsx(g,{}),s.jsx("h1",{className:"success__title",children:"It’s yours!"}),n.length===1?s.jsxs("p",{className:"success__sub",children:[s.jsx("strong",{children:c.name})," is now in your wardrobe."]}):s.jsxs(s.Fragment,{children:[s.jsxs("p",{className:"success__sub",children:[n.length," items are now in your wardrobe."]}),s.jsx("ul",{className:"success__list",children:n.map(i=>s.jsx("li",{children:i.name},i.id))})]}),s.jsxs("div",{className:"success__links",children:[s.jsx("button",{className:"success__receipt",onClick:()=>o("/my-purchases"),children:"View order"}),p?s.jsx("a",{className:"success__receipt",href:`${f}${u}`,target:"_blank",rel:"noreferrer",children:"View transaction ↗"}):null]}),s.jsxs("div",{className:"success__actions",children:[s.jsx("a",{className:"btn btn--purple",href:b,target:"_blank",rel:"noreferrer",children:"Use it in-world"}),s.jsx("button",{className:"btn btn--ghost",onClick:()=>o("/assets"),children:"Keep shopping"})]})]})]})}export{E as Success,E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as T,j as G,R as I,S as f,k as B,E as M,l as F,W as L,C as g,B as N,b as W,m as E,A as O,n as z,d as _,g as R,o as H,e as V,i as q,p as $}from"./W3MFrameProviderSingleton-DyH4u3WJ.js";import{au as C}from"./NetworkUtil-DRBYr7tG.js";const b={getGasPriceInEther(n,o){const t=o*n;return Number(t)/1e18},getGasPriceInUSD(n,o,t){const s=b.getGasPriceInEther(o,t);return T.bigNumber(n).times(s).toNumber()},getPriceImpact({sourceTokenAmount:n,sourceTokenPriceInUSD:o,toTokenPriceInUSD:t,toTokenAmount:s}){const c=T.bigNumber(n).times(o),r=T.bigNumber(s).times(t);return c.minus(r).div(c).times(100).toNumber()},getMaxSlippage(n,o){const t=T.bigNumber(n).div(100);return T.multiply(o,t).toNumber()},getProviderFee(n,o=.0085){return T.bigNumber(n).times(o).toString()},isInsufficientNetworkTokenForGas(n,o){const t=o||"0";return T.bigNumber(n).eq(0)?!0:T.bigNumber(T.bigNumber(t)).gt(n)},isInsufficientSourceTokenForSwap(n,o,t){var r,d;const s=(d=(r=t==null?void 0:t.find(l=>l.address===o))==null?void 0:r.quantity)==null?void 0:d.numeric;return T.bigNumber(s||"0").lt(n)}},x=15e4,Q=6,m={initializing:!1,initialized:!1,loadingPrices:!1,loadingQuote:!1,loadingApprovalTransaction:!1,loadingBuildTransaction:!1,loadingTransaction:!1,switchingTokens:!1,fetchError:!1,approvalTransaction:void 0,swapTransaction:void 0,transactionError:void 0,sourceToken:void 0,sourceTokenAmount:"",sourceTokenPriceInUSD:0,toToken:void 0,toTokenAmount:"",toTokenPriceInUSD:0,networkPrice:"0",networkBalanceInUSD:"0",networkTokenSymbol:"",inputError:void 0,slippage:_.CONVERT_SLIPPAGE_TOLERANCE,tokens:void 0,popularTokens:void 0,suggestedTokens:void 0,foundTokens:void 0,myTokensWithBalance:void 0,tokensPriceMap:{},gasFee:"0",gasPriceInUSD:0,priceImpact:void 0,maxSlippage:void 0,providerFee:void 0},e=$({...m}),D={state:e,subscribe(n){return q(e,()=>n(e))},subscribeKey(n,o){return V(e,n,o)},getParams(){var i,u,p,w,h,y,A,S,P;const n=g.state.activeChain,o=((i=g.getAccountData(n))==null?void 0:i.caipAddress)??g.state.activeCaipAddress,t=W.getPlainAddress(o),s=R(),c=H.getConnectorId(g.state.activeChain);if(!t)throw new Error("No address found to swap the tokens from.");const r=!((u=e.toToken)!=null&&u.address)||!((p=e.toToken)!=null&&p.decimals),d=!((w=e.sourceToken)!=null&&w.address)||!((h=e.sourceToken)!=null&&h.decimals)||!T.bigNumber(e.sourceTokenAmount).gt(0),l=!e.sourceTokenAmount;return{networkAddress:s,fromAddress:t,fromCaipAddress:o,sourceTokenAddress:(y=e.sourceToken)==null?void 0:y.address,toTokenAddress:(A=e.toToken)==null?void 0:A.address,toTokenAmount:e.toTokenAmount,toTokenDecimals:(S=e.toToken)==null?void 0:S.decimals,sourceTokenAmount:e.sourceTokenAmount,sourceTokenDecimals:(P=e.sourceToken)==null?void 0:P.decimals,invalidToToken:r,invalidSourceToken:d,invalidSourceTokenAmount:l,availableToSwap:o&&!r&&!d&&!l,isAuthConnector:c===C.CONNECTOR_ID.AUTH}},async setSourceToken(n){if(!n){e.sourceToken=n,e.sourceTokenAmount="",e.sourceTokenPriceInUSD=0;return}e.sourceToken=n,await a.setTokenPrice(n.address,"sourceToken")},setSourceTokenAmount(n){e.sourceTokenAmount=n},async setToToken(n){if(!n){e.toToken=n,e.toTokenAmount="",e.toTokenPriceInUSD=0;return}e.toToken=n,await a.setTokenPrice(n.address,"toToken")},setToTokenAmount(n){e.toTokenAmount=n?T.toFixed(n,Q):""},async setTokenPrice(n,o){let t=e.tokensPriceMap[n]||0;t||(e.loadingPrices=!0,t=await a.getAddressPrice(n)),o==="sourceToken"?e.sourceTokenPriceInUSD=t:o==="toToken"&&(e.toTokenPriceInUSD=t),e.loadingPrices&&(e.loadingPrices=!1),a.getParams().availableToSwap&&!e.switchingTokens&&a.swapTokens()},async switchTokens(){if(!(e.initializing||!e.initialized||e.switchingTokens)){e.switchingTokens=!0;try{const n=e.toToken?{...e.toToken}:void 0,o=e.sourceToken?{...e.sourceToken}:void 0,t=n&&e.toTokenAmount===""?"1":e.toTokenAmount;a.setSourceTokenAmount(t),a.setToTokenAmount(""),await a.setSourceToken(n),await a.setToToken(o),e.switchingTokens=!1,a.swapTokens()}catch(n){throw e.switchingTokens=!1,n}}},resetState(){e.myTokensWithBalance=m.myTokensWithBalance,e.tokensPriceMap=m.tokensPriceMap,e.initialized=m.initialized,e.initializing=m.initializing,e.switchingTokens=m.switchingTokens,e.sourceToken=m.sourceToken,e.sourceTokenAmount=m.sourceTokenAmount,e.sourceTokenPriceInUSD=m.sourceTokenPriceInUSD,e.toToken=m.toToken,e.toTokenAmount=m.toTokenAmount,e.toTokenPriceInUSD=m.toTokenPriceInUSD,e.networkPrice=m.networkPrice,e.networkTokenSymbol=m.networkTokenSymbol,e.networkBalanceInUSD=m.networkBalanceInUSD,e.inputError=m.inputError},resetValues(){var t;const{networkAddress:n}=a.getParams(),o=(t=e.tokens)==null?void 0:t.find(s=>s.address===n);a.setSourceToken(o),a.setToToken(void 0)},getApprovalLoadingState(){return e.loadingApprovalTransaction},clearError(){e.transactionError=void 0},async initializeState(){if(!e.initializing){if(e.initializing=!0,!e.initialized)try{await a.fetchTokens(),e.initialized=!0}catch{e.initialized=!1,f.showError("Failed to initialize swap"),I.goBack()}e.initializing=!1}},async fetchTokens(){var t;const{networkAddress:n}=a.getParams();await a.getNetworkTokenPrice(),await a.getMyTokensWithBalance();const o=(t=e.myTokensWithBalance)==null?void 0:t.find(s=>s.address===n);o&&(e.networkTokenSymbol=o.symbol,a.setSourceToken(o),a.setSourceTokenAmount("0"))},async getTokenList(){var o,t;const n=(o=g.state.activeCaipNetwork)==null?void 0:o.caipNetworkId;if(!(e.caipNetworkId===n&&e.tokens))try{e.tokensLoading=!0;const s=await E.getTokenList(n);e.tokens=s,e.caipNetworkId=n,e.popularTokens=s.sort((i,u)=>i.symbol<u.symbol?-1:i.symbol>u.symbol?1:0);const r=(n&&((t=_.SUGGESTED_TOKENS_BY_CHAIN)==null?void 0:t[n])||[]).map(i=>s.find(u=>u.symbol===i)).filter(i=>!!i),l=(_.SWAP_SUGGESTED_TOKENS||[]).map(i=>s.find(u=>u.symbol===i)).filter(i=>!!i).filter(i=>!r.some(u=>u.address===i.address));e.suggestedTokens=[...r,...l]}catch{e.tokens=[],e.popularTokens=[],e.suggestedTokens=[]}finally{e.tokensLoading=!1}},async getAddressPrice(n){var i,u;const o=e.tokensPriceMap[n];if(o)return o;const t=await N.fetchTokenPrice({addresses:[n]}),s=(t==null?void 0:t.fungibles)||[],c=[...e.tokens||[],...e.myTokensWithBalance||[]],r=(i=c==null?void 0:c.find(p=>p.address===n))==null?void 0:i.symbol,d=((u=s.find(p=>p.symbol.toLowerCase()===(r==null?void 0:r.toLowerCase())))==null?void 0:u.price)||0,l=parseFloat(d.toString());return e.tokensPriceMap[n]=l,l},async getNetworkTokenPrice(){var c;const{networkAddress:n}=a.getParams(),t=(c=(await N.fetchTokenPrice({addresses:[n]}).catch(()=>(f.showError("Failed to fetch network token price"),{fungibles:[]}))).fungibles)==null?void 0:c[0],s=(t==null?void 0:t.price.toString())||"0";e.tokensPriceMap[n]=parseFloat(s),e.networkTokenSymbol=(t==null?void 0:t.symbol)||"",e.networkPrice=s},async getMyTokensWithBalance(n){var s;const o=await z.getMyTokensWithBalance({forceUpdate:n,caipNetwork:g.state.activeCaipNetwork,address:(s=g.getAccountData())==null?void 0:s.address}),t=E.mapBalancesToSwapTokens(o);t&&(await a.getInitialGasPrice(),a.setBalances(t))},setBalances(n){const{networkAddress:o}=a.getParams(),t=g.state.activeCaipNetwork;if(!t)return;const s=n.find(c=>c.address===o);n.forEach(c=>{e.tokensPriceMap[c.address]=c.price||0}),e.myTokensWithBalance=n.filter(c=>c.address.startsWith(t.caipNetworkId)),e.networkBalanceInUSD=s?T.multiply(s.quantity.numeric,s.price).toString():"0"},async getInitialGasPrice(){var o,t;const n=await E.fetchGasPrice();if(!n)return{gasPrice:null,gasPriceInUSD:null};switch((t=(o=g.state)==null?void 0:o.activeCaipNetwork)==null?void 0:t.chainNamespace){case C.CHAIN.SOLANA:return e.gasFee=n.standard??"0",e.gasPriceInUSD=T.multiply(n.standard,e.networkPrice).div(1e9).toNumber(),{gasPrice:BigInt(e.gasFee),gasPriceInUSD:Number(e.gasPriceInUSD)};case C.CHAIN.EVM:default:const s=n.standard??"0",c=BigInt(s),r=BigInt(x),d=b.getGasPriceInUSD(e.networkPrice,r,c);return e.gasFee=s,e.gasPriceInUSD=d,{gasPrice:c,gasPriceInUSD:d}}},async swapTokens(){var r,d,l;const n=(r=g.getAccountData())==null?void 0:r.address,o=e.sourceToken,t=e.toToken,s=T.bigNumber(e.sourceTokenAmount).gt(0);if(s||a.setToTokenAmount(""),!t||!o||e.loadingPrices||!s||!n)return;e.loadingQuote=!0;const c=T.bigNumber(e.sourceTokenAmount).times(10**o.decimals).round(0).toFixed(0);try{const i=await N.fetchSwapQuote({userAddress:n,from:o.address,to:t.address,gasPrice:e.gasFee,amount:c.toString()});e.loadingQuote=!1;const u=(l=(d=i==null?void 0:i.quotes)==null?void 0:d[0])==null?void 0:l.toAmount;if(!u){O.open({displayMessage:"Incorrect amount",debugMessage:"Please enter a valid amount"},"error");return}const p=T.bigNumber(u).div(10**t.decimals).toString();a.setToTokenAmount(p),a.hasInsufficientToken(e.sourceTokenAmount,o.address)?e.inputError="Insufficient balance":(e.inputError=void 0,a.setTransactionDetails())}catch(i){const u=await E.handleSwapError(i);e.loadingQuote=!1,e.inputError=u||"Insufficient balance"}},async getTransaction(){const{fromCaipAddress:n,availableToSwap:o}=a.getParams(),t=e.sourceToken,s=e.toToken;if(!(!n||!o||!t||!s||e.loadingQuote))try{e.loadingBuildTransaction=!0;const c=await E.fetchSwapAllowance({userAddress:n,tokenAddress:t.address,sourceTokenAmount:e.sourceTokenAmount,sourceTokenDecimals:t.decimals});let r;return c?r=await a.createSwapTransaction():r=await a.createAllowanceTransaction(),e.loadingBuildTransaction=!1,e.fetchError=!1,r}catch{I.goBack(),f.showError("Failed to check allowance"),e.loadingBuildTransaction=!1,e.approvalTransaction=void 0,e.swapTransaction=void 0,e.fetchError=!0;return}},async createAllowanceTransaction(){const{fromCaipAddress:n,sourceTokenAddress:o,toTokenAddress:t}=a.getParams();if(!(!n||!t)){if(!o)throw new Error("createAllowanceTransaction - No source token address found.");try{const s=await N.generateApproveCalldata({from:o,to:t,userAddress:n}),c=W.getPlainAddress(s.tx.from);if(!c)throw new Error("SwapController:createAllowanceTransaction - address is required");const r={data:s.tx.data,to:c,gasPrice:BigInt(s.tx.eip155.gasPrice),value:BigInt(s.tx.value),toAmount:e.toTokenAmount};return e.swapTransaction=void 0,e.approvalTransaction={data:r.data,to:r.to,gasPrice:r.gasPrice,value:r.value,toAmount:r.toAmount},{data:r.data,to:r.to,gasPrice:r.gasPrice,value:r.value,toAmount:r.toAmount}}catch{I.goBack(),f.showError("Failed to create approval transaction"),e.approvalTransaction=void 0,e.swapTransaction=void 0,e.fetchError=!0;return}}},async createSwapTransaction(){var d,l;const{networkAddress:n,fromCaipAddress:o,sourceTokenAmount:t}=a.getParams(),s=e.sourceToken,c=e.toToken;if(!o||!t||!s||!c)return;let r=(d=B.parseUnits(t,s.decimals))==null?void 0:d.toString();try{const i=s.address===n;let u=await N.generateSwapCalldata({userAddress:o,from:s.address,to:c.address,amount:r,disableEstimate:!0}),p=BigInt(u.tx.eip155.gas),w=BigInt(u.tx.eip155.gasPrice);if(i&&r){const A=(l=e.myTokensWithBalance)==null?void 0:l.find(S=>S.address===n);if(A){const S=parseInt(A.quantity.decimals,10),P=B.parseUnits(A.quantity.numeric,S)??0n,v=p*w;if(BigInt(r)+v>P){const k=P>v?P-v:0n;k>0n&&(u=await N.generateSwapCalldata({userAddress:o,from:s.address,to:c.address,amount:k.toString(),disableEstimate:!0}),r=k.toString(),p=BigInt(u.tx.eip155.gas),w=BigInt(u.tx.eip155.gasPrice))}}}const h=W.getPlainAddress(u.tx.to);if(!h)throw new Error("SwapController:createSwapTransaction - address is required");const y={data:u.tx.data,to:h,gas:p,gasPrice:w,value:BigInt(i?r??"0":"0"),toAmount:e.toTokenAmount};return e.gasPriceInUSD=b.getGasPriceInUSD(e.networkPrice,p,w),e.approvalTransaction=void 0,e.swapTransaction=y,y}catch{I.goBack(),f.showError("Failed to create transaction"),e.approvalTransaction=void 0,e.swapTransaction=void 0,e.fetchError=!0;return}},onEmbeddedWalletApprovalSuccess(){f.showLoading("Approve limit increase in your wallet"),I.replace("SwapPreview")},async sendTransactionForApproval(n){var c,r,d;const{fromAddress:o,isAuthConnector:t}=a.getParams();e.loadingApprovalTransaction=!0,t?I.pushTransactionStack({onSuccess:a.onEmbeddedWalletApprovalSuccess}):f.showLoading("Approve limit increase in your wallet");try{await B.sendTransaction({address:o,to:n.to,data:n.data,value:n.value,chainNamespace:C.CHAIN.EVM}),await a.swapTokens(),await a.getTransaction(),e.approvalTransaction=void 0,e.loadingApprovalTransaction=!1}catch(l){const i=l;e.transactionError=i==null?void 0:i.displayMessage,e.loadingApprovalTransaction=!1,f.showError((i==null?void 0:i.displayMessage)||"Transaction error"),M.sendEvent({type:"track",event:"SWAP_APPROVAL_ERROR",properties:{message:(i==null?void 0:i.displayMessage)||(i==null?void 0:i.message)||"Unknown",network:((c=g.state.activeCaipNetwork)==null?void 0:c.caipNetworkId)||"",swapFromToken:((r=a.state.sourceToken)==null?void 0:r.symbol)||"",swapToToken:((d=a.state.toToken)==null?void 0:d.symbol)||"",swapFromAmount:a.state.sourceTokenAmount||"",swapToAmount:a.state.toTokenAmount||"",isSmartAccount:F(C.CHAIN.EVM)===L.ACCOUNT_TYPES.SMART_ACCOUNT}})}},async sendTransactionForSwap(n){var d,l,i,u,p,w,h,y,A,S,P,v;if(!n)return;const{fromAddress:o,toTokenAmount:t,isAuthConnector:s}=a.getParams();e.loadingTransaction=!0;const c=`Swapping ${(d=e.sourceToken)==null?void 0:d.symbol} to ${T.formatNumberToLocalString(t,3)} ${(l=e.toToken)==null?void 0:l.symbol}`,r=`Swapped ${(i=e.sourceToken)==null?void 0:i.symbol} to ${T.formatNumberToLocalString(t,3)} ${(u=e.toToken)==null?void 0:u.symbol}`;s?I.pushTransactionStack({onSuccess(){I.replace("Account"),f.showLoading(c),D.resetState()}}):f.showLoading("Confirm transaction in your wallet");try{const U=[(p=e.sourceToken)==null?void 0:p.address,(w=e.toToken)==null?void 0:w.address].join(","),k=await B.sendTransaction({address:o,to:n.to,data:n.data,value:n.value,chainNamespace:C.CHAIN.EVM});return e.loadingTransaction=!1,f.showSuccess(r),M.sendEvent({type:"track",event:"SWAP_SUCCESS",properties:{network:((h=g.state.activeCaipNetwork)==null?void 0:h.caipNetworkId)||"",swapFromToken:((y=a.state.sourceToken)==null?void 0:y.symbol)||"",swapToToken:((A=a.state.toToken)==null?void 0:A.symbol)||"",swapFromAmount:a.state.sourceTokenAmount||"",swapToAmount:a.state.toTokenAmount||"",isSmartAccount:F(C.CHAIN.EVM)===L.ACCOUNT_TYPES.SMART_ACCOUNT}}),D.resetState(),s||I.replace("Account"),D.getMyTokensWithBalance(U),k}catch(U){const k=U;e.transactionError=k==null?void 0:k.displayMessage,e.loadingTransaction=!1,f.showError((k==null?void 0:k.displayMessage)||"Transaction error"),M.sendEvent({type:"track",event:"SWAP_ERROR",properties:{message:(k==null?void 0:k.displayMessage)||(k==null?void 0:k.message)||"Unknown",network:((S=g.state.activeCaipNetwork)==null?void 0:S.caipNetworkId)||"",swapFromToken:((P=a.state.sourceToken)==null?void 0:P.symbol)||"",swapToToken:((v=a.state.toToken)==null?void 0:v.symbol)||"",swapFromAmount:a.state.sourceTokenAmount||"",swapToAmount:a.state.toTokenAmount||"",isSmartAccount:F(C.CHAIN.EVM)===L.ACCOUNT_TYPES.SMART_ACCOUNT}});return}},hasInsufficientToken(n,o){return b.isInsufficientSourceTokenForSwap(n,o,e.myTokensWithBalance)},setTransactionDetails(){const{toTokenAddress:n,toTokenDecimals:o}=a.getParams();!n||!o||(e.gasPriceInUSD=b.getGasPriceInUSD(e.networkPrice,BigInt(e.gasFee),BigInt(x)),e.priceImpact=b.getPriceImpact({sourceTokenAmount:e.sourceTokenAmount,sourceTokenPriceInUSD:e.sourceTokenPriceInUSD,toTokenPriceInUSD:e.toTokenPriceInUSD,toTokenAmount:e.toTokenAmount}),e.maxSlippage=b.getMaxSlippage(e.slippage,e.toTokenAmount),e.providerFee=b.getProviderFee(e.sourceTokenAmount))}},a=G(D);export{a as S};
|
|
1
|
+
import{N as T,j as G,R as I,S as f,k as B,E as M,l as F,W as L,C as g,B as N,b as W,m as E,A as O,n as z,d as _,g as R,o as H,e as V,i as q,p as $}from"./W3MFrameProviderSingleton-DBf03HGk.js";import{au as C}from"./NetworkUtil-DRBYr7tG.js";const b={getGasPriceInEther(n,o){const t=o*n;return Number(t)/1e18},getGasPriceInUSD(n,o,t){const s=b.getGasPriceInEther(o,t);return T.bigNumber(n).times(s).toNumber()},getPriceImpact({sourceTokenAmount:n,sourceTokenPriceInUSD:o,toTokenPriceInUSD:t,toTokenAmount:s}){const c=T.bigNumber(n).times(o),r=T.bigNumber(s).times(t);return c.minus(r).div(c).times(100).toNumber()},getMaxSlippage(n,o){const t=T.bigNumber(n).div(100);return T.multiply(o,t).toNumber()},getProviderFee(n,o=.0085){return T.bigNumber(n).times(o).toString()},isInsufficientNetworkTokenForGas(n,o){const t=o||"0";return T.bigNumber(n).eq(0)?!0:T.bigNumber(T.bigNumber(t)).gt(n)},isInsufficientSourceTokenForSwap(n,o,t){var r,d;const s=(d=(r=t==null?void 0:t.find(l=>l.address===o))==null?void 0:r.quantity)==null?void 0:d.numeric;return T.bigNumber(s||"0").lt(n)}},x=15e4,Q=6,m={initializing:!1,initialized:!1,loadingPrices:!1,loadingQuote:!1,loadingApprovalTransaction:!1,loadingBuildTransaction:!1,loadingTransaction:!1,switchingTokens:!1,fetchError:!1,approvalTransaction:void 0,swapTransaction:void 0,transactionError:void 0,sourceToken:void 0,sourceTokenAmount:"",sourceTokenPriceInUSD:0,toToken:void 0,toTokenAmount:"",toTokenPriceInUSD:0,networkPrice:"0",networkBalanceInUSD:"0",networkTokenSymbol:"",inputError:void 0,slippage:_.CONVERT_SLIPPAGE_TOLERANCE,tokens:void 0,popularTokens:void 0,suggestedTokens:void 0,foundTokens:void 0,myTokensWithBalance:void 0,tokensPriceMap:{},gasFee:"0",gasPriceInUSD:0,priceImpact:void 0,maxSlippage:void 0,providerFee:void 0},e=$({...m}),D={state:e,subscribe(n){return q(e,()=>n(e))},subscribeKey(n,o){return V(e,n,o)},getParams(){var i,u,p,w,h,y,A,S,P;const n=g.state.activeChain,o=((i=g.getAccountData(n))==null?void 0:i.caipAddress)??g.state.activeCaipAddress,t=W.getPlainAddress(o),s=R(),c=H.getConnectorId(g.state.activeChain);if(!t)throw new Error("No address found to swap the tokens from.");const r=!((u=e.toToken)!=null&&u.address)||!((p=e.toToken)!=null&&p.decimals),d=!((w=e.sourceToken)!=null&&w.address)||!((h=e.sourceToken)!=null&&h.decimals)||!T.bigNumber(e.sourceTokenAmount).gt(0),l=!e.sourceTokenAmount;return{networkAddress:s,fromAddress:t,fromCaipAddress:o,sourceTokenAddress:(y=e.sourceToken)==null?void 0:y.address,toTokenAddress:(A=e.toToken)==null?void 0:A.address,toTokenAmount:e.toTokenAmount,toTokenDecimals:(S=e.toToken)==null?void 0:S.decimals,sourceTokenAmount:e.sourceTokenAmount,sourceTokenDecimals:(P=e.sourceToken)==null?void 0:P.decimals,invalidToToken:r,invalidSourceToken:d,invalidSourceTokenAmount:l,availableToSwap:o&&!r&&!d&&!l,isAuthConnector:c===C.CONNECTOR_ID.AUTH}},async setSourceToken(n){if(!n){e.sourceToken=n,e.sourceTokenAmount="",e.sourceTokenPriceInUSD=0;return}e.sourceToken=n,await a.setTokenPrice(n.address,"sourceToken")},setSourceTokenAmount(n){e.sourceTokenAmount=n},async setToToken(n){if(!n){e.toToken=n,e.toTokenAmount="",e.toTokenPriceInUSD=0;return}e.toToken=n,await a.setTokenPrice(n.address,"toToken")},setToTokenAmount(n){e.toTokenAmount=n?T.toFixed(n,Q):""},async setTokenPrice(n,o){let t=e.tokensPriceMap[n]||0;t||(e.loadingPrices=!0,t=await a.getAddressPrice(n)),o==="sourceToken"?e.sourceTokenPriceInUSD=t:o==="toToken"&&(e.toTokenPriceInUSD=t),e.loadingPrices&&(e.loadingPrices=!1),a.getParams().availableToSwap&&!e.switchingTokens&&a.swapTokens()},async switchTokens(){if(!(e.initializing||!e.initialized||e.switchingTokens)){e.switchingTokens=!0;try{const n=e.toToken?{...e.toToken}:void 0,o=e.sourceToken?{...e.sourceToken}:void 0,t=n&&e.toTokenAmount===""?"1":e.toTokenAmount;a.setSourceTokenAmount(t),a.setToTokenAmount(""),await a.setSourceToken(n),await a.setToToken(o),e.switchingTokens=!1,a.swapTokens()}catch(n){throw e.switchingTokens=!1,n}}},resetState(){e.myTokensWithBalance=m.myTokensWithBalance,e.tokensPriceMap=m.tokensPriceMap,e.initialized=m.initialized,e.initializing=m.initializing,e.switchingTokens=m.switchingTokens,e.sourceToken=m.sourceToken,e.sourceTokenAmount=m.sourceTokenAmount,e.sourceTokenPriceInUSD=m.sourceTokenPriceInUSD,e.toToken=m.toToken,e.toTokenAmount=m.toTokenAmount,e.toTokenPriceInUSD=m.toTokenPriceInUSD,e.networkPrice=m.networkPrice,e.networkTokenSymbol=m.networkTokenSymbol,e.networkBalanceInUSD=m.networkBalanceInUSD,e.inputError=m.inputError},resetValues(){var t;const{networkAddress:n}=a.getParams(),o=(t=e.tokens)==null?void 0:t.find(s=>s.address===n);a.setSourceToken(o),a.setToToken(void 0)},getApprovalLoadingState(){return e.loadingApprovalTransaction},clearError(){e.transactionError=void 0},async initializeState(){if(!e.initializing){if(e.initializing=!0,!e.initialized)try{await a.fetchTokens(),e.initialized=!0}catch{e.initialized=!1,f.showError("Failed to initialize swap"),I.goBack()}e.initializing=!1}},async fetchTokens(){var t;const{networkAddress:n}=a.getParams();await a.getNetworkTokenPrice(),await a.getMyTokensWithBalance();const o=(t=e.myTokensWithBalance)==null?void 0:t.find(s=>s.address===n);o&&(e.networkTokenSymbol=o.symbol,a.setSourceToken(o),a.setSourceTokenAmount("0"))},async getTokenList(){var o,t;const n=(o=g.state.activeCaipNetwork)==null?void 0:o.caipNetworkId;if(!(e.caipNetworkId===n&&e.tokens))try{e.tokensLoading=!0;const s=await E.getTokenList(n);e.tokens=s,e.caipNetworkId=n,e.popularTokens=s.sort((i,u)=>i.symbol<u.symbol?-1:i.symbol>u.symbol?1:0);const r=(n&&((t=_.SUGGESTED_TOKENS_BY_CHAIN)==null?void 0:t[n])||[]).map(i=>s.find(u=>u.symbol===i)).filter(i=>!!i),l=(_.SWAP_SUGGESTED_TOKENS||[]).map(i=>s.find(u=>u.symbol===i)).filter(i=>!!i).filter(i=>!r.some(u=>u.address===i.address));e.suggestedTokens=[...r,...l]}catch{e.tokens=[],e.popularTokens=[],e.suggestedTokens=[]}finally{e.tokensLoading=!1}},async getAddressPrice(n){var i,u;const o=e.tokensPriceMap[n];if(o)return o;const t=await N.fetchTokenPrice({addresses:[n]}),s=(t==null?void 0:t.fungibles)||[],c=[...e.tokens||[],...e.myTokensWithBalance||[]],r=(i=c==null?void 0:c.find(p=>p.address===n))==null?void 0:i.symbol,d=((u=s.find(p=>p.symbol.toLowerCase()===(r==null?void 0:r.toLowerCase())))==null?void 0:u.price)||0,l=parseFloat(d.toString());return e.tokensPriceMap[n]=l,l},async getNetworkTokenPrice(){var c;const{networkAddress:n}=a.getParams(),t=(c=(await N.fetchTokenPrice({addresses:[n]}).catch(()=>(f.showError("Failed to fetch network token price"),{fungibles:[]}))).fungibles)==null?void 0:c[0],s=(t==null?void 0:t.price.toString())||"0";e.tokensPriceMap[n]=parseFloat(s),e.networkTokenSymbol=(t==null?void 0:t.symbol)||"",e.networkPrice=s},async getMyTokensWithBalance(n){var s;const o=await z.getMyTokensWithBalance({forceUpdate:n,caipNetwork:g.state.activeCaipNetwork,address:(s=g.getAccountData())==null?void 0:s.address}),t=E.mapBalancesToSwapTokens(o);t&&(await a.getInitialGasPrice(),a.setBalances(t))},setBalances(n){const{networkAddress:o}=a.getParams(),t=g.state.activeCaipNetwork;if(!t)return;const s=n.find(c=>c.address===o);n.forEach(c=>{e.tokensPriceMap[c.address]=c.price||0}),e.myTokensWithBalance=n.filter(c=>c.address.startsWith(t.caipNetworkId)),e.networkBalanceInUSD=s?T.multiply(s.quantity.numeric,s.price).toString():"0"},async getInitialGasPrice(){var o,t;const n=await E.fetchGasPrice();if(!n)return{gasPrice:null,gasPriceInUSD:null};switch((t=(o=g.state)==null?void 0:o.activeCaipNetwork)==null?void 0:t.chainNamespace){case C.CHAIN.SOLANA:return e.gasFee=n.standard??"0",e.gasPriceInUSD=T.multiply(n.standard,e.networkPrice).div(1e9).toNumber(),{gasPrice:BigInt(e.gasFee),gasPriceInUSD:Number(e.gasPriceInUSD)};case C.CHAIN.EVM:default:const s=n.standard??"0",c=BigInt(s),r=BigInt(x),d=b.getGasPriceInUSD(e.networkPrice,r,c);return e.gasFee=s,e.gasPriceInUSD=d,{gasPrice:c,gasPriceInUSD:d}}},async swapTokens(){var r,d,l;const n=(r=g.getAccountData())==null?void 0:r.address,o=e.sourceToken,t=e.toToken,s=T.bigNumber(e.sourceTokenAmount).gt(0);if(s||a.setToTokenAmount(""),!t||!o||e.loadingPrices||!s||!n)return;e.loadingQuote=!0;const c=T.bigNumber(e.sourceTokenAmount).times(10**o.decimals).round(0).toFixed(0);try{const i=await N.fetchSwapQuote({userAddress:n,from:o.address,to:t.address,gasPrice:e.gasFee,amount:c.toString()});e.loadingQuote=!1;const u=(l=(d=i==null?void 0:i.quotes)==null?void 0:d[0])==null?void 0:l.toAmount;if(!u){O.open({displayMessage:"Incorrect amount",debugMessage:"Please enter a valid amount"},"error");return}const p=T.bigNumber(u).div(10**t.decimals).toString();a.setToTokenAmount(p),a.hasInsufficientToken(e.sourceTokenAmount,o.address)?e.inputError="Insufficient balance":(e.inputError=void 0,a.setTransactionDetails())}catch(i){const u=await E.handleSwapError(i);e.loadingQuote=!1,e.inputError=u||"Insufficient balance"}},async getTransaction(){const{fromCaipAddress:n,availableToSwap:o}=a.getParams(),t=e.sourceToken,s=e.toToken;if(!(!n||!o||!t||!s||e.loadingQuote))try{e.loadingBuildTransaction=!0;const c=await E.fetchSwapAllowance({userAddress:n,tokenAddress:t.address,sourceTokenAmount:e.sourceTokenAmount,sourceTokenDecimals:t.decimals});let r;return c?r=await a.createSwapTransaction():r=await a.createAllowanceTransaction(),e.loadingBuildTransaction=!1,e.fetchError=!1,r}catch{I.goBack(),f.showError("Failed to check allowance"),e.loadingBuildTransaction=!1,e.approvalTransaction=void 0,e.swapTransaction=void 0,e.fetchError=!0;return}},async createAllowanceTransaction(){const{fromCaipAddress:n,sourceTokenAddress:o,toTokenAddress:t}=a.getParams();if(!(!n||!t)){if(!o)throw new Error("createAllowanceTransaction - No source token address found.");try{const s=await N.generateApproveCalldata({from:o,to:t,userAddress:n}),c=W.getPlainAddress(s.tx.from);if(!c)throw new Error("SwapController:createAllowanceTransaction - address is required");const r={data:s.tx.data,to:c,gasPrice:BigInt(s.tx.eip155.gasPrice),value:BigInt(s.tx.value),toAmount:e.toTokenAmount};return e.swapTransaction=void 0,e.approvalTransaction={data:r.data,to:r.to,gasPrice:r.gasPrice,value:r.value,toAmount:r.toAmount},{data:r.data,to:r.to,gasPrice:r.gasPrice,value:r.value,toAmount:r.toAmount}}catch{I.goBack(),f.showError("Failed to create approval transaction"),e.approvalTransaction=void 0,e.swapTransaction=void 0,e.fetchError=!0;return}}},async createSwapTransaction(){var d,l;const{networkAddress:n,fromCaipAddress:o,sourceTokenAmount:t}=a.getParams(),s=e.sourceToken,c=e.toToken;if(!o||!t||!s||!c)return;let r=(d=B.parseUnits(t,s.decimals))==null?void 0:d.toString();try{const i=s.address===n;let u=await N.generateSwapCalldata({userAddress:o,from:s.address,to:c.address,amount:r,disableEstimate:!0}),p=BigInt(u.tx.eip155.gas),w=BigInt(u.tx.eip155.gasPrice);if(i&&r){const A=(l=e.myTokensWithBalance)==null?void 0:l.find(S=>S.address===n);if(A){const S=parseInt(A.quantity.decimals,10),P=B.parseUnits(A.quantity.numeric,S)??0n,v=p*w;if(BigInt(r)+v>P){const k=P>v?P-v:0n;k>0n&&(u=await N.generateSwapCalldata({userAddress:o,from:s.address,to:c.address,amount:k.toString(),disableEstimate:!0}),r=k.toString(),p=BigInt(u.tx.eip155.gas),w=BigInt(u.tx.eip155.gasPrice))}}}const h=W.getPlainAddress(u.tx.to);if(!h)throw new Error("SwapController:createSwapTransaction - address is required");const y={data:u.tx.data,to:h,gas:p,gasPrice:w,value:BigInt(i?r??"0":"0"),toAmount:e.toTokenAmount};return e.gasPriceInUSD=b.getGasPriceInUSD(e.networkPrice,p,w),e.approvalTransaction=void 0,e.swapTransaction=y,y}catch{I.goBack(),f.showError("Failed to create transaction"),e.approvalTransaction=void 0,e.swapTransaction=void 0,e.fetchError=!0;return}},onEmbeddedWalletApprovalSuccess(){f.showLoading("Approve limit increase in your wallet"),I.replace("SwapPreview")},async sendTransactionForApproval(n){var c,r,d;const{fromAddress:o,isAuthConnector:t}=a.getParams();e.loadingApprovalTransaction=!0,t?I.pushTransactionStack({onSuccess:a.onEmbeddedWalletApprovalSuccess}):f.showLoading("Approve limit increase in your wallet");try{await B.sendTransaction({address:o,to:n.to,data:n.data,value:n.value,chainNamespace:C.CHAIN.EVM}),await a.swapTokens(),await a.getTransaction(),e.approvalTransaction=void 0,e.loadingApprovalTransaction=!1}catch(l){const i=l;e.transactionError=i==null?void 0:i.displayMessage,e.loadingApprovalTransaction=!1,f.showError((i==null?void 0:i.displayMessage)||"Transaction error"),M.sendEvent({type:"track",event:"SWAP_APPROVAL_ERROR",properties:{message:(i==null?void 0:i.displayMessage)||(i==null?void 0:i.message)||"Unknown",network:((c=g.state.activeCaipNetwork)==null?void 0:c.caipNetworkId)||"",swapFromToken:((r=a.state.sourceToken)==null?void 0:r.symbol)||"",swapToToken:((d=a.state.toToken)==null?void 0:d.symbol)||"",swapFromAmount:a.state.sourceTokenAmount||"",swapToAmount:a.state.toTokenAmount||"",isSmartAccount:F(C.CHAIN.EVM)===L.ACCOUNT_TYPES.SMART_ACCOUNT}})}},async sendTransactionForSwap(n){var d,l,i,u,p,w,h,y,A,S,P,v;if(!n)return;const{fromAddress:o,toTokenAmount:t,isAuthConnector:s}=a.getParams();e.loadingTransaction=!0;const c=`Swapping ${(d=e.sourceToken)==null?void 0:d.symbol} to ${T.formatNumberToLocalString(t,3)} ${(l=e.toToken)==null?void 0:l.symbol}`,r=`Swapped ${(i=e.sourceToken)==null?void 0:i.symbol} to ${T.formatNumberToLocalString(t,3)} ${(u=e.toToken)==null?void 0:u.symbol}`;s?I.pushTransactionStack({onSuccess(){I.replace("Account"),f.showLoading(c),D.resetState()}}):f.showLoading("Confirm transaction in your wallet");try{const U=[(p=e.sourceToken)==null?void 0:p.address,(w=e.toToken)==null?void 0:w.address].join(","),k=await B.sendTransaction({address:o,to:n.to,data:n.data,value:n.value,chainNamespace:C.CHAIN.EVM});return e.loadingTransaction=!1,f.showSuccess(r),M.sendEvent({type:"track",event:"SWAP_SUCCESS",properties:{network:((h=g.state.activeCaipNetwork)==null?void 0:h.caipNetworkId)||"",swapFromToken:((y=a.state.sourceToken)==null?void 0:y.symbol)||"",swapToToken:((A=a.state.toToken)==null?void 0:A.symbol)||"",swapFromAmount:a.state.sourceTokenAmount||"",swapToAmount:a.state.toTokenAmount||"",isSmartAccount:F(C.CHAIN.EVM)===L.ACCOUNT_TYPES.SMART_ACCOUNT}}),D.resetState(),s||I.replace("Account"),D.getMyTokensWithBalance(U),k}catch(U){const k=U;e.transactionError=k==null?void 0:k.displayMessage,e.loadingTransaction=!1,f.showError((k==null?void 0:k.displayMessage)||"Transaction error"),M.sendEvent({type:"track",event:"SWAP_ERROR",properties:{message:(k==null?void 0:k.displayMessage)||(k==null?void 0:k.message)||"Unknown",network:((S=g.state.activeCaipNetwork)==null?void 0:S.caipNetworkId)||"",swapFromToken:((P=a.state.sourceToken)==null?void 0:P.symbol)||"",swapToToken:((v=a.state.toToken)==null?void 0:v.symbol)||"",swapFromAmount:a.state.sourceTokenAmount||"",swapToAmount:a.state.toTokenAmount||"",isSmartAccount:F(C.CHAIN.EVM)===L.ACCOUNT_TYPES.SMART_ACCOUNT}});return}},hasInsufficientToken(n,o){return b.isInsufficientSourceTokenForSwap(n,o,e.myTokensWithBalance)},setTransactionDetails(){const{toTokenAddress:n,toTokenDecimals:o}=a.getParams();!n||!o||(e.gasPriceInUSD=b.getGasPriceInUSD(e.networkPrice,BigInt(e.gasFee),BigInt(x)),e.priceImpact=b.getPriceImpact({sourceTokenAmount:e.sourceTokenAmount,sourceTokenPriceInUSD:e.sourceTokenPriceInUSD,toTokenPriceInUSD:e.toTokenPriceInUSD,toTokenAmount:e.toTokenAmount}),e.maxSlippage=b.getMaxSlippage(e.slippage,e.toTokenAmount),e.providerFee=b.getProviderFee(e.sourceTokenAmount))}},a=G(D);export{a as S};
|