@crossmint/client-sdk-react-ui 1.10.0 → 1.10.2

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 (149) hide show
  1. package/dist/{chunk-OPIHF55A.cjs → chunk-67AB7TWG.cjs} +3 -3
  2. package/dist/{chunk-ODH26VGS.js → chunk-6TUZ5CU7.js} +2 -2
  3. package/dist/chunk-A6Q4Z5TO.js +31 -0
  4. package/dist/chunk-A6Q4Z5TO.js.map +1 -0
  5. package/dist/chunk-AUCL5NPW.cjs +31 -0
  6. package/dist/chunk-AUCL5NPW.cjs.map +1 -0
  7. package/dist/{chunk-VWRC3IFZ.cjs → chunk-COLJFFZF.cjs} +3 -3
  8. package/dist/{chunk-657ZCQSH.cjs → chunk-DVONA2BZ.cjs} +3 -3
  9. package/dist/{chunk-BJIMCGIQ.js → chunk-GN7OANUR.js} +2 -2
  10. package/dist/{chunk-RWS44QDX.js → chunk-HVI7FCLP.js} +2 -2
  11. package/dist/{chunk-CIZ2K2TA.cjs → chunk-MDV3M7FD.cjs} +13 -8
  12. package/dist/chunk-MDV3M7FD.cjs.map +1 -0
  13. package/dist/{chunk-YB66RCZP.js → chunk-MWRMO6JC.js} +2 -2
  14. package/dist/chunk-MWRMO6JC.js.map +1 -0
  15. package/dist/{chunk-U2D3L4DZ.cjs → chunk-NX473NO2.cjs} +3 -3
  16. package/dist/{chunk-CYUTXV7Z.js → chunk-QB4KFTCT.js} +2 -2
  17. package/dist/{chunk-46UDUOKJ.cjs → chunk-RTC2AZ6A.cjs} +2 -2
  18. package/dist/chunk-RTC2AZ6A.cjs.map +1 -0
  19. package/dist/{chunk-IVNGVLGR.cjs → chunk-SMCUFLHP.cjs} +3 -3
  20. package/dist/{chunk-5JAEV6YP.js → chunk-XJYLJQA5.js} +11 -6
  21. package/dist/chunk-XJYLJQA5.js.map +1 -0
  22. package/dist/{chunk-E3BR6DXY.js → chunk-Y4UEFDMP.js} +2 -2
  23. package/dist/{chunk-GZRGZKN6.js → chunk-YO7ZZF32.js} +2 -2
  24. package/dist/{chunk-2LTCJUPK.cjs → chunk-ZOHRCGGI.cjs} +3 -3
  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 -11
  56. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js +5 -10
  57. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.cjs +5 -10
  58. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.js +4 -9
  59. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs +130 -7
  60. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs.map +1 -1
  61. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js +130 -7
  62. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js.map +1 -1
  63. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.cjs +65 -3
  64. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.cjs.map +1 -1
  65. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.d.cts +2 -2
  66. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.d.ts +2 -2
  67. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.js +65 -3
  68. package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.js.map +1 -1
  69. package/dist/components/embed/v3/crypto/utils/handleSendTransaction.cjs +2 -4
  70. package/dist/components/embed/v3/crypto/utils/handleSendTransaction.js +1 -3
  71. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.cjs +48 -4
  72. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.cjs.map +1 -1
  73. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.d.cts +2 -2
  74. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.d.ts +2 -2
  75. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.js +47 -3
  76. package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.js.map +1 -1
  77. package/dist/components/embed/v3/index.cjs +6 -11
  78. package/dist/components/embed/v3/index.js +5 -10
  79. package/dist/components/hosted/CrossmintPayButton.cjs +3 -3
  80. package/dist/components/hosted/CrossmintPayButton.js +2 -2
  81. package/dist/components/hosted/index.cjs +3 -3
  82. package/dist/components/hosted/index.js +2 -2
  83. package/dist/components/index.cjs +9 -14
  84. package/dist/components/index.js +8 -13
  85. package/dist/consts/version.cjs +2 -2
  86. package/dist/consts/version.js +1 -1
  87. package/dist/hooks/index.cjs +4 -4
  88. package/dist/hooks/index.js +3 -3
  89. package/dist/hooks/useAuth.cjs +3 -3
  90. package/dist/hooks/useAuth.js +3 -3
  91. package/dist/hooks/useCrossmintAuth.cjs +3 -3
  92. package/dist/hooks/useCrossmintAuth.js +3 -3
  93. package/dist/hooks/useCrossmintCheckout.cjs +4 -4
  94. package/dist/hooks/useCrossmintCheckout.js +3 -3
  95. package/dist/hooks/useOAuthWindowListener.cjs +3 -3
  96. package/dist/hooks/useOAuthWindowListener.js +3 -3
  97. package/dist/hooks/useWallet.cjs +3 -3
  98. package/dist/hooks/useWallet.js +3 -3
  99. package/dist/index.cjs +9 -14
  100. package/dist/index.cjs.map +1 -1
  101. package/dist/index.js +8 -13
  102. package/dist/index.js.map +1 -1
  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 +4 -6
  114. package/src/components/embed/v3/EmbeddedCheckoutV3IFrame.tsx +8 -2
  115. package/src/components/embed/v3/crypto/utils/handleEvmTransaction.ts +20 -7
  116. package/src/components/embed/v3/crypto/utils/handleSendTransaction.ts +12 -14
  117. package/src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts +7 -4
  118. package/dist/chunk-2QB7GW4K.cjs +0 -64
  119. package/dist/chunk-2QB7GW4K.cjs.map +0 -1
  120. package/dist/chunk-46UDUOKJ.cjs.map +0 -1
  121. package/dist/chunk-5JAEV6YP.js.map +0 -1
  122. package/dist/chunk-5VZNJ4VT.js +0 -36
  123. package/dist/chunk-5VZNJ4VT.js.map +0 -1
  124. package/dist/chunk-BYRVAFBZ.cjs +0 -52
  125. package/dist/chunk-BYRVAFBZ.cjs.map +0 -1
  126. package/dist/chunk-CIZ2K2TA.cjs.map +0 -1
  127. package/dist/chunk-FH7TEEZR.js +0 -52
  128. package/dist/chunk-FH7TEEZR.js.map +0 -1
  129. package/dist/chunk-LKO5WR7D.js +0 -64
  130. package/dist/chunk-LKO5WR7D.js.map +0 -1
  131. package/dist/chunk-REUYMHNW.cjs +0 -136
  132. package/dist/chunk-REUYMHNW.cjs.map +0 -1
  133. package/dist/chunk-UC3GWTEN.js +0 -136
  134. package/dist/chunk-UC3GWTEN.js.map +0 -1
  135. package/dist/chunk-UCQ5VAPT.cjs +0 -36
  136. package/dist/chunk-UCQ5VAPT.cjs.map +0 -1
  137. package/dist/chunk-YB66RCZP.js.map +0 -1
  138. /package/dist/{chunk-OPIHF55A.cjs.map → chunk-67AB7TWG.cjs.map} +0 -0
  139. /package/dist/{chunk-ODH26VGS.js.map → chunk-6TUZ5CU7.js.map} +0 -0
  140. /package/dist/{chunk-VWRC3IFZ.cjs.map → chunk-COLJFFZF.cjs.map} +0 -0
  141. /package/dist/{chunk-657ZCQSH.cjs.map → chunk-DVONA2BZ.cjs.map} +0 -0
  142. /package/dist/{chunk-BJIMCGIQ.js.map → chunk-GN7OANUR.js.map} +0 -0
  143. /package/dist/{chunk-RWS44QDX.js.map → chunk-HVI7FCLP.js.map} +0 -0
  144. /package/dist/{chunk-U2D3L4DZ.cjs.map → chunk-NX473NO2.cjs.map} +0 -0
  145. /package/dist/{chunk-CYUTXV7Z.js.map → chunk-QB4KFTCT.js.map} +0 -0
  146. /package/dist/{chunk-IVNGVLGR.cjs.map → chunk-SMCUFLHP.cjs.map} +0 -0
  147. /package/dist/{chunk-E3BR6DXY.js.map → chunk-Y4UEFDMP.js.map} +0 -0
  148. /package/dist/{chunk-GZRGZKN6.js.map → chunk-YO7ZZF32.js.map} +0 -0
  149. /package/dist/{chunk-2LTCJUPK.cjs.map → chunk-ZOHRCGGI.cjs.map} +0 -0
@@ -28,11 +28,11 @@ 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-OPIHF55A.cjs');
32
- require('../chunk-VWRC3IFZ.cjs');
31
+ require('../chunk-67AB7TWG.cjs');
32
+ require('../chunk-COLJFFZF.cjs');
33
33
  require('../chunk-KEKBOJCF.cjs');
34
34
  require('../chunk-A2JCJ2OV.cjs');
35
- require('../chunk-46UDUOKJ.cjs');
35
+ require('../chunk-RTC2AZ6A.cjs');
36
36
  require('../chunk-4DAZAO6Y.cjs');
37
37
 
38
38
 
@@ -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-ODH26VGS.js";
32
- import "../chunk-BJIMCGIQ.js";
31
+ import "../chunk-6TUZ5CU7.js";
32
+ import "../chunk-GN7OANUR.js";
33
33
  import "../chunk-3J6CUUWT.js";
34
34
  import "../chunk-AUEQQ4D3.js";
35
- import "../chunk-YB66RCZP.js";
35
+ import "../chunk-MWRMO6JC.js";
36
36
  import "../chunk-CRTRMMJ7.js";
37
37
  export {
38
38
  AuthContext,
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkVWRC3IFZcjs = require('../chunk-VWRC3IFZ.cjs');
4
- require('../chunk-46UDUOKJ.cjs');
3
+ var _chunkCOLJFFZFcjs = require('../chunk-COLJFFZF.cjs');
4
+ require('../chunk-RTC2AZ6A.cjs');
5
5
  require('../chunk-4DAZAO6Y.cjs');
6
6
 
7
7
 
8
- exports.createCrossmintApiClient = _chunkVWRC3IFZcjs.createCrossmintApiClient;
8
+ exports.createCrossmintApiClient = _chunkCOLJFFZFcjs.createCrossmintApiClient;
9
9
  //# sourceMappingURL=createCrossmintApiClient.cjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createCrossmintApiClient
3
- } from "../chunk-BJIMCGIQ.js";
4
- import "../chunk-YB66RCZP.js";
3
+ } from "../chunk-GN7OANUR.js";
4
+ import "../chunk-MWRMO6JC.js";
5
5
  import "../chunk-CRTRMMJ7.js";
6
6
  export {
7
7
  createCrossmintApiClient
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossmint/client-sdk-react-ui",
3
- "version": "1.10.0",
3
+ "version": "1.10.2",
4
4
  "repository": "https://github.com/Crossmint/crossmint-sdk",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Paella Labs Inc",
@@ -19,11 +19,9 @@
19
19
  "LICENSE"
20
20
  ],
21
21
  "dependencies": {
22
- "@dynamic-labs/ethereum": "3.4.4",
23
- "@dynamic-labs/ethereum-core": "3.4.4",
24
- "@dynamic-labs/sdk-react-core": "3.4.4",
25
- "@dynamic-labs/solana": "3.4.4",
26
- "@dynamic-labs/solana-core": "3.4.4",
22
+ "@dynamic-labs/ethereum": "2.6.3",
23
+ "@dynamic-labs/sdk-react-core": "2.6.3",
24
+ "@dynamic-labs/solana": "2.6.3",
27
25
  "@ethersproject/transactions": "5.7.0",
28
26
  "@farcaster/auth-kit": "0.6.0",
29
27
  "@headlessui/react": "2.1.5",
@@ -1,5 +1,5 @@
1
1
  import { useCrossmint } from "@/hooks";
2
- import { useEffect, useRef, useState } from "react";
2
+ import { lazy, useEffect, useRef, useState } from "react";
3
3
 
4
4
  import {
5
5
  type CrossmintEmbeddedCheckoutV3Props,
@@ -7,9 +7,15 @@ import {
7
7
  crossmintEmbeddedCheckoutV3Service,
8
8
  } from "@crossmint/client-sdk-base";
9
9
 
10
- import { CryptoWalletConnectionHandler } from "./crypto/CryptoWalletConnectionHandler";
11
10
  import { createCrossmintApiClient } from "@/utils/createCrossmintApiClient";
12
11
 
12
+ const CryptoWalletConnectionHandler = lazy(() =>
13
+ // @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile
14
+ import("./crypto/CryptoWalletConnectionHandler").then((mod) => ({
15
+ default: mod.CryptoWalletConnectionHandler,
16
+ }))
17
+ );
18
+
13
19
  export function EmbeddedCheckoutV3IFrame(props: CrossmintEmbeddedCheckoutV3Props) {
14
20
  const [iframeClient, setIframeClient] = useState<EmbeddedCheckoutV3IFrameEmitter | null>(null);
15
21
  const [height, setHeight] = useState(0);
@@ -4,8 +4,15 @@ import {
4
4
  blockchainToChainId,
5
5
  type EVMBlockchainIncludingTestnet,
6
6
  } from "@crossmint/common-sdk-base";
7
- import type { EthereumWallet } from "@dynamic-labs/ethereum-core";
8
- import { parseTransaction, type TransactionSerializableEIP1559 } from "viem";
7
+ import type { Wallet } from "@dynamic-labs/sdk-react-core";
8
+ import {
9
+ type Chain,
10
+ type Account,
11
+ type WalletClient,
12
+ type TransactionSerializableEIP1559,
13
+ type Transport,
14
+ parseTransaction,
15
+ } from "viem";
9
16
 
10
17
  export async function handleEvmTransaction({
11
18
  primaryWallet,
@@ -13,24 +20,30 @@ export async function handleEvmTransaction({
13
20
  serializedTransaction,
14
21
  iframeClient,
15
22
  }: {
16
- primaryWallet: EthereumWallet;
23
+ primaryWallet: Wallet;
17
24
  chain: BlockchainIncludingTestnet;
18
25
  serializedTransaction: string;
19
26
  iframeClient: EmbeddedCheckoutV3IFrameEmitter;
20
27
  }) {
28
+ const { connector } = primaryWallet;
29
+ const chainId = blockchainToChainId(chain as EVMBlockchainIncludingTestnet);
30
+
21
31
  try {
22
- await primaryWallet.switchNetwork(blockchainToChainId(chain as EVMBlockchainIncludingTestnet));
32
+ await connector.switchNetwork({ networkChainId: chainId });
23
33
  } catch (error) {
24
- console.error("[CryptoWalletConnectionHandler] failed to switch network", error);
34
+ console.error(`[CryptoWalletConnectionHandler] failed to switch network to ${chainId}`, error);
25
35
  iframeClient.send("crypto:send-transaction:failed", {
26
36
  error: (error as Error).message,
27
37
  });
28
38
  return;
29
39
  }
30
40
 
31
- let walletClient: Awaited<ReturnType<typeof primaryWallet.getWalletClient>>;
41
+ let walletClient: WalletClient<Transport, Chain, Account> | undefined;
32
42
  try {
33
- walletClient = await primaryWallet.getWalletClient();
43
+ walletClient = connector.getWalletClient<WalletClient<Transport, Chain, Account> | undefined>(String(chainId));
44
+ if (!walletClient) {
45
+ throw new Error(`connector.getWalletClient(${chainId}) returned undefined`);
46
+ }
34
47
  } catch (error) {
35
48
  console.error("[CryptoWalletConnectionHandler] failed to get wallet client", error);
36
49
  iframeClient.send("crypto:send-transaction:failed", {
@@ -1,12 +1,5 @@
1
1
  import type { Wallet } from "@dynamic-labs/sdk-react-core";
2
-
3
2
  import type { BlockchainIncludingTestnet } from "@crossmint/common-sdk-base";
4
-
5
- import { handleEvmTransaction } from "./handleEvmTransaction";
6
-
7
- import { isSolanaWallet } from "@dynamic-labs/solana";
8
- import { handleSolanaTransaction } from "./handleSolanaTransaction";
9
- import { isEthereumWallet } from "@dynamic-labs/ethereum";
10
3
  import type { EmbeddedCheckoutV3IFrameEmitter } from "@crossmint/client-sdk-base";
11
4
 
12
5
  export async function handleSendTransaction(
@@ -20,12 +13,17 @@ export async function handleSendTransaction(
20
13
  serializedTransaction,
21
14
  iframeClient,
22
15
  };
23
- if (isSolanaWallet(primaryWallet)) {
24
- return await handleSolanaTransaction({
25
- ...commonParams,
26
- primaryWallet,
27
- });
28
- } else if (isEthereumWallet(primaryWallet)) {
29
- return await handleEvmTransaction({ ...commonParams, primaryWallet });
16
+
17
+ switch (primaryWallet.chain) {
18
+ case "EVM":
19
+ // @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile
20
+ const { handleEvmTransaction } = await import("./handleEvmTransaction");
21
+ return await handleEvmTransaction({ ...commonParams, primaryWallet });
22
+ case "SOL":
23
+ // @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile
24
+ const { handleSolanaTransaction } = await import("./handleSolanaTransaction");
25
+ return await handleSolanaTransaction({ ...commonParams, primaryWallet });
26
+ default:
27
+ throw new Error(`Connected wallet is on an unsupported chain: ${primaryWallet.chain}`);
30
28
  }
31
29
  }
@@ -1,5 +1,6 @@
1
1
  import type { EmbeddedCheckoutV3IFrameEmitter } from "@crossmint/client-sdk-base";
2
- import type { SolanaWallet } from "@dynamic-labs/solana-core";
2
+ import type { Wallet } from "@dynamic-labs/sdk-react-core";
3
+ import type { ISolana } from "@dynamic-labs/solana";
3
4
  import { Transaction } from "@solana/web3.js";
4
5
  import base58 from "bs58";
5
6
 
@@ -8,15 +9,17 @@ export async function handleSolanaTransaction({
8
9
  serializedTransaction,
9
10
  iframeClient,
10
11
  }: {
11
- primaryWallet: SolanaWallet;
12
+ primaryWallet: Wallet;
12
13
  serializedTransaction: string;
13
14
  iframeClient: EmbeddedCheckoutV3IFrameEmitter;
14
15
  }) {
15
16
  // TODO: Handle switch network
16
17
 
17
- let signer: Awaited<ReturnType<typeof primaryWallet.getSigner>>;
18
+ const { connector } = primaryWallet;
19
+
20
+ let signer: ISolana;
18
21
  try {
19
- signer = await primaryWallet.getSigner();
22
+ signer = await connector.getSigner<ISolana>();
20
23
  } catch (error) {
21
24
  console.error("[CryptoWalletConnectionHandler] failed to get signer", error);
22
25
  iframeClient.send("crypto:send-transaction:failed", {
@@ -1,64 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunk4DAZAO6Ycjs = require('./chunk-4DAZAO6Y.cjs');
4
-
5
- // src/components/embed/v3/crypto/utils/handleEvmTransaction.ts
6
-
7
-
8
- var _commonsdkbase = require('@crossmint/common-sdk-base');
9
- var _viem = require('viem');
10
- function handleEvmTransaction(_0) {
11
- return _chunk4DAZAO6Ycjs.__async.call(void 0, this, arguments, function* ({
12
- primaryWallet,
13
- chain,
14
- serializedTransaction,
15
- iframeClient
16
- }) {
17
- try {
18
- yield primaryWallet.switchNetwork(_commonsdkbase.blockchainToChainId.call(void 0, chain));
19
- } catch (error) {
20
- console.error("[CryptoWalletConnectionHandler] failed to switch network", error);
21
- iframeClient.send("crypto:send-transaction:failed", {
22
- error: error.message
23
- });
24
- return;
25
- }
26
- let walletClient;
27
- try {
28
- walletClient = yield primaryWallet.getWalletClient();
29
- } catch (error) {
30
- console.error("[CryptoWalletConnectionHandler] failed to get wallet client", error);
31
- iframeClient.send("crypto:send-transaction:failed", {
32
- error: error.message
33
- });
34
- return;
35
- }
36
- let parsedTransaction;
37
- try {
38
- parsedTransaction = _viem.parseTransaction.call(void 0, serializedTransaction);
39
- } catch (error) {
40
- console.error("[CryptoWalletConnectionHandler] failed to parse transaction", error);
41
- iframeClient.send("crypto:send-transaction:failed", {
42
- error: error.message
43
- });
44
- return;
45
- }
46
- try {
47
- const txId = yield walletClient.sendTransaction(parsedTransaction);
48
- console.log("[CryptoWalletConnectionHandler] txId", txId);
49
- iframeClient.send("crypto:send-transaction:success", {
50
- txId
51
- });
52
- } catch (error) {
53
- console.error("[CryptoWalletConnectionHandler] failed to send transaction", error);
54
- iframeClient.send("crypto:send-transaction:failed", {
55
- error: error.message
56
- });
57
- }
58
- });
59
- }
60
-
61
-
62
-
63
- exports.handleEvmTransaction = handleEvmTransaction;
64
- //# sourceMappingURL=chunk-2QB7GW4K.cjs.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"sources":["../package.json","../src/consts/version.ts"],"names":[],"mappings":";AAEI,cAAW;;;ACAR,IAAM,cAAc","sourcesContent":["{\n \"name\": \"@crossmint/client-sdk-react-ui\",\n \"version\": \"1.10.0\",\n \"repository\": \"https://github.com/Crossmint/crossmint-sdk\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Paella Labs Inc\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\"dist\", \"src\", \"LICENSE\"],\n \"scripts\": {\n \"build\": \"cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup\",\n \"dev\": \"cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup --watch\",\n \"test:vitest\": \"vitest run\"\n },\n \"dependencies\": {\n \"@crossmint/client-sdk-auth\": \"workspace:*\",\n \"@crossmint/client-sdk-base\": \"workspace:*\",\n \"@crossmint/client-sdk-smart-wallet\": \"workspace:*\",\n \"@crossmint/client-sdk-window\": \"workspace:*\",\n \"@crossmint/common-sdk-auth\": \"workspace:*\",\n \"@crossmint/common-sdk-base\": \"workspace:*\",\n \"@dynamic-labs/ethereum\": \"3.4.4\",\n \"@dynamic-labs/ethereum-core\": \"3.4.4\",\n \"@dynamic-labs/sdk-react-core\": \"3.4.4\",\n \"@dynamic-labs/solana\": \"3.4.4\",\n \"@dynamic-labs/solana-core\": \"3.4.4\",\n \"@ethersproject/transactions\": \"5.7.0\",\n \"@farcaster/auth-kit\": \"0.6.0\",\n \"@headlessui/react\": \"2.1.5\",\n \"@radix-ui/react-dialog\": \"1.1.2\",\n \"@radix-ui/react-visually-hidden\": \"1.1.0\",\n \"@solana/web3.js\": \"1.95.1\",\n \"@tanstack/react-query\": \"5.51.18\",\n \"@twind/core\": \"1.1.3\",\n \"@twind/preset-tailwind\": \"1.1.4\",\n \"@wagmi/connectors\": \"5.3.3\",\n \"bs58\": \"5.0.0\",\n \"clsx\": \"2.1.1\",\n \"color\": \"4.2.3\",\n \"input-otp\": \"1.2.4\",\n \"lodash.isequal\": \"4.5.0\",\n \"react-jss\": \"10.10.0\",\n \"tailwind-merge\": \"2.4.0\",\n \"tailwindcss\": \"3.4.10\",\n \"viem\": \"2.17.5\",\n \"wagmi\": \"2.12.25\",\n \"zod\": \"3.22.4\"\n },\n \"devDependencies\": {\n \"@testing-library/react\": \"^16.0.1\",\n \"@types/color\": \"4.2.0\",\n \"@types/lodash.isequal\": \"4.5.6\",\n \"@types/react\": \"^18.3.0\",\n \"@types/react-dom\": \"^18.3.0\",\n \"react\": \"^18.3.0\",\n \"react-dom\": \"^18.3.0\"\n },\n \"peerDependencies\": {\n \"react\": \">=17.0.2\",\n \"react-dom\": \">=17.0.2\"\n }\n}\n","import { version } from \"../../package.json\";\n\nexport const LIB_VERSION = version;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/embed/v3/EmbeddedCheckoutV3IFrame.tsx"],"sourcesContent":["import { useCrossmint } from \"@/hooks\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport {\n type CrossmintEmbeddedCheckoutV3Props,\n type EmbeddedCheckoutV3IFrameEmitter,\n crossmintEmbeddedCheckoutV3Service,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CryptoWalletConnectionHandler } from \"./crypto/CryptoWalletConnectionHandler\";\nimport { createCrossmintApiClient } from \"@/utils/createCrossmintApiClient\";\n\nexport function EmbeddedCheckoutV3IFrame(props: CrossmintEmbeddedCheckoutV3Props) {\n const [iframeClient, setIframeClient] = useState<EmbeddedCheckoutV3IFrameEmitter | null>(null);\n const [height, setHeight] = useState(0);\n\n const { crossmint } = useCrossmint();\n const apiClient = createCrossmintApiClient(crossmint, {\n usageOrigin: \"client\",\n });\n const embedV3Service = crossmintEmbeddedCheckoutV3Service({ apiClient });\n\n const ref = useRef<HTMLIFrameElement>(null);\n\n useEffect(() => {\n const iframe = ref.current;\n if (!iframe || iframeClient) {\n return;\n }\n setIframeClient(embedV3Service.iframe.createClient(iframe));\n }, [ref.current, iframeClient]);\n\n useEffect(() => {\n if (iframeClient == null) {\n return;\n }\n iframeClient.on(\"ui:height.changed\", (data) => setHeight(data.height));\n\n return () => {\n iframeClient.off(\"ui:height.changed\");\n };\n }, [iframeClient]);\n\n return (\n <>\n <iframe\n ref={ref}\n src={embedV3Service.iframe.getUrl(props)}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n backgroundColor: \"transparent\",\n }}\n />\n {props.payment.crypto.enabled ? (\n <CryptoWalletConnectionHandler\n iframeClient={iframeClient}\n apiKeyEnvironment={apiClient[\"parsedAPIKey\"].environment}\n />\n ) : null}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;AACA,SAAS,WAAW,QAAQ,gBAAgB;AAE5C;AAAA,EAGI;AAAA,OACG;AAqCC,mBACI,KADJ;AAhCD,SAAS,yBAAyB,OAAyC;AAC9E,QAAM,CAAC,cAAc,eAAe,IAAI,SAAiD,IAAI;AAC7F,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,CAAC;AAEtC,QAAM,EAAE,UAAU,IAAI,aAAa;AACnC,QAAM,YAAY,yBAAyB,WAAW;AAAA,IAClD,aAAa;AAAA,EACjB,CAAC;AACD,QAAM,iBAAiB,mCAAmC,EAAE,UAAU,CAAC;AAEvE,QAAM,MAAM,OAA0B,IAAI;AAE1C,YAAU,MAAM;AACZ,UAAM,SAAS,IAAI;AACnB,QAAI,CAAC,UAAU,cAAc;AACzB;AAAA,IACJ;AACA,oBAAgB,eAAe,OAAO,aAAa,MAAM,CAAC;AAAA,EAC9D,GAAG,CAAC,IAAI,SAAS,YAAY,CAAC;AAE9B,YAAU,MAAM;AACZ,QAAI,gBAAgB,MAAM;AACtB;AAAA,IACJ;AACA,iBAAa,GAAG,qBAAqB,CAAC,SAAS,UAAU,KAAK,MAAM,CAAC;AAErE,WAAO,MAAM;AACT,mBAAa,IAAI,mBAAmB;AAAA,IACxC;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI,iCACI;AAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,KAAK,eAAe,OAAO,OAAO,KAAK;AAAA,QACvC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,OAAM;AAAA,QACN,OAAO;AAAA,UACH,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,GAAG,MAAM;AAAA,UACjB,iBAAiB;AAAA,QACrB;AAAA;AAAA,IACJ;AAAA,IACC,MAAM,QAAQ,OAAO,UAClB;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,mBAAmB,UAAU,cAAc,EAAE;AAAA;AAAA,IACjD,IACA;AAAA,KACR;AAER;","names":[]}
@@ -1,36 +0,0 @@
1
- import {
2
- handleEvmTransaction
3
- } from "./chunk-LKO5WR7D.js";
4
- import {
5
- handleSolanaTransaction
6
- } from "./chunk-FH7TEEZR.js";
7
- import {
8
- __async,
9
- __spreadProps,
10
- __spreadValues
11
- } from "./chunk-CRTRMMJ7.js";
12
-
13
- // src/components/embed/v3/crypto/utils/handleSendTransaction.ts
14
- import { isSolanaWallet } from "@dynamic-labs/solana";
15
- import { isEthereumWallet } from "@dynamic-labs/ethereum";
16
- function handleSendTransaction(primaryWallet, chain, serializedTransaction, iframeClient) {
17
- return __async(this, null, function* () {
18
- const commonParams = {
19
- chain,
20
- serializedTransaction,
21
- iframeClient
22
- };
23
- if (isSolanaWallet(primaryWallet)) {
24
- return yield handleSolanaTransaction(__spreadProps(__spreadValues({}, commonParams), {
25
- primaryWallet
26
- }));
27
- } else if (isEthereumWallet(primaryWallet)) {
28
- return yield handleEvmTransaction(__spreadProps(__spreadValues({}, commonParams), { primaryWallet }));
29
- }
30
- });
31
- }
32
-
33
- export {
34
- handleSendTransaction
35
- };
36
- //# sourceMappingURL=chunk-5VZNJ4VT.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/embed/v3/crypto/utils/handleSendTransaction.ts"],"sourcesContent":["import type { Wallet } from \"@dynamic-labs/sdk-react-core\";\n\nimport type { BlockchainIncludingTestnet } from \"@crossmint/common-sdk-base\";\n\nimport { handleEvmTransaction } from \"./handleEvmTransaction\";\n\nimport { isSolanaWallet } from \"@dynamic-labs/solana\";\nimport { handleSolanaTransaction } from \"./handleSolanaTransaction\";\nimport { isEthereumWallet } from \"@dynamic-labs/ethereum\";\nimport type { EmbeddedCheckoutV3IFrameEmitter } from \"@crossmint/client-sdk-base\";\n\nexport async function handleSendTransaction(\n primaryWallet: Wallet,\n chain: BlockchainIncludingTestnet,\n serializedTransaction: string,\n iframeClient: EmbeddedCheckoutV3IFrameEmitter\n) {\n const commonParams = {\n chain,\n serializedTransaction,\n iframeClient,\n };\n if (isSolanaWallet(primaryWallet)) {\n return await handleSolanaTransaction({\n ...commonParams,\n primaryWallet,\n });\n } else if (isEthereumWallet(primaryWallet)) {\n return await handleEvmTransaction({ ...commonParams, primaryWallet });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAMA,SAAS,sBAAsB;AAE/B,SAAS,wBAAwB;AAGjC,SAAsB,sBAClB,eACA,OACA,uBACA,cACF;AAAA;AACE,UAAM,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,QAAI,eAAe,aAAa,GAAG;AAC/B,aAAO,MAAM,wBAAwB,iCAC9B,eAD8B;AAAA,QAEjC;AAAA,MACJ,EAAC;AAAA,IACL,WAAW,iBAAiB,aAAa,GAAG;AACxC,aAAO,MAAM,qBAAqB,iCAAK,eAAL,EAAmB,cAAc,EAAC;AAAA,IACxE;AAAA,EACJ;AAAA;","names":[]}
@@ -1,52 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
-
3
- var _chunk4DAZAO6Ycjs = require('./chunk-4DAZAO6Y.cjs');
4
-
5
- // src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts
6
- var _web3js = require('@solana/web3.js');
7
- var _bs58 = require('bs58'); var _bs582 = _interopRequireDefault(_bs58);
8
- function handleSolanaTransaction(_0) {
9
- return _chunk4DAZAO6Ycjs.__async.call(void 0, this, arguments, function* ({
10
- primaryWallet,
11
- serializedTransaction,
12
- iframeClient
13
- }) {
14
- let signer;
15
- try {
16
- signer = yield primaryWallet.getSigner();
17
- } catch (error) {
18
- console.error("[CryptoWalletConnectionHandler] failed to get signer", error);
19
- iframeClient.send("crypto:send-transaction:failed", {
20
- error: "Failed to get signer"
21
- });
22
- return;
23
- }
24
- let deserializedTransaction;
25
- try {
26
- deserializedTransaction = _web3js.Transaction.from(_bs582.default.decode(serializedTransaction));
27
- } catch (error) {
28
- console.error("[CryptoWalletConnectionHandler] failed to deserialize transaction", error);
29
- iframeClient.send("crypto:send-transaction:failed", {
30
- error: "Failed to deserialize transaction"
31
- });
32
- return;
33
- }
34
- try {
35
- const { signature: txId } = yield signer.signAndSendTransaction(deserializedTransaction);
36
- console.log("[CryptoWalletConnectionHandler] txId", txId);
37
- iframeClient.send("crypto:send-transaction:success", {
38
- txId
39
- });
40
- } catch (error) {
41
- console.error("[CryptoWalletConnectionHandler] failed to send transaction", error);
42
- iframeClient.send("crypto:send-transaction:failed", {
43
- error: error.message
44
- });
45
- }
46
- });
47
- }
48
-
49
-
50
-
51
- exports.handleSolanaTransaction = handleSolanaTransaction;
52
- //# sourceMappingURL=chunk-BYRVAFBZ.cjs.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"sources":["../src/components/embed/v3/EmbeddedCheckoutV3IFrame.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,SAAS,WAAW,QAAQ,gBAAgB;AAE5C;AAAA,EAGI;AAAA,OACG;AAqCC,mBACI,KADJ;AAhCD,SAAS,yBAAyB,OAAyC;AAC9E,QAAM,CAAC,cAAc,eAAe,IAAI,SAAiD,IAAI;AAC7F,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,CAAC;AAEtC,QAAM,EAAE,UAAU,IAAI,aAAa;AACnC,QAAM,YAAY,yBAAyB,WAAW;AAAA,IAClD,aAAa;AAAA,EACjB,CAAC;AACD,QAAM,iBAAiB,mCAAmC,EAAE,UAAU,CAAC;AAEvE,QAAM,MAAM,OAA0B,IAAI;AAE1C,YAAU,MAAM;AACZ,UAAM,SAAS,IAAI;AACnB,QAAI,CAAC,UAAU,cAAc;AACzB;AAAA,IACJ;AACA,oBAAgB,eAAe,OAAO,aAAa,MAAM,CAAC;AAAA,EAC9D,GAAG,CAAC,IAAI,SAAS,YAAY,CAAC;AAE9B,YAAU,MAAM;AACZ,QAAI,gBAAgB,MAAM;AACtB;AAAA,IACJ;AACA,iBAAa,GAAG,qBAAqB,CAAC,SAAS,UAAU,KAAK,MAAM,CAAC;AAErE,WAAO,MAAM;AACT,mBAAa,IAAI,mBAAmB;AAAA,IACxC;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI,iCACI;AAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,KAAK,eAAe,OAAO,OAAO,KAAK;AAAA,QACvC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,OAAM;AAAA,QACN,OAAO;AAAA,UACH,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,GAAG,MAAM;AAAA,UACjB,iBAAiB;AAAA,QACrB;AAAA;AAAA,IACJ;AAAA,IACC,MAAM,QAAQ,OAAO,UAClB;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,mBAAmB,UAAU,cAAc,EAAE;AAAA;AAAA,IACjD,IACA;AAAA,KACR;AAER","sourcesContent":["import { useCrossmint } from \"@/hooks\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport {\n type CrossmintEmbeddedCheckoutV3Props,\n type EmbeddedCheckoutV3IFrameEmitter,\n crossmintEmbeddedCheckoutV3Service,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CryptoWalletConnectionHandler } from \"./crypto/CryptoWalletConnectionHandler\";\nimport { createCrossmintApiClient } from \"@/utils/createCrossmintApiClient\";\n\nexport function EmbeddedCheckoutV3IFrame(props: CrossmintEmbeddedCheckoutV3Props) {\n const [iframeClient, setIframeClient] = useState<EmbeddedCheckoutV3IFrameEmitter | null>(null);\n const [height, setHeight] = useState(0);\n\n const { crossmint } = useCrossmint();\n const apiClient = createCrossmintApiClient(crossmint, {\n usageOrigin: \"client\",\n });\n const embedV3Service = crossmintEmbeddedCheckoutV3Service({ apiClient });\n\n const ref = useRef<HTMLIFrameElement>(null);\n\n useEffect(() => {\n const iframe = ref.current;\n if (!iframe || iframeClient) {\n return;\n }\n setIframeClient(embedV3Service.iframe.createClient(iframe));\n }, [ref.current, iframeClient]);\n\n useEffect(() => {\n if (iframeClient == null) {\n return;\n }\n iframeClient.on(\"ui:height.changed\", (data) => setHeight(data.height));\n\n return () => {\n iframeClient.off(\"ui:height.changed\");\n };\n }, [iframeClient]);\n\n return (\n <>\n <iframe\n ref={ref}\n src={embedV3Service.iframe.getUrl(props)}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n backgroundColor: \"transparent\",\n }}\n />\n {props.payment.crypto.enabled ? (\n <CryptoWalletConnectionHandler\n iframeClient={iframeClient}\n apiKeyEnvironment={apiClient[\"parsedAPIKey\"].environment}\n />\n ) : null}\n </>\n );\n}\n"]}
@@ -1,52 +0,0 @@
1
- import {
2
- __async
3
- } from "./chunk-CRTRMMJ7.js";
4
-
5
- // src/components/embed/v3/crypto/utils/handleSolanaTransaction.ts
6
- import { Transaction } from "@solana/web3.js";
7
- import base58 from "bs58";
8
- function handleSolanaTransaction(_0) {
9
- return __async(this, arguments, function* ({
10
- primaryWallet,
11
- serializedTransaction,
12
- iframeClient
13
- }) {
14
- let signer;
15
- try {
16
- signer = yield primaryWallet.getSigner();
17
- } catch (error) {
18
- console.error("[CryptoWalletConnectionHandler] failed to get signer", error);
19
- iframeClient.send("crypto:send-transaction:failed", {
20
- error: "Failed to get signer"
21
- });
22
- return;
23
- }
24
- let deserializedTransaction;
25
- try {
26
- deserializedTransaction = Transaction.from(base58.decode(serializedTransaction));
27
- } catch (error) {
28
- console.error("[CryptoWalletConnectionHandler] failed to deserialize transaction", error);
29
- iframeClient.send("crypto:send-transaction:failed", {
30
- error: "Failed to deserialize transaction"
31
- });
32
- return;
33
- }
34
- try {
35
- const { signature: txId } = yield signer.signAndSendTransaction(deserializedTransaction);
36
- console.log("[CryptoWalletConnectionHandler] txId", txId);
37
- iframeClient.send("crypto:send-transaction:success", {
38
- txId
39
- });
40
- } catch (error) {
41
- console.error("[CryptoWalletConnectionHandler] failed to send transaction", error);
42
- iframeClient.send("crypto:send-transaction:failed", {
43
- error: error.message
44
- });
45
- }
46
- });
47
- }
48
-
49
- export {
50
- handleSolanaTransaction
51
- };
52
- //# sourceMappingURL=chunk-FH7TEEZR.js.map
@@ -1 +0,0 @@
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,64 +0,0 @@
1
- import {
2
- __async
3
- } from "./chunk-CRTRMMJ7.js";
4
-
5
- // src/components/embed/v3/crypto/utils/handleEvmTransaction.ts
6
- import {
7
- blockchainToChainId
8
- } from "@crossmint/common-sdk-base";
9
- import { parseTransaction } from "viem";
10
- function handleEvmTransaction(_0) {
11
- return __async(this, arguments, function* ({
12
- primaryWallet,
13
- chain,
14
- serializedTransaction,
15
- iframeClient
16
- }) {
17
- try {
18
- yield primaryWallet.switchNetwork(blockchainToChainId(chain));
19
- } catch (error) {
20
- console.error("[CryptoWalletConnectionHandler] failed to switch network", error);
21
- iframeClient.send("crypto:send-transaction:failed", {
22
- error: error.message
23
- });
24
- return;
25
- }
26
- let walletClient;
27
- try {
28
- walletClient = yield primaryWallet.getWalletClient();
29
- } catch (error) {
30
- console.error("[CryptoWalletConnectionHandler] failed to get wallet client", error);
31
- iframeClient.send("crypto:send-transaction:failed", {
32
- error: error.message
33
- });
34
- return;
35
- }
36
- let parsedTransaction;
37
- try {
38
- parsedTransaction = parseTransaction(serializedTransaction);
39
- } catch (error) {
40
- console.error("[CryptoWalletConnectionHandler] failed to parse transaction", error);
41
- iframeClient.send("crypto:send-transaction:failed", {
42
- error: error.message
43
- });
44
- return;
45
- }
46
- try {
47
- const txId = yield walletClient.sendTransaction(parsedTransaction);
48
- console.log("[CryptoWalletConnectionHandler] txId", txId);
49
- iframeClient.send("crypto:send-transaction:success", {
50
- txId
51
- });
52
- } catch (error) {
53
- console.error("[CryptoWalletConnectionHandler] failed to send transaction", error);
54
- iframeClient.send("crypto:send-transaction:failed", {
55
- error: error.message
56
- });
57
- }
58
- });
59
- }
60
-
61
- export {
62
- handleEvmTransaction
63
- };
64
- //# sourceMappingURL=chunk-LKO5WR7D.js.map
@@ -1 +0,0 @@
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":[]}