@dcl/shop 0.1.0-29783861565.commit-b83d609 → 0.1.0-29792819793.commit-bcbfeac
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{AnimatedBackground-CnXByL2p.js → AnimatedBackground-D56igB0H.js} +1 -1
- package/assets/Assets-DvxF_g1B.js +1 -0
- package/assets/Cart-C75800mc.css +1 -0
- package/assets/Cart-Ccc7hMA3.js +3 -0
- package/assets/{CircularProgress-DYIOpTqD.js → CircularProgress-B5065SQc.js} +4 -4
- package/assets/Collection-CegF4Bg6.js +45 -0
- package/assets/Collection-Dpog3TvS.css +1 -0
- package/assets/CollectionCarousel-CI_xuvlL.js +1 -0
- package/assets/Creator-Cpx_caba.css +1 -0
- package/assets/Creator-DMEgGcPH.js +1 -0
- package/assets/{CssVarsProvider-DfFti9_A.js → CssVarsProvider-Dk1aMrkN.js} +3 -3
- package/assets/{ExchangeController-C6sXEiq1.js → ExchangeController-C-7GeeUG.js} +1 -1
- package/assets/{GetCredits-DtfEKpG3.js → GetCredits-DkdN8Bhp.js} +1 -1
- package/assets/{HelpersUtil-VuaewgD3.js → HelpersUtil-BSdS6suS.js} +1 -1
- package/assets/ImportListings-AQXg48hx.js +5 -0
- package/assets/{ImportListings-Cdx3om4x.css → ImportListings-Dx8BzO4r.css} +1 -1
- package/assets/ItemDetail-5q6iNQ7f.js +29 -0
- package/assets/ItemDetail-CV-0-ZkB.css +1 -0
- package/assets/LoadMore-CpjVWxfC.js +7 -0
- package/assets/MarketCheckout-DOjNy7WS.js +3 -0
- package/assets/MyAssets-DyNGSmlq.js +7 -0
- package/assets/MyAssets-FkZXy017.css +1 -0
- package/assets/MyFavorites-DyIDy1bn.js +3 -0
- package/assets/MyPurchases-DvllAazp.js +3 -0
- package/assets/NotFound-pLaOVJZH.js +1 -0
- package/assets/StoreSettings-Bk5IXwNu.css +1 -0
- package/assets/StoreSettings-CGJVKy8y.js +53 -0
- package/assets/Success-QRszHOfo.js +98 -0
- package/assets/{SwapController-DBJm_MiD.js → SwapController-NM8NLhBK.js} +1 -1
- package/assets/{TradeService-BFaS1SX9.js → TradeService-tfJ3u36y.js} +1 -1
- package/assets/{W3MFrameProviderSingleton-DCqZCe_f.js → W3MFrameProviderSingleton-Cw2a6UVb.js} +3 -3
- package/assets/{WebCryptoP256-Cz-rTluH.js → WebCryptoP256-DPkQuUHZ.js} +1 -1
- package/assets/{basic-BcwNyjio.js → basic-Dw_SNPcl.js} +1 -1
- package/assets/{biconomy-DR6YsiDl.js → biconomy-CRzlpcf3.js} +1 -1
- package/assets/{buy-BlHiSc1W.js → buy-BhSXg06e.js} +1 -1
- package/assets/{buy-gasless-aP_Keozx.js → buy-gasless-7ufZIH4V.js} +1 -1
- package/assets/{cart-checkout-ClRVRUn2.js → cart-checkout-mDO-sH0L.js} +1 -1
- package/assets/categories-TbcSl5d3.js +7 -0
- package/assets/categories-_8oO8Yih.css +1 -0
- package/assets/{ccip-DMrR031x.js → ccip-CivR7OIS.js} +1 -1
- package/assets/{ccip-ChPEdTqV.js → ccip-DFqwb91R.js} +1 -1
- package/assets/collection-C6WmEOVc.js +1 -0
- package/assets/{controller-421tDirA.js → controller-BHb75Qgx.js} +2 -2
- package/assets/{core-CsX6p7T6.js → core-CbJ-Ervx.js} +4 -4
- package/assets/{custom-CILu-JPM.js → custom-Ccs_ccnL.js} +1 -1
- package/assets/{data-capture-DRuJL5zb.js → data-capture-l63W8j3T.js} +1 -1
- package/assets/{decimals-DrtQQlU9.js → decimals-DuIIGtOu.js} +1 -1
- package/assets/{decimals-BKVZKqKN.js → decimals-DzfF7TyV.js} +1 -1
- package/assets/{detectExtension-D-LvJWm4.js → detectExtension-DFGJRiKZ.js} +1 -1
- package/assets/{email-Cb1GxsJf.js → email-dBQjbinH.js} +1 -1
- package/assets/{embedded-wallet-BwhNJ4Q2.js → embedded-wallet-DUae_P_k.js} +1 -1
- package/assets/emotion-styled.browser.esm-CG5P7VGz.js +1 -0
- package/assets/{engine-B6D8ee3-.js → engine-oRVYxur7.js} +1 -1
- package/assets/{errors-uwUVgVvx.js → errors-DyHnPgpr.js} +1 -1
- package/assets/{estimate-l1-fee-G7zM8IOX.js → estimate-l1-fee-ARqdcX-t.js} +1 -1
- package/assets/{eth_estimateGas-CJsm4rG5.js → eth_estimateGas-BSIKlyPh.js} +1 -1
- package/assets/{eth_getStorageAt-qmfvyP-u.js → eth_getStorageAt-CVgsobsA.js} +1 -1
- package/assets/{eth_getTransactionCount-BGQQ5Vv9.js → eth_getTransactionCount-SZqnB2Fd.js} +1 -1
- package/assets/{extractIPFS-DakUEmlc.js → extractIPFS-BZfGMcbR.js} +1 -1
- package/assets/{features-bW08HJnZ.js → features-Bd_x9PgJ.js} +1 -1
- package/assets/{fetchTokenMetadata-CXT0jjgl.js → fetchTokenMetadata-ClzNbKM3.js} +2 -2
- package/assets/{get-ecosystem-wallet-info-Dn1LefmJ.js → get-ecosystem-wallet-info-4G7NxEId.js} +1 -1
- package/assets/{getBalance-B_aNPKoy.js → getBalance-NpSJnYq2.js} +1 -1
- package/assets/{getInstalledModules-CympWNqL.js → getInstalledModules-DP_6RMgU.js} +1 -1
- package/assets/{getNFT-eM-T6tRF.js → getNFT-BejxGTxr.js} +1 -1
- package/assets/{getNFT-B8Q1zkC4.js → getNFT-DhE_Sqp0.js} +2 -2
- package/assets/{getOverlayAlpha-Ttcml9GY.js → getOverlayAlpha-Cv_6_sjJ.js} +1 -1
- package/assets/{hashTypedData--AK2ZmGf.js → hashTypedData-COhFmPMp.js} +1 -1
- package/assets/{hashTypedData-DzD4jekn.js → hashTypedData-DUGnhSaC.js} +1 -1
- package/assets/{import-sr6kRaqB.js → import-C6NVzCbS.js} +1 -1
- package/assets/{in-app-wallet-calls-C_SOVV0l.js → in-app-wallet-calls-BriVf0Xa.js} +1 -1
- package/assets/{index-DOoENNk5.js → index-1v_Y3jeY.js} +2 -2
- package/assets/{index-iYHUkCYV.js → index-6WmBd2xZ.js} +1 -1
- package/assets/{index-jywqB30S.js → index-9L9gLdlq.js} +1 -1
- package/assets/{index-BIv8GADN.js → index-B85akwvZ.js} +1 -1
- package/assets/index-BEsdviTk.js +231 -0
- package/assets/{index-Cr7wLvnz.js → index-BKefR4TN.js} +1 -1
- package/assets/{index-B2OrjlTl.js → index-BLKX3221.js} +1 -1
- package/assets/{index-DmJlIq9f.js → index-BbuvKqv1.js} +1 -1
- package/assets/{index-DXDNRhxq.js → index-Bdey45s-.js} +1 -1
- package/assets/{index-BxbTiINv.js → index-BjJPa7Dq.js} +1 -1
- package/assets/{index-CovWGvEr.js → index-BjyH5s2H.js} +2 -2
- package/assets/{index-DToUml_I.js → index-BkRZls_1.js} +1 -1
- package/assets/{index-B6W_ISMa.js → index-BnIFiC-c.js} +1 -1
- package/assets/{index-DmEz5tjU.js → index-C3pTUvlm.js} +1 -1
- package/assets/{index-sYlKY5cB.js → index-CCM3z3QM.js} +1 -1
- package/assets/{index-C84kXK1X.js → index-CJ8L34lL.js} +1 -1
- package/assets/{index-DvTTdt4H.js → index-CLf8EeAx.js} +1 -1
- package/assets/{index-D-gvLUqs.js → index-COBFSj0w.js} +1 -1
- package/assets/{index-C6G40j4u.js → index-CS5T2jHs.js} +1 -1
- package/assets/{index-DUF4UmqA.js → index-CYh10Tb-.js} +1 -1
- package/assets/{index-DTg93qgJ.js → index-CaS_3bHx.js} +1 -1
- package/assets/{index-Bgbtqpi_.js → index-CbZ9myKX.js} +1 -1
- package/assets/index-Cc7yK5VV.css +1 -0
- package/assets/{index-s1UJ3WrX.js → index-Cg3K-M7Q.js} +3 -3
- package/assets/{index-B-3CTsQP.js → index-Cqgv99mD.js} +1 -1
- package/assets/{index-DptThZec.js → index-Cv6v4Xzm.js} +3 -3
- package/assets/{index-xPWOdr4_.js → index-CvXWh3Uv.js} +1 -1
- package/assets/{index-nj2GyU5U.js → index-CyoVz-o4.js} +4 -4
- package/assets/{index-D_W5oEuA.js → index-DAfpkBU7.js} +1 -1
- package/assets/{index-XK7XP931.js → index-DR2hgxdz.js} +1 -1
- package/assets/{index-DokyT4P9.js → index-DWi7HxDb.js} +1 -1
- package/assets/{index-DSEv1Ue8.js → index-DXygeL6X.js} +1 -1
- package/assets/{index-DzHyxhs5.js → index-DjqWnfd7.js} +1 -1
- package/assets/{index-B81tYS6F.js → index-Dl9zwaYA.js} +1 -1
- package/assets/{index-D226txBm.js → index-DsshJ_lX.js} +1 -1
- package/assets/{index-CjOGY-Pr.js → index-DuzgHfIP.js} +1 -1
- package/assets/{index-CtLPwG2t.js → index-DyTWdHYC.js} +1 -1
- package/assets/{index-CWbmWEtn.js → index-HBR0FANJ.js} +1 -1
- package/assets/{index-BvrURYoS.js → index-HHpkG_47.js} +2 -2
- package/assets/{index-BJZdI022.js → index-IY4O0BLz.js} +1 -1
- package/assets/{index-B4-G1rCo.js → index-QQPs4pW8.js} +1 -1
- package/assets/{index-DGQOzxeF.js → index-Sq6XS4iZ.js} +1 -1
- package/assets/{index-9gD2DfUK.js → index-UCJJplAh.js} +2 -2
- package/assets/{index-DoFyhOro.js → index-WwPC62mN.js} +1 -1
- package/assets/{index-NeuZ4y_J.js → index-Z3oZVFq1.js} +1 -1
- package/assets/{index-C2m0blJe.js → index-akCK_e-v.js} +1 -1
- package/assets/{index-DPKHQYT5.js → index-i8wZZpV8.js} +1 -1
- package/assets/{index-CaDGH4a6.js → index-n0FG0lrX.js} +1 -1
- package/assets/{index-DkhsBldP.js → index-nPzHYZwD.js} +1 -1
- package/assets/{index-BV33ef1J.js → index-uqiMGPI_.js} +1 -1
- package/assets/{index-CnCph4mF.js → index-w7PaUg3E.js} +1 -1
- package/assets/{index-mBDGvwIW.js → index-w8OYRXEi.js} +1 -1
- package/assets/{index.es-7B3Apj6r.js → index.es-BU5Zdnp2.js} +1 -1
- package/assets/{index.es-BxwrCOID.js → index.es-C8ZiAv5V.js} +4 -4
- package/assets/{index.es-BHyvc-N-.js → index.es-D4cTyBEt.js} +1 -1
- package/assets/{localBatchGatewayRequest-H6cBwZqz.js → localBatchGatewayRequest-CYqIYIeA.js} +1 -1
- package/assets/{mana-rate-D42fK9sf.js → mana-rate-9Jo_gX3p.js} +1 -1
- package/assets/{networks-0pOpKJQi.js → networks-BXnLLN9G.js} +1 -1
- package/assets/{onramp-CCXo5M0Y.js → onramp-C_RYTyg_.js} +1 -1
- package/assets/{openzeppelin-BYJ2tC9d.js → openzeppelin-DUG0JmL6.js} +1 -1
- package/assets/{ownerOf-Q7VDagMC.js → ownerOf-BQnZeard.js} +1 -1
- package/assets/{parseNft-5mZpwsx1.js → parseNft-CeWFWM7R.js} +2 -2
- package/assets/{parseSignature-CWegNxH8.js → parseSignature-B4493K6W.js} +1 -1
- package/assets/{parseSignature-EO4YSoUl.js → parseSignature-DYe1pTGB.js} +3 -3
- package/assets/{pay-with-exchange-DNZN1-oM.js → pay-with-exchange-DYgWKjra.js} +1 -1
- package/assets/{payments-DOnM9_yY.js → payments-CFwDz2Wq.js} +1 -1
- package/assets/{qr-overlay-BffOPDZr.js → qr-overlay-Di6CWZOn.js} +1 -1
- package/assets/{receive-CH8H0XRZ.js → receive-C0o1V-RP.js} +1 -1
- package/assets/{resolveImplementation-BK16Utmf.js → resolveImplementation-BA0XFre0.js} +1 -1
- package/assets/{rpc-BuwiLkbO.js → rpc-Cggo7ec6.js} +1 -1
- package/assets/{secp256k1-BFHcnR-p.js → secp256k1-BI9qggp6.js} +1 -1
- package/assets/{secp256k1-2SXpP68_.js → secp256k1-BIMo8RCk.js} +1 -1
- package/assets/{secp256k1-Br1Y5NMo.js → secp256k1-Q4_NkfIK.js} +1 -1
- package/assets/{send-an0evxKn.js → send-DI70Bi5S.js} +1 -1
- package/assets/{send-batch-transaction-JFUz9Aa9.js → send-batch-transaction-DyhjjWlE.js} +1 -1
- package/assets/{send-eip712-transaction-DdF3ZvBS.js → send-eip712-transaction-1hRMqxdz.js} +2 -2
- package/assets/{send-gasless-transaction-CxNH64lc.js → send-gasless-transaction-C0Nsj1nC.js} +2 -2
- package/assets/{sendRawTransaction-iwgyq4DD.js → sendRawTransaction-DxHQqxHr.js} +3 -3
- package/assets/{serializeTransaction-b9KVJNpn.js → serializeTransaction-riX5VAFo.js} +1 -1
- package/assets/{session-proposal-SlVAZSFJ.js → session-proposal-D83uxPCI.js} +1 -1
- package/assets/{session-request-BLbnbkSH.js → session-request-C93Wve_c.js} +2 -2
- package/assets/{sha256-DynB7XkZ.js → sha256-BMoxeY3y.js} +1 -1
- package/assets/{signing-BbFSmiZg.js → signing-CHiAS07A.js} +4 -4
- package/assets/{socials-CS5qY0g8.js → socials-EqcQO_zT.js} +1 -1
- package/assets/{swaps-DxVYaURr.js → swaps-COT97xIs.js} +1 -1
- package/assets/{thirdweb-DN9IYPLv.js → thirdweb-liZ1mqED.js} +3 -3
- package/assets/{totalSupply-CYz_14oP.js → totalSupply-DnZRn5dr.js} +1 -1
- package/assets/{trade-encoding-8RrYE6hq.js → trade-encoding-BT4RgSDL.js} +1 -1
- package/assets/{transactionReceipt-BwIePvtD.js → transactionReceipt-BeRjRPBL.js} +1 -1
- package/assets/{transactions-CHQdZqE3.js → transactions-C9vRrGPO.js} +1 -1
- package/assets/{useInfiniteGrid-Dg-jgtmN.js → useInfiniteGrid-Cw9zdPUx.js} +1 -1
- package/assets/{useStore-BYewymaj.js → useStore-Cd9Nfgb3.js} +1 -1
- package/assets/useTheme-BudDZzP5.js +1 -0
- package/assets/useTheme-iplrvBaa.js +1 -0
- package/assets/{verifyHash-DZ_VWsuB.js → verifyHash-BXYMx_5q.js} +1 -1
- package/assets/{w3m-modal-BTdIt9gK.js → w3m-modal-B0jKCWZl.js} +1 -1
- package/assets/{w3m-modal-DWDDyMHz.js → w3m-modal-CQvfr1TI.js} +1 -1
- package/assets/{wait-for-tx-receipt-BFayfepQ.js → wait-for-tx-receipt-k4rIDXu0.js} +1 -1
- package/assets/{wallets-5iCkp8_7.js → wallets-Bn-94ZFz.js} +6 -6
- package/assets/{web-connector-CC3nGcrB.js → web-connector-DxHdU9RY.js} +3 -3
- package/assets/{writeContract-CdvSowPF.js → writeContract-D55yCJIp.js} +1 -1
- package/assets/{zoraTestnet-BZKi9YAz.js → zoraTestnet-7NHmqxTI.js} +1 -1
- package/index.html +11 -11
- package/package.json +2 -2
- package/assets/Assets-DwgI8MEu.js +0 -1
- package/assets/Cart-BBaYBkcV.css +0 -1
- package/assets/Cart-BX9aQ6G0.js +0 -1
- package/assets/Collection-CxRRuAdy.css +0 -1
- package/assets/Collection-LcILXLBn.js +0 -1
- package/assets/CollectionCarousel-CoUEKAXy.js +0 -1
- package/assets/Creator-DJqbQ8AX.css +0 -1
- package/assets/Creator-UHpdXwMr.js +0 -1
- package/assets/ImportListings-BpZvc0Qy.js +0 -1
- package/assets/ItemDetail-BVVMGMLA.js +0 -2
- package/assets/ItemDetail-Dkstj3oi.css +0 -1
- package/assets/LoadMore-6Uy0vHhH.js +0 -1
- package/assets/MarketCheckout-Kp8KKjmU.js +0 -1
- package/assets/MyAssets-BqJHbQOZ.css +0 -1
- package/assets/MyAssets-jAtm2rkC.js +0 -1
- package/assets/MyFavorites-CGr22n0E.js +0 -1
- package/assets/MyPurchases-jF5HW7GK.js +0 -1
- package/assets/NotFound-bMjp4Hut.js +0 -1
- package/assets/StoreSettings-BsV7iEJX.css +0 -1
- package/assets/StoreSettings-CkUUTNHp.js +0 -1
- package/assets/Success-DYjGuuuE.js +0 -1
- package/assets/categories-BTWuBkUd.js +0 -1
- package/assets/categories-CBvVTfQE.css +0 -1
- package/assets/collection-CRx0Du-v.js +0 -1
- package/assets/emotion-styled.browser.esm-Ca1eN6j6.js +0 -1
- package/assets/index-CzmwWbz1.js +0 -38
- package/assets/index-DvbMYtAp.css +0 -1
- package/assets/useTheme-Ckn40RaY.js +0 -1
- package/assets/useTheme-DLZ3E7iB.js +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CyoVz-o4.js","assets/react-yytiy0wi.js","assets/dcl-schemas-BICTSpB5.js","assets/index-BEsdviTk.js","assets/sentry-BPJvc5GU.js","assets/ethers-w2AslR0v.js","assets/intl-CBcMB1D2.js","assets/index-Cc7yK5VV.css","assets/emotion-styled.browser.esm-CG5P7VGz.js","assets/useTheme-iplrvBaa.js","assets/CircularProgress-B5065SQc.js","assets/index-1v_Y3jeY.js","assets/useTheme-BudDZzP5.js","assets/CssVarsProvider-Dk1aMrkN.js","assets/getOverlayAlpha-Cv_6_sjJ.js","assets/index-BnIFiC-c.js","assets/colors-LINLm1ux.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as te,r as m,j as e,d as De,b as Te,L as Be}from"./react-yytiy0wi.js";import{d as ie,o as Re,u as $e,t as s,ac as Ve,l as We,m as qe,w as ze,q as Z,b as K,x as _e,y as ae,ad as Oe,D as he,C as M,a8 as X,_ as se,ag as Ke,aj as Ue,ai as Ge,az as Qe,am as He,j as we,aA as Ye,af as Ce,s as re,aB as Je,aC as Ze,aD as Xe,aE as ea,a9 as pe,c as be,g as O,aF as aa,aG as sa,aH as ta,aI as ia,aJ as ra,ao as la,a as da,I as R,aK as na,aL as ca,aM as oa,aa as ma,aN as xe,aO as ua,B as ke,ar as _a,aP as ha,aQ as pa,as as ba,aR as xa}from"./index-BEsdviTk.js";import{d as V}from"./dcl-schemas-BICTSpB5.js";import{b as ye}from"./buy-BhSXg06e.js";import{g as ya,b as va,w as ja,S as fa,G as ga}from"./buy-gasless-7ufZIH4V.js";import{C as Na,c as wa}from"./payments-CFwDz2Wq.js";import{R as ve}from"./resume-buy-Bf0zIH7y.js";import{a as Ca,f as je}from"./errors-DyHnPgpr.js";import{E as ka}from"./ErrorNotice-CKeOu_Oi.js";import{C as Ia}from"./CircularProgress-B5065SQc.js";import{u as Aa,M as Ma}from"./MarketCheckout-DOjNy7WS.js";import{s as Sa}from"./address-DrURAr9O.js";import{C as Pa}from"./CollectionCarousel-CI_xuvlL.js";import"./sentry-BPJvc5GU.js";import"./ethers-w2AslR0v.js";import"./intl-CBcMB1D2.js";import"./trade-encoding-BT4RgSDL.js";import"./index-HN6Rk25C.js";import"./mana-rate-9Jo_gX3p.js";const $=Na.slice(0,3);function Ea({item:r,onClose:c,resume:t=!1}){var I,H;const{session:o}=ie(),{data:d}=Re(o),p=$e(),y=te(),[_,l]=m.useState("loading"),[v,a]=m.useState(null),[j,P]=m.useState(""),[f,L]=m.useState(r.priceCredits),[C,N]=m.useState(null),g=m.useRef(null),W=(C==null?void 0:C.credits)??f,k=(d==null?void 0:d.credits)??0;m.useEffect(()=>{let n=!1;if(!o){l("error"),a(s("buyModal.signInToCheckout"));return}const x=u=>{const h=u-((d==null?void 0:d.credits)??0),b=$.find(A=>A.credits>=h)??$[$.length-1];P(b.id),K("Shop Buy Credits Prompted",{from:"item_checkout",credits_needed:u,credits_balance:(d==null?void 0:d.credits)??0,shortfall:Math.max(0,h)}),l("nofunds")};return(async()=>{var u,h;try{const b=await Ve(r);if(!b)throw new Error("not for sale");if(We(b,o.address))throw new Error("You can't buy your own listing.");const A=qe((h=(u=b.received)==null?void 0:u[0])==null?void 0:h.amount);if(!Number.isFinite(A)||A<=0)throw new Error("price unavailable");const T=Math.ceil(A/10);if(n)return;if(L(T),d!=null&&d.credits<T){x(T);return}try{const{credit:E,maxCreditedValue:q,usdCents:B}=await ze(o.identity,A,b.id);if(n){Z(o.identity,[E.id]).catch(()=>{});return}g.current=E.id;const w=Math.ceil(B/10);L(w);const z={trade:b,credit:E,maxCreditedValue:q,usdCents:B,credits:w};N(z),t?U(z):l("ready")}catch(E){if(n)return;if(Ca(E)){x(T);return}throw E}}catch(b){if(n)return;K(ae(b)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:_e(b)}),l("error"),a(je(b,s("buyModal.error.generic"),{sale:!0}))}})(),()=>{n=!0,g.current&&o&&(Z(o.identity,[g.current]).catch(()=>{}),g.current=null)}},[]);async function U(n=C){if(!o||!n)return;l("processing"),a(null);let x=!1;try{const u={trade:n.trade,buyer:o.address,signer:o.signer,credits:[n.credit],maxCreditedValue:n.maxCreditedValue};let h;if(ya())try{h=await va(u),await ja(h),x=!0}catch(b){if(b instanceof fa)x=!0;else if(b instanceof ga)h=await ye(u);else throw b}else h=await ye(u);g.current=null,K("Shop Completed Purchase",{...Oe([r]),payment_type:"credits",no_crypto_step:x,transaction_hash:h??null}),p.invalidateQueries({queryKey:["usd-balance"]}),l("complete")}catch(u){ae(u)||he(u,{flow:"buy",step:"submit",gasless:x}),Z(o.identity,[n.credit.id]).catch(()=>{}),g.current=null,K(ae(u)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:_e(u)}),p.invalidateQueries({queryKey:["usd-balance"]}),a(je(u,s("buyModal.error.generic"),{sale:!0})),l("error")}}async function G(){if(!(!j||!o)){try{sessionStorage.setItem(ve,JSON.stringify(r))}catch{}C&&Z(o.identity,[C.credit.id]).catch(()=>{}),g.current=null,l("loading");try{const n=await wa(j,{address:o.address,identity:o.identity});if(n.url){window.location.href=n.url;return}y("/credits")}catch(n){he(n,{flow:"buy_credits_and_item"});try{sessionStorage.removeItem(ve)}catch{}a(s("buyModal.error.creditsCheckout")),l("error")}}}const Q=_==="processing",D=_==="complete"?s("buyModal.titleComplete"):_==="nofunds"?s("buyModal.titleNoFunds"):s("buyModal.titleBuy");return e.jsxs("div",{className:"buy-modal",role:"dialog","aria-modal":"true","aria-label":s("buyModal.dialogAria",{name:r.name}),children:[e.jsx("div",{className:"buy-modal__scrim",onClick:Q?void 0:c,"aria-hidden":!0}),e.jsxs("div",{className:`buy-modal__card${_==="processing"||_==="loading"?" buy-modal__card--tall":""}`,children:[e.jsxs("div",{className:"buy-modal__head",children:[e.jsxs("div",{className:"buy-modal__head-row",children:[e.jsx("h2",{className:"buy-modal__title",children:D}),!Q&&e.jsx("button",{className:"buy-modal__x",onClick:c,"aria-label":s("buyModal.close"),children:e.jsx("svg",{viewBox:"0 0 18 18",width:"18",height:"18","aria-hidden":!0,children:e.jsx("path",{d:"M4 4l10 10M14 4L4 14",stroke:"#161518",strokeWidth:"1.8",strokeLinecap:"round"})})})]}),e.jsxs("div",{className:"buy-modal__balance",children:[e.jsx("span",{className:"buy-modal__balance-label",children:_==="nofunds"?s("buyModal.dclBalance"):s("buyModal.myCreditsBalance")}),e.jsx(M,{className:"buy-modal__balance-ico"}),e.jsx("span",{className:"buy-modal__balance-value",children:X(k)})]})]}),_==="loading"&&e.jsx("div",{className:"buy-modal__body buy-modal__processing",children:e.jsx(Ia,{size:44})}),_==="error"&&e.jsxs("div",{className:"buy-modal__body",children:[e.jsx(ka,{message:v}),e.jsx("div",{className:"buy-modal__ctas",children:e.jsx("button",{className:"buy-modal__btn buy-modal__btn--gradient",onClick:c,children:s("buyModal.close")})})]}),_==="nofunds"&&e.jsxs("div",{className:"buy-modal__body",children:[e.jsxs("div",{className:"buy-modal__warning",children:[e.jsxs("svg",{viewBox:"0 0 24 24",width:"24",height:"24","aria-hidden":!0,className:"buy-modal__warning-ico",children:[e.jsx("path",{d:"M12 3L2 20h20L12 3z",fill:"none",stroke:"#691fa9",strokeWidth:"1.8",strokeLinejoin:"round"}),e.jsx("path",{d:"M12 9v5",stroke:"#691fa9",strokeWidth:"1.8",strokeLinecap:"round"}),e.jsx("circle",{cx:"12",cy:"17",r:"1.1",fill:"#691fa9"})]}),e.jsxs("p",{className:"buy-modal__warning-text",children:[e.jsx("b",{children:s("buyModal.insufficientFunds")})," ",s("buyModal.warningNeedToBuy")," ",e.jsx("b",{children:s("buyModal.warningCreditsAmount",{count:Math.max(0,W-k)})})," ",s("buyModal.warningToPurchase",{count:1})]})]}),e.jsx(fe,{item:r,priceCredits:W}),e.jsx("div",{className:"buy-modal__packs",children:$.map(n=>{const x=n.credits,u=n.id===j;return e.jsxs("button",{className:`buy-modal__pack${u?" buy-modal__pack--on":""}`,onClick:()=>P(n.id),children:[e.jsx(M,{className:"buy-modal__pack-ico"}),e.jsx("span",{className:"buy-modal__pack-amount",children:X(x)}),e.jsxs("span",{className:"buy-modal__pack-usd",children:["($",n.usd.toFixed(2),")"]})]},n.id)})}),e.jsxs("div",{className:"buy-modal__total",children:[e.jsxs("div",{className:"buy-modal__total-credits",children:[e.jsx(M,{className:"buy-modal__total-ico"}),e.jsx("span",{children:X(((I=$.find(n=>n.id===j))==null?void 0:I.credits)??0)})]}),e.jsxs("span",{className:"buy-modal__total-usd",children:["$",(((H=$.find(n=>n.id===j))==null?void 0:H.usd)??0).toFixed(2)]})]}),e.jsxs("div",{className:"buy-modal__ctas",children:[e.jsx("button",{className:"buy-modal__btn buy-modal__btn--outline",onClick:c,children:s("buyModal.cancel")}),e.jsx("button",{className:"buy-modal__btn buy-modal__btn--gradient",onClick:()=>void G(),children:s("buyModal.buy")})]})]}),_==="ready"&&e.jsxs("div",{className:"buy-modal__body",children:[e.jsx(fe,{item:r,priceCredits:W}),e.jsx("div",{className:"buy-modal__ctas",children:e.jsx("button",{className:"buy-modal__btn buy-modal__btn--gradient buy-modal__btn--full",onClick:()=>void U(),children:s("buyModal.buy")})})]}),_==="processing"&&e.jsxs("div",{className:"buy-modal__body buy-modal__processing",children:[e.jsx("img",{className:"buy-modal__logo",src:"/icon-192.png",alt:"",width:61,height:61}),e.jsx("div",{className:"buy-modal__processing-text",children:t?s("buyModal.completingPurchase"):s("buyModal.completingTransaction")}),e.jsx("div",{className:"buy-modal__progress","aria-hidden":!0,children:e.jsx("span",{className:"buy-modal__progress-fill"})})]}),_==="complete"&&e.jsxs("div",{className:"buy-modal__body",children:[e.jsxs("div",{className:"buy-modal__success",children:[e.jsxs("svg",{viewBox:"0 0 64 64",width:"64",height:"64","aria-hidden":!0,children:[e.jsx("circle",{cx:"32",cy:"32",r:"32",fill:"#34ce74"}),e.jsx("path",{d:"M20 33l8 8 16-18",fill:"none",stroke:"#fff",strokeWidth:"5",strokeLinecap:"round",strokeLinejoin:"round"})]}),e.jsxs("p",{className:"buy-modal__success-text",children:[e.jsx("b",{children:s("getCredits.successTitle")})," ",s("buyModal.successBody")]})]}),e.jsxs("div",{className:"buy-modal__ctas",children:[e.jsx("button",{className:"buy-modal__btn buy-modal__btn--outline",onClick:()=>y("/assets?tab=mine"),children:s("buyModal.myAssets")}),e.jsxs("button",{className:"buy-modal__btn buy-modal__btn--ruby",onClick:c,children:[s("buyModal.tryInWorld"),e.jsx("svg",{viewBox:"0 0 24 24",width:"20",height:"20","aria-hidden":!0,children:e.jsx("path",{d:"M5 12h12M13 7l5 5-5 5",fill:"none",stroke:"#fcfcfc",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})]})]})]})}function fe({item:r,priceCredits:c}){return e.jsxs("div",{className:"buy-modal__asset",children:[e.jsx("div",{className:"buy-modal__asset-thumb",children:r.thumbnail?e.jsx("img",{src:r.thumbnail,alt:""}):null}),e.jsxs("div",{className:"buy-modal__asset-info",children:[e.jsxs("div",{children:[e.jsx("div",{className:"buy-modal__asset-name",title:r.name,children:r.name||s("buyModal.itemFallback")}),r.creator?e.jsx("div",{className:"buy-modal__asset-creator",children:s("search.byCreator",{name:r.creator})}):null]}),e.jsxs("div",{className:"buy-modal__asset-price",children:[e.jsx(M,{className:"buy-modal__asset-price-ico"}),e.jsx("span",{children:X(c)})]})]})]})}const Fa=m.lazy(async()=>{const[{EmoteControls:r},{Experimental_CssVarsProvider:c},{light:t}]=await Promise.all([se(()=>import("./index-CyoVz-o4.js").then(o=>o.i),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),se(()=>import("./index-1v_Y3jeY.js"),__vite__mapDeps([11,3,1,2,4,5,6,7,12,9,13,14])),se(()=>import("./index-BnIFiC-c.js"),__vite__mapDeps([15,3,1,2,4,5,6,7,16,14,13,9]))]);return{default:o=>e.jsx(c,{theme:t,children:e.jsx(r,{...o})})}});function La(r){return e.jsx(m.Suspense,{fallback:null,children:e.jsx(Fa,{...r})})}function Da({item:r}){const c=ie(N=>{var g;return(g=N.session)==null?void 0:g.address}),{data:t,isLoading:o}=Ke(c),d=c&&t?c:"default",p=r.category==="emote",[y,_]=m.useState("item"),l=!p&&y==="item",v=l||!o,[a,j]=m.useState(!0);m.useEffect(()=>{j(!0)},[r.id,l]);const P=!!c&&!!t,f=P&&Ue(r,Ge(t)),L=Qe(r)[0],C=P&&!f&&!p;return e.jsxs(e.Fragment,{children:[v?e.jsx(He,{id:"shop-item-preview",contractAddress:r.contractAddress,tokenId:r.tokenId??void 0,itemId:r.tokenId?void 0:r.itemId??void 0,profile:l?void 0:f?d:"default",bodyShape:l||f?void 0:L,type:p?void 0:l?V.PreviewType.WEARABLE:V.PreviewType.AVATAR,emote:p||l?void 0:V.PreviewEmote.FASHION,disableBackground:!0,wheelZoom:p?1.5:void 0,wheelStart:p?100:void 0,dev:we.chainId===80002,onLoad:()=>j(!1)}):null,!v||a?e.jsx("div",{className:"item-preview__loading","aria-busy":"true","aria-label":s("itemPreview.loading"),children:e.jsx("span",{className:"item-preview__spinner","aria-hidden":!0})}):null,C&&!l?e.jsx("p",{className:"item-preview__note",children:s("itemPreview.shownOnBody",{shape:Ye(L)})}):null,p?e.jsx("div",{className:"item-preview__emote-controls","data-testid":"emote-controls",children:e.jsx(La,{wearablePreviewId:"shop-item-preview",hideFrameInput:!0})}):e.jsxs("div",{className:"item-preview__toggle",role:"group","aria-label":s("itemPreview.previewMode"),children:[e.jsxs("button",{type:"button",className:y==="avatar"?"is-active":"","aria-pressed":y==="avatar","aria-label":s("itemPreview.onAvatar"),onClick:()=>_("avatar"),children:[e.jsxs("svg",{className:"item-preview__toggle-ico",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:[e.jsx("circle",{cx:"12",cy:"7.5",r:"4"}),e.jsx("path",{d:"M4 20c0-4.2 3.6-6.5 8-6.5s8 2.3 8 6.5v.5H4z"})]}),e.jsx("span",{className:"item-preview__toggle-label",children:s("itemPreview.onAvatar")})]}),e.jsxs("button",{type:"button",className:y==="item"?"is-active":"","aria-pressed":y==="item","aria-label":s("itemPreview.item"),onClick:()=>_("item"),children:[e.jsx("svg",{className:"item-preview__toggle-ico",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:e.jsx("path",{d:"M8.5 3 3 6l1.8 3.8 2.2-1V21h10V8.8l2.2 1L22 6l-5.5-3a2.6 2.6 0 0 1-4.5 1.4A2.6 2.6 0 0 1 8.5 3z"})}),e.jsx("span",{className:"item-preview__toggle-label",children:s("itemPreview.item")})]})]})]})}const Ta=re(Je)`
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
gap: 1px;
|
|
7
|
+
background: ${Ce.colors.lineStrong};
|
|
8
|
+
`;function Ba({contractAddress:r,name:c,items:t,className:o}){const d=te();if(!r||!c)return null;const p=(t??[]).map(l=>l.thumbnail).filter(l=>!!l).slice(0,4),y=p.slice(0,2),_=p.slice(2,4);return e.jsxs(Ze,{as:"button","data-link":!0,className:o,"data-testid":"creator",onClick:l=>{l.stopPropagation(),d(`/collection/${r}`)},children:[p.length>0?e.jsxs(Ta,{as:"span","data-avatar":!0,"data-testid":"creator-ava","aria-hidden":!0,children:[e.jsx("span",{className:`collection-collage__row${_.length===0?" collection-collage__row--full":""}`,children:y.map((l,v)=>e.jsx("img",{src:l,alt:""},v))}),_.length>0?e.jsx("span",{className:"collection-collage__row",children:_.map((l,v)=>e.jsx("img",{src:l,alt:""},v))}):null]}):null,e.jsx(Xe,{"data-testid":"creator-name",children:ea(c)})]})}const Ra=re(ke)`
|
|
9
|
+
margin-top: 6px;
|
|
10
|
+
`,ge=re(ke)`
|
|
11
|
+
&& {
|
|
12
|
+
width: 100%;
|
|
13
|
+
height: 48px;
|
|
14
|
+
font-size: 15px;
|
|
15
|
+
font-weight: 600;
|
|
16
|
+
letter-spacing: 0.46px;
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: center;
|
|
20
|
+
gap: 8px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
${Ce.media.down("lg")} {
|
|
24
|
+
.item-detail__ctas--dual && {
|
|
25
|
+
flex: 1 1 auto;
|
|
26
|
+
width: auto;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`;function $a(r){return Object.values(V.Rarity).includes(r)}function Va(r){return r==="male"?s("itemDetail.genderMale"):r==="female"?s("itemDetail.genderFemale"):r==="unisex"?s("itemDetail.genderUnisex"):null}function Ne(r){return r.wearableCategory?r.wearableCategory.replace(/_/g," "):r.category==="emote"?s("itemDetail.categoryEmote"):s("itemDetail.categoryWearable")}function ds(){const{contractAddress:r,tokenId:c}=De(),{state:t}=Te(),o=te(),d=!!(t!=null&&t.market),p=(t==null?void 0:t.marketPriceCredits)??null,y=pe(i=>i.add),_=pe(i=>i.items),l=be(i=>i.toggle),{session:v}=ie(),[a,j]=m.useState(()=>t!=null&&t.item?{...t.item,tradeId:t.tradeId??t.item.tradeId}:{id:`${r}-${c}`,name:"",creator:"",contractAddress:r??"",itemId:null,category:"wearable",rarity:"common",network:"MATIC",chainId:we.chainId,thumbnail:"",priceCredits:0,gender:null,isSmart:!1,tokenId:c??void 0,tradeId:t==null?void 0:t.tradeId}),[P,f]=m.useState(!1),[L,C]=m.useState(!!(t!=null&&t.resumeBuy));m.useEffect(()=>{t!=null&&t.resumeBuy&&f(!0)},[t==null?void 0:t.resumeBuy]);const{data:N=[],isFetched:g}=O({queryKey:["collection-items",a.contractAddress],enabled:!!a.contractAddress,queryFn:()=>_a(a.contractAddress,{first:20}).then(i=>i.items)}),W=a.available==null&&!a.tokenId,{data:k,isLoading:U}=O({queryKey:["shop-item",a.contractAddress,c],enabled:!d&&!!a.contractAddress&&!!c&&(!(t!=null&&t.item)||W),queryFn:()=>ha(a.contractAddress,c)});m.useEffect(()=>{k&&j(i=>i.tradeId?i.available!=null&&i.wearableCategory?i:{...i,available:i.available??k.available,wearableCategory:i.wearableCategory??k.wearableCategory}:{...k})},[k]);const[G,Q]=m.useState(!1),{data:D=""}=O({queryKey:["item-desc",a.contractAddress,a.itemId],enabled:!!a.contractAddress&&!!a.itemId,staleTime:5*6e4,queryFn:()=>pa(a.contractAddress,a.itemId)}),{data:I}=O({queryKey:["collection-meta",a.contractAddress],enabled:!!a.contractAddress,staleTime:5*6e4,queryFn:()=>ba(a.contractAddress)});m.useEffect(()=>{if(a.name||k||N.length===0)return;const i=c&&N.find(S=>S.tokenId===c||S.itemId===c)||N.find(S=>S.contractAddress===a.contractAddress);i&&j(S=>({...i,tradeId:S.tradeId??i.tradeId}))},[N,k]);const H=m.useMemo(()=>{const i=new Set,S=[];for(const F of N){if(F.id===a.id||a.itemId&&F.itemId===a.itemId||a.tokenId&&F.tokenId===a.tokenId)continue;const ue=`${F.contractAddress}-${F.itemId??F.tokenId??F.id}`;i.has(ue)||(i.add(ue),S.push(F))}return S},[N,a.id,a.itemId,a.tokenId]),{data:n,isLoading:x}=O({queryKey:["detail-trade",a.id,a.tradeId,a.contractAddress,a.itemId],enabled:!!a.contractAddress,queryFn:async()=>{if(a.tradeId)return a.tradeId;if(a.itemId){const i=await xa(a.contractAddress,a.itemId);return(i==null?void 0:i.id)??null}return null}}),u=a.tradeId??n??void 0,h=!!u,{data:b}=Aa(d),A=m.useMemo(()=>{if(!d||!(t!=null&&t.item))return null;const i=t.item;return i.manaWei?{tradeId:i.tradeId??i.id,listingType:"primary",contractAddress:i.contractAddress,itemId:i.itemId??"",name:i.name,thumbnail:i.thumbnail,rarity:i.rarity,category:i.category,wearableCategory:i.wearableCategory??null,creator:i.creator,manaWei:i.manaWei,available:1,network:i.network,chainId:i.chainId,createdAt:0}:null},[d,t==null?void 0:t.item]),T=d&&p!=null&&!!b&&!!A,E=aa({priceCredits:a.priceCredits,compareAtCredits:a.compareAtCredits,saleEndsAt:a.saleEndsAt}),q=m.useMemo(()=>({...a,tradeId:u,id:u??a.id}),[a,u]),B=_.some(i=>i.id===q.id),w=be(i=>!!i.items[a.id]),z=m.useRef(null);m.useEffect(()=>{!a.name||x||z.current===a.id||(z.current=a.id,K("Shop Viewed Item",{...sa(a),for_sale:h}),ta(a))},[a.id,a.name,x,h]);const Y=`${r}/${c}`,le=m.useRef(Y);m.useEffect(()=>{le.current!==Y&&(le.current=Y,t!=null&&t.item&&j({...t.item,tradeId:t.tradeId??t.item.tradeId}),typeof window<"u"&&window.scrollTo({top:0,behavior:"smooth"}))},[Y]);function Ie(){!h||B||J||y(q,"item_detail")}const ee=$a(a.rarity)?a.rarity:V.Rarity.COMMON,de=Va(a.gender),ne=ia(a),ce=ra(a.gender),Ae=h&&E,Me=s("itemDetail.moreFromCollection"),J=la(a,v==null?void 0:v.address),oe=h?B?s("assetCard.inCart"):x?s("itemDetail.checking"):s("assetCard.addToCart"):s("itemDetail.notForSale"),Se=typeof a.available=="number"&&a.available>0&&!a.tokenId&&!d,Pe=!J&&h&&!d,Ee=d||!J,Fe=U||!!a.contractAddress&&!g,me=!a.name&&!Fe,Le=/^https?:\/\//i.test(a.thumbnail);return da(me?{title:s("seo.item.notFoundTitle"),noindex:!0}:a.name?{title:a.name,description:D||s("seo.item.fallbackDescription",{name:a.name,rarity:a.rarity,category:Ne(a),creator:Sa(a.creator)}),image:Le?a.thumbnail:void 0,type:"product"}:{}),me?e.jsxs("div",{className:"item-detail item-detail--notfound",children:[e.jsx(R,{name:"cart",className:"item-detail__notfound-ico"}),e.jsx("h1",{className:"item-detail__notfound-title",children:s("itemDetail.notAvailableTitle")}),e.jsx("p",{className:"muted",children:s("itemDetail.notAvailableBody")}),e.jsx(Ra,{variant:"purple",onClick:()=>o("/assets"),children:s("notFound.cta")})]}):e.jsxs("div",{className:"item-detail",children:[e.jsxs("nav",{className:"item-detail__crumbs","aria-label":s("itemDetail.breadcrumbAria"),children:[e.jsx("button",{className:"item-detail__crumb-link",onClick:()=>o("/assets"),children:s("nav.collectibles")}),e.jsx("span",{className:"item-detail__crumb-sep",children:"/"}),e.jsx("span",{className:"item-detail__crumb-current",children:a.name||s("itemDetail.itemFallback")})]}),e.jsxs("div",{className:"item-detail__main",children:[e.jsxs("div",{className:"item-detail__preview","data-testid":"item-preview",children:[a.name?e.jsx(Da,{item:a}):e.jsx("div",{className:"item-preview__loading","aria-busy":"true","aria-label":s("itemPreview.loading"),children:e.jsx("span",{className:"skeleton item-preview__skeleton","aria-hidden":!0})}),e.jsx("button",{className:`item-detail__fav item-detail__fav--preview${w?" is-on":""}`,onClick:()=>l(a),"aria-pressed":w,"aria-label":w?s("assetCard.removeFromFavorites"):s("assetCard.addToFavorites"),children:e.jsx(R,{name:w?"heart-solid":"heart",size:18})})]}),e.jsx("div",{className:"item-detail__info",children:a.name?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"item-detail__info-head",children:[e.jsx("h1",{className:"item-detail__title",children:a.name}),e.jsx("button",{className:`item-detail__fav${w?" is-on":""}`,onClick:()=>l(a),"aria-pressed":w,"aria-label":w?s("assetCard.removeFromFavorites"):s("assetCard.addToFavorites"),children:e.jsx(R,{name:w?"heart-solid":"heart",size:18})})]}),e.jsxs("div",{className:"item-detail__chips",children:[e.jsx("span",{className:"chip chip--rarity",style:{background:oa(ee),color:ca(ee)},title:na(a.rarity),children:a.rarity}),e.jsxs("span",{className:"chip item-detail__chip",children:[ne?e.jsx(R,{name:ne,size:18,color:"var(--text-2)"}):null,Ne(a)]}),de?e.jsxs("span",{className:"chip item-detail__chip",children:[ce?e.jsx(R,{name:ce,size:18,color:"var(--text-2)"}):null,de]}):null]}),D?e.jsxs("div",{className:"item-detail__section item-detail__description",children:[e.jsx("div",{className:"item-detail__label",children:s("itemDetail.description")}),e.jsx("p",{className:`item-detail__desc-text${G?" is-expanded":""}`,children:D}),D.length>140?e.jsx("button",{className:"link item-detail__desc-toggle",onClick:()=>Q(i=>!i),children:G?s("itemDetail.showLess"):s("itemDetail.readMore")}):null]}):null,a.creator||I!=null&&I.name?e.jsxs("div",{className:"item-detail__meta",children:[a.creator?e.jsxs("div",{className:"item-detail__meta-col",children:[e.jsx("div",{className:"item-detail__label",children:s("itemDetail.creator")}),e.jsx(ma,{address:a.creator,className:"item-detail__creator",linkToProfile:!0,hidePrefix:!0})]}):null,I!=null&&I.name?e.jsxs("div",{className:"item-detail__meta-col item-detail__meta-col--collection",children:[e.jsx("div",{className:"item-detail__label",children:s("itemDetail.collection")}),e.jsx(Ba,{contractAddress:a.contractAddress,name:I.name,items:N,className:"item-detail__creator"})]}):null]}):null,e.jsx("hr",{className:"item-detail__divider"}),e.jsx("div",{className:"item-detail__price-block",children:e.jsxs("div",{className:"item-detail__price-row",children:[e.jsxs("div",{className:"item-detail__price-col",children:[e.jsx("div",{className:"item-detail__price-label",children:s("itemDetail.price")}),d?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"item-detail__price item-detail__price--market",children:p==null?e.jsx("span",{className:"item-detail__price-value",children:"—"}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"item-detail__approx","aria-hidden":!0,children:"≈"}),e.jsx(M,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:p})]})}),e.jsx("div",{className:"item-detail__market-note muted",children:s("assetCard.marketPrice")})]}):h?Ae?e.jsxs("div",{className:"item-detail__price item-detail__price--sale",children:[e.jsxs("span",{className:"item-detail__price",children:[e.jsx(M,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:a.priceCredits})]}),e.jsxs("span",{className:"item-detail__price-was",children:[e.jsx(M,{className:"item-detail__diamond item-detail__diamond--was"}),a.compareAtCredits]}),xe(a.compareAtCredits,a.priceCredits)>0?e.jsx("span",{className:"item-detail__sale-badge",children:s("assetCard.saleWithDiscount",{pct:xe(a.compareAtCredits,a.priceCredits)})}):null,e.jsx(ua,{endsAt:a.saleEndsAt,className:"item-detail__countdown"})]}):e.jsxs("div",{className:"item-detail__price",children:[e.jsx(M,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:a.priceCredits})]}):e.jsx("div",{className:"item-detail__price item-detail__price--none",children:s("itemDetail.notForSale")})]}),Se?e.jsxs("div",{className:"item-detail__stock-col",children:[e.jsx("div",{className:"item-detail__price-label",children:s("itemDetail.stock")}),e.jsxs("div",{className:"item-detail__stock-value",children:[(a.available??0).toLocaleString(),"/",V.Rarity.getMaxSupply(ee).toLocaleString()]})]}):null]})}),e.jsx("div",{className:`item-detail__ctas${Ee?" item-detail__ctas--buttons":""}${Pe?" item-detail__ctas--dual":""}`,children:d?e.jsxs(ge,{variant:"purple",onClick:()=>f(!0),disabled:!T,children:[e.jsx("span",{className:"item-detail__cta-label",children:s("assetCard.buyNow")}),p!=null?e.jsxs("span",{className:"item-detail__cta-price","aria-hidden":!0,children:[e.jsx(M,{className:"item-detail__cta-diamond"}),p]}):null]}):J?e.jsxs("p",{className:"item-detail__own-note muted",children:[s("itemDetail.ownItemPrefix")," ",e.jsx(Be,{to:"/my-assets",children:s("nav.myAssets")}),s("itemDetail.ownItemSuffix")]}):e.jsxs(e.Fragment,{children:[h?e.jsxs(ge,{variant:"purple",onClick:()=>f(!0),disabled:x,children:[e.jsx("span",{className:"item-detail__cta-label",children:s("assetCard.buyNow")}),e.jsxs("span",{className:"item-detail__cta-price","aria-hidden":!0,children:[e.jsx(M,{className:"item-detail__cta-diamond"}),a.priceCredits]})]}):null,e.jsxs("button",{className:"item-detail__addcart",onClick:Ie,disabled:!h||B||x,"aria-label":oe,children:[e.jsx(R,{name:"cart-solid"}),e.jsx("span",{className:"item-detail__addcart-label",children:oe})]})]})})]}):e.jsx(Wa,{})})]}),e.jsx(Pa,{title:Me,items:H,onViewAll:a.contractAddress?()=>o(`/collection/${a.contractAddress}`):void 0}),P&&d&&A&&b?e.jsx(Ma,{listing:A,rate:b,onClose:()=>f(!1),onSold:()=>f(!1)}):P&&!d?e.jsx(Ea,{item:q,resume:L,onClose:()=>{f(!1),C(!1)}}):null]})}function Wa(){return e.jsxs("div",{className:"item-detail__info-skel","aria-hidden":!0,children:[e.jsx("span",{className:"skeleton id-skel__title"}),e.jsxs("div",{className:"id-skel__chips",children:[e.jsx("span",{className:"skeleton id-skel__chip"}),e.jsx("span",{className:"skeleton id-skel__chip"})]}),e.jsx("span",{className:"skeleton id-skel__line"}),e.jsx("span",{className:"skeleton id-skel__line id-skel__line--short"}),e.jsx("hr",{className:"item-detail__divider"}),e.jsx("span",{className:"skeleton id-skel__price"}),e.jsx("span",{className:"skeleton id-skel__btn"})]})}export{ds as ItemDetail,ds as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.item-detail{max-width:1721px;margin:0 auto}.item-detail__crumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:24px}.item-detail__crumb-link{background:none;border:0;padding:0;font:inherit;color:var(--muted)}.item-detail__crumb-link:hover{color:var(--text)}.item-detail__crumb-sep{color:var(--muted-2)}.item-detail__crumb-current{color:var(--text);font-weight:600}.item-detail__main{display:grid;grid-template-columns:minmax(0,1045fr) minmax(0,514fr);gap:48px;align-items:start;max-width:1607px;margin:0 auto}@media(max-width:900px){.item-detail__main{grid-template-columns:1fr;gap:24px;max-width:none}}.item-detail__preview{position:relative;aspect-ratio:1045 / 752;border-radius:16px;overflow:hidden;background:var(--media)}@media(max-width:900px){.item-detail__preview{aspect-ratio:1 / 1}}.item-detail__preview iframe,.item-detail__preview>*{width:100%;height:100%;border:0;display:block}.item-detail__preview>.item-preview__toggle{position:absolute;top:16px;left:16px;z-index:2;width:auto;height:auto;display:inline-flex;gap:2px;padding:3px;background:#ffffffeb;border:1px solid var(--line);border-radius:999px;box-shadow:0 1px 4px #0000001f}.item-preview__toggle button{border:0;background:none;cursor:pointer;padding:6px 16px;border-radius:999px;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);transition:background .12s ease,color .12s ease}.item-preview__toggle button.is-active{background:var(--text);color:#fff}.item-preview__toggle button:not(.is-active):hover{color:var(--text)}.item-preview__toggle-ico{display:none;width:18px;height:18px}.item-detail__preview>.item-preview__emote-controls{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:2;width:min(360px,88%);height:auto;display:flex;align-items:center;background:#fffffff0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--radius-pill);padding:6px 12px;box-shadow:0 2px 10px #1615181f}.item-preview__emote-controls .MuiBox-root{position:static;width:100%;margin:0;padding:0;display:flex;align-items:center;gap:10px}.item-preview__emote-controls .MuiButtonBase-root{min-width:0;padding:0;margin:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:none!important;box-shadow:none!important;color:var(--muted);flex:0 0 auto;transition:background .12s ease,color .12s ease}.item-preview__emote-controls .MuiButtonBase-root .MuiSvgIcon-root{font-size:20px;margin:0}.item-preview__emote-controls .MuiBox-root>.MuiButtonBase-root:first-child{width:34px;height:34px;background:var(--accent)!important;color:#fff}.item-preview__emote-controls .MuiBox-root>.MuiButtonBase-root:first-child:hover{background:var(--text)!important}.item-preview__emote-controls .MuiBox-root>input+.MuiButtonBase-root{width:30px;height:30px;color:var(--muted)}.item-preview__emote-controls .MuiBox-root>input+.MuiButtonBase-root:hover{background:var(--media)!important;color:var(--text)}.item-preview__emote-controls input[type=range]{flex:1 1 auto;width:auto;min-width:0;height:4px;margin:0;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.item-preview__emote-controls input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:var(--line-strong)}.item-preview__emote-controls input[type=range]::-moz-range-track{height:4px;border-radius:999px;background:var(--line-strong)}.item-preview__emote-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:13px;height:13px;margin-top:-4.5px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 1px 3px #1615184d;cursor:pointer}.item-preview__emote-controls input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 1px 3px #1615184d;cursor:pointer}.item-preview__emote-controls input[type=range]:focus-visible{outline:none}.item-preview__emote-controls input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--accent);outline-offset:2px}.item-detail__preview>.item-preview__note{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:2;width:auto;height:auto;max-width:88%;margin:0;text-align:center;background:#161518c7;color:#fff;font-size:12px;font-weight:500;padding:6px 12px;border-radius:999px}.item-detail__preview>.item-preview__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:transparent}.item-preview__spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:item-preview-spin .8s linear infinite}@keyframes item-preview-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.item-preview__spinner{animation-duration:2.4s}}.item-detail__preview>.item-preview__loading .item-preview__skeleton{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:inherit}.item-detail__info-skel{display:flex;flex-direction:column;gap:16px}.id-skel__title{height:34px;width:70%;border-radius:8px}.id-skel__chips{display:flex;gap:8px}.id-skel__chip{height:24px;width:88px;border-radius:6px}.id-skel__line{height:14px;width:100%;border-radius:6px}.id-skel__line--short{width:55%}.id-skel__price{height:30px;width:40%;border-radius:8px}.id-skel__btn{height:48px;width:100%;border-radius:8px;margin-top:8px}.item-detail__info{display:flex;flex-direction:column;gap:0}.item-detail__info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.item-detail__title{font-size:28px;font-weight:600;line-height:34px;color:var(--text-2)}.item-detail__fav{flex:none;width:40px;height:40px;border-radius:50%;border:0;background:var(--media);display:grid;place-items:center;color:var(--text-2);cursor:pointer;transition:color .12s ease,background .12s ease}.item-detail__fav:hover{background:var(--line)}.item-detail__fav.is-on{color:var(--dcl-red)}.item-detail__preview>.item-detail__fav--preview{display:none}.item-detail__label{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:0;color:var(--muted)}.item-detail__chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.item-detail__chips .chip{height:24px;padding:0 8px;gap:3px;font-size:13px;font-weight:500;border-radius:4px;letter-spacing:.02em;text-transform:uppercase}.item-detail__chip{background:var(--chip);color:var(--text-2)}.item-detail__section{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.item-detail__description{margin-top:15px;gap:11px}.item-detail__desc-text{margin:0;color:var(--text-2);font-size:14px;line-height:30px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.item-detail__desc-text.is-expanded{-webkit-line-clamp:unset;overflow:visible}.item-detail__desc-toggle{font-size:13px;align-self:flex-start}.item-detail__meta{display:flex;justify-content:space-between;gap:16px;margin-top:32px}.item-detail__meta-col{display:flex;flex-direction:column;gap:15px;min-width:0}.item-detail__meta-col--collection{align-items:flex-start}.item-detail__creator[data-testid=creator]{color:var(--accent);font-size:14px;gap:12px}.item-detail__creator [data-avatar]{width:48px;height:48px}.item-detail__creator [data-letter]{font-size:18px}.item-detail__creator [data-testid=creator-name]{color:var(--accent);font-weight:500;text-decoration:underline}.item-detail__creator[data-link]:hover [data-testid=creator-name]{color:var(--brand-violet)}.collection-collage{display:flex;flex-direction:column;overflow:hidden;gap:1px;background:var(--line-strong)}.collection-collage__row{display:flex;flex:1 1 50%;min-height:0;gap:1px}.collection-collage__row--full{flex-basis:100%}.collection-collage__row img{flex:1 1 0;min-width:0;width:100%;height:100%;object-fit:cover;display:block}.item-detail__divider{border:0;border-top:1px solid #cfcdd4;margin:24px 0 0;width:100%}.item-detail__price-block{margin-top:16px}.item-detail__price-row{display:flex;align-items:flex-start;gap:16px;width:100%}.item-detail__price-col{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:8px}.item-detail__stock-col{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}.item-detail__stock-value{font-size:18px;font-weight:500;line-height:1;color:var(--text-2)}.item-detail__price-label{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:0;color:#5e5b67}.item-detail__price{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--text)}.item-detail__diamond{width:30px;height:30px;color:var(--brand-violet)}.item-detail__price-value{font-size:30px;line-height:1}.item-detail__price--none{font-size:18px;color:var(--muted)}.item-detail__approx{font-size:24px;font-weight:700;color:var(--text);margin-right:-2px}.item-detail__market-note{font-size:13px;margin-top:6px}.item-detail__price--sale{flex-wrap:wrap;gap:10px 14px}.item-detail__price--sale .item-detail__price,.item-detail__price--sale .item-detail__price-value,.item-detail__price--sale .item-detail__diamond{color:var(--dcl-red)}.item-detail__price-was{display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:line-through;font-weight:600;font-size:20px}.item-detail__diamond--was{width:18px;height:18px;color:var(--muted)}.item-detail__sale-badge{display:inline-flex;align-items:center;background:var(--dcl-red);color:#fff;font-weight:800;font-size:13px;letter-spacing:.03em;text-transform:uppercase;border-radius:6px;padding:4px 10px}.item-detail__countdown{display:inline-flex;align-items:center;gap:5px;background:var(--rarity-bg);color:var(--accent);font-size:13px;font-weight:700;border-radius:6px;padding:4px 10px;white-space:nowrap}.item-detail__ctas{display:flex;flex-direction:column;gap:12px;margin-top:20px}.item-detail__cta-price{display:none;align-items:center;gap:6px}.item-detail__cta-diamond{width:20px;height:20px;color:#fff}.item-detail__addcart{width:100%;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--black-btn);color:var(--soft-white);border:0;border-radius:8px;font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.46px;cursor:pointer;transition:filter .15s ease}.item-detail__addcart:hover:not(:disabled){filter:brightness(1.35)}.item-detail__addcart:disabled{opacity:.55;cursor:default}.item-detail__status{margin:0;font-size:13px}.item-detail__own-note{margin:0;font-size:14px}.item-detail__own-note a{color:var(--accent);font-weight:600}@media(max-width:900px){.item-detail__title{font-size:20px;line-height:24px}.item-detail__info-head{order:0}.item-detail__chips{order:1;margin-top:10px}.item-detail__meta{order:2;margin-top:20px}.item-detail__description{order:3;margin-top:20px}.item-detail__divider{order:4;margin-top:20px}.item-detail__price-block{order:5;margin-top:16px}.item-detail__ctas{order:6}.item-detail__status{order:7}.item-detail{padding-bottom:88px}.item-detail__ctas--buttons{position:fixed;left:0;right:0;bottom:0;z-index:40;margin-top:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--soft-white);box-shadow:0 -4px 16px #1615181f}.item-detail__ctas--dual{flex-direction:row;align-items:stretch;gap:12px}.item-detail__ctas--dual .item-detail__cta-price{display:inline-flex}.item-detail__ctas--dual .item-detail__addcart{flex:0 0 auto;width:56px;padding:0}.item-detail__ctas--dual .item-detail__addcart-label{display:none}.item-detail__ctas--dual .item-detail__addcart .ico{margin:0}.item-detail__info-head .item-detail__fav{display:none}.item-detail__preview>.item-detail__fav--preview{display:grid;position:absolute;top:12px;right:12px;z-index:3;width:40px;height:40px;background:#ffffffeb;box-shadow:0 1px 4px #1615182e}.item-detail__preview>.item-detail__fav--preview:hover{background:#fff}.item-detail__preview>.item-preview__toggle{top:auto;left:auto;bottom:12px;right:12px;gap:0;padding:0;background:transparent;border:0;box-shadow:0 1px 4px #1615182e;overflow:hidden}.item-preview__toggle-label{display:none}.item-preview__toggle-ico{display:block}.item-preview__toggle button{padding:9px 13px;border-radius:0;background:#fff;color:var(--text-2)}.item-preview__toggle button.is-active{background:var(--text);color:#fff}.item-preview__toggle button:first-child{border-top-left-radius:999px;border-bottom-left-radius:999px}.item-preview__toggle button:last-child{border-top-right-radius:999px;border-bottom-right-radius:999px}}.item-detail--notfound{min-height:46vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}.item-detail__notfound-ico{width:44px;height:44px;opacity:.4}.item-detail__notfound-title{font-size:22px}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{r as l,j as c}from"./react-yytiy0wi.js";import{s as u,B as p,t as d}from"./index-BEsdviTk.js";const a=u.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
padding: 28px 0 8px;
|
|
5
|
+
`,x=u(p)`
|
|
6
|
+
min-width: 160px;
|
|
7
|
+
`;function v({hasNextPage:t,isFetching:r,onLoadMore:n}){const e=l.useRef(null);return l.useEffect(()=>{const o=e.current;if(!o||!t)return;const s=new IntersectionObserver(f=>{var i;(i=f[0])!=null&&i.isIntersecting&&!r&&n()},{rootMargin:"600px 0px"});return s.observe(o),()=>s.disconnect()},[t,r,n]),t?c.jsx(a,{ref:e,children:c.jsx(x,{variant:"ghost",onClick:n,disabled:r,children:r?d("loadMore.loading"):d("loadMore.loadMore")})}):null}export{v as L};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{g as O,j as S,d as V,o as Y,u as H,t,q as h,C as x,r as M,v as $,k as j,i as D,l as J,w as X,b as y,x as F,y as R,s as Z,B as ee}from"./index-BEsdviTk.js";import{r as re,a as b}from"./mana-rate-9Jo_gX3p.js";import{a as ae,r as m,j as r}from"./react-yytiy0wi.js";import{b as A}from"./buy-BhSXg06e.js";import{g as te,b as se,w as ie,S as ce,G as ne}from"./buy-gasless-7ufZIH4V.js";import{i as de}from"./errors-DyHnPgpr.js";import{E as oe}from"./ErrorNotice-CKeOu_Oi.js";function pe(e=!0){return O({queryKey:["mana-rate",S.chainId],queryFn:()=>re(S.chainId),enabled:e,staleTime:6e4,refetchInterval:6e4,retry:1})}const B=Z(ee)`
|
|
2
|
+
flex: 1;
|
|
3
|
+
`;function U(e){if(de(e))return t("errors.rejected");const n=(e.message??"").toLowerCase();return n.includes("insufficient")?t("marketCheckout.error.insufficient",{currency:j.name}):n.includes("not found")||n.includes("no active listing")||n.includes("404")?t("marketCheckout.error.soldOrRemoved"):n.includes("your own listing")?t("errors.cantBuyOwn"):t("marketCheckout.error.generic")}function le(e){return{id:e.tradeId,tradeId:e.tradeId,name:e.name,creator:e.creator,contractAddress:e.contractAddress,itemId:e.itemId,category:e.category,wearableCategory:e.wearableCategory??void 0,rarity:e.rarity,network:e.network,chainId:e.chainId,thumbnail:e.thumbnail,priceCredits:0,gender:null,isSmart:!1}}function Ce({listing:e,rate:n,onClose:q,onSold:W}){const{session:i}=V(),{data:d,isError:T}=Y(i),w=H(),g=ae(),[N,k]=m.useState("confirm"),[p,I]=m.useState(t("marketCheckout.lockingPrice")),[G,f]=m.useState(null),[a,L]=m.useState(null),o=m.useRef(null),Q=Math.ceil(b(e.manaWei,n)/10);m.useEffect(()=>{let l=!1;if(!i){k("error"),f(t("buyModal.signInToCheckout"));return}return(async()=>{try{const s=await D(e.tradeId);if(!s)throw new Error("not found");if(J(s,i.address))throw new Error("You can't buy your own listing.");const u=b(e.manaWei,n);if(!Number.isFinite(u)||u<=0)throw new Error("price unavailable");const{credit:v,maxCreditedValue:K,usdCents:P}=await X(i.identity,u,e.tradeId);if(l){h(i.identity,[v.id]).catch(()=>{});return}o.current=v.id,L({trade:s,credit:v,maxCreditedValue:K,usdCents:P,credits:Math.ceil(P/10)}),I("")}catch(s){if(l)return;console.error("[market] authorize failed",s),y(R(s)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:F(s),value_usd:Math.round(b(e.manaWei,n))/100}),k("error"),f(U(s))}})(),()=>{l=!0,o.current&&i&&(h(i.identity,[o.current]).catch(()=>{}),o.current=null)}},[]);const C=!!a&&d!=null&&d.credits<a.credits;async function z(){if(!i||!a)return;if(C){y("Shop Buy Credits Prompted",{from:"item_checkout",credits_needed:a.credits,credits_balance:(d==null?void 0:d.credits)??0,shortfall:Math.max(0,a.credits-((d==null?void 0:d.credits)??0))}),h(i.identity,[a.credit.id]).catch(()=>{}),o.current=null,g("/credits");return}k("working"),f(null);let l=!1;try{I(t("marketCheckout.confirming"));const c={trade:a.trade,buyer:i.address,signer:i.signer,credits:[a.credit],maxCreditedValue:a.maxCreditedValue};let s;if(te())try{s=await se(c),await ie(s),l=!0}catch(u){if(u instanceof ce)l=!0;else if(u instanceof ne)s=await A(c);else throw u}else s=await A(c);o.current=null,y("Shop Completed Purchase",{items:[{item_id:e.itemId??null,contract_address:e.contractAddress,token_id:null,price_usd:a.usdCents/100}],value_credits:a.credits,value_usd:a.usdCents/100,purchase_type:"item",is_primary:!0,payment_type:"credits",no_crypto_step:l,transaction_hash:s??null}),w.invalidateQueries({queryKey:["usd-balance"]}),g("/success",{state:{items:[le(e)],txHash:s}})}catch(c){console.error("[market] buy now failed",c),h(i.identity,[a.credit.id]).catch(()=>{}),o.current=null,y(R(c)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:F(c),value_usd:a.usdCents/100}),w.invalidateQueries({queryKey:["usd-balance"]}),f(U(c)),k("error");const s=(c.message??"").toLowerCase();(s.includes("not found")||s.includes("no active listing")||s.includes("404"))&&W()}}function E(){i&&a&&h(i.identity,[a.credit.id]).catch(()=>{}),o.current=null,q()}const _=N==="working";return r.jsxs("div",{className:"mkt-modal",role:"dialog","aria-modal":"true","aria-label":t("buyModal.dialogAria",{name:e.name}),children:[r.jsx("div",{className:"mkt-modal__scrim",onClick:_?void 0:E,"aria-hidden":!0}),r.jsxs("div",{className:"mkt-modal__card",children:[r.jsxs("div",{className:"mkt-modal__head",children:[r.jsx("div",{className:"mkt-modal__thumb",children:e.thumbnail?r.jsx("img",{src:e.thumbnail,alt:""}):null}),r.jsxs("div",{children:[r.jsx("div",{className:"mkt-modal__name",title:e.name,children:e.name||t("buyModal.itemFallback")}),r.jsx("span",{className:"chip chip--rarity",children:e.rarity})]})]}),r.jsx("div",{className:"mkt-modal__price",children:a?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"mkt-modal__price-label",children:t("marketCheckout.finalPrice")}),r.jsxs("div",{className:"mkt-modal__price-value",children:[r.jsx(x,{className:"mkt-modal__diamond"}),M(a.credits)]}),r.jsxs("div",{className:"mkt-modal__price-sub muted",children:[t("marketCheckout.lockedForPurchase")," · $",(a.usdCents/100).toFixed(2)]})]}):r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"mkt-modal__price-label",children:t("marketCheckout.todaysPrice")}),r.jsxs("div",{className:"mkt-modal__price-value mkt-modal__price-value--approx",children:[r.jsx("span",{className:"mkt-modal__approx","aria-hidden":!0,children:"≈"}),r.jsx(x,{className:"mkt-modal__diamond"}),M(Q)]}),r.jsx("div",{className:"mkt-modal__price-sub muted",children:p||t("marketCheckout.lockingPrice")})]})}),i?r.jsxs("div",{className:"mkt-modal__balance muted",children:[t("marketCheckout.yourBalance")," ",r.jsx(x,{className:"ccy-mark"})," ",$(d,T)]}):null,C?r.jsx("p",{className:"muted mkt-modal__note",children:t("marketCheckout.needMore",{currency:j.name})}):null,p&&N==="working"?r.jsx("p",{className:"muted mkt-modal__note",children:p}):null,r.jsx(oe,{message:G,className:"mkt-modal__note"}),r.jsxs("div",{className:"mkt-modal__actions",children:[r.jsx(B,{variant:"ghost",onClick:E,disabled:_,children:t("buyModal.cancel")}),r.jsx(B,{variant:"purple",onClick:()=>void z(),disabled:_||!a,children:_?t("marketCheckout.buying"):C?t("nav.getCredits",{currency:j.name}):t("marketCheckout.confirmPurchase")})]})]})]})}export{Ce as M,pe as u};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{a as G,r as m,j as e,L as us}from"./react-yytiy0wi.js";import{j as z,F as hs,u as H,t as a,C as O,B as f,k as L,p as ts,b as P,a7 as X,D as J,x as rs,a as ps,d as ys,g as D,at as gs,s as ns,i as bs,au as xs}from"./index-BEsdviTk.js";import{f as js}from"./import-C6NVzCbS.js";import{d as is}from"./dcl-schemas-BICTSpB5.js";import{c as _s}from"./buy-BhSXg06e.js";import{a as fs,b as Ns,i as vs,e as Is,c as As}from"./trade-encoding-BT4RgSDL.js";import{f as ls}from"./errors-DyHnPgpr.js";import{E}from"./ErrorNotice-CKeOu_Oi.js";import{s as ks}from"./wallet-kind-B9P1TeIH.js";import{L as Ss}from"./LoadMore-CpjVWxfC.js";import{u as Cs}from"./useInfiniteGrid-Cw9zdPUx.js";import"./sentry-BPJvc5GU.js";import"./ethers-w2AslR0v.js";import"./intl-CBcMB1D2.js";import"./mana-rate-9Jo_gX3p.js";import"./index-HN6Rk25C.js";const K=()=>`${z.builderServerUrl}/v1`;function cs(s){return Array.isArray(s)?s:"results"in s&&Array.isArray(s.results)?s.results:"data"in s&&Array.isArray(s.data)?s.data:[]}async function os(s,i){const n=await hs(s,{method:"GET",identity:i,metadata:{}});if(!n.ok)throw new Error(`builder-server ${n.status}: ${await n.text()}`);const o=await n.json();return o.data??o}function ws(s,i){const n=i-s;return n>0?n:0}function Ls(s){var i,n,o,l,c;return((n=(i=s.data)==null?void 0:i.wearable)==null?void 0:n.category)??((l=(o=s.data)==null?void 0:o.emote)==null?void 0:l.category)??((c=s.data)==null?void 0:c.category)??s.type??"wearable"}function ss(s){return`${K()}/storage/contents/${s}`}function $(s,i){if(!s)return"";if(/^https?:\/\//.test(s))return s;const n=i==null?void 0:i[s];return n?ss(n):/^(ba|Qm)/.test(s)?ss(s):""}async function Ms(s,i){try{const n=await fetch(`${K()}/items/${s}/${i}/contents`);if(!n.ok)return{};const o=await n.json();return o.data??o}catch{return{}}}async function Ps(s,i,n){const o=$(s.thumbnail,s.contents)||$("thumbnail.png",s.contents);if(o)return o;if(i&&n){const l=await Ms(i,n);return $(s.thumbnail,l)||$("thumbnail.png",l)||$("image.png",l)}return""}async function $s(s,i){const n=`${K()}/${s.toLowerCase()}/collections?is_published=true`,o=await os(n,i);return cs(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 Es(s,i){const n=`${K()}/collections/${s.id}/items`,o=await os(n,i);return(await Promise.all(cs(o).map(async c=>{const I=c.rarity??"common",N=Number(c.total_supply??0)||0;let u;try{u=is.Rarity.getMaxSupply(I)}catch{u=0}const A=(c.contract_address??s.contractAddress).toLowerCase(),y=c.blockchain_item_id??"";return{id:c.id,collectionId:s.id,collectionName:s.name,contractAddress:A,blockchainItemId:y,name:c.name,category:Ls(c),rarity:I,thumbnail:await Ps(c,A,y),type:c.type??"wearable",isPublished:c.is_published??s.isPublished,isApproved:c.is_approved??s.isApproved,totalSupply:N,maxSupply:u,remainingSupply:ws(N,u),minters:s.minters}}))).filter(Ts)}function Ts(s){return s.isPublished&&s.isApproved&&s.blockchainItemId!==""&&s.blockchainItemId!=null&&s.remainingSupply>0}async function Fs(s,i){const n=await $s(s,i);return(await Promise.all(n.map(async l=>{try{return await Es(l,i)}catch{return[]}}))).flat()}const qs=1e3*60*60*24*182;function Os({asset:s,session:i,onClose:n}){const o=H(),l=G(),[c,I]=m.useState("10"),[N,u]=m.useState(null),[A,y]=m.useState(null),[g,C]=m.useState(!1),[_,k]=m.useState(null);async function w(){y(null);const d=Number(c);if(!Number.isInteger(d)||d<=0){y(a("sellModal.errorWholeNumber"));return}C(!0);try{u(a("sellModal.statusPreparing")),await fs({signer:i.signer,contractAddress:s.contractAddress,chainId:s.chainId}),u(a("sellModal.statusListing"));const v=await Ns({signer:i.signer,nft:{contractAddress:s.contractAddress,tokenId:s.tokenId,network:s.network,chainId:s.chainId},usdPrice:d/10,expiresAtMs:Date.now()+qs});u(a("sellModal.statusPublishing")),await ts(v,i.identity),u(null),k(d),P("Shop Listed Item",{item_id:s.itemId??s.tokenId??null,contract_address:s.contractAddress,price_credits:d,price_usd:d/10,listing_type:"secondary",is_primary:!1}),X.success(a("sellModal.toastOnSale",{name:s.name})),o.invalidateQueries({queryKey:["my-assets",i.address]})}catch(v){J(v,{flow:"list_secondary"}),P("Shop Listing Failed",{listing_type:"secondary",error_code:rs(v)}),y(ls(v,a("sellModal.errorGeneric"))),u(null)}finally{C(!1)}}function j(){n(),l(`/item/${s.contractAddress}/${s.tokenId}`)}return _!==null?e.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:e.jsxs("div",{className:"modal modal--success",onClick:d=>d.stopPropagation(),role:"dialog","aria-modal":"true",children:[e.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),e.jsx("h2",{className:"modal__title",children:a("sellModal.successTitle")}),s.image?e.jsx("img",{className:"modal__img",src:s.image,alt:s.name}):null,e.jsx("p",{className:"modal-success__name",children:s.name}),e.jsxs("p",{className:"muted small",children:[a("sellModal.listedFor")," ",e.jsxs("strong",{children:[e.jsx(O,{className:"ccy-mark"})," ",_]})]}),e.jsxs("div",{className:"modal__actions",children:[e.jsx(f,{variant:"ghost",onClick:n,children:a("getCredits.done")}),e.jsx(f,{variant:"purple",onClick:j,children:a("sellModal.viewInShop")})]})]})}):e.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:e.jsxs("div",{className:"modal","data-testid":"modal",onClick:d=>d.stopPropagation(),role:"dialog","aria-modal":"true",children:[e.jsx("h2",{className:"modal__title",children:a("sellModal.listTitle",{name:s.name})}),s.image?e.jsx("img",{className:"modal__img",src:s.image,alt:s.name}):null,e.jsxs("label",{className:"field",children:[e.jsx("span",{children:a("sellModal.priceLabel",{currency:L.name})}),e.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:d=>I(d.target.value),disabled:g})]}),e.jsx("p",{className:"muted small",children:a("sellModal.pricedInWhole",{currency:L.name,currencySingular:L.nameSingular})}),N?e.jsx("p",{className:"muted",children:N}):null,e.jsx(E,{message:A}),e.jsxs("div",{className:"modal__actions",children:[e.jsx(f,{variant:"ghost",onClick:n,disabled:g,children:a("sellModal.cancel")}),e.jsx(f,{onClick:()=>void w(),disabled:g,children:g?a("sellModal.listing"):a("sellModal.putOnSale")})]})]})})}const Ks=1e3*60*60*24*182;function Qs({item:s,session:i,onClose:n}){const o=H(),l=G(),[c,I]=m.useState("10"),[N,u]=m.useState(null),[A,y]=m.useState(null),[g,C]=m.useState(!1),[_,k]=m.useState(null),[w,j]=m.useState(null),d=z.chainId,v=ks(i.providerType);m.useEffect(()=>{let h=!1;return(async()=>{try{const b=await vs({contractAddress:s.contractAddress,chainId:d});h||k(b)}catch{h||k(!1)}})(),()=>{h=!0}},[s.contractAddress,d]);async function Q(){y(null);const h=Number(c);if(!Number.isInteger(h)||h<=0){y(a("primaryList.errorWholeNumber"));return}C(!0);try{_||(u(a("primaryList.statusEnabling")),await Is({signer:i.signer,contractAddress:s.contractAddress,chainId:d}),k(!0)),u(a("primaryList.statusPublishing"));const b=await As({signer:i.signer,item:{contractAddress:s.contractAddress,itemId:s.blockchainItemId,network:is.Network.MATIC,chainId:d},usdPrice:h/10,uses:s.remainingSupply,expiresAtMs:Date.now()+Ks});u(a("primaryList.statusFinishing")),await ts(b,i.identity),u(null),j(h),P("Shop Listed Item",{item_id:s.blockchainItemId,contract_address:s.contractAddress,price_credits:h,price_usd:h/10,listing_type:"primary",is_primary:!0}),X.success(a("primaryList.toastOnSale",{name:s.name})),o.invalidateQueries({queryKey:["publishable-items"]}),o.invalidateQueries({queryKey:["collection-sale-state"]})}catch(b){J(b,{flow:"list_primary"}),P("Shop Listing Failed",{listing_type:"primary",error_code:rs(b)}),y(ls(b,a("primaryList.errorGeneric"))),u(null)}finally{C(!1)}}function B(){n(),l(`/item/${s.contractAddress}/${s.blockchainItemId}`)}const T=g?a("primaryList.listing"):_===!1?a("primaryList.enableAndPutOnSale"):a("primaryList.putOnSale");return w!==null?e.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:e.jsxs("div",{className:"modal modal--success",onClick:h=>h.stopPropagation(),role:"dialog","aria-modal":"true",children:[e.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),e.jsx("h2",{className:"modal__title",children:a("primaryList.successTitle")}),s.thumbnail?e.jsx("img",{className:"modal__img",src:s.thumbnail,alt:s.name}):null,e.jsx("p",{className:"modal-success__name",children:s.name}),e.jsxs("p",{className:"muted small",children:[a("primaryList.listedFor")," ",e.jsxs("strong",{children:[e.jsx(O,{className:"ccy-mark"})," ",w]})," ",a("primaryList.dotAvailable",{count:s.remainingSupply})]}),e.jsxs("div",{className:"modal__actions",children:[e.jsx(f,{variant:"ghost",onClick:n,children:a("getCredits.done")}),e.jsx(f,{variant:"purple",onClick:B,children:a("primaryList.viewInShop")})]})]})}):e.jsx("div",{className:"modal-backdrop",onClick:n,role:"presentation",children:e.jsxs("div",{className:"modal","data-testid":"modal",onClick:h=>h.stopPropagation(),role:"dialog","aria-modal":"true",children:[e.jsx("h2",{className:"modal__title",children:a("primaryList.publishTitle",{name:s.name})}),s.thumbnail?e.jsx("img",{className:"modal__img",src:s.thumbnail,alt:s.name}):null,e.jsx("p",{className:"muted small",children:a("primaryList.fromCollection",{collectionName:s.collectionName,count:s.remainingSupply})}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:a("primaryList.priceLabel",{currency:L.name})}),e.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:h=>I(h.target.value),disabled:g})]}),e.jsx("p",{className:"muted small",children:a("primaryList.pricedInWhole",{currency:L.name,currencySingular:L.nameSingular})}),_===!1&&!g?v?e.jsx("p",{className:"muted small primary-note",children:a("primaryList.firstTimeConfirm",{collectionName:s.collectionName})}):e.jsx("p",{className:"muted small primary-note",children:a("primaryList.firstTimeManaged",{collectionName:s.collectionName})}):_===!0&&!g?v?e.jsx("p",{className:"muted small primary-note",children:a("primaryList.readyConfirm")}):e.jsx("p",{className:"muted small primary-note",children:a("primaryList.readyManaged")}):null,N?e.jsx("p",{className:"muted",children:N}):null,e.jsx(E,{message:A}),e.jsxs("div",{className:"modal__actions",children:[e.jsx(f,{variant:"ghost",onClick:n,disabled:g,children:a("primaryList.cancel")}),e.jsx(f,{onClick:()=>void Q(),disabled:g||_===null,children:_===null?a("primaryList.checking"):T})]})]})})}const Bs=ns(f)`
|
|
2
|
+
margin-top: 8px;
|
|
3
|
+
width: 100%;
|
|
4
|
+
`,es=ns(f)`
|
|
5
|
+
margin-top: auto;
|
|
6
|
+
width: 100%;
|
|
7
|
+
`,Rs=48;function Us(s){return{id:s.id,name:s.name,creator:"",contractAddress:s.contractAddress,itemId:s.itemId,category:s.category,rarity:s.rarity??"common",network:s.network,chainId:s.chainId,thumbnail:s.image,priceCredits:s.listingPrice??0,gender:null,isSmart:!1,tokenId:s.tokenId}}function as(s){return{id:`${s.contractAddress}-${s.blockchainItemId}`,name:s.name,creator:"",contractAddress:s.contractAddress,itemId:s.blockchainItemId,category:s.category,rarity:s.rarity,network:"MATIC",chainId:z.chainId,thumbnail:s.thumbnail,priceCredits:0,gender:null,isSmart:!1}}function ie(){ps({title:a("nav.myAssets"),noindex:!0});const{session:s,error:i,signIn:n,restore:o}=ys(),l=G(),c=H(),[I,N]=m.useState(null),[u,A]=m.useState(null),[y,g]=m.useState(null),[C,_]=m.useState(null);function k(t){const r=t.tokenId??t.itemId??"";!t.contractAddress||!r||l(`/item/${t.contractAddress}/${r}`,{state:{item:t}})}async function w(t,r,p){if(s){_(null),g(p);try{const x=await bs(t);await _s({trade:x,signer:s.signer}),X.success(a("myAssets.removedFromSale",{name:r})),await c.invalidateQueries({queryKey:["my-assets",s.address]}),await c.invalidateQueries({queryKey:["collection-sale-state"]})}catch(x){const F=x,q=(F.message??"").toLowerCase(),Z=F.code===4001||q.includes("reject")||q.includes("denied");Z||J(x,{flow:"remove-listing",tradeId:t}),_(Z?a("getCredits.errorCanceled"):a("myAssets.removeListingError"))}finally{g(null)}}}m.useEffect(()=>{o()},[o]);const j=s==null?void 0:s.address,{items:d,isLoading:v,error:Q,hasNextPage:B,isFetchingNextPage:T,fetchNextPage:h}=Cs(["my-assets",j],t=>gs(j,{first:Rs,skip:t}).then(r=>({items:r.assets,total:r.total})),{enabled:!!j}),{data:b}=D({queryKey:["importable",j],queryFn:()=>js(j),enabled:!!j}),V=((b==null?void 0:b.creations.length)??0)+((b==null?void 0:b.owned.length)??0),{data:M,isLoading:ds,isError:ms}=D({queryKey:["publishable-items",j],queryFn:()=>Fs(j,s.identity),enabled:!!s,retry:!1}),R=m.useMemo(()=>[...new Set((M??[]).map(t=>t.contractAddress))],[M]),{data:S}=D({queryKey:["collection-sale-state",j,R],enabled:R.length>0,queryFn:async()=>{const t=await Promise.all(R.map(async p=>[p,await xs(p)])),r={};for(const[p,x]of t)for(const[F,q]of Object.entries(x))r[`${p}-${F}`]=q;return r}}),U=t=>S==null?void 0:S[`${t.contractAddress}-${t.blockchainItemId}`],W=m.useMemo(()=>(M??[]).filter(t=>{var r;return(r=U(t))==null?void 0:r.isOnSale}),[M,S]),Y=m.useMemo(()=>{var r;const t=new Map;for(const p of M??[]){if((r=S==null?void 0:S[`${p.contractAddress}-${p.blockchainItemId}`])!=null&&r.isOnSale)continue;const x=t.get(p.collectionId)??{id:p.collectionId,name:p.collectionName,items:[]};x.items.push(p),t.set(p.collectionId,x)}return[...t.values()]},[M,S]);return s?e.jsxs("section",{className:"myassets",children:[e.jsx("h1",{children:a("nav.myAssets")}),V>0?e.jsxs(us,{className:"import-banner",to:"/import",children:[e.jsx("span",{className:"import-banner__ico","aria-hidden":!0,children:"📦"}),e.jsxs("span",{className:"import-banner__text",children:[e.jsx("strong",{children:a("myAssets.importTitle")}),e.jsx("span",{className:"import-banner__sub",children:a("myAssets.importSub",{count:V})})]}),e.jsx("span",{className:"import-banner__cta",children:a("myAssets.import")})]}):null,e.jsxs("div",{className:"myassets__section",children:[e.jsxs("div",{className:"myassets__section-head",children:[e.jsx("h2",{className:"myassets__section-title",children:a("myAssets.ownedTitle")}),e.jsx("p",{className:"myassets__section-sub",children:a("myAssets.ownedSub")})]}),Q?e.jsx(E,{message:a("myAssets.ownedError")}):null,e.jsx(E,{message:C}),e.jsxs("div",{className:"asset-grid",children:[v?Array.from({length:8}).map((t,r)=>e.jsx("div",{className:"asset-card asset-card--skeleton"},`sk-${r}`)):d.map(t=>e.jsxs("article",{className:"asset-card asset-card--link",children:[e.jsx("button",{className:"card-link-overlay","aria-label":a("myAssets.viewItem",{name:t.name}),onClick:()=>k(Us(t))}),e.jsx("div",{className:"asset-card__img",children:t.image?e.jsx("img",{src:t.image,alt:t.name}):null}),e.jsx("div",{className:"asset-card__name",title:t.name,children:t.name}),t.isOnSale?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"asset-card__listed",children:[e.jsxs("span",{className:"asset-card__price",children:[e.jsx(O,{className:"ccy-mark"})," ",t.listingPrice]}),e.jsx("span",{className:"badge",children:a("myAssets.onSale")})]}),e.jsx(Bs,{size:"sm",variant:"ghost",disabled:y===t.id||!t.tradeId,onClick:r=>{r.stopPropagation(),t.tradeId&&w(t.tradeId,t.name,t.id)},children:y===t.id?a("myAssets.removing"):a("myAssets.removeListing")})]}):e.jsx(f,{size:"sm",onClick:r=>{r.stopPropagation(),P("Shop Started Listing",{listing_type:"secondary",item_id:t.itemId??t.tokenId??null}),N(t)},children:a("myAssets.putOnSale")})]},t.id)),T?Array.from({length:4}).map((t,r)=>e.jsx("div",{className:"asset-card asset-card--skeleton"},`msk-${r}`)):null]}),e.jsx(Ss,{hasNextPage:B,isFetching:T,onLoadMore:()=>void h()}),!v&&d.length===0?e.jsx("p",{className:"muted",children:a("myAssets.ownedEmpty")}):null]}),e.jsxs("div",{className:"myassets__section",children:[e.jsxs("div",{className:"myassets__section-head",children:[e.jsx("h2",{className:"myassets__section-title",children:a("myAssets.creationsTitle")}),e.jsx("p",{className:"myassets__section-sub",children:a("myAssets.creationsSub",{currency:L.name})})]}),ds?e.jsx("div",{className:"publish-grid",children:Array.from({length:4}).map((t,r)=>e.jsx("div",{className:"asset-card asset-card--skeleton"},`pub-sk-${r}`))}):ms?e.jsx("p",{className:"publish-empty",children:a("myAssets.collectionsError")}):W.length===0&&Y.length===0?e.jsx("p",{className:"publish-empty",children:a("myAssets.nothingToPublish")}):e.jsxs(e.Fragment,{children:[W.length>0?e.jsxs("div",{className:"creations-collection",children:[e.jsx("h3",{className:"creations-collection__name",children:a("myAssets.onSale")}),e.jsx("div",{className:"publish-grid",children:W.map(t=>{var r;return e.jsxs("article",{className:"publish-card publish-card--link",children:[e.jsx("button",{className:"card-link-overlay","aria-label":a("myAssets.viewItem",{name:t.name}),onClick:()=>k(as(t))}),e.jsx("div",{className:"publish-card__img",children:t.thumbnail?e.jsx("img",{src:t.thumbnail,alt:t.name}):null}),e.jsx("div",{className:"publish-card__name",title:t.name,children:t.name}),e.jsxs("div",{className:"publish-card__listed",children:[e.jsxs("span",{className:"publish-card__price",children:[e.jsx(O,{className:"ccy-mark"})," ",((r=U(t))==null?void 0:r.priceCredits)??0]}),e.jsx("span",{className:"badge",children:a("myAssets.onSale")})]}),e.jsx(es,{size:"sm",variant:"ghost",disabled:y===t.id,onClick:p=>{p.stopPropagation();const x=U(t);x!=null&&x.tradeId&&w(x.tradeId,t.name,t.id)},children:y===t.id?a("myAssets.removing"):a("myAssets.removeListing")})]},`${t.contractAddress}-${t.blockchainItemId}`)})})]}):null,Y.map(t=>e.jsxs("div",{className:"creations-collection",children:[e.jsx("h3",{className:"creations-collection__name",children:t.name}),e.jsx("div",{className:"publish-grid",children:t.items.map(r=>e.jsxs("article",{className:"publish-card publish-card--link",children:[e.jsx("button",{className:"card-link-overlay","aria-label":a("myAssets.viewItem",{name:r.name}),onClick:()=>k(as(r))}),e.jsx("div",{className:"publish-card__img",children:r.thumbnail?e.jsx("img",{src:r.thumbnail,alt:r.name}):null}),e.jsx("div",{className:"publish-card__name",title:r.name,children:r.name}),e.jsxs("div",{className:"publish-card__meta",children:[e.jsx("span",{className:"publish-chip publish-chip--rarity",children:r.rarity}),e.jsx("span",{className:"publish-card__supply",children:a("myAssets.available",{count:r.remainingSupply})})]}),e.jsx(es,{size:"sm",variant:"purple",onClick:p=>{p.stopPropagation(),P("Shop Started Listing",{listing_type:"primary",item_id:r.blockchainItemId}),A(r)},children:a("myAssets.putOnSale")})]},`${r.contractAddress}-${r.blockchainItemId}`))})]},t.id))]})]}),I?e.jsx(Os,{asset:I,session:s,onClose:()=>N(null)}):null,u?e.jsx(Qs,{item:u,session:s,onClose:()=>A(null)}):null]}):e.jsxs("section",{className:"myassets",children:[e.jsx("h1",{children:a("nav.myAssets")}),e.jsx("p",{className:"muted",children:a("myAssets.signInPrompt")}),e.jsx("div",{className:"connect-row",children:e.jsx(f,{variant:"purple",onClick:()=>n(),children:a("storeSettings.signIn")})}),e.jsx(E,{message:i})]})}export{ie as MyAssets};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.publish-section{margin-top:40px}.publish-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}.publish-section__title{font-size:20px;font-weight:700;color:var(--text)}.publish-section__hint{color:var(--muted);font-size:14px;margin:0 0 16px}.publish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:8px}.publish-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.publish-card__img{aspect-ratio:1;background:var(--media);border-radius:8px;display:grid;place-items:center;overflow:hidden}.publish-card__img img{width:100%;height:100%;object-fit:contain}.publish-card__name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.publish-card__meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.publish-card__collection{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.publish-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;border-radius:var(--radius-chip);padding:3px 8px;background:var(--chip);color:#555}.publish-chip--rarity{background:var(--rarity-bg);color:var(--rarity);text-transform:uppercase;letter-spacing:.02em}.publish-card__supply{color:var(--muted);font-size:12px}.publish-empty{color:var(--muted);padding:16px 0}.primary-note{background:var(--rarity-bg);color:var(--accent);border-radius:8px;padding:10px 12px;margin:0}.myassets__section{margin-bottom:48px}.myassets__section-head{margin-bottom:18px}.myassets__section-title{font-size:22px;font-weight:700;margin:0}.myassets__section-sub{color:var(--muted);font-size:14px;margin:4px 0 0}.creations-collection{margin-bottom:26px}.creations-collection__name{font-size:15px;font-weight:700;color:var(--text-2);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line)}.asset-card--link,.publish-card--link{position:relative;transition:box-shadow .15s ease,transform .15s ease}.asset-card--link:hover,.publish-card--link:hover{box-shadow:0 10px 26px #14141e1f;transform:translateY(-2px)}.card-link-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:transparent;border:0;padding:0;cursor:pointer}.card-link-overlay:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.asset-card--link>button:not(.card-link-overlay),.publish-card--link>button:not(.card-link-overlay){position:relative;z-index:2}.publish-card__listed{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.publish-card__price{font-weight:800;font-size:15px}.import-banner{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);background:linear-gradient(100deg,#a524b31a,#691fa90f);border:1px solid rgba(105,31,169,.22);border-radius:14px;padding:14px 18px;margin:4px 0 22px;transition:box-shadow .15s ease,transform .15s ease}.import-banner:hover{box-shadow:0 10px 26px #691fa929;transform:translateY(-1px)}.import-banner__ico{font-size:26px}.import-banner__text{display:flex;flex-direction:column;gap:2px;min-width:0}.import-banner__text strong{font-size:15px}.import-banner__sub{color:var(--muted);font-size:13px}.import-banner__cta{margin-left:auto;flex:none;background:var(--accent);color:#fff;font-weight:700;font-size:13px;letter-spacing:.03em;text-transform:uppercase;padding:9px 18px;border-radius:9px}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{r as n,j as s,L as m}from"./react-yytiy0wi.js";import{a as c,t,c as l,I as d,A as p,s as v,B as x}from"./index-BEsdviTk.js";import{L as h}from"./LoadMore-CpjVWxfC.js";import"./dcl-schemas-BICTSpB5.js";import"./sentry-BPJvc5GU.js";import"./ethers-w2AslR0v.js";import"./intl-CBcMB1D2.js";const u=v(x)`
|
|
2
|
+
margin-top: 12px;
|
|
3
|
+
`,r=24;function E(){c({title:t("nav.myFavorites"),noindex:!0});const a=l(e=>Object.values(e.items)),[i,o]=n.useState(r);return a.length===0?s.jsxs("div",{className:"favorites-empty",children:[s.jsx(d,{name:"heart",size:40,color:"var(--muted-2)"}),s.jsx("p",{className:"favorites-empty__title",children:t("myFavorites.emptyTitle")}),s.jsx("p",{className:"muted",children:t("myFavorites.emptyBody")}),s.jsx(u,{as:m,to:"/assets",variant:"purple",children:t("notFound.cta")})]}):s.jsxs("section",{className:"favorites",children:[s.jsxs("div",{className:"favorites__head",children:[s.jsx("h1",{children:t("nav.myFavorites")}),s.jsx("span",{className:"favorites__count",children:t("myFavorites.itemCount",{count:a.length})})]}),s.jsx("div",{className:"grid",children:a.slice(0,i).map(e=>s.jsx(p,{item:e},e.id))}),s.jsx(h,{hasNextPage:i<a.length,isFetching:!1,onLoadMore:()=>o(e=>e+r)})]})}export{E as MyFavorites};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{j as s,L as o}from"./react-yytiy0wi.js";import{a as l,t as r,d as p,I as h,e as x,s as j,B as _,g as y,C as N,h as g}from"./index-BEsdviTk.js";import{L as f}from"./LoadMore-CpjVWxfC.js";import{u as v}from"./useInfiniteGrid-Cw9zdPUx.js";import"./dcl-schemas-BICTSpB5.js";import"./sentry-BPJvc5GU.js";import"./ethers-w2AslR0v.js";import"./intl-CBcMB1D2.js";const P=j(_)`
|
|
2
|
+
margin-top: 12px;
|
|
3
|
+
`,I=24;function b(e){try{return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}function E({status:e}){return e==="PENDING"?s.jsx("span",{className:"purchase__badge purchase__badge--pending",children:r("myPurchases.processing")}):s.jsx("span",{className:"purchase__badge purchase__badge--done",children:r("myPurchases.completed")})}function F({purchase:e}){const{data:a}=y({queryKey:["trade-display",e.tradeId],queryFn:()=>g(e.tradeId),enabled:!!e.tradeId,staleTime:3e5}),c=(a==null?void 0:a.name)??r("myPurchases.itemFallback"),m=(a==null?void 0:a.thumbnail)??"",i=(a==null?void 0:a.tokenId)??(a==null?void 0:a.itemId)??"",d=a!=null&&a.contractAddress&&i?`/item/${a.contractAddress}/${i}`:void 0,n=s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"purchase__thumb",children:m?s.jsx("img",{src:m,alt:c}):null}),s.jsxs("div",{className:"purchase__info",children:[s.jsx("div",{className:"purchase__name",title:c,children:c}),s.jsx("div",{className:"muted purchase__date",children:b(e.createdAt)})]}),s.jsx(E,{status:e.status}),s.jsxs("div",{className:"purchase__price",children:[s.jsx(N,{className:"ccy-mark"})," ",e.credits]})]});return d?s.jsx(o,{className:"purchase",to:d,children:n}):s.jsx("div",{className:"purchase",children:n})}function G(){l({title:r("nav.myPurchases"),noindex:!0});const{session:e}=p(),{items:a,isLoading:c,hasNextPage:m,isFetchingNextPage:i,fetchNextPage:d}=v(["purchases",e==null?void 0:e.address],t=>x(e.address,e.identity,{first:I,skip:t}),{enabled:!!e});if(!e)return s.jsxs("div",{className:"purchases-empty",children:[s.jsx(h,{name:"cart",size:40,color:"var(--muted-2)"}),s.jsx("p",{className:"purchases-empty__title",children:r("myPurchases.signInTitle")}),s.jsx("p",{className:"muted",children:r("myPurchases.signInBody")})]});const n=a.filter(t=>t.status!=="EXPIRED");return!c&&n.length===0?s.jsxs("div",{className:"purchases-empty",children:[s.jsx(h,{name:"cart",size:40,color:"var(--muted-2)"}),s.jsx("p",{className:"purchases-empty__title",children:r("myPurchases.emptyTitle")}),s.jsx("p",{className:"muted",children:r("myPurchases.emptyBody")}),s.jsx(P,{as:o,to:"/assets",variant:"purple",children:r("notFound.cta")})]}):s.jsxs("section",{className:"purchases",children:[s.jsxs("div",{className:"purchases__head",children:[s.jsx("h1",{children:r("nav.myPurchases")}),c?null:s.jsx("span",{className:"purchases__count",children:r("myPurchases.orderCount",{count:n.length})})]}),s.jsx("div",{className:"purchases__list",children:c?Array.from({length:4}).map((t,u)=>s.jsx("div",{className:"purchase purchase--skeleton"},u)):s.jsxs(s.Fragment,{children:[n.map(t=>s.jsx(F,{purchase:t},t.id)),i?Array.from({length:2}).map((t,u)=>s.jsx("div",{className:"purchase purchase--skeleton"},`m-${u}`)):null]})}),s.jsx(f,{hasNextPage:m,isFetching:i,onLoadMore:()=>void d()})]})}export{G as MyPurchases};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t,L as n}from"./react-yytiy0wi.js";import{a as s,t as o,I as e,B as a}from"./index-BEsdviTk.js";import"./dcl-schemas-BICTSpB5.js";import"./sentry-BPJvc5GU.js";import"./ethers-w2AslR0v.js";import"./intl-CBcMB1D2.js";function c(){return s({title:o("seo.notFound.title"),noindex:!0}),t.jsxs("div",{className:"notfound","data-testid":"notfound",children:[t.jsx(e,{name:"cart",className:"notfound__ico"}),t.jsx("h1",{className:"notfound__title",children:o("notFound.title")}),t.jsx("p",{className:"muted",children:o("notFound.body")}),t.jsx(a,{as:n,to:"/assets",variant:"purple",children:o("notFound.cta")})]})}export{c as NotFound,c as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.store-settings{max-width:640px;margin:0 auto;padding:8px 0 48px;display:flex;flex-direction:column;gap:20px}.store-settings--signin{min-height:60vh;align-items:center;justify-content:center;text-align:center;gap:12px}.store-settings__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.store-settings__heading{display:flex;align-items:center;gap:10px}.store-settings__back{display:flex;align-items:center;justify-content:center;color:var(--text);transition:color .15s linear}.store-settings__back:hover{color:var(--accent)}.store-settings__back .ico{width:22px;height:22px}.store-settings__title{font-size:24px;font-weight:800}.store-settings__guest{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:700;font-size:14px;text-decoration:none}.store-settings__guest:hover{text-decoration:underline}.store-settings__guest .ico{width:15px;height:15px}.store-settings .field__label{font-weight:700;color:var(--text)}.store-settings textarea{background:#fff;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px;color:var(--text);font:inherit;resize:vertical;min-height:88px}.field__prefixed{display:flex;align-items:stretch;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:#fff}.field__prefix{display:flex;align-items:center;padding:0 10px;background:#0000000a;color:var(--muted);font-size:13px;white-space:nowrap;border-right:1px solid var(--line-strong)}.field__prefixed input{border:0!important;border-radius:0!important;flex:1;min-width:0}.cover-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.cover-picker__tile{position:relative;padding:0;border:2px solid var(--line-strong);border-radius:var(--radius-card);overflow:hidden;aspect-ratio:16 / 9;background:var(--media, #f0eef2);cursor:pointer}.cover-picker__tile img{width:100%;height:100%;object-fit:cover;display:block}.cover-picker__tile.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cover-picker__tile.is-selected:after{content:"✓";position:absolute;top:6px;right:6px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:700}.cover-picker__upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-style:dashed;color:var(--muted);font-size:13px;font-weight:700;background:#fff}.cover-picker__upload .ico{width:22px;height:22px;background:var(--muted)}.cover-picker__upload:hover{border-color:var(--accent);color:var(--accent)}.cover-picker__upload:hover .ico{background:var(--accent)}.cover-picker__input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.store-settings__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.store-settings__save{min-width:180px}.store-settings__loading{padding:64px 0}@media(max-width:768px){.store-settings__save{width:100%}.cover-picker{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import{j as s,a as se,r as n,L as te}from"./react-yytiy0wi.js";import{t as a,af as C,s as _,S as ae,a as ie,d as re,u as ne,I as E,B as P,a7 as R}from"./index-BEsdviTk.js";import{u as oe,d as le,t as ce,L as de,i as B,a as v,s as me}from"./useStore-Cd9Nfgb3.js";import{E as M}from"./ErrorNotice-CKeOu_Oi.js";import"./dcl-schemas-BICTSpB5.js";import"./sentry-BPJvc5GU.js";import"./ethers-w2AslR0v.js";import"./intl-CBcMB1D2.js";const ue="https://cdn.decentraland.org/@dcl/shop/0.1.0-29792819793.commit-bcbfeac/assets/template-cover-1-BETekfHg.jpeg",pe="https://cdn.decentraland.org/@dcl/shop/0.1.0-29792819793.commit-bcbfeac/assets/template-cover-2-Dni9s0i_.jpeg",ge=Object.assign({"../assets/creator-covers/template-cover-1.jpeg":ue,"../assets/creator-covers/template-cover-2.jpeg":pe}),f=Object.entries(ge).sort(([i],[d])=>i.localeCompare(d)).map(([i,d])=>({name:i.split("/").pop(),url:d})),ve=ae`
|
|
2
|
+
to {
|
|
3
|
+
transform: rotate(360deg);
|
|
4
|
+
}
|
|
5
|
+
`,fe=_.div`
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
gap: 12px;
|
|
10
|
+
color: ${C.colors.muted};
|
|
11
|
+
|
|
12
|
+
&[data-direction='row'] {
|
|
13
|
+
flex-direction: row;
|
|
14
|
+
}
|
|
15
|
+
&[data-direction='column'] {
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
text-align: center;
|
|
18
|
+
}
|
|
19
|
+
`,he=_.span`
|
|
20
|
+
flex: none;
|
|
21
|
+
border-radius: 50%;
|
|
22
|
+
border-style: solid;
|
|
23
|
+
border-color: ${C.colors.line};
|
|
24
|
+
border-top-color: ${C.colors.accent};
|
|
25
|
+
animation: ${ve} 0.8s linear infinite;
|
|
26
|
+
|
|
27
|
+
&[data-size='small'] {
|
|
28
|
+
width: 18px;
|
|
29
|
+
height: 18px;
|
|
30
|
+
border-width: 2px;
|
|
31
|
+
}
|
|
32
|
+
&[data-size='medium'] {
|
|
33
|
+
width: 30px;
|
|
34
|
+
height: 30px;
|
|
35
|
+
border-width: 3px;
|
|
36
|
+
}
|
|
37
|
+
&[data-size='large'] {
|
|
38
|
+
width: 48px;
|
|
39
|
+
height: 48px;
|
|
40
|
+
border-width: 4px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media (prefers-reduced-motion: reduce) {
|
|
44
|
+
animation-duration: 2s;
|
|
45
|
+
}
|
|
46
|
+
`,xe=_.span`
|
|
47
|
+
font-size: 14px;
|
|
48
|
+
font-weight: 600;
|
|
49
|
+
`;function _e({label:i,size:d="medium",direction:b="column",className:j}){return s.jsxs(fe,{className:j,"data-testid":"spinner-box","data-direction":b,role:"status","aria-live":"polite","aria-label":i?void 0:a("spinner.loading"),children:[s.jsx(he,{"data-testid":"spinner-box-ring","data-size":d,"aria-hidden":!0}),i?s.jsx(xe,{children:i}):null]})}const be=_(P)`
|
|
50
|
+
align-self: center;
|
|
51
|
+
min-width: 200px;
|
|
52
|
+
margin-top: 8px;
|
|
53
|
+
`,O=1e6,A={cover:"",coverName:"",coverHash:"",description:"",links:{website:"",twitter:"",discord:"",facebook:""}};function D(i){return`${(i/1e6).toLocaleString(void 0,{maximumFractionDigits:2})}MB`}function ye(){ie({title:a("seo.storeSettings.title"),noindex:!0});const{session:i,signIn:d}=re(),b=se(),j=ne(),c=i==null?void 0:i.address,{data:S,isLoading:F}=oe(c),[r,m]=n.useState(A),[L,y]=n.useState(A),[k,p]=n.useState(),[g,$]=n.useState(!1),[o,N]=n.useState(null),[h,V]=n.useState({}),z=n.useRef(null);n.useEffect(()=>{if(S){const e=le(S);m(e),y(e),p(void 0),N(e.cover?{url:e.cover,name:e.coverName,hash:e.coverHash}:null)}},[S]),n.useEffect(()=>{let e=!1;return Promise.all(f.map(async t=>[t.name,await ce(t.url)])).then(t=>{e||V(Object.fromEntries(t))}).catch(()=>{}),()=>{e=!0}},[]);const x=n.useMemo(()=>{const e=f.find(l=>r.coverName===`cover/${l.name}`);if(e)return e.name;const t=r.coverHash?f.find(l=>h[l.name]===r.coverHash):void 0;return t==null?void 0:t.name},[r.coverName,r.coverHash,h]);n.useEffect(()=>{o!=null&&o.hash&&f.some(e=>h[e.name]===o.hash)&&N(null)},[h,o]);const I=k!==void 0&&k>O,Y=n.useMemo(()=>de.filter(e=>!B(e,r.links[e])),[r.links]),K=I||Y.length>0,w=n.useMemo(()=>JSON.stringify(r)!==JSON.stringify(L),[r,L]),q=w&&!K&&!g;if(n.useEffect(()=>{if(!w)return;const e=t=>{t.preventDefault()};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[w]),!i)return s.jsxs("section",{className:"store-settings store-settings--signin","aria-label":a("storeSettings.title"),children:[s.jsx("h1",{className:"store-settings__title",children:a("storeSettings.title")}),s.jsx("p",{className:"muted",children:a("storeSettings.signInPrompt")}),s.jsx(be,{variant:"purple",onClick:d,children:a("storeSettings.signIn")})]});function G(e,t){p(void 0),m(l=>({...l,cover:t,coverName:`cover/${e}`,coverHash:""}))}const J=["image/png","image/jpeg","image/webp"];function Q(e){var H;const t=(H=e.target.files)==null?void 0:H[0];if(!t||!J.includes(t.type))return;p(t.size);const l=`cover/${t.name}`,u=new FileReader;u.onload=()=>{const T=u.result;N({url:T,name:l,hash:""}),m(ee=>({...ee,cover:T,coverName:l,coverHash:""}))},u.readAsDataURL(t)}function U(){o&&(p(void 0),m(e=>({...e,cover:o.url,coverName:o.name,coverHash:o.hash})))}function W(e,t){const l=t?(v[e]+t).replace(/\s/g,""):"";m(u=>({...u,links:{...u.links,[e]:l}}))}function X(e){const t=r.links[e];return e==="website"?t:t.replace(v[e],"")}async function Z(){if(!(!c||!i)){$(!0);try{await me(c,r,i.identity),y(r),p(void 0),await j.invalidateQueries({queryKey:["store",c.toLowerCase()]}),R.success(a("storeSettings.saved")),b(`/assets/creator/${c}`)}catch{R.error(a("storeSettings.saveError"))}finally{$(!1)}}}return s.jsxs("section",{className:"store-settings","aria-label":a("storeSettings.title"),children:[s.jsxs("div",{className:"store-settings__head",children:[s.jsxs("div",{className:"store-settings__heading",children:[c?s.jsx(te,{className:"store-settings__back",to:`/assets/creator/${c}`,title:a("storeSettings.back"),"aria-label":a("storeSettings.back"),children:s.jsx(E,{name:"arrow-left"})}):null,s.jsx("h1",{className:"store-settings__title",children:a("storeSettings.title")})]}),c?s.jsxs("a",{className:"store-settings__guest",href:`/assets/creator/${c}`,target:"_blank",rel:"noopener noreferrer",children:[a("storeSettings.seeAsGuest"),s.jsx(E,{name:"external-link"})]}):null]}),F?s.jsx(_e,{size:"large",label:a("storeSettings.loading"),className:"store-settings__loading"}):s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"field",children:[s.jsx("span",{className:"field__label",children:a("storeSettings.cover")}),s.jsxs("div",{className:"cover-picker",role:"group","aria-label":a("storeSettings.cover"),children:[f.map(e=>{const t=x===e.name;return s.jsx("button",{type:"button",className:`cover-picker__tile${t?" is-selected":""}`,"data-testid":"cover-picker-tile","data-selected":t,"aria-pressed":t,onClick:()=>G(e.name,e.url),children:s.jsx("img",{src:e.url,alt:"",loading:"lazy"})},e.name)}),o?s.jsx("button",{type:"button",className:`cover-picker__tile cover-picker__tile--custom${x?"":" is-selected"}`,"data-testid":"cover-picker-tile","data-variant":"custom","data-selected":!x,"aria-pressed":!x,onClick:U,children:s.jsx("img",{src:o.url,alt:""})}):null,s.jsxs("button",{type:"button",className:"cover-picker__tile cover-picker__upload","data-testid":"cover-picker-tile","data-variant":"upload",onClick:()=>{var e;return(e=z.current)==null?void 0:e.click()},children:[s.jsx(E,{name:"upload"}),s.jsx("span",{children:a("storeSettings.upload")})]}),s.jsx("input",{ref:z,type:"file",accept:"image/png, image/jpeg, image/webp",className:"cover-picker__input","data-testid":"cover-picker-input",onChange:Q})]}),I?s.jsx(M,{message:a("storeSettings.sizeError",{max:D(O),current:D(k)})}):null]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"field__label",children:a("storeSettings.description")}),s.jsx("textarea",{value:r.description,rows:4,disabled:g,onChange:e=>m(t=>({...t,description:e.target.value}))})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"field__label",children:a("storeSettings.website")}),s.jsx("input",{type:"url",value:r.links.website,placeholder:v.website,disabled:g,onChange:e=>m(t=>({...t,links:{...t.links,website:e.target.value.replace(/\s/g,"")}}))}),B("website",r.links.website)?null:s.jsx(M,{message:a("storeSettings.linkError",{value:v.website})})]}),["twitter","discord","facebook"].map(e=>s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"field__label",children:a(`storeSettings.${e}`)}),s.jsxs("div",{className:"field__prefixed",children:[s.jsx("span",{className:"field__prefix",children:v[e]}),s.jsx("input",{type:"text",value:X(e),disabled:g,onChange:t=>W(e,t.target.value)})]})]},e)),s.jsx("div",{className:"store-settings__actions",children:s.jsx(P,{variant:"purple",className:"store-settings__save","data-testid":"store-settings-save",onClick:()=>void Z(),disabled:!q,children:g?a("storeSettings.saving"):a("storeSettings.save")})})]})]})}export{ye as StoreSettings,ye as default};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import{j as e,b as W,a as M,N as L,r as T}from"./react-yytiy0wi.js";import{s as h,af as N,S,t as s,d as V,ag as z,a as U,ah as X,ai as D,aj as G,ak as H,al as J,am as E,j as v,B as K,an as Y}from"./index-BEsdviTk.js";import{d as j}from"./dcl-schemas-BICTSpB5.js";import{s as q}from"./wallet-kind-B9P1TeIH.js";import{w as Q,S as Z}from"./buy-gasless-7ufZIH4V.js";import"./sentry-BPJvc5GU.js";import"./ethers-w2AslR0v.js";import"./intl-CBcMB1D2.js";import"./trade-encoding-BT4RgSDL.js";import"./index-HN6Rk25C.js";const C="#2bb673",F=S`
|
|
2
|
+
to {
|
|
3
|
+
stroke-dashoffset: 0;
|
|
4
|
+
}
|
|
5
|
+
`,ee=S`
|
|
6
|
+
0% {
|
|
7
|
+
transform: scale(0.85);
|
|
8
|
+
}
|
|
9
|
+
60% {
|
|
10
|
+
transform: scale(1.04);
|
|
11
|
+
}
|
|
12
|
+
100% {
|
|
13
|
+
transform: scale(1);
|
|
14
|
+
}
|
|
15
|
+
`,se=S`
|
|
16
|
+
0% {
|
|
17
|
+
opacity: 0;
|
|
18
|
+
transform: scale(0.3);
|
|
19
|
+
}
|
|
20
|
+
55% {
|
|
21
|
+
opacity: 1;
|
|
22
|
+
}
|
|
23
|
+
100% {
|
|
24
|
+
opacity: 0;
|
|
25
|
+
transform: scale(1.2) translateY(-10px);
|
|
26
|
+
}
|
|
27
|
+
`,te=h.div`
|
|
28
|
+
position: relative;
|
|
29
|
+
width: 92px;
|
|
30
|
+
height: 92px;
|
|
31
|
+
`,ae=h.svg`
|
|
32
|
+
width: 92px;
|
|
33
|
+
height: 92px;
|
|
34
|
+
animation: ${ee} 0.45s ease;
|
|
35
|
+
|
|
36
|
+
@media (prefers-reduced-motion: reduce) {
|
|
37
|
+
animation: none;
|
|
38
|
+
}
|
|
39
|
+
`,ce=h.circle`
|
|
40
|
+
fill: none;
|
|
41
|
+
stroke: ${C};
|
|
42
|
+
stroke-width: 6;
|
|
43
|
+
stroke-linecap: round;
|
|
44
|
+
stroke-dasharray: 339;
|
|
45
|
+
stroke-dashoffset: 339;
|
|
46
|
+
animation: ${F} 0.6s ease forwards;
|
|
47
|
+
|
|
48
|
+
@media (prefers-reduced-motion: reduce) {
|
|
49
|
+
animation: none;
|
|
50
|
+
stroke-dashoffset: 0;
|
|
51
|
+
}
|
|
52
|
+
`,re=h.path`
|
|
53
|
+
fill: none;
|
|
54
|
+
stroke: ${C};
|
|
55
|
+
stroke-width: 8;
|
|
56
|
+
stroke-linecap: round;
|
|
57
|
+
stroke-linejoin: round;
|
|
58
|
+
stroke-dasharray: 80;
|
|
59
|
+
stroke-dashoffset: 80;
|
|
60
|
+
animation: ${F} 0.4s 0.5s ease forwards;
|
|
61
|
+
|
|
62
|
+
@media (prefers-reduced-motion: reduce) {
|
|
63
|
+
animation: none;
|
|
64
|
+
stroke-dashoffset: 0;
|
|
65
|
+
}
|
|
66
|
+
`,_=h.span`
|
|
67
|
+
position: absolute;
|
|
68
|
+
opacity: 0;
|
|
69
|
+
font-size: 16px;
|
|
70
|
+
color: ${N.colors.accent};
|
|
71
|
+
animation: ${se} 0.8s 0.6s ease forwards;
|
|
72
|
+
|
|
73
|
+
&[data-spark='1'] {
|
|
74
|
+
top: -4px;
|
|
75
|
+
left: 6px;
|
|
76
|
+
}
|
|
77
|
+
&[data-spark='2'] {
|
|
78
|
+
top: 2px;
|
|
79
|
+
right: -8px;
|
|
80
|
+
color: ${N.colors.brandViolet};
|
|
81
|
+
}
|
|
82
|
+
&[data-spark='3'] {
|
|
83
|
+
bottom: -2px;
|
|
84
|
+
left: -4px;
|
|
85
|
+
}
|
|
86
|
+
&[data-spark='4'] {
|
|
87
|
+
bottom: 8px;
|
|
88
|
+
right: 4px;
|
|
89
|
+
color: ${N.colors.brandViolet};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@media (prefers-reduced-motion: reduce) {
|
|
93
|
+
animation: none;
|
|
94
|
+
}
|
|
95
|
+
`;function ne(){return e.jsxs(te,{role:"img","aria-label":s("successAnimation.label"),"data-testid":"success-anim",children:[e.jsxs(ae,{viewBox:"0 0 120 120",children:[e.jsx(ce,{cx:"60",cy:"60",r:"54"}),e.jsx(re,{d:"M37 61 l16 16 l30 -34"})]}),e.jsx(_,{"data-spark":"1","aria-hidden":!0,children:"✦"}),e.jsx(_,{"data-spark":"2","aria-hidden":!0,children:"✦"}),e.jsx(_,{"data-spark":"3","aria-hidden":!0,children:"◈"}),e.jsx(_,{"data-spark":"4","aria-hidden":!0,children:"✦"})]})}const f=h(K)`
|
|
96
|
+
min-width: 160px;
|
|
97
|
+
text-align: center;
|
|
98
|
+
`,ie=c=>new Promise(t=>setTimeout(t,c));function oe(c,t){const[a,l]=T.useState(c?"pending":"confirmed"),u=t?`${t.owner}-${t.contractAddress}-${t.itemId}`:"";return T.useEffect(()=>{if(!c)return;let i=!1;return(async()=>{let x=!1;for(let n=0;n<20&&!i;n++)try{await Q(c,{timeoutMs:15e3}),x=!0;break}catch(r){if(r instanceof Z)continue;i||l("failed");return}if(!i){if(!x){l("timed-out");return}if(!t){l("confirmed");return}l("indexing");for(let n=0;n<40&&!i;n++){if(await Y(t.owner,t.contractAddress,t.itemId)){i||l("confirmed");return}await ie(3e3)}i||l("timed-out")}})(),()=>{i=!0}},[c,u]),a}const de=v.chainId===80002?"https://decentraland.zone/jump":"https://decentraland.org/jump",k=v.chainId===80002?"https://amoy.polygonscan.com/tx/":"https://polygonscan.com/tx/";function ke(){const{state:c}=W(),t=M(),{session:a}=V(),{data:l}=z(a==null?void 0:a.address),u=c==null?void 0:c.txHash,i=(c==null?void 0:c.items)??[],d=i[0],x=a!=null&&a.address&&(d!=null&&d.contractAddress)&&(d!=null&&d.itemId)?{owner:a.address,contractAddress:d.contractAddress,itemId:d.itemId}:null,n=oe(u,x);U({title:s("seo.success.title"),noindex:!0});const r=i;if(r.length===0)return e.jsx(L,{to:"/assets",replace:!0});const p=r[0],b=r.filter(o=>o.category!=="emote"),B=r.find(o=>o.category==="emote")??null,A=b.map(X).filter(o=>!!o),y=D(l),R=!!y&&b.every(o=>G(o,y)),O=H(b)??y??J,I=!!(a!=null&&a.address)&&R,$=I?a.address:"default",P=I?void 0:O,m=B??p,w=m.category==="emote",g=!!u&&q(a==null?void 0:a.providerType);return e.jsxs("div",{className:"success",children:[e.jsx("div",{className:"success__preview",children:A.length>0?e.jsx(E,{profile:$,bodyShape:P,urns:A,type:j.PreviewType.AVATAR,emote:j.PreviewEmote.FASHION,background:"ecebed",dev:v.chainId===80002},p.id):e.jsx(E,{contractAddress:m.contractAddress,tokenId:m.tokenId??void 0,itemId:m.tokenId?void 0:m.itemId??void 0,profile:$,bodyShape:w?void 0:P,type:w?void 0:j.PreviewType.AVATAR,emote:w?void 0:j.PreviewEmote.FASHION,background:"ecebed",dev:v.chainId===80002},m.id)}),e.jsx("div",{className:"success__panel",children:n==="pending"||n==="indexing"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"spinner success__spinner","aria-hidden":!0}),e.jsx("h1",{className:"success__title",children:n==="indexing"?s("success.finalizing"):s("success.processing")}),e.jsx("p",{className:"success__sub",children:n==="indexing"?e.jsxs(e.Fragment,{children:[s("success.indexingBefore")," ",r.length===1?e.jsx("strong",{children:p.name}):s("success.itemCount",{count:r.length})," ",s("success.indexingAfter")]}):e.jsxs(e.Fragment,{children:[s("success.confirmingBefore")," ",r.length===1?e.jsx("strong",{children:p.name}):s("success.itemCount",{count:r.length})," ",s("success.confirmingAfter")]})}),g?e.jsx("div",{className:"success__links",children:e.jsx("a",{className:"success__receipt",href:`${k}${u}`,target:"_blank",rel:"noreferrer",children:s("success.viewTransaction")})}):null]}):n==="timed-out"?e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"success__title",children:s("success.stillProcessingTitle")}),e.jsxs("p",{className:"success__sub",children:[s("success.timedOutBefore")," ",e.jsx("button",{className:"link",onClick:()=>t("/my-purchases"),children:s("nav.myPurchases")})," ",s("success.timedOutAfter")]}),e.jsx("div",{className:"success__links",children:g?e.jsx("a",{className:"success__receipt",href:`${k}${u}`,target:"_blank",rel:"noreferrer",children:s("success.viewTransaction")}):null}),e.jsxs("div",{className:"success__actions",children:[e.jsx(f,{variant:"purple",onClick:()=>t("/my-purchases"),children:s("success.viewMyPurchases")}),e.jsx(f,{variant:"ghost",onClick:()=>t("/assets"),children:s("success.keepShopping")})]})]}):n==="failed"?e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"success__title",children:s("success.failedTitle")}),e.jsx("p",{className:"success__sub",children:s("success.failedBody")}),e.jsx("div",{className:"success__links",children:g?e.jsx("a",{className:"success__receipt",href:`${k}${u}`,target:"_blank",rel:"noreferrer",children:s("success.viewTransaction")}):null}),e.jsx("div",{className:"success__actions",children:e.jsx(f,{variant:"purple",onClick:()=>t("/assets"),children:s("success.backToShop")})})]}):e.jsxs(e.Fragment,{children:[e.jsx(ne,{}),e.jsx("h1",{className:"success__title",children:s("success.title")}),r.length===1?e.jsxs("p",{className:"success__sub",children:[e.jsx("strong",{children:p.name})," ",s("success.heroInWardrobe")]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"success__sub",children:s("success.itemsInWardrobe",{count:r.length})}),e.jsx("ul",{className:"success__list",children:r.map(o=>e.jsx("li",{children:o.name},o.id))})]}),e.jsxs("div",{className:"success__links",children:[e.jsx("button",{className:"success__receipt",onClick:()=>t("/my-purchases"),children:s("success.viewOrder")}),g?e.jsx("a",{className:"success__receipt",href:`${k}${u}`,target:"_blank",rel:"noreferrer",children:s("success.viewTransaction")}):null]}),e.jsxs("div",{className:"success__actions",children:[e.jsx(f,{as:"a",href:de,target:"_blank",rel:"noreferrer",variant:"purple",children:s("success.useItInWorld")}),e.jsx(f,{variant:"ghost",onClick:()=>t("/assets"),children:s("success.keepShopping")})]})]})})]})}export{ke as Success,ke 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-DCqZCe_f.js";import{au as C}from"./NetworkUtil-CLSFaUe_.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-Cw2a6UVb.js";import{au as C}from"./NetworkUtil-CLSFaUe_.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 +1 @@
|
|
|
1
|
-
var Ce=Object.defineProperty;var Ie=(e,t,n)=>t in e?Ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var T=(e,t,n)=>Ie(e,typeof t!="symbol"?t+"":t,n);import{W as we,b as oe,C as Se,B as ve,f as ie}from"./ethers-w2AslR0v.js";import{p as Re,d as X}from"./dcl-schemas-BICTSpB5.js";import{c as ce}from"./react-yytiy0wi.js";import{a_ as Ne}from"./index-CzmwWbz1.js";import{O as Oe,M as Pe,D as be,a as ue,g as de}from"./index-HN6Rk25C.js";import{c as K,e as De}from"./index-CovWGvEr.js";import"./sentry-BPJvc5GU.js";import"./intl-CBcMB1D2.js";import"./events-DQ172AOg.js";const Le="2d0335ab",Ue="0c53c51c",Fe="d8ed1acc",Me=ye("0x");let ke=0;async function je(e){let t=[];try{t=await q(e,"eth_requestAccounts",[])}catch{t=await q(e,"eth_accounts",[])}if(t.length===0)throw new Error("Could not find a valid connected account");return t[0]}async function $e(e,t,n){return q(e,"eth_signTypedData_v4",[t,n])}function He(e,t,n){const r=t.replace("0x",""),s=r.substring(0,64),i=r.substring(64,128),u=Ge(r.substring(128,130)),d=n.replace("0x",""),f=(d.length/2).toString(16),w=Math.ceil(d.length/64);return["0x",Ue,m(e),m("a0"),s,i,m(u),m(f),d.padEnd(64*w,"0")].join("")}function qe(e,t,n){const r=n.replace("0x",""),s=t.replace("0x",""),u=96+32+r.length/2,d=Math.ceil(s.length/64);return["0x",Fe,m(e),m("60"),m(u.toString(16)),m((r.length/2).toString(16)),r,m((s.length/2).toString(16)),s.padEnd(64*d,"0")].join("")}function Ge(e){let t=parseInt(e,16);if(t<27&&(t+=27),t!==27&&t!==28)throw Error(`Invalid signature version "${e}" (parsed: ${t})`);return t.toString(16)}async function Be(e,t,n){const r=m(t),s=await q(e,"eth_call",[{data:`0x${Le}${r}`,to:n},"latest"]);return m(s)}function Ve(e){return typeof e=="number"?`0x${m(e.toString(16))}`:`0x${m(e)}`}function Je(e,t){return q(e,"eth_getCode",[t.toLowerCase(),"latest"])}const We="0xef01";async function Ye(e,t){const n=await Je(e,t);return n.toLowerCase().startsWith(We)?!1:!Ze(n)}function ye(e){if(!/^0x[0-9a-f]*$/gi.test(e))throw new Error(`Not a valid hex string "${e}"`);let t=e.slice(2);for(;t.length<40;)t="0"+t;return"0x"+t}function Ze(e){return ye(e.toLowerCase())===Me}function m(e){return e.toString().replace("0x","").padStart(64,"0")}async function q(e,t,n){let r,s={jsonrpc:"2.0",id:++ke,method:t,params:n};if(e.request!==void 0?r=await e.request(s):e.sendAsync!==void 0?r=await e.sendAsync(s):e.send!==void 0&&(r=await e.send(t,n)),r)return r.result||r;throw new Error(`Could not send the transaction correcty. Either the provider does not support the method "${t}" or is missing a proper send/request.`)}function Xe(){return{serverURL:"https://transactions-api.decentraland.io/v1"}}var k;(function(e){e.UNKNOWN="unknown",e.DAPP_LIMIT_REACHED="dapp_limit_reached",e.USER_LIMIT_REACHED="user_limit_reached",e.API_LIMIT_REACHED="api_limit_reached",e.GAS_LIMIT_REACHED="gas_limit_reached",e.EXPECTATION_FAILED="expectation_failed",e.INVALID_TRANSACTION="invalid_transaction",e.INVALID_SCHEMA="invalid_schema",e.INVALID_CONTRACT_ADDRESS="invalid_contract_address",e.INVALID_ADDRESS="invalid_address",e.SALE_PRICE_TOO_LOW="sale_price_too_low",e.QUOTA_REACHED="quota_reached",e.CONTRACT_ACCOUNT="contract_account",e.HIGH_CONGESTION="high_congestion",e.USER_DENIED="user_denied"})(k||(k={}));class P extends Error{constructor(n,r){super(n);T(this,"code");this.code=r,Object.setPrototypeOf(this,P.prototype)}}async function Ke(e,t,n,r,s={}){const i={...Xe(),...s};if(!r.address.trim())throw new P(`The contract address for ${r.name} is empty. You're probably trying to get a proxy contract. Try adding an address to the result of getContract`,k.INVALID_ADDRESS);try{const u=await je(e);if(await Ye(e,u))throw new P("Contract accounts are not supported",k.CONTRACT_ACCOUNT);const d=r.abi.some(B=>{var V;return B.name==="executeMetaTransaction"&&((V=B.inputs)==null?void 0:V.some(W=>W.name==="_functionData"))}),f=await Be(t,u,r.address),w=Ve(r.chainId),I=Qe(w,r),D=ze(u,f,n,I,d),L=await $e(e,u,JSON.stringify(D)),G=(d?qe:He)(u,L,n),j=await fetch(`${i.serverURL}/transactions`,{headers:{"Content-Type":"application/json"},body:JSON.stringify({transactionData:{from:u,params:[r.address,G]}}),method:"POST"}),N=await j.json();if(N.ok===!1)throw N.message&&N.code?new P(N.message,N.code):new Error(`HTTP Error. Status: ${j.status}.`);return N.txHash}catch(u){const d=u;throw d instanceof P?d:d.message.indexOf("User denied message signature")!==-1?new P(d.message,k.USER_DENIED):(console.warn("An error occurred trying to send the meta transaction. Error:",d.message),new P(d.message,k.UNKNOWN))}}function ze(e,t,n,r,s=!1){return{types:{EIP712Domain:be,MetaTransaction:s?Oe:Pe},domain:r,primaryType:"MetaTransaction",message:{nonce:parseInt(t,16),from:e,...s?{functionData:n}:{functionSignature:n}}}}function Qe(e,t){return{name:t.name,version:t.version,verifyingContract:t.address,salt:e}}async function et(e){const t=await Ee();if(t){const n=await new we(t).getSigner().getChainId();if(e===n)return t}return K.createProvider(Re.ProviderType.NETWORK,e)}async function Ee(){try{return await K.getProvider()}catch{try{const{provider:e}=await K.tryPreviousConnection();return e}catch{return null}}}function le(e){return Math.floor(e/1e3)}function he(e){switch(e.assetType){case X.TradeAssetType.ERC721:return e.tokenId;case X.TradeAssetType.COLLECTION_ITEM:return e.itemId;case X.TradeAssetType.ERC20:return e.amount;default:return console.error("Invalid asset type:",e),""}}function tt(e){var t;return{checks:{uses:e.checks.uses,expiration:le(e.checks.expiration),effective:le(e.checks.effective),salt:oe(e.checks.salt,32),contractSignatureIndex:e.checks.contractSignatureIndex,signerSignatureIndex:e.checks.signerSignatureIndex,allowedRoot:oe(e.checks.allowedRoot,32),externalChecks:(t=e.checks.externalChecks)==null?void 0:t.map(n=>({contractAddress:n.contractAddress,selector:n.selector,value:n.value?n.value:"0x",required:n.required}))},sent:e.sent.map(n=>({assetType:n.assetType,contractAddress:n.contractAddress,value:he(n),extra:n.extra?n.extra:"0x"})),received:e.received.map(n=>({assetType:n.assetType,contractAddress:n.contractAddress,value:he(n),extra:n.extra?n.extra:"0x",beneficiary:n.beneficiary}))}}function fe(e,t){const n=tt(e);return{signer:e.signer,signature:e.signature,...n,checks:{...n.checks,allowedProof:[]},sent:n.sent.map(r=>({...r,beneficiary:t}))}}async function nt(e){const t=await e.request({method:"eth_chainId",params:[]});let n;return typeof t=="string"?n=parseInt(t,16):n=t,n}async function rt(e){const t=await et(e);return new we(t)}const b=new De.EventEmitter;var C;(function(e){e.ERROR="error",e.SUCCESS="success",e.PROMPT="prompt",e.ACCEPT="accept",e.REJECT="reject"})(C||(C={}));let at="https://transactions-api.decentraland.org/v1";const st=()=>at,ot=()=>new Promise((e,t)=>{const n=()=>{b.removeAllListeners(C.REJECT),e(!0)},r=()=>{b.removeAllListeners(C.ACCEPT),t(new Error("User rejected transaction"))};b.addListener(C.ACCEPT,n),b.addListener(C.REJECT,r)});async function pe(...e){const[t,n,...r]=e;try{const s=await Ee();if(!s)throw new Error("Provider not connected");const i=await nt(s),u=await rt(t.chainId),d=new Se(t.address,t.abi,u),f=await(typeof n=="function"?n(d.populateTransaction):d.populateTransaction[n](...r));if(i===t.chainId){const w=u.getSigner();if(s.isMagic||s.isThirdweb){let D=ve.from(0);try{const L=await w.getGasPrice(),U=await w.estimateGas(f);D=L.mul(U)}catch{}if(!D.isZero()){const L=ot(),U=await w.getBalance();b.emit(C.PROMPT,{transactionGasPrice:ie(D),userBalance:ie(U),chainId:t.chainId}),await L}}const I=await w.sendTransaction(f);return b.emit(C.SUCCESS,{txHash:I.hash}),I.hash}else{const w=await Ke(s,u,f.data,t,{serverURL:st()});return b.emit(C.SUCCESS,{txHash:w}),w}}catch(s){const i={type:C.ERROR,error:s};throw b.emit(C.ERROR,i),s}}var H={exports:{}};/*! https://mths.be/punycode v1.4.1 by @mathias */var it=H.exports,Te;function ct(){return Te||(Te=1,(function(e,t){(function(n){var r=t&&!t.nodeType&&t,s=e&&!e.nodeType&&e,i=typeof ce=="object"&&ce;(i.global===i||i.window===i||i.self===i)&&(n=i);var u,d=2147483647,f=36,w=1,I=26,D=38,L=700,U=72,G=128,j="-",N=/^xn--/,B=/[^\x20-\x7E]/,V=/[\x2E\u3002\uFF0E\uFF61]/g,W={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Y=f-w,S=Math.floor,$=String.fromCharCode,J;function F(a){throw new RangeError(W[a])}function z(a,o){for(var c=a.length,l=[];c--;)l[c]=o(a[c]);return l}function Q(a,o){var c=a.split("@"),l="";c.length>1&&(l=c[0]+"@",a=c[1]),a=a.replace(V,".");var h=a.split("."),y=z(h,o).join(".");return l+y}function ee(a){for(var o=[],c=0,l=a.length,h,y;c<l;)h=a.charCodeAt(c++),h>=55296&&h<=56319&&c<l?(y=a.charCodeAt(c++),(y&64512)==56320?o.push(((h&1023)<<10)+(y&1023)+65536):(o.push(h),c--)):o.push(h);return o}function te(a){return z(a,function(o){var c="";return o>65535&&(o-=65536,c+=$(o>>>10&1023|55296),o=56320|o&1023),c+=$(o),c}).join("")}function _e(a){return a-48<10?a-22:a-65<26?a-65:a-97<26?a-97:f}function ne(a,o){return a+22+75*(a<26)-((o!=0)<<5)}function re(a,o,c){var l=0;for(a=c?S(a/L):a>>1,a+=S(a/o);a>Y*I>>1;l+=f)a=S(a/Y);return S(l+(Y+1)*a/(a+D))}function ae(a){var o=[],c=a.length,l,h=0,y=G,p=U,E,A,v,R,g,_,x,O,M;for(E=a.lastIndexOf(j),E<0&&(E=0),A=0;A<E;++A)a.charCodeAt(A)>=128&&F("not-basic"),o.push(a.charCodeAt(A));for(v=E>0?E+1:0;v<c;){for(R=h,g=1,_=f;v>=c&&F("invalid-input"),x=_e(a.charCodeAt(v++)),(x>=f||x>S((d-h)/g))&&F("overflow"),h+=x*g,O=_<=p?w:_>=p+I?I:_-p,!(x<O);_+=f)M=f-O,g>S(d/M)&&F("overflow"),g*=M;l=o.length+1,p=re(h-R,l,R==0),S(h/l)>d-y&&F("overflow"),y+=S(h/l),h%=l,o.splice(h++,0,y)}return te(o)}function se(a){var o,c,l,h,y,p,E,A,v,R,g,_=[],x,O,M,Z;for(a=ee(a),x=a.length,o=G,c=0,y=U,p=0;p<x;++p)g=a[p],g<128&&_.push($(g));for(l=h=_.length,h&&_.push(j);l<x;){for(E=d,p=0;p<x;++p)g=a[p],g>=o&&g<E&&(E=g);for(O=l+1,E-o>S((d-c)/O)&&F("overflow"),c+=(E-o)*O,o=E,p=0;p<x;++p)if(g=a[p],g<o&&++c>d&&F("overflow"),g==o){for(A=c,v=f;R=v<=y?w:v>=y+I?I:v-y,!(A<R);v+=f)Z=A-R,M=f-R,_.push($(ne(R+Z%M,0))),A=S(Z/M);_.push($(ne(A,0))),y=re(c,O,l==h),c=0,++l}++c,++o}return _.join("")}function Ae(a){return Q(a,function(o){return N.test(o)?ae(o.slice(4).toLowerCase()):o})}function xe(a){return Q(a,function(o){return B.test(o)?"xn--"+se(o):o})}if(u={version:"1.4.1",ucs2:{decode:ee,encode:te},decode:ae,encode:se,toASCII:xe,toUnicode:Ae},r&&s)if(e.exports==r)s.exports=u;else for(J in u)u.hasOwnProperty(J)&&(r[J]=u[J]);else n.punycode=u})(it)})(H,H.exports)),H.exports}ct();var me=(function(e){function t(){var r=this||self;return delete e.prototype.__magic__,r}if(typeof globalThis=="object")return globalThis;if(this)return t();e.defineProperty(e.prototype,"__magic__",{configurable:!0,get:t});var n=__magic__;return n})(Object),ut=me.URL;me.URLSearchParams;var dt={URL:ut};class ge extends Error{constructor(n,r,s){super(n);T(this,"status");T(this,"data");this.status=r,this.data=s}}const lt=3,ht=1e3,ft=[400,401,403,404,409,422],pt=(globalThis==null?void 0:globalThis.URL)??dt.URL;class Tt{constructor(t,n){T(this,"baseUrl");T(this,"retries");T(this,"retryDelay");T(this,"nonRetryableStatuses");T(this,"identity");T(this,"sleep",t=>new Promise(n=>{setTimeout(n,t)}));T(this,"getIdentity",()=>this.identity instanceof Function?this.identity():this.identity);T(this,"rawFetch",(t,n)=>{const r=new pt(t,this.baseUrl),s=(n==null?void 0:n.identity)??this.getIdentity();return Ne.signedFetchFactory()(r.toString(),{...n,identity:s})});T(this,"fetch",async(t,n)=>{for(let r=0;r<=this.retries;r++)try{let s,i;try{s=await this.rawFetch(t,n);const u=await s.text();u.length===0?i={ok:!0,data:null}:i=JSON.parse(u)}catch(u){throw new ge(u.message,void 0,null)}if(!s.ok||i.ok===!1){const u=i.message??i.error;throw new ge(u??`Request failed with status code ${s.status}`,s.status,i.data)}return i.ok===!0?i.data:i}catch(s){if(console.error(`[API] HTTP request failed: ${s.message||""}`,s),this.retries===r||s.status&&this.nonRetryableStatuses.includes(s.status))throw s;await this.sleep(this.retryDelay)}throw new Error("Unreachable code")});this.baseUrl=t,this.identity=n==null?void 0:n.identity,this.retries=(n==null?void 0:n.retries)??lt,this.retryDelay=(n==null?void 0:n.retryDelay)??ht,this.nonRetryableStatuses=(n==null?void 0:n.nonRetryableStatuses)??ft}}class gt extends Tt{constructor(n,r,s){super(r,s);T(this,"signer");T(this,"addTrade",async n=>this.fetch("/v1/trades",{method:"POST",body:JSON.stringify(n),metadata:{signer:this.signer,intent:"dcl:create-trade"},headers:{"Content-Type":"application/json"}}));T(this,"fetchTrade",async n=>this.fetch(`/v1/trades/${n}`,{method:"GET"}));this.signer=n}}class vt{constructor(t,n,r){T(this,"tradesAPI");this.tradesAPI=new gt(t,n,{identity:r,retries:0})}async addTrade(t){return this.tradesAPI.addTrade(t)}async fetchTrade(t){return this.tradesAPI.fetchTrade(t)}async accept(t,n){const r=ue(t.contract),s=de(r,t.chainId),i=fe(t,n);return pe(s,"accept",[i])}async cancel(t,n){const r=ue(t.contract),s=de(r,t.chainId),i=fe(t,n);return pe(s,"cancelSignature",[i])}}export{vt as TradeService};
|
|
1
|
+
var Ce=Object.defineProperty;var Ie=(e,t,n)=>t in e?Ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var T=(e,t,n)=>Ie(e,typeof t!="symbol"?t+"":t,n);import{W as we,b as oe,C as Se,B as ve,f as ie}from"./ethers-w2AslR0v.js";import{p as Re,d as X}from"./dcl-schemas-BICTSpB5.js";import{c as ce}from"./react-yytiy0wi.js";import{b5 as Ne}from"./index-BEsdviTk.js";import{O as Oe,M as Pe,D as be,a as ue,g as de}from"./index-HN6Rk25C.js";import{c as K,e as De}from"./index-BjyH5s2H.js";import"./sentry-BPJvc5GU.js";import"./intl-CBcMB1D2.js";import"./events-DQ172AOg.js";const Le="2d0335ab",Ue="0c53c51c",Fe="d8ed1acc",Me=ye("0x");let ke=0;async function je(e){let t=[];try{t=await q(e,"eth_requestAccounts",[])}catch{t=await q(e,"eth_accounts",[])}if(t.length===0)throw new Error("Could not find a valid connected account");return t[0]}async function $e(e,t,n){return q(e,"eth_signTypedData_v4",[t,n])}function He(e,t,n){const r=t.replace("0x",""),s=r.substring(0,64),i=r.substring(64,128),u=Ge(r.substring(128,130)),d=n.replace("0x",""),f=(d.length/2).toString(16),w=Math.ceil(d.length/64);return["0x",Ue,m(e),m("a0"),s,i,m(u),m(f),d.padEnd(64*w,"0")].join("")}function qe(e,t,n){const r=n.replace("0x",""),s=t.replace("0x",""),u=96+32+r.length/2,d=Math.ceil(s.length/64);return["0x",Fe,m(e),m("60"),m(u.toString(16)),m((r.length/2).toString(16)),r,m((s.length/2).toString(16)),s.padEnd(64*d,"0")].join("")}function Ge(e){let t=parseInt(e,16);if(t<27&&(t+=27),t!==27&&t!==28)throw Error(`Invalid signature version "${e}" (parsed: ${t})`);return t.toString(16)}async function Be(e,t,n){const r=m(t),s=await q(e,"eth_call",[{data:`0x${Le}${r}`,to:n},"latest"]);return m(s)}function Ve(e){return typeof e=="number"?`0x${m(e.toString(16))}`:`0x${m(e)}`}function Je(e,t){return q(e,"eth_getCode",[t.toLowerCase(),"latest"])}const We="0xef01";async function Ye(e,t){const n=await Je(e,t);return n.toLowerCase().startsWith(We)?!1:!Ze(n)}function ye(e){if(!/^0x[0-9a-f]*$/gi.test(e))throw new Error(`Not a valid hex string "${e}"`);let t=e.slice(2);for(;t.length<40;)t="0"+t;return"0x"+t}function Ze(e){return ye(e.toLowerCase())===Me}function m(e){return e.toString().replace("0x","").padStart(64,"0")}async function q(e,t,n){let r,s={jsonrpc:"2.0",id:++ke,method:t,params:n};if(e.request!==void 0?r=await e.request(s):e.sendAsync!==void 0?r=await e.sendAsync(s):e.send!==void 0&&(r=await e.send(t,n)),r)return r.result||r;throw new Error(`Could not send the transaction correcty. Either the provider does not support the method "${t}" or is missing a proper send/request.`)}function Xe(){return{serverURL:"https://transactions-api.decentraland.io/v1"}}var k;(function(e){e.UNKNOWN="unknown",e.DAPP_LIMIT_REACHED="dapp_limit_reached",e.USER_LIMIT_REACHED="user_limit_reached",e.API_LIMIT_REACHED="api_limit_reached",e.GAS_LIMIT_REACHED="gas_limit_reached",e.EXPECTATION_FAILED="expectation_failed",e.INVALID_TRANSACTION="invalid_transaction",e.INVALID_SCHEMA="invalid_schema",e.INVALID_CONTRACT_ADDRESS="invalid_contract_address",e.INVALID_ADDRESS="invalid_address",e.SALE_PRICE_TOO_LOW="sale_price_too_low",e.QUOTA_REACHED="quota_reached",e.CONTRACT_ACCOUNT="contract_account",e.HIGH_CONGESTION="high_congestion",e.USER_DENIED="user_denied"})(k||(k={}));class P extends Error{constructor(n,r){super(n);T(this,"code");this.code=r,Object.setPrototypeOf(this,P.prototype)}}async function Ke(e,t,n,r,s={}){const i={...Xe(),...s};if(!r.address.trim())throw new P(`The contract address for ${r.name} is empty. You're probably trying to get a proxy contract. Try adding an address to the result of getContract`,k.INVALID_ADDRESS);try{const u=await je(e);if(await Ye(e,u))throw new P("Contract accounts are not supported",k.CONTRACT_ACCOUNT);const d=r.abi.some(B=>{var V;return B.name==="executeMetaTransaction"&&((V=B.inputs)==null?void 0:V.some(W=>W.name==="_functionData"))}),f=await Be(t,u,r.address),w=Ve(r.chainId),I=Qe(w,r),D=ze(u,f,n,I,d),L=await $e(e,u,JSON.stringify(D)),G=(d?qe:He)(u,L,n),j=await fetch(`${i.serverURL}/transactions`,{headers:{"Content-Type":"application/json"},body:JSON.stringify({transactionData:{from:u,params:[r.address,G]}}),method:"POST"}),N=await j.json();if(N.ok===!1)throw N.message&&N.code?new P(N.message,N.code):new Error(`HTTP Error. Status: ${j.status}.`);return N.txHash}catch(u){const d=u;throw d instanceof P?d:d.message.indexOf("User denied message signature")!==-1?new P(d.message,k.USER_DENIED):(console.warn("An error occurred trying to send the meta transaction. Error:",d.message),new P(d.message,k.UNKNOWN))}}function ze(e,t,n,r,s=!1){return{types:{EIP712Domain:be,MetaTransaction:s?Oe:Pe},domain:r,primaryType:"MetaTransaction",message:{nonce:parseInt(t,16),from:e,...s?{functionData:n}:{functionSignature:n}}}}function Qe(e,t){return{name:t.name,version:t.version,verifyingContract:t.address,salt:e}}async function et(e){const t=await Ee();if(t){const n=await new we(t).getSigner().getChainId();if(e===n)return t}return K.createProvider(Re.ProviderType.NETWORK,e)}async function Ee(){try{return await K.getProvider()}catch{try{const{provider:e}=await K.tryPreviousConnection();return e}catch{return null}}}function le(e){return Math.floor(e/1e3)}function he(e){switch(e.assetType){case X.TradeAssetType.ERC721:return e.tokenId;case X.TradeAssetType.COLLECTION_ITEM:return e.itemId;case X.TradeAssetType.ERC20:return e.amount;default:return console.error("Invalid asset type:",e),""}}function tt(e){var t;return{checks:{uses:e.checks.uses,expiration:le(e.checks.expiration),effective:le(e.checks.effective),salt:oe(e.checks.salt,32),contractSignatureIndex:e.checks.contractSignatureIndex,signerSignatureIndex:e.checks.signerSignatureIndex,allowedRoot:oe(e.checks.allowedRoot,32),externalChecks:(t=e.checks.externalChecks)==null?void 0:t.map(n=>({contractAddress:n.contractAddress,selector:n.selector,value:n.value?n.value:"0x",required:n.required}))},sent:e.sent.map(n=>({assetType:n.assetType,contractAddress:n.contractAddress,value:he(n),extra:n.extra?n.extra:"0x"})),received:e.received.map(n=>({assetType:n.assetType,contractAddress:n.contractAddress,value:he(n),extra:n.extra?n.extra:"0x",beneficiary:n.beneficiary}))}}function fe(e,t){const n=tt(e);return{signer:e.signer,signature:e.signature,...n,checks:{...n.checks,allowedProof:[]},sent:n.sent.map(r=>({...r,beneficiary:t}))}}async function nt(e){const t=await e.request({method:"eth_chainId",params:[]});let n;return typeof t=="string"?n=parseInt(t,16):n=t,n}async function rt(e){const t=await et(e);return new we(t)}const b=new De.EventEmitter;var C;(function(e){e.ERROR="error",e.SUCCESS="success",e.PROMPT="prompt",e.ACCEPT="accept",e.REJECT="reject"})(C||(C={}));let at="https://transactions-api.decentraland.org/v1";const st=()=>at,ot=()=>new Promise((e,t)=>{const n=()=>{b.removeAllListeners(C.REJECT),e(!0)},r=()=>{b.removeAllListeners(C.ACCEPT),t(new Error("User rejected transaction"))};b.addListener(C.ACCEPT,n),b.addListener(C.REJECT,r)});async function pe(...e){const[t,n,...r]=e;try{const s=await Ee();if(!s)throw new Error("Provider not connected");const i=await nt(s),u=await rt(t.chainId),d=new Se(t.address,t.abi,u),f=await(typeof n=="function"?n(d.populateTransaction):d.populateTransaction[n](...r));if(i===t.chainId){const w=u.getSigner();if(s.isMagic||s.isThirdweb){let D=ve.from(0);try{const L=await w.getGasPrice(),U=await w.estimateGas(f);D=L.mul(U)}catch{}if(!D.isZero()){const L=ot(),U=await w.getBalance();b.emit(C.PROMPT,{transactionGasPrice:ie(D),userBalance:ie(U),chainId:t.chainId}),await L}}const I=await w.sendTransaction(f);return b.emit(C.SUCCESS,{txHash:I.hash}),I.hash}else{const w=await Ke(s,u,f.data,t,{serverURL:st()});return b.emit(C.SUCCESS,{txHash:w}),w}}catch(s){const i={type:C.ERROR,error:s};throw b.emit(C.ERROR,i),s}}var H={exports:{}};/*! https://mths.be/punycode v1.4.1 by @mathias */var it=H.exports,Te;function ct(){return Te||(Te=1,(function(e,t){(function(n){var r=t&&!t.nodeType&&t,s=e&&!e.nodeType&&e,i=typeof ce=="object"&&ce;(i.global===i||i.window===i||i.self===i)&&(n=i);var u,d=2147483647,f=36,w=1,I=26,D=38,L=700,U=72,G=128,j="-",N=/^xn--/,B=/[^\x20-\x7E]/,V=/[\x2E\u3002\uFF0E\uFF61]/g,W={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Y=f-w,S=Math.floor,$=String.fromCharCode,J;function F(a){throw new RangeError(W[a])}function z(a,o){for(var c=a.length,l=[];c--;)l[c]=o(a[c]);return l}function Q(a,o){var c=a.split("@"),l="";c.length>1&&(l=c[0]+"@",a=c[1]),a=a.replace(V,".");var h=a.split("."),y=z(h,o).join(".");return l+y}function ee(a){for(var o=[],c=0,l=a.length,h,y;c<l;)h=a.charCodeAt(c++),h>=55296&&h<=56319&&c<l?(y=a.charCodeAt(c++),(y&64512)==56320?o.push(((h&1023)<<10)+(y&1023)+65536):(o.push(h),c--)):o.push(h);return o}function te(a){return z(a,function(o){var c="";return o>65535&&(o-=65536,c+=$(o>>>10&1023|55296),o=56320|o&1023),c+=$(o),c}).join("")}function _e(a){return a-48<10?a-22:a-65<26?a-65:a-97<26?a-97:f}function ne(a,o){return a+22+75*(a<26)-((o!=0)<<5)}function re(a,o,c){var l=0;for(a=c?S(a/L):a>>1,a+=S(a/o);a>Y*I>>1;l+=f)a=S(a/Y);return S(l+(Y+1)*a/(a+D))}function ae(a){var o=[],c=a.length,l,h=0,y=G,p=U,E,A,v,R,g,_,x,O,M;for(E=a.lastIndexOf(j),E<0&&(E=0),A=0;A<E;++A)a.charCodeAt(A)>=128&&F("not-basic"),o.push(a.charCodeAt(A));for(v=E>0?E+1:0;v<c;){for(R=h,g=1,_=f;v>=c&&F("invalid-input"),x=_e(a.charCodeAt(v++)),(x>=f||x>S((d-h)/g))&&F("overflow"),h+=x*g,O=_<=p?w:_>=p+I?I:_-p,!(x<O);_+=f)M=f-O,g>S(d/M)&&F("overflow"),g*=M;l=o.length+1,p=re(h-R,l,R==0),S(h/l)>d-y&&F("overflow"),y+=S(h/l),h%=l,o.splice(h++,0,y)}return te(o)}function se(a){var o,c,l,h,y,p,E,A,v,R,g,_=[],x,O,M,Z;for(a=ee(a),x=a.length,o=G,c=0,y=U,p=0;p<x;++p)g=a[p],g<128&&_.push($(g));for(l=h=_.length,h&&_.push(j);l<x;){for(E=d,p=0;p<x;++p)g=a[p],g>=o&&g<E&&(E=g);for(O=l+1,E-o>S((d-c)/O)&&F("overflow"),c+=(E-o)*O,o=E,p=0;p<x;++p)if(g=a[p],g<o&&++c>d&&F("overflow"),g==o){for(A=c,v=f;R=v<=y?w:v>=y+I?I:v-y,!(A<R);v+=f)Z=A-R,M=f-R,_.push($(ne(R+Z%M,0))),A=S(Z/M);_.push($(ne(A,0))),y=re(c,O,l==h),c=0,++l}++c,++o}return _.join("")}function Ae(a){return Q(a,function(o){return N.test(o)?ae(o.slice(4).toLowerCase()):o})}function xe(a){return Q(a,function(o){return B.test(o)?"xn--"+se(o):o})}if(u={version:"1.4.1",ucs2:{decode:ee,encode:te},decode:ae,encode:se,toASCII:xe,toUnicode:Ae},r&&s)if(e.exports==r)s.exports=u;else for(J in u)u.hasOwnProperty(J)&&(r[J]=u[J]);else n.punycode=u})(it)})(H,H.exports)),H.exports}ct();var me=(function(e){function t(){var r=this||self;return delete e.prototype.__magic__,r}if(typeof globalThis=="object")return globalThis;if(this)return t();e.defineProperty(e.prototype,"__magic__",{configurable:!0,get:t});var n=__magic__;return n})(Object),ut=me.URL;me.URLSearchParams;var dt={URL:ut};class ge extends Error{constructor(n,r,s){super(n);T(this,"status");T(this,"data");this.status=r,this.data=s}}const lt=3,ht=1e3,ft=[400,401,403,404,409,422],pt=(globalThis==null?void 0:globalThis.URL)??dt.URL;class Tt{constructor(t,n){T(this,"baseUrl");T(this,"retries");T(this,"retryDelay");T(this,"nonRetryableStatuses");T(this,"identity");T(this,"sleep",t=>new Promise(n=>{setTimeout(n,t)}));T(this,"getIdentity",()=>this.identity instanceof Function?this.identity():this.identity);T(this,"rawFetch",(t,n)=>{const r=new pt(t,this.baseUrl),s=(n==null?void 0:n.identity)??this.getIdentity();return Ne.signedFetchFactory()(r.toString(),{...n,identity:s})});T(this,"fetch",async(t,n)=>{for(let r=0;r<=this.retries;r++)try{let s,i;try{s=await this.rawFetch(t,n);const u=await s.text();u.length===0?i={ok:!0,data:null}:i=JSON.parse(u)}catch(u){throw new ge(u.message,void 0,null)}if(!s.ok||i.ok===!1){const u=i.message??i.error;throw new ge(u??`Request failed with status code ${s.status}`,s.status,i.data)}return i.ok===!0?i.data:i}catch(s){if(console.error(`[API] HTTP request failed: ${s.message||""}`,s),this.retries===r||s.status&&this.nonRetryableStatuses.includes(s.status))throw s;await this.sleep(this.retryDelay)}throw new Error("Unreachable code")});this.baseUrl=t,this.identity=n==null?void 0:n.identity,this.retries=(n==null?void 0:n.retries)??lt,this.retryDelay=(n==null?void 0:n.retryDelay)??ht,this.nonRetryableStatuses=(n==null?void 0:n.nonRetryableStatuses)??ft}}class gt extends Tt{constructor(n,r,s){super(r,s);T(this,"signer");T(this,"addTrade",async n=>this.fetch("/v1/trades",{method:"POST",body:JSON.stringify(n),metadata:{signer:this.signer,intent:"dcl:create-trade"},headers:{"Content-Type":"application/json"}}));T(this,"fetchTrade",async n=>this.fetch(`/v1/trades/${n}`,{method:"GET"}));this.signer=n}}class vt{constructor(t,n,r){T(this,"tradesAPI");this.tradesAPI=new gt(t,n,{identity:r,retries:0})}async addTrade(t){return this.tradesAPI.addTrade(t)}async fetchTrade(t){return this.tradesAPI.fetchTrade(t)}async accept(t,n){const r=ue(t.contract),s=de(r,t.chainId),i=fe(t,n);return pe(s,"accept",[i])}async cancel(t,n){const r=ue(t.contract),s=de(r,t.chainId),i=fe(t,n);return pe(s,"cancelSignature",[i])}}export{vt as TradeService};
|