@crossmint/client-sdk-react-ui 1.10.1 → 1.10.3

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.
Files changed (137) hide show
  1. package/dist/{chunk-HENBZUED.cjs → chunk-2EYYCX3O.cjs} +2 -2
  2. package/dist/chunk-2EYYCX3O.cjs.map +1 -0
  3. package/dist/{chunk-W3SNJ5XS.cjs → chunk-5H7AYX72.cjs} +3 -3
  4. package/dist/{chunk-HG57BLPT.js → chunk-74SNQV3K.js} +2 -2
  5. package/dist/{chunk-WQ7WULBW.cjs → chunk-7EGLPJKV.cjs} +3 -3
  6. package/dist/chunk-A6Q4Z5TO.js +31 -0
  7. package/dist/chunk-A6Q4Z5TO.js.map +1 -0
  8. package/dist/chunk-AUCL5NPW.cjs +31 -0
  9. package/dist/chunk-AUCL5NPW.cjs.map +1 -0
  10. package/dist/{chunk-3C5IQSUX.cjs → chunk-GBW67Z6V.cjs} +3 -3
  11. package/dist/{chunk-W2Q46OO4.js → chunk-GHIVSSM5.js} +2 -2
  12. package/dist/{chunk-QIPMBCAV.js → chunk-GM7C5PE4.js} +4 -3
  13. package/dist/{chunk-QIPMBCAV.js.map → chunk-GM7C5PE4.js.map} +1 -1
  14. package/dist/{chunk-YNJPYSO4.cjs → chunk-H2WTBOQ5.cjs} +3 -3
  15. package/dist/{chunk-QKALEGXY.js → chunk-HXZYERJJ.js} +2 -2
  16. package/dist/{chunk-TIQPIPH5.cjs → chunk-L5BIVHQJ.cjs} +3 -3
  17. package/dist/{chunk-Y7PF2Z3W.cjs → chunk-NGWVWCWP.cjs} +3 -3
  18. package/dist/{chunk-5IX763AW.js → chunk-O4DWHB3U.js} +2 -2
  19. package/dist/chunk-O4DWHB3U.js.map +1 -0
  20. package/dist/{chunk-L3L7YEW3.js → chunk-R2H6H2HY.js} +2 -2
  21. package/dist/{chunk-XRFRY2LN.js → chunk-WBKHUVJU.js} +2 -2
  22. package/dist/{chunk-SVI3L5G5.cjs → chunk-ZRXZOZZZ.cjs} +5 -4
  23. package/dist/chunk-ZRXZOZZZ.cjs.map +1 -0
  24. package/dist/{chunk-QTGK3RB5.js → chunk-ZRYD4SFA.js} +2 -2
  25. package/dist/components/CrossmintNFTCollectionView.cjs +3 -3
  26. package/dist/components/CrossmintNFTCollectionView.js +2 -2
  27. package/dist/components/CrossmintNFTDetail.cjs +3 -3
  28. package/dist/components/CrossmintNFTDetail.js +2 -2
  29. package/dist/components/auth/AuthForm.cjs +3 -3
  30. package/dist/components/auth/AuthForm.js +3 -3
  31. package/dist/components/auth/AuthFormDialog.cjs +3 -3
  32. package/dist/components/auth/AuthFormDialog.js +3 -3
  33. package/dist/components/auth/EmbeddedAuthForm.cjs +3 -3
  34. package/dist/components/auth/EmbeddedAuthForm.js +3 -3
  35. package/dist/components/auth/methods/email/EmailAuthFlow.cjs +3 -3
  36. package/dist/components/auth/methods/email/EmailAuthFlow.js +3 -3
  37. package/dist/components/auth/methods/email/EmailOTPInput.cjs +3 -3
  38. package/dist/components/auth/methods/email/EmailOTPInput.js +3 -3
  39. package/dist/components/auth/methods/email/EmailSignIn.cjs +3 -3
  40. package/dist/components/auth/methods/email/EmailSignIn.js +3 -3
  41. package/dist/components/auth/methods/farcaster/FarcasterSignIn.cjs +3 -3
  42. package/dist/components/auth/methods/farcaster/FarcasterSignIn.js +3 -3
  43. package/dist/components/auth/methods/google/GoogleSignIn.cjs +3 -3
  44. package/dist/components/auth/methods/google/GoogleSignIn.js +3 -3
  45. package/dist/components/auth/methods/web3/Web3AuthFlow.cjs +3 -3
  46. package/dist/components/auth/methods/web3/Web3AuthFlow.js +3 -3
  47. package/dist/components/auth/methods/web3/Web3AuthWrapper.cjs +3 -3
  48. package/dist/components/auth/methods/web3/Web3AuthWrapper.js +3 -3
  49. package/dist/components/auth/methods/web3/Web3Connectors.cjs +3 -3
  50. package/dist/components/auth/methods/web3/Web3Connectors.js +3 -3
  51. package/dist/components/auth/methods/web3/Web3SignIn.cjs +3 -3
  52. package/dist/components/auth/methods/web3/Web3SignIn.js +3 -3
  53. package/dist/components/common/Divider.cjs +3 -3
  54. package/dist/components/common/Divider.js +3 -3
  55. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.cjs +6 -6
  56. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js +5 -5
  57. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.cjs +5 -5
  58. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.js +4 -4
  59. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs +35 -10
  60. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs.map +1 -1
  61. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.d.cts +5 -1
  62. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.d.ts +5 -1
  63. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js +36 -11
  64. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js.map +1 -1
  65. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.cjs +10 -3
  66. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.cjs.map +1 -1
  67. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.d.cts +2 -2
  68. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.d.ts +2 -2
  69. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.js +11 -4
  70. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.js.map +1 -1
  71. package/dist/components/embed/v3/crypto/utils/handleSendTransaction.cjs +2 -2
  72. package/dist/components/embed/v3/crypto/utils/handleSendTransaction.js +1 -1
  73. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.cjs +2 -1
  74. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.cjs.map +1 -1
  75. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.d.cts +2 -2
  76. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.d.ts +2 -2
  77. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.js +2 -1
  78. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.js.map +1 -1
  79. package/dist/components/embed/v3/index.cjs +6 -6
  80. package/dist/components/embed/v3/index.js +5 -5
  81. package/dist/components/hosted/CrossmintPayButton.cjs +3 -3
  82. package/dist/components/hosted/CrossmintPayButton.js +2 -2
  83. package/dist/components/hosted/index.cjs +3 -3
  84. package/dist/components/hosted/index.js +2 -2
  85. package/dist/components/index.cjs +9 -9
  86. package/dist/components/index.js +8 -8
  87. package/dist/consts/version.cjs +2 -2
  88. package/dist/consts/version.js +1 -1
  89. package/dist/hooks/index.cjs +4 -4
  90. package/dist/hooks/index.js +3 -3
  91. package/dist/hooks/useAuth.cjs +3 -3
  92. package/dist/hooks/useAuth.js +3 -3
  93. package/dist/hooks/useCrossmintAuth.cjs +3 -3
  94. package/dist/hooks/useCrossmintAuth.js +3 -3
  95. package/dist/hooks/useCrossmintCheckout.cjs +4 -4
  96. package/dist/hooks/useCrossmintCheckout.js +3 -3
  97. package/dist/hooks/useOAuthWindowListener.cjs +3 -3
  98. package/dist/hooks/useOAuthWindowListener.js +3 -3
  99. package/dist/hooks/useWallet.cjs +3 -3
  100. package/dist/hooks/useWallet.js +3 -3
  101. package/dist/index.cjs +9 -9
  102. package/dist/index.js +8 -8
  103. package/dist/providers/CrossmintAuthProvider.cjs +3 -3
  104. package/dist/providers/CrossmintAuthProvider.js +3 -3
  105. package/dist/providers/CrossmintWalletProvider.cjs +3 -3
  106. package/dist/providers/CrossmintWalletProvider.js +3 -3
  107. package/dist/providers/auth/AuthFormProvider.cjs +3 -3
  108. package/dist/providers/auth/AuthFormProvider.js +3 -3
  109. package/dist/providers/index.cjs +3 -3
  110. package/dist/providers/index.js +3 -3
  111. package/dist/utils/createCrossmintApiClient.cjs +3 -3
  112. package/dist/utils/createCrossmintApiClient.js +2 -2
  113. package/package.json +6 -8
  114. package/src/components/embed/v3/EmbeddedCheckoutV3IFrame.tsx +1 -0
  115. package/src/components/embed/v3/crypto/CryptoWalletConnectionHandler.tsx +35 -8
  116. package/src/components/embed/v3/crypto/utils/handleEvmTransaction.ts +20 -7
  117. package/src/components/embed/v3/crypto/utils/handleSendTransaction.ts +11 -19
  118. package/src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts +7 -4
  119. package/dist/chunk-5IX763AW.js.map +0 -1
  120. package/dist/chunk-GGE3H4XP.cjs +0 -33
  121. package/dist/chunk-GGE3H4XP.cjs.map +0 -1
  122. package/dist/chunk-HENBZUED.cjs.map +0 -1
  123. package/dist/chunk-HYGCZCR2.js +0 -33
  124. package/dist/chunk-HYGCZCR2.js.map +0 -1
  125. package/dist/chunk-SVI3L5G5.cjs.map +0 -1
  126. /package/dist/{chunk-W3SNJ5XS.cjs.map → chunk-5H7AYX72.cjs.map} +0 -0
  127. /package/dist/{chunk-HG57BLPT.js.map → chunk-74SNQV3K.js.map} +0 -0
  128. /package/dist/{chunk-WQ7WULBW.cjs.map → chunk-7EGLPJKV.cjs.map} +0 -0
  129. /package/dist/{chunk-3C5IQSUX.cjs.map → chunk-GBW67Z6V.cjs.map} +0 -0
  130. /package/dist/{chunk-W2Q46OO4.js.map → chunk-GHIVSSM5.js.map} +0 -0
  131. /package/dist/{chunk-YNJPYSO4.cjs.map → chunk-H2WTBOQ5.cjs.map} +0 -0
  132. /package/dist/{chunk-QKALEGXY.js.map → chunk-HXZYERJJ.js.map} +0 -0
  133. /package/dist/{chunk-TIQPIPH5.cjs.map → chunk-L5BIVHQJ.cjs.map} +0 -0
  134. /package/dist/{chunk-Y7PF2Z3W.cjs.map → chunk-NGWVWCWP.cjs.map} +0 -0
  135. /package/dist/{chunk-L3L7YEW3.js.map → chunk-R2H6H2HY.js.map} +0 -0
  136. /package/dist/{chunk-XRFRY2LN.js.map → chunk-WBKHUVJU.js.map} +0 -0
  137. /package/dist/{chunk-QTGK3RB5.js.map → chunk-ZRYD4SFA.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  handleSendTransaction
3
- } from "../../../../chunk-HYGCZCR2.js";
3
+ } from "../../../../chunk-A6Q4Z5TO.js";
4
4
  import {
5
5
  DynamicContextProviderWrapper
6
6
  } from "../../../../chunk-RZT2J42J.js";
@@ -14,9 +14,9 @@ import {
14
14
  chainIdToBlockchain
15
15
  } from "@crossmint/common-sdk-base";
16
16
  import { EthereumWalletConnectors } from "@dynamic-labs/ethereum";
17
- import { useDynamicContext } from "@dynamic-labs/sdk-react-core";
17
+ import { DynamicContext, useDynamicContext } from "@dynamic-labs/sdk-react-core";
18
18
  import { SolanaWalletConnectors } from "@dynamic-labs/solana";
19
- import { useEffect } from "react";
19
+ import { useContext, useEffect, useState } from "react";
20
20
  import { jsx } from "react/jsx-runtime";
21
21
  function CryptoWalletConnectionHandler(props) {
22
22
  const { iframeClient, apiKeyEnvironment } = props;
@@ -70,19 +70,19 @@ function CryptoWalletConnectionHandler(props) {
70
70
  );
71
71
  }
72
72
  function _CryptoWalletConnectionHandler({ iframeClient }) {
73
- const { setShowAuthFlow, primaryWallet, handleLogOut } = useDynamicContext();
73
+ const [showDynamicModal, setShowDynamicModal] = useState(false);
74
+ const { primaryWallet } = useDynamicContext();
74
75
  useEffect(() => {
75
76
  if (iframeClient == null) {
76
77
  return;
77
78
  }
78
- const showAuthFlowListener = iframeClient.on("crypto:connect-wallet.show", (_0) => __async(this, [_0], function* ({ show }) {
79
- yield handleLogOut();
80
- setShowAuthFlow(show);
81
- }));
79
+ const showAuthFlowListener = iframeClient.on("crypto:connect-wallet.show", ({ show }) => {
80
+ setShowDynamicModal(show);
81
+ });
82
82
  return () => {
83
83
  iframeClient.off(showAuthFlowListener);
84
84
  };
85
- }, [iframeClient, handleLogOut, setShowAuthFlow]);
85
+ }, [iframeClient]);
86
86
  useEffect(() => {
87
87
  if (iframeClient == null) {
88
88
  return;
@@ -109,7 +109,7 @@ function _CryptoWalletConnectionHandler({ iframeClient }) {
109
109
  iframeClient.off(signTransactionListener);
110
110
  };
111
111
  }, [iframeClient, primaryWallet]);
112
- return null;
112
+ return showDynamicModal ? /* @__PURE__ */ jsx(ShowDynamicModal, { setShowDynamicModal }) : null;
113
113
  }
114
114
  function dynamicChainToCrossmintChain(wallet) {
115
115
  return __async(this, null, function* () {
@@ -129,7 +129,32 @@ function dynamicChainToCrossmintChain(wallet) {
129
129
  return chainFromChainId;
130
130
  });
131
131
  }
132
+ function ShowDynamicModal({ setShowDynamicModal }) {
133
+ const context = useContext(DynamicContext);
134
+ if (context == null) {
135
+ throw new Error("DynamicContext is missing");
136
+ }
137
+ const { setShowAuthFlow, handleLogOut } = context;
138
+ useEffect(() => {
139
+ var _a;
140
+ (_a = document.getElementById("crossmint-focus-target")) == null ? void 0 : _a.focus();
141
+ (() => __async(this, null, function* () {
142
+ yield handleLogOut();
143
+ setShowAuthFlow(true, {
144
+ clearErrors: true,
145
+ emitCancelAuth: true,
146
+ ignoreIfIsEmbeddedWidget: true,
147
+ initializeWalletConnect: true,
148
+ performMultiWalletChecks: false
149
+ // Important to be false in order to not require double clicking connect button
150
+ });
151
+ setShowDynamicModal(false);
152
+ }))();
153
+ }, []);
154
+ return null;
155
+ }
132
156
  export {
133
- CryptoWalletConnectionHandler
157
+ CryptoWalletConnectionHandler,
158
+ ShowDynamicModal
134
159
  };
135
160
  //# sourceMappingURL=CryptoWalletConnectionHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/embed/v3/crypto/CryptoWalletConnectionHandler.tsx"],"sourcesContent":["import DynamicContextProviderWrapper from \"@/components/dynamic-xyz/DynamicContextProviderWrapper\";\nimport type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport {\n type APIKeyEnvironmentPrefix,\n type BlockchainIncludingTestnet,\n chainIdToBlockchain,\n} from \"@crossmint/common-sdk-base\";\nimport { EthereumWalletConnectors } from \"@dynamic-labs/ethereum\";\nimport { type HandleConnectedWallet, useDynamicContext } from \"@dynamic-labs/sdk-react-core\";\nimport { SolanaWalletConnectors } from \"@dynamic-labs/solana\";\nimport { useEffect } from \"react\";\nimport { handleSendTransaction } from \"./utils/handleSendTransaction\";\n\nexport function CryptoWalletConnectionHandler(props: {\n iframeClient: EmbeddedCheckoutV3IFrameEmitter | null;\n apiKeyEnvironment: APIKeyEnvironmentPrefix;\n}) {\n const { iframeClient, apiKeyEnvironment } = props;\n\n return (\n <DynamicContextProviderWrapper\n apiKeyEnvironment={apiKeyEnvironment}\n settings={{\n walletConnectors: [EthereumWalletConnectors, SolanaWalletConnectors],\n events: {\n onAuthFlowCancel() {\n console.log(\"[CryptoWalletConnectionHandler] onAuthFlowCancel\");\n iframeClient?.send(\"crypto:connect-wallet.failed\", {\n error: \"cancelled\",\n });\n },\n onAuthFlowClose() {\n console.log(\"[CryptoWalletConnectionHandler] onAuthFlowClose\");\n },\n onAuthFailure(data, reason) {\n console.error(\"[CryptoWalletConnectionHandler] onAuthFailure\", data, reason);\n },\n onAuthSuccess(data) {\n console.log(\"[CryptoWalletConnectionHandler] onAuthSuccess\", data);\n },\n },\n handlers: {\n handleConnectedWallet: async (wallet) => {\n console.log(\"[CryptoWalletConnectionHandler] handleConnectedWallet\", wallet);\n\n const address = wallet.address;\n if (!address) {\n console.error(\"[CryptoWalletConnectionHandler] handleConnectedWallet: address is missing\");\n iframeClient?.send(\"crypto:connect-wallet.failed\", {\n error: \"address is missing\",\n });\n return false;\n }\n\n const chain = await dynamicChainToCrossmintChain(wallet);\n\n iframeClient?.send(\"crypto:connect-wallet.success\", {\n address,\n chain,\n walletProviderKey: wallet.connector?.key,\n });\n\n return true;\n },\n },\n }}\n >\n <_CryptoWalletConnectionHandler {...props} />\n </DynamicContextProviderWrapper>\n );\n}\n\nfunction _CryptoWalletConnectionHandler({ iframeClient }: Parameters<typeof CryptoWalletConnectionHandler>[0]) {\n const { setShowAuthFlow, primaryWallet, handleLogOut } = useDynamicContext();\n\n useEffect(() => {\n if (iframeClient == null) {\n return;\n }\n const showAuthFlowListener = iframeClient.on(\"crypto:connect-wallet.show\", async ({ show }) => {\n await handleLogOut();\n setShowAuthFlow(show);\n });\n\n return () => {\n iframeClient.off(showAuthFlowListener);\n };\n }, [iframeClient, handleLogOut, setShowAuthFlow]);\n\n useEffect(() => {\n if (iframeClient == null) {\n return;\n }\n const signTransactionListener = iframeClient.on(\n \"crypto:send-transaction\",\n async ({ chain, serializedTransaction }) => {\n if (primaryWallet == null) {\n console.error(\"[CryptoWalletConnectionHandler] signTransaction: primaryWallet is missing\");\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"primaryWallet is missing\",\n });\n return;\n }\n\n await handleSendTransaction(\n primaryWallet,\n chain as BlockchainIncludingTestnet,\n serializedTransaction,\n iframeClient\n );\n }\n );\n\n return () => {\n iframeClient.off(signTransactionListener);\n };\n }, [iframeClient, primaryWallet]);\n\n return null;\n}\n\nasync function dynamicChainToCrossmintChain(\n wallet: Parameters<HandleConnectedWallet>[0]\n): Promise<BlockchainIncludingTestnet> {\n const chain = wallet.chain;\n if (chain === \"SOL\") {\n return \"solana\";\n }\n const chainId = await wallet.connector?.getNetwork();\n if (typeof chainId !== \"number\") {\n throw new Error(\"chainId is not a number\");\n }\n const chainFromChainId = chainIdToBlockchain(chainId);\n if (!chainFromChainId) {\n throw new Error(`ChainId ${chainId} is not supported`);\n }\n return chainFromChainId as BlockchainIncludingTestnet;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../src/components/embed/v3/crypto/CryptoWalletConnectionHandler.tsx"],"sourcesContent":["import DynamicContextProviderWrapper from \"@/components/dynamic-xyz/DynamicContextProviderWrapper\";\nimport type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport {\n type APIKeyEnvironmentPrefix,\n type BlockchainIncludingTestnet,\n chainIdToBlockchain,\n} from \"@crossmint/common-sdk-base\";\nimport { EthereumWalletConnectors } from \"@dynamic-labs/ethereum\";\nimport { DynamicContext, useDynamicContext, type HandleConnectedWallet } from \"@dynamic-labs/sdk-react-core\";\nimport { SolanaWalletConnectors } from \"@dynamic-labs/solana\";\nimport { type Dispatch, type SetStateAction, useContext, useEffect, useState } from \"react\";\nimport { handleSendTransaction } from \"./utils/handleSendTransaction\";\n\nexport function CryptoWalletConnectionHandler(props: {\n iframeClient: EmbeddedCheckoutV3IFrameEmitter | null;\n apiKeyEnvironment: APIKeyEnvironmentPrefix;\n}) {\n const { iframeClient, apiKeyEnvironment } = props;\n\n return (\n <DynamicContextProviderWrapper\n apiKeyEnvironment={apiKeyEnvironment}\n settings={{\n walletConnectors: [EthereumWalletConnectors, SolanaWalletConnectors],\n events: {\n onAuthFlowCancel() {\n console.log(\"[CryptoWalletConnectionHandler] onAuthFlowCancel\");\n iframeClient?.send(\"crypto:connect-wallet.failed\", {\n error: \"cancelled\",\n });\n },\n onAuthFlowClose() {\n console.log(\"[CryptoWalletConnectionHandler] onAuthFlowClose\");\n },\n onAuthFailure(data, reason) {\n console.error(\"[CryptoWalletConnectionHandler] onAuthFailure\", data, reason);\n },\n onAuthSuccess(data) {\n console.log(\"[CryptoWalletConnectionHandler] onAuthSuccess\", data);\n },\n },\n handlers: {\n handleConnectedWallet: async (wallet) => {\n console.log(\"[CryptoWalletConnectionHandler] handleConnectedWallet\", wallet);\n\n const address = wallet.address;\n if (!address) {\n console.error(\"[CryptoWalletConnectionHandler] handleConnectedWallet: address is missing\");\n iframeClient?.send(\"crypto:connect-wallet.failed\", {\n error: \"address is missing\",\n });\n return false;\n }\n\n const chain = await dynamicChainToCrossmintChain(wallet);\n\n iframeClient?.send(\"crypto:connect-wallet.success\", {\n address,\n chain,\n walletProviderKey: wallet.connector?.key,\n });\n\n return true;\n },\n },\n }}\n >\n <_CryptoWalletConnectionHandler {...props} />\n </DynamicContextProviderWrapper>\n );\n}\n\nfunction _CryptoWalletConnectionHandler({ iframeClient }: Parameters<typeof CryptoWalletConnectionHandler>[0]) {\n const [showDynamicModal, setShowDynamicModal] = useState(false);\n const { primaryWallet } = useDynamicContext();\n\n useEffect(() => {\n if (iframeClient == null) {\n return;\n }\n const showAuthFlowListener = iframeClient.on(\"crypto:connect-wallet.show\", ({ show }) => {\n setShowDynamicModal(show);\n });\n\n return () => {\n iframeClient.off(showAuthFlowListener);\n };\n }, [iframeClient]);\n\n useEffect(() => {\n if (iframeClient == null) {\n return;\n }\n const signTransactionListener = iframeClient.on(\n \"crypto:send-transaction\",\n async ({ chain, serializedTransaction }) => {\n if (primaryWallet == null) {\n console.error(\"[CryptoWalletConnectionHandler] signTransaction: primaryWallet is missing\");\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"primaryWallet is missing\",\n });\n return;\n }\n\n await handleSendTransaction(\n primaryWallet,\n chain as BlockchainIncludingTestnet,\n serializedTransaction,\n iframeClient\n );\n }\n );\n\n return () => {\n iframeClient.off(signTransactionListener);\n };\n }, [iframeClient, primaryWallet]);\n\n return showDynamicModal ? <ShowDynamicModal setShowDynamicModal={setShowDynamicModal} /> : null;\n}\n\nasync function dynamicChainToCrossmintChain(\n wallet: Parameters<HandleConnectedWallet>[0]\n): Promise<BlockchainIncludingTestnet> {\n const chain = wallet.chain;\n if (chain === \"SOL\") {\n return \"solana\";\n }\n const chainId = await wallet.connector?.getNetwork();\n if (typeof chainId !== \"number\") {\n throw new Error(\"chainId is not a number\");\n }\n const chainFromChainId = chainIdToBlockchain(chainId);\n if (!chainFromChainId) {\n throw new Error(`ChainId ${chainId} is not supported`);\n }\n return chainFromChainId as BlockchainIncludingTestnet;\n}\n\nexport function ShowDynamicModal({ setShowDynamicModal }: { setShowDynamicModal: Dispatch<SetStateAction<boolean>> }) {\n const context = useContext(DynamicContext);\n if (context == null) {\n throw new Error(\"DynamicContext is missing\");\n }\n const { setShowAuthFlow, handleLogOut } = context;\n\n useEffect(() => {\n // Move focus from the iframe to the main page, otherwise the modal will require a double click to interact with it\n document.getElementById(\"crossmint-focus-target\")?.focus();\n\n (async () => {\n await handleLogOut();\n setShowAuthFlow(true, {\n clearErrors: true,\n emitCancelAuth: true,\n ignoreIfIsEmbeddedWidget: true,\n initializeWalletConnect: true,\n performMultiWalletChecks: false, // Important to be false in order to not require double clicking connect button\n });\n setShowDynamicModal(false);\n })();\n }, []);\n\n return null;\n}\n"],"mappings":"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","names":[]}
@@ -6,6 +6,8 @@ var _chunk4DAZAO6Ycjs = require('../../../../../chunk-4DAZAO6Y.cjs');
6
6
 
7
7
 
8
8
  var _commonsdkbase = require('@crossmint/common-sdk-base');
9
+
10
+
9
11
  var _viem = require('viem');
10
12
  function handleEvmTransaction(_0) {
11
13
  return _chunk4DAZAO6Ycjs.__async.call(void 0, this, arguments, function* ({
@@ -14,10 +16,12 @@ function handleEvmTransaction(_0) {
14
16
  serializedTransaction,
15
17
  iframeClient
16
18
  }) {
19
+ const { connector } = primaryWallet;
20
+ const chainId = _commonsdkbase.blockchainToChainId.call(void 0, chain);
17
21
  try {
18
- yield primaryWallet.switchNetwork(_commonsdkbase.blockchainToChainId.call(void 0, chain));
22
+ yield connector.switchNetwork({ networkChainId: chainId });
19
23
  } catch (error) {
20
- console.error("[CryptoWalletConnectionHandler] failed to switch network", error);
24
+ console.error(`[CryptoWalletConnectionHandler] failed to switch network to ${chainId}`, error);
21
25
  iframeClient.send("crypto:send-transaction:failed", {
22
26
  error: error.message
23
27
  });
@@ -25,7 +29,10 @@ function handleEvmTransaction(_0) {
25
29
  }
26
30
  let walletClient;
27
31
  try {
28
- walletClient = yield primaryWallet.getWalletClient();
32
+ walletClient = connector.getWalletClient(String(chainId));
33
+ if (!walletClient) {
34
+ throw new Error(`connector.getWalletClient(${chainId}) returned undefined`);
35
+ }
29
36
  } catch (error) {
30
37
  console.error("[CryptoWalletConnectionHandler] failed to get wallet client", error);
31
38
  iframeClient.send("crypto:send-transaction:failed", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleEvmTransaction.ts"],"names":[],"mappings":";;;;;AACA;AAAA,EAEI;AAAA,OAEG;AAEP,SAAS,wBAA6D;AAEtE,SAAsB,qBAAqB,IAUxC;AAAA,6CAVwC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAKG;AACC,QAAI;AACA,YAAM,cAAc,cAAc,oBAAoB,KAAsC,CAAC;AAAA,IACjG,SAAS,OAAO;AACZ,cAAQ,MAAM,4DAA4D,KAAK;AAC/E,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,qBAAe,MAAM,cAAc,gBAAgB;AAAA,IACvD,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,0BAAoB,iBAAiB,qBAAsC;AAAA,IAC/E,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,MAAM,aAAa,gBAAgB,iBAAiB;AACjE,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA","sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport {\n type BlockchainIncludingTestnet,\n blockchainToChainId,\n type EVMBlockchainIncludingTestnet,\n} from \"@crossmint/common-sdk-base\";\nimport type { EthereumWallet } from \"@dynamic-labs/ethereum-core\";\nimport { parseTransaction, type TransactionSerializableEIP1559 } from \"viem\";\n\nexport async function handleEvmTransaction({\n primaryWallet,\n chain,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: EthereumWallet;\n chain: BlockchainIncludingTestnet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n try {\n await primaryWallet.switchNetwork(blockchainToChainId(chain as EVMBlockchainIncludingTestnet));\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to switch network\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let walletClient: Awaited<ReturnType<typeof primaryWallet.getWalletClient>>;\n try {\n walletClient = await primaryWallet.getWalletClient();\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get wallet client\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let parsedTransaction: TransactionSerializableEIP1559;\n try {\n parsedTransaction = parseTransaction(serializedTransaction as `0x${string}`) as TransactionSerializableEIP1559;\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to parse transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n try {\n const txId = await walletClient.sendTransaction(parsedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleEvmTransaction.ts"],"names":[],"mappings":";;;;;AACA;AAAA,EAEI;AAAA,OAEG;AAEP;AAAA,EAMI;AAAA,OACG;AAEP,SAAsB,qBAAqB,IAUxC;AAAA,6CAVwC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAKG;AACC,UAAM,EAAE,UAAU,IAAI;AACtB,UAAM,UAAU,oBAAoB,KAAsC;AAE1E,QAAI;AACA,YAAM,UAAU,cAAc,EAAE,gBAAgB,QAAQ,CAAC;AAAA,IAC7D,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,OAAO,IAAI,KAAK;AAC7F,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,qBAAe,UAAU,gBAAqE,OAAO,OAAO,CAAC;AAC7G,UAAI,CAAC,cAAc;AACf,cAAM,IAAI,MAAM,6BAA6B,OAAO,sBAAsB;AAAA,MAC9E;AAAA,IACJ,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,0BAAoB,iBAAiB,qBAAsC;AAAA,IAC/E,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,MAAM,aAAa,gBAAgB,iBAAiB;AACjE,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA","sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport {\n type BlockchainIncludingTestnet,\n blockchainToChainId,\n type EVMBlockchainIncludingTestnet,\n} from \"@crossmint/common-sdk-base\";\nimport type { Wallet } from \"@dynamic-labs/sdk-react-core\";\nimport {\n type Chain,\n type Account,\n type WalletClient,\n type TransactionSerializableEIP1559,\n type Transport,\n parseTransaction,\n} from \"viem\";\n\nexport async function handleEvmTransaction({\n primaryWallet,\n chain,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: Wallet;\n chain: BlockchainIncludingTestnet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n const { connector } = primaryWallet;\n const chainId = blockchainToChainId(chain as EVMBlockchainIncludingTestnet);\n\n try {\n await connector.switchNetwork({ networkChainId: chainId });\n } catch (error) {\n console.error(`[CryptoWalletConnectionHandler] failed to switch network to ${chainId}`, error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let walletClient: WalletClient<Transport, Chain, Account> | undefined;\n try {\n walletClient = connector.getWalletClient<WalletClient<Transport, Chain, Account> | undefined>(String(chainId));\n if (!walletClient) {\n throw new Error(`connector.getWalletClient(${chainId}) returned undefined`);\n }\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get wallet client\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let parsedTransaction: TransactionSerializableEIP1559;\n try {\n parsedTransaction = parseTransaction(serializedTransaction as `0x${string}`) as TransactionSerializableEIP1559;\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to parse transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n try {\n const txId = await walletClient.sendTransaction(parsedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { EmbeddedCheckoutV3IFrameEmitter } from '@crossmint/client-sdk-base';
2
2
  import { BlockchainIncludingTestnet } from '@crossmint/common-sdk-base';
3
- import { EthereumWallet } from '@dynamic-labs/ethereum-core';
3
+ import { Wallet } from '@dynamic-labs/sdk-react-core';
4
4
 
5
5
  declare function handleEvmTransaction({ primaryWallet, chain, serializedTransaction, iframeClient, }: {
6
- primaryWallet: EthereumWallet;
6
+ primaryWallet: Wallet;
7
7
  chain: BlockchainIncludingTestnet;
8
8
  serializedTransaction: string;
9
9
  iframeClient: EmbeddedCheckoutV3IFrameEmitter;
@@ -1,9 +1,9 @@
1
1
  import { EmbeddedCheckoutV3IFrameEmitter } from '@crossmint/client-sdk-base';
2
2
  import { BlockchainIncludingTestnet } from '@crossmint/common-sdk-base';
3
- import { EthereumWallet } from '@dynamic-labs/ethereum-core';
3
+ import { Wallet } from '@dynamic-labs/sdk-react-core';
4
4
 
5
5
  declare function handleEvmTransaction({ primaryWallet, chain, serializedTransaction, iframeClient, }: {
6
- primaryWallet: EthereumWallet;
6
+ primaryWallet: Wallet;
7
7
  chain: BlockchainIncludingTestnet;
8
8
  serializedTransaction: string;
9
9
  iframeClient: EmbeddedCheckoutV3IFrameEmitter;
@@ -6,7 +6,9 @@ import {
6
6
  import {
7
7
  blockchainToChainId
8
8
  } from "@crossmint/common-sdk-base";
9
- import { parseTransaction } from "viem";
9
+ import {
10
+ parseTransaction
11
+ } from "viem";
10
12
  function handleEvmTransaction(_0) {
11
13
  return __async(this, arguments, function* ({
12
14
  primaryWallet,
@@ -14,10 +16,12 @@ function handleEvmTransaction(_0) {
14
16
  serializedTransaction,
15
17
  iframeClient
16
18
  }) {
19
+ const { connector } = primaryWallet;
20
+ const chainId = blockchainToChainId(chain);
17
21
  try {
18
- yield primaryWallet.switchNetwork(blockchainToChainId(chain));
22
+ yield connector.switchNetwork({ networkChainId: chainId });
19
23
  } catch (error) {
20
- console.error("[CryptoWalletConnectionHandler] failed to switch network", error);
24
+ console.error(`[CryptoWalletConnectionHandler] failed to switch network to ${chainId}`, error);
21
25
  iframeClient.send("crypto:send-transaction:failed", {
22
26
  error: error.message
23
27
  });
@@ -25,7 +29,10 @@ function handleEvmTransaction(_0) {
25
29
  }
26
30
  let walletClient;
27
31
  try {
28
- walletClient = yield primaryWallet.getWalletClient();
32
+ walletClient = connector.getWalletClient(String(chainId));
33
+ if (!walletClient) {
34
+ throw new Error(`connector.getWalletClient(${chainId}) returned undefined`);
35
+ }
29
36
  } catch (error) {
30
37
  console.error("[CryptoWalletConnectionHandler] failed to get wallet client", error);
31
38
  iframeClient.send("crypto:send-transaction:failed", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleEvmTransaction.ts"],"sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport {\n type BlockchainIncludingTestnet,\n blockchainToChainId,\n type EVMBlockchainIncludingTestnet,\n} from \"@crossmint/common-sdk-base\";\nimport type { EthereumWallet } from \"@dynamic-labs/ethereum-core\";\nimport { parseTransaction, type TransactionSerializableEIP1559 } from \"viem\";\n\nexport async function handleEvmTransaction({\n primaryWallet,\n chain,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: EthereumWallet;\n chain: BlockchainIncludingTestnet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n try {\n await primaryWallet.switchNetwork(blockchainToChainId(chain as EVMBlockchainIncludingTestnet));\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to switch network\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let walletClient: Awaited<ReturnType<typeof primaryWallet.getWalletClient>>;\n try {\n walletClient = await primaryWallet.getWalletClient();\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get wallet client\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let parsedTransaction: TransactionSerializableEIP1559;\n try {\n parsedTransaction = parseTransaction(serializedTransaction as `0x${string}`) as TransactionSerializableEIP1559;\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to parse transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n try {\n const txId = await walletClient.sendTransaction(parsedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"],"mappings":";;;;;AACA;AAAA,EAEI;AAAA,OAEG;AAEP,SAAS,wBAA6D;AAEtE,SAAsB,qBAAqB,IAUxC;AAAA,6CAVwC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAKG;AACC,QAAI;AACA,YAAM,cAAc,cAAc,oBAAoB,KAAsC,CAAC;AAAA,IACjG,SAAS,OAAO;AACZ,cAAQ,MAAM,4DAA4D,KAAK;AAC/E,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,qBAAe,MAAM,cAAc,gBAAgB;AAAA,IACvD,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,0BAAoB,iBAAiB,qBAAsC;AAAA,IAC/E,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,MAAM,aAAa,gBAAgB,iBAAiB;AACjE,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleEvmTransaction.ts"],"sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport {\n type BlockchainIncludingTestnet,\n blockchainToChainId,\n type EVMBlockchainIncludingTestnet,\n} from \"@crossmint/common-sdk-base\";\nimport type { Wallet } from \"@dynamic-labs/sdk-react-core\";\nimport {\n type Chain,\n type Account,\n type WalletClient,\n type TransactionSerializableEIP1559,\n type Transport,\n parseTransaction,\n} from \"viem\";\n\nexport async function handleEvmTransaction({\n primaryWallet,\n chain,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: Wallet;\n chain: BlockchainIncludingTestnet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n const { connector } = primaryWallet;\n const chainId = blockchainToChainId(chain as EVMBlockchainIncludingTestnet);\n\n try {\n await connector.switchNetwork({ networkChainId: chainId });\n } catch (error) {\n console.error(`[CryptoWalletConnectionHandler] failed to switch network to ${chainId}`, error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let walletClient: WalletClient<Transport, Chain, Account> | undefined;\n try {\n walletClient = connector.getWalletClient<WalletClient<Transport, Chain, Account> | undefined>(String(chainId));\n if (!walletClient) {\n throw new Error(`connector.getWalletClient(${chainId}) returned undefined`);\n }\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get wallet client\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n let parsedTransaction: TransactionSerializableEIP1559;\n try {\n parsedTransaction = parseTransaction(serializedTransaction as `0x${string}`) as TransactionSerializableEIP1559;\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to parse transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n return;\n }\n\n try {\n const txId = await walletClient.sendTransaction(parsedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"],"mappings":";;;;;AACA;AAAA,EAEI;AAAA,OAEG;AAEP;AAAA,EAMI;AAAA,OACG;AAEP,SAAsB,qBAAqB,IAUxC;AAAA,6CAVwC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAKG;AACC,UAAM,EAAE,UAAU,IAAI;AACtB,UAAM,UAAU,oBAAoB,KAAsC;AAE1E,QAAI;AACA,YAAM,UAAU,cAAc,EAAE,gBAAgB,QAAQ,CAAC;AAAA,IAC7D,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,OAAO,IAAI,KAAK;AAC7F,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,qBAAe,UAAU,gBAAqE,OAAO,OAAO,CAAC;AAC7G,UAAI,CAAC,cAAc;AACf,cAAM,IAAI,MAAM,6BAA6B,OAAO,sBAAsB;AAAA,MAC9E;AAAA,IACJ,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,0BAAoB,iBAAiB,qBAAsC;AAAA,IAC/E,SAAS,OAAO;AACZ,cAAQ,MAAM,+DAA+D,KAAK;AAClF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,OAAO,MAAM,aAAa,gBAAgB,iBAAiB;AACjE,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;","names":[]}
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkGGE3H4XPcjs = require('../../../../../chunk-GGE3H4XP.cjs');
3
+ var _chunkAUCL5NPWcjs = require('../../../../../chunk-AUCL5NPW.cjs');
4
4
  require('../../../../../chunk-4DAZAO6Y.cjs');
5
5
 
6
6
 
7
- exports.handleSendTransaction = _chunkGGE3H4XPcjs.handleSendTransaction;
7
+ exports.handleSendTransaction = _chunkAUCL5NPWcjs.handleSendTransaction;
8
8
  //# sourceMappingURL=handleSendTransaction.cjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  handleSendTransaction
3
- } from "../../../../../chunk-HYGCZCR2.js";
3
+ } from "../../../../../chunk-A6Q4Z5TO.js";
4
4
  import "../../../../../chunk-CRTRMMJ7.js";
5
5
  export {
6
6
  handleSendTransaction
@@ -11,9 +11,10 @@ function handleSolanaTransaction(_0) {
11
11
  serializedTransaction,
12
12
  iframeClient
13
13
  }) {
14
+ const { connector } = primaryWallet;
14
15
  let signer;
15
16
  try {
16
- signer = yield primaryWallet.getSigner();
17
+ signer = yield connector.getSigner();
17
18
  } catch (error) {
18
19
  console.error("[CryptoWalletConnectionHandler] failed to get signer", error);
19
20
  iframeClient.send("crypto:send-transaction:failed", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts"],"names":[],"mappings":";;;;;AAEA,SAAS,mBAAmB;AAC5B,OAAO,YAAY;AAEnB,SAAsB,wBAAwB,IAQ3C;AAAA,6CAR2C;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAIG;AAGC,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,cAAc,UAAU;AAAA,IAC3C,SAAS,OAAO;AACZ,cAAQ,MAAM,wDAAwD,KAAK;AAC3E,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,gCAA0B,YAAY,KAAK,OAAO,OAAO,qBAAqB,CAAC;AAAA,IACnF,SAAS,OAAO;AACZ,cAAQ,MAAM,qEAAqE,KAAK;AACxF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,EAAE,WAAW,KAAK,IAAI,MAAM,OAAO,uBAAuB,uBAAuB;AACvF,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA","sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport type { SolanaWallet } from \"@dynamic-labs/solana-core\";\nimport { Transaction } from \"@solana/web3.js\";\nimport base58 from \"bs58\";\n\nexport async function handleSolanaTransaction({\n primaryWallet,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: SolanaWallet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n // TODO: Handle switch network\n\n let signer: Awaited<ReturnType<typeof primaryWallet.getSigner>>;\n try {\n signer = await primaryWallet.getSigner();\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get signer\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to get signer\",\n });\n return;\n }\n\n let deserializedTransaction: Transaction;\n try {\n deserializedTransaction = Transaction.from(base58.decode(serializedTransaction));\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to deserialize transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to deserialize transaction\",\n });\n return;\n }\n\n try {\n const { signature: txId } = await signer.signAndSendTransaction(deserializedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts"],"names":[],"mappings":";;;;;AAGA,SAAS,mBAAmB;AAC5B,OAAO,YAAY;AAEnB,SAAsB,wBAAwB,IAQ3C;AAAA,6CAR2C;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAIG;AAGC,UAAM,EAAE,UAAU,IAAI;AAEtB,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,UAAU,UAAmB;AAAA,IAChD,SAAS,OAAO;AACZ,cAAQ,MAAM,wDAAwD,KAAK;AAC3E,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,gCAA0B,YAAY,KAAK,OAAO,OAAO,qBAAqB,CAAC;AAAA,IACnF,SAAS,OAAO;AACZ,cAAQ,MAAM,qEAAqE,KAAK;AACxF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,EAAE,WAAW,KAAK,IAAI,MAAM,OAAO,uBAAuB,uBAAuB;AACvF,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA","sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport type { Wallet } from \"@dynamic-labs/sdk-react-core\";\nimport type { ISolana } from \"@dynamic-labs/solana\";\nimport { Transaction } from \"@solana/web3.js\";\nimport base58 from \"bs58\";\n\nexport async function handleSolanaTransaction({\n primaryWallet,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: Wallet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n // TODO: Handle switch network\n\n const { connector } = primaryWallet;\n\n let signer: ISolana;\n try {\n signer = await connector.getSigner<ISolana>();\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get signer\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to get signer\",\n });\n return;\n }\n\n let deserializedTransaction: Transaction;\n try {\n deserializedTransaction = Transaction.from(base58.decode(serializedTransaction));\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to deserialize transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to deserialize transaction\",\n });\n return;\n }\n\n try {\n const { signature: txId } = await signer.signAndSendTransaction(deserializedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { EmbeddedCheckoutV3IFrameEmitter } from '@crossmint/client-sdk-base';
2
- import { SolanaWallet } from '@dynamic-labs/solana-core';
2
+ import { Wallet } from '@dynamic-labs/sdk-react-core';
3
3
 
4
4
  declare function handleSolanaTransaction({ primaryWallet, serializedTransaction, iframeClient, }: {
5
- primaryWallet: SolanaWallet;
5
+ primaryWallet: Wallet;
6
6
  serializedTransaction: string;
7
7
  iframeClient: EmbeddedCheckoutV3IFrameEmitter;
8
8
  }): Promise<void>;
@@ -1,8 +1,8 @@
1
1
  import { EmbeddedCheckoutV3IFrameEmitter } from '@crossmint/client-sdk-base';
2
- import { SolanaWallet } from '@dynamic-labs/solana-core';
2
+ import { Wallet } from '@dynamic-labs/sdk-react-core';
3
3
 
4
4
  declare function handleSolanaTransaction({ primaryWallet, serializedTransaction, iframeClient, }: {
5
- primaryWallet: SolanaWallet;
5
+ primaryWallet: Wallet;
6
6
  serializedTransaction: string;
7
7
  iframeClient: EmbeddedCheckoutV3IFrameEmitter;
8
8
  }): Promise<void>;
@@ -11,9 +11,10 @@ function handleSolanaTransaction(_0) {
11
11
  serializedTransaction,
12
12
  iframeClient
13
13
  }) {
14
+ const { connector } = primaryWallet;
14
15
  let signer;
15
16
  try {
16
- signer = yield primaryWallet.getSigner();
17
+ signer = yield connector.getSigner();
17
18
  } catch (error) {
18
19
  console.error("[CryptoWalletConnectionHandler] failed to get signer", error);
19
20
  iframeClient.send("crypto:send-transaction:failed", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts"],"sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport type { SolanaWallet } from \"@dynamic-labs/solana-core\";\nimport { Transaction } from \"@solana/web3.js\";\nimport base58 from \"bs58\";\n\nexport async function handleSolanaTransaction({\n primaryWallet,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: SolanaWallet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n // TODO: Handle switch network\n\n let signer: Awaited<ReturnType<typeof primaryWallet.getSigner>>;\n try {\n signer = await primaryWallet.getSigner();\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get signer\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to get signer\",\n });\n return;\n }\n\n let deserializedTransaction: Transaction;\n try {\n deserializedTransaction = Transaction.from(base58.decode(serializedTransaction));\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to deserialize transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to deserialize transaction\",\n });\n return;\n }\n\n try {\n const { signature: txId } = await signer.signAndSendTransaction(deserializedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"],"mappings":";;;;;AAEA,SAAS,mBAAmB;AAC5B,OAAO,YAAY;AAEnB,SAAsB,wBAAwB,IAQ3C;AAAA,6CAR2C;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAIG;AAGC,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,cAAc,UAAU;AAAA,IAC3C,SAAS,OAAO;AACZ,cAAQ,MAAM,wDAAwD,KAAK;AAC3E,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,gCAA0B,YAAY,KAAK,OAAO,OAAO,qBAAqB,CAAC;AAAA,IACnF,SAAS,OAAO;AACZ,cAAQ,MAAM,qEAAqE,KAAK;AACxF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,EAAE,WAAW,KAAK,IAAI,MAAM,OAAO,uBAAuB,uBAAuB;AACvF,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts"],"sourcesContent":["import type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\nimport type { Wallet } from \"@dynamic-labs/sdk-react-core\";\nimport type { ISolana } from \"@dynamic-labs/solana\";\nimport { Transaction } from \"@solana/web3.js\";\nimport base58 from \"bs58\";\n\nexport async function handleSolanaTransaction({\n primaryWallet,\n serializedTransaction,\n iframeClient,\n}: {\n primaryWallet: Wallet;\n serializedTransaction: string;\n iframeClient: EmbeddedCheckoutV3IFrameEmitter;\n}) {\n // TODO: Handle switch network\n\n const { connector } = primaryWallet;\n\n let signer: ISolana;\n try {\n signer = await connector.getSigner<ISolana>();\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to get signer\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to get signer\",\n });\n return;\n }\n\n let deserializedTransaction: Transaction;\n try {\n deserializedTransaction = Transaction.from(base58.decode(serializedTransaction));\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to deserialize transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: \"Failed to deserialize transaction\",\n });\n return;\n }\n\n try {\n const { signature: txId } = await signer.signAndSendTransaction(deserializedTransaction);\n console.log(\"[CryptoWalletConnectionHandler] txId\", txId);\n iframeClient.send(\"crypto:send-transaction:success\", {\n txId,\n });\n } catch (error) {\n console.error(\"[CryptoWalletConnectionHandler] failed to send transaction\", error);\n iframeClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message,\n });\n }\n}\n"],"mappings":";;;;;AAGA,SAAS,mBAAmB;AAC5B,OAAO,YAAY;AAEnB,SAAsB,wBAAwB,IAQ3C;AAAA,6CAR2C;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAIG;AAGC,UAAM,EAAE,UAAU,IAAI;AAEtB,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,UAAU,UAAmB;AAAA,IAChD,SAAS,OAAO;AACZ,cAAQ,MAAM,wDAAwD,KAAK;AAC3E,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,gCAA0B,YAAY,KAAK,OAAO,OAAO,qBAAqB,CAAC;AAAA,IACnF,SAAS,OAAO;AACZ,cAAQ,MAAM,qEAAqE,KAAK;AACxF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAO;AAAA,MACX,CAAC;AACD;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,EAAE,WAAW,KAAK,IAAI,MAAM,OAAO,uBAAuB,uBAAuB;AACvF,cAAQ,IAAI,wCAAwC,IAAI;AACxD,mBAAa,KAAK,mCAAmC;AAAA,QACjD;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,cAAQ,MAAM,8DAA8D,KAAK;AACjF,mBAAa,KAAK,kCAAkC;AAAA,QAChD,OAAQ,MAAgB;AAAA,MAC5B,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;","names":[]}
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../../chunk-SZA3XDJ5.cjs');
2
2
 
3
3
 
4
- var _chunkYNJPYSO4cjs = require('../../../chunk-YNJPYSO4.cjs');
5
- require('../../../chunk-SVI3L5G5.cjs');
4
+ var _chunkH2WTBOQ5cjs = require('../../../chunk-H2WTBOQ5.cjs');
5
+ require('../../../chunk-ZRXZOZZZ.cjs');
6
6
  require('../../../chunk-FOCUIKYH.cjs');
7
7
  require('../../../chunk-DJ32OEWG.cjs');
8
8
  require('../../../chunk-ZCYU7QA6.cjs');
@@ -28,13 +28,13 @@ require('../../../chunk-URKPLEPV.cjs');
28
28
  require('../../../chunk-HPOZ6I54.cjs');
29
29
  require('../../../chunk-YE55IKBP.cjs');
30
30
  require('../../../chunk-ENCR5SUW.cjs');
31
- require('../../../chunk-3C5IQSUX.cjs');
32
- require('../../../chunk-Y7PF2Z3W.cjs');
31
+ require('../../../chunk-GBW67Z6V.cjs');
32
+ require('../../../chunk-NGWVWCWP.cjs');
33
33
  require('../../../chunk-KEKBOJCF.cjs');
34
34
  require('../../../chunk-A2JCJ2OV.cjs');
35
- require('../../../chunk-HENBZUED.cjs');
35
+ require('../../../chunk-2EYYCX3O.cjs');
36
36
  require('../../../chunk-4DAZAO6Y.cjs');
37
37
 
38
38
 
39
- exports.CrossmintEmbeddedCheckout_Alpha = _chunkYNJPYSO4cjs.CrossmintEmbeddedCheckout_Alpha;
39
+ exports.CrossmintEmbeddedCheckout_Alpha = _chunkH2WTBOQ5cjs.CrossmintEmbeddedCheckout_Alpha;
40
40
  //# sourceMappingURL=index.cjs.map
@@ -1,8 +1,8 @@
1
1
  import "../../../chunk-XXJ7LQ44.js";
2
2
  import {
3
3
  CrossmintEmbeddedCheckout_Alpha
4
- } from "../../../chunk-W2Q46OO4.js";
5
- import "../../../chunk-QIPMBCAV.js";
4
+ } from "../../../chunk-GHIVSSM5.js";
5
+ import "../../../chunk-GM7C5PE4.js";
6
6
  import "../../../chunk-CUODMU27.js";
7
7
  import "../../../chunk-WK5RAFJ3.js";
8
8
  import "../../../chunk-6DNBJVR5.js";
@@ -28,11 +28,11 @@ import "../../../chunk-I63FQCIV.js";
28
28
  import "../../../chunk-ZIHCLVCD.js";
29
29
  import "../../../chunk-H4F7UVPT.js";
30
30
  import "../../../chunk-YWVQCHQF.js";
31
- import "../../../chunk-XRFRY2LN.js";
32
- import "../../../chunk-L3L7YEW3.js";
31
+ import "../../../chunk-WBKHUVJU.js";
32
+ import "../../../chunk-R2H6H2HY.js";
33
33
  import "../../../chunk-3J6CUUWT.js";
34
34
  import "../../../chunk-AUEQQ4D3.js";
35
- import "../../../chunk-5IX763AW.js";
35
+ import "../../../chunk-O4DWHB3U.js";
36
36
  import "../../../chunk-CRTRMMJ7.js";
37
37
  export {
38
38
  CrossmintEmbeddedCheckout_Alpha
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkW3SNJ5XScjs = require('../../chunk-W3SNJ5XS.cjs');
3
+ var _chunk5H7AYX72cjs = require('../../chunk-5H7AYX72.cjs');
4
4
  require('../../chunk-Q3M4UH5U.cjs');
5
5
  require('../../chunk-KLWDDALZ.cjs');
6
- require('../../chunk-HENBZUED.cjs');
6
+ require('../../chunk-2EYYCX3O.cjs');
7
7
  require('../../chunk-4DAZAO6Y.cjs');
8
8
 
9
9
 
10
- exports.CrossmintPayButton = _chunkW3SNJ5XScjs.CrossmintPayButton;
10
+ exports.CrossmintPayButton = _chunk5H7AYX72cjs.CrossmintPayButton;
11
11
  //# sourceMappingURL=CrossmintPayButton.cjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CrossmintPayButton
3
- } from "../../chunk-QKALEGXY.js";
3
+ } from "../../chunk-HXZYERJJ.js";
4
4
  import "../../chunk-ATHR4S2P.js";
5
5
  import "../../chunk-L3FKENHU.js";
6
- import "../../chunk-5IX763AW.js";
6
+ import "../../chunk-O4DWHB3U.js";
7
7
  import "../../chunk-CRTRMMJ7.js";
8
8
  export {
9
9
  CrossmintPayButton
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-BKVDVDKX.cjs');
2
2
 
3
3
 
4
- var _chunkW3SNJ5XScjs = require('../../chunk-W3SNJ5XS.cjs');
4
+ var _chunk5H7AYX72cjs = require('../../chunk-5H7AYX72.cjs');
5
5
  require('../../chunk-Q3M4UH5U.cjs');
6
6
  require('../../chunk-KLWDDALZ.cjs');
7
- require('../../chunk-HENBZUED.cjs');
7
+ require('../../chunk-2EYYCX3O.cjs');
8
8
  require('../../chunk-4DAZAO6Y.cjs');
9
9
 
10
10
 
11
- exports.CrossmintPayButton = _chunkW3SNJ5XScjs.CrossmintPayButton;
11
+ exports.CrossmintPayButton = _chunk5H7AYX72cjs.CrossmintPayButton;
12
12
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import "../../chunk-7SBZ6OIH.js";
2
2
  import {
3
3
  CrossmintPayButton
4
- } from "../../chunk-QKALEGXY.js";
4
+ } from "../../chunk-HXZYERJJ.js";
5
5
  import "../../chunk-ATHR4S2P.js";
6
6
  import "../../chunk-L3FKENHU.js";
7
- import "../../chunk-5IX763AW.js";
7
+ import "../../chunk-O4DWHB3U.js";
8
8
  import "../../chunk-CRTRMMJ7.js";
9
9
  export {
10
10
  CrossmintPayButton
@@ -2,8 +2,8 @@
2
2
  require('../chunk-SZA3XDJ5.cjs');
3
3
 
4
4
 
5
- var _chunkYNJPYSO4cjs = require('../chunk-YNJPYSO4.cjs');
6
- require('../chunk-SVI3L5G5.cjs');
5
+ var _chunkH2WTBOQ5cjs = require('../chunk-H2WTBOQ5.cjs');
6
+ require('../chunk-ZRXZOZZZ.cjs');
7
7
 
8
8
 
9
9
  var _chunkKAXBBO66cjs = require('../chunk-KAXBBO66.cjs');
@@ -12,7 +12,7 @@ require('../chunk-R6IL3WOE.cjs');
12
12
  require('../chunk-BKVDVDKX.cjs');
13
13
 
14
14
 
15
- var _chunkW3SNJ5XScjs = require('../chunk-W3SNJ5XS.cjs');
15
+ var _chunk5H7AYX72cjs = require('../chunk-5H7AYX72.cjs');
16
16
  require('../chunk-Q3M4UH5U.cjs');
17
17
  require('../chunk-6LO4NSRH.cjs');
18
18
  require('../chunk-XDJ6F7N4.cjs');
@@ -24,10 +24,10 @@ require('../chunk-SBA6FMFT.cjs');
24
24
  require('../chunk-KLWDDALZ.cjs');
25
25
 
26
26
 
27
- var _chunkTIQPIPH5cjs = require('../chunk-TIQPIPH5.cjs');
27
+ var _chunkL5BIVHQJcjs = require('../chunk-L5BIVHQJ.cjs');
28
28
 
29
29
 
30
- var _chunkWQ7WULBWcjs = require('../chunk-WQ7WULBW.cjs');
30
+ var _chunk7EGLPJKVcjs = require('../chunk-7EGLPJKV.cjs');
31
31
  require('../chunk-FOCUIKYH.cjs');
32
32
  require('../chunk-DJ32OEWG.cjs');
33
33
  require('../chunk-ZCYU7QA6.cjs');
@@ -53,11 +53,11 @@ require('../chunk-URKPLEPV.cjs');
53
53
  require('../chunk-HPOZ6I54.cjs');
54
54
  require('../chunk-YE55IKBP.cjs');
55
55
  require('../chunk-ENCR5SUW.cjs');
56
- require('../chunk-3C5IQSUX.cjs');
57
- require('../chunk-Y7PF2Z3W.cjs');
56
+ require('../chunk-GBW67Z6V.cjs');
57
+ require('../chunk-NGWVWCWP.cjs');
58
58
  require('../chunk-KEKBOJCF.cjs');
59
59
  require('../chunk-A2JCJ2OV.cjs');
60
- require('../chunk-HENBZUED.cjs');
60
+ require('../chunk-2EYYCX3O.cjs');
61
61
  require('../chunk-4DAZAO6Y.cjs');
62
62
 
63
63
 
@@ -66,5 +66,5 @@ require('../chunk-4DAZAO6Y.cjs');
66
66
 
67
67
 
68
68
 
69
- exports.CrossmintEmbeddedCheckout_Alpha = _chunkYNJPYSO4cjs.CrossmintEmbeddedCheckout_Alpha; exports.CrossmintNFTCollectionView = _chunkTIQPIPH5cjs.CrossmintNFTCollectionView; exports.CrossmintNFTDetail = _chunkWQ7WULBWcjs.CrossmintNFTDetail; exports.CrossmintPayButton = _chunkW3SNJ5XScjs.CrossmintPayButton; exports.CrossmintPaymentElement = _chunkKAXBBO66cjs.CrossmintPaymentElement; exports.EmbeddedAuthForm = _chunk3RXUFZTRcjs.EmbeddedAuthForm;
69
+ exports.CrossmintEmbeddedCheckout_Alpha = _chunkH2WTBOQ5cjs.CrossmintEmbeddedCheckout_Alpha; exports.CrossmintNFTCollectionView = _chunkL5BIVHQJcjs.CrossmintNFTCollectionView; exports.CrossmintNFTDetail = _chunk7EGLPJKVcjs.CrossmintNFTDetail; exports.CrossmintPayButton = _chunk5H7AYX72cjs.CrossmintPayButton; exports.CrossmintPaymentElement = _chunkKAXBBO66cjs.CrossmintPaymentElement; exports.EmbeddedAuthForm = _chunk3RXUFZTRcjs.EmbeddedAuthForm;
70
70
  //# sourceMappingURL=index.cjs.map
@@ -2,8 +2,8 @@ import "../chunk-XYMYRPVT.js";
2
2
  import "../chunk-XXJ7LQ44.js";
3
3
  import {
4
4
  CrossmintEmbeddedCheckout_Alpha
5
- } from "../chunk-W2Q46OO4.js";
6
- import "../chunk-QIPMBCAV.js";
5
+ } from "../chunk-GHIVSSM5.js";
6
+ import "../chunk-GM7C5PE4.js";
7
7
  import {
8
8
  CrossmintPaymentElement
9
9
  } from "../chunk-U5EONMPH.js";
@@ -12,7 +12,7 @@ import "../chunk-QDKAU3H2.js";
12
12
  import "../chunk-7SBZ6OIH.js";
13
13
  import {
14
14
  CrossmintPayButton
15
- } from "../chunk-QKALEGXY.js";
15
+ } from "../chunk-HXZYERJJ.js";
16
16
  import "../chunk-ATHR4S2P.js";
17
17
  import "../chunk-ZUIS3FET.js";
18
18
  import "../chunk-PHCGCJSA.js";
@@ -24,10 +24,10 @@ import "../chunk-EOWJ7775.js";
24
24
  import "../chunk-L3FKENHU.js";
25
25
  import {
26
26
  CrossmintNFTCollectionView
27
- } from "../chunk-QTGK3RB5.js";
27
+ } from "../chunk-ZRYD4SFA.js";
28
28
  import {
29
29
  CrossmintNFTDetail
30
- } from "../chunk-HG57BLPT.js";
30
+ } from "../chunk-74SNQV3K.js";
31
31
  import "../chunk-CUODMU27.js";
32
32
  import "../chunk-WK5RAFJ3.js";
33
33
  import "../chunk-6DNBJVR5.js";
@@ -53,11 +53,11 @@ import "../chunk-I63FQCIV.js";
53
53
  import "../chunk-ZIHCLVCD.js";
54
54
  import "../chunk-H4F7UVPT.js";
55
55
  import "../chunk-YWVQCHQF.js";
56
- import "../chunk-XRFRY2LN.js";
57
- import "../chunk-L3L7YEW3.js";
56
+ import "../chunk-WBKHUVJU.js";
57
+ import "../chunk-R2H6H2HY.js";
58
58
  import "../chunk-3J6CUUWT.js";
59
59
  import "../chunk-AUEQQ4D3.js";
60
- import "../chunk-5IX763AW.js";
60
+ import "../chunk-O4DWHB3U.js";
61
61
  import "../chunk-CRTRMMJ7.js";
62
62
  export {
63
63
  CrossmintEmbeddedCheckout_Alpha,
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkHENBZUEDcjs = require('../chunk-HENBZUED.cjs');
3
+ var _chunk2EYYCX3Ocjs = require('../chunk-2EYYCX3O.cjs');
4
4
  require('../chunk-4DAZAO6Y.cjs');
5
5
 
6
6
 
7
- exports.LIB_VERSION = _chunkHENBZUEDcjs.LIB_VERSION;
7
+ exports.LIB_VERSION = _chunk2EYYCX3Ocjs.LIB_VERSION;
8
8
  //# sourceMappingURL=version.cjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LIB_VERSION
3
- } from "../chunk-5IX763AW.js";
3
+ } from "../chunk-O4DWHB3U.js";
4
4
  import "../chunk-CRTRMMJ7.js";
5
5
  export {
6
6
  LIB_VERSION