@crossmint/client-sdk-react-ui 1.10.0 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-OPIHF55A.cjs → chunk-3C5IQSUX.cjs} +3 -3
- package/dist/{chunk-YB66RCZP.js → chunk-5IX763AW.js} +2 -2
- package/dist/{chunk-YB66RCZP.js.map → chunk-5IX763AW.js.map} +1 -1
- package/dist/chunk-GGE3H4XP.cjs +33 -0
- package/dist/chunk-GGE3H4XP.cjs.map +1 -0
- package/dist/{chunk-46UDUOKJ.cjs → chunk-HENBZUED.cjs} +2 -2
- package/dist/{chunk-46UDUOKJ.cjs.map → chunk-HENBZUED.cjs.map} +1 -1
- package/dist/{chunk-GZRGZKN6.js → chunk-HG57BLPT.js} +2 -2
- package/dist/{chunk-5VZNJ4VT.js → chunk-HYGCZCR2.js} +7 -10
- package/dist/chunk-HYGCZCR2.js.map +1 -0
- package/dist/{chunk-BJIMCGIQ.js → chunk-L3L7YEW3.js} +2 -2
- package/dist/{chunk-5JAEV6YP.js → chunk-QIPMBCAV.js} +11 -6
- package/dist/chunk-QIPMBCAV.js.map +1 -0
- package/dist/{chunk-E3BR6DXY.js → chunk-QKALEGXY.js} +2 -2
- package/dist/{chunk-RWS44QDX.js → chunk-QTGK3RB5.js} +2 -2
- package/dist/{chunk-CIZ2K2TA.cjs → chunk-SVI3L5G5.cjs} +13 -8
- package/dist/chunk-SVI3L5G5.cjs.map +1 -0
- package/dist/{chunk-2LTCJUPK.cjs → chunk-TIQPIPH5.cjs} +3 -3
- package/dist/{chunk-CYUTXV7Z.js → chunk-W2Q46OO4.js} +2 -2
- package/dist/{chunk-IVNGVLGR.cjs → chunk-W3SNJ5XS.cjs} +3 -3
- package/dist/{chunk-657ZCQSH.cjs → chunk-WQ7WULBW.cjs} +3 -3
- package/dist/{chunk-ODH26VGS.js → chunk-XRFRY2LN.js} +2 -2
- package/dist/{chunk-VWRC3IFZ.cjs → chunk-Y7PF2Z3W.cjs} +3 -3
- package/dist/{chunk-U2D3L4DZ.cjs → chunk-YNJPYSO4.cjs} +3 -3
- package/dist/components/CrossmintNFTCollectionView.cjs +3 -3
- package/dist/components/CrossmintNFTCollectionView.js +2 -2
- package/dist/components/CrossmintNFTDetail.cjs +3 -3
- package/dist/components/CrossmintNFTDetail.js +2 -2
- package/dist/components/auth/AuthForm.cjs +3 -3
- package/dist/components/auth/AuthForm.js +3 -3
- package/dist/components/auth/AuthFormDialog.cjs +3 -3
- package/dist/components/auth/AuthFormDialog.js +3 -3
- package/dist/components/auth/EmbeddedAuthForm.cjs +3 -3
- package/dist/components/auth/EmbeddedAuthForm.js +3 -3
- package/dist/components/auth/methods/email/EmailAuthFlow.cjs +3 -3
- package/dist/components/auth/methods/email/EmailAuthFlow.js +3 -3
- package/dist/components/auth/methods/email/EmailOTPInput.cjs +3 -3
- package/dist/components/auth/methods/email/EmailOTPInput.js +3 -3
- package/dist/components/auth/methods/email/EmailSignIn.cjs +3 -3
- package/dist/components/auth/methods/email/EmailSignIn.js +3 -3
- package/dist/components/auth/methods/farcaster/FarcasterSignIn.cjs +3 -3
- package/dist/components/auth/methods/farcaster/FarcasterSignIn.js +3 -3
- package/dist/components/auth/methods/google/GoogleSignIn.cjs +3 -3
- package/dist/components/auth/methods/google/GoogleSignIn.js +3 -3
- package/dist/components/auth/methods/web3/Web3AuthFlow.cjs +3 -3
- package/dist/components/auth/methods/web3/Web3AuthFlow.js +3 -3
- package/dist/components/auth/methods/web3/Web3AuthWrapper.cjs +3 -3
- package/dist/components/auth/methods/web3/Web3AuthWrapper.js +3 -3
- package/dist/components/auth/methods/web3/Web3Connectors.cjs +3 -3
- package/dist/components/auth/methods/web3/Web3Connectors.js +3 -3
- package/dist/components/auth/methods/web3/Web3SignIn.cjs +3 -3
- package/dist/components/auth/methods/web3/Web3SignIn.js +3 -3
- package/dist/components/common/Divider.cjs +3 -3
- package/dist/components/common/Divider.js +3 -3
- package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.cjs +6 -11
- package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js +5 -10
- package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.cjs +5 -10
- package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.js +4 -9
- package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs +130 -7
- package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs.map +1 -1
- package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js +130 -7
- package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js.map +1 -1
- package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.cjs +58 -3
- package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.cjs.map +1 -1
- package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.js +58 -3
- package/dist/components/embed/v3/crypto/utils/handleEvmTransaction.js.map +1 -1
- package/dist/components/embed/v3/crypto/utils/handleSendTransaction.cjs +2 -4
- package/dist/components/embed/v3/crypto/utils/handleSendTransaction.js +1 -3
- package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.cjs +47 -4
- package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.cjs.map +1 -1
- package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.js +46 -3
- package/dist/components/embed/v3/crypto/utils/handleSolanaTransaction.js.map +1 -1
- package/dist/components/embed/v3/index.cjs +6 -11
- package/dist/components/embed/v3/index.js +5 -10
- package/dist/components/hosted/CrossmintPayButton.cjs +3 -3
- package/dist/components/hosted/CrossmintPayButton.js +2 -2
- package/dist/components/hosted/index.cjs +3 -3
- package/dist/components/hosted/index.js +2 -2
- package/dist/components/index.cjs +9 -14
- package/dist/components/index.js +8 -13
- package/dist/consts/version.cjs +2 -2
- package/dist/consts/version.js +1 -1
- package/dist/hooks/index.cjs +4 -4
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/useAuth.cjs +3 -3
- package/dist/hooks/useAuth.js +3 -3
- package/dist/hooks/useCrossmintAuth.cjs +3 -3
- package/dist/hooks/useCrossmintAuth.js +3 -3
- package/dist/hooks/useCrossmintCheckout.cjs +4 -4
- package/dist/hooks/useCrossmintCheckout.js +3 -3
- package/dist/hooks/useOAuthWindowListener.cjs +3 -3
- package/dist/hooks/useOAuthWindowListener.js +3 -3
- package/dist/hooks/useWallet.cjs +3 -3
- package/dist/hooks/useWallet.js +3 -3
- package/dist/index.cjs +9 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +8 -13
- package/dist/index.js.map +1 -1
- package/dist/providers/CrossmintAuthProvider.cjs +3 -3
- package/dist/providers/CrossmintAuthProvider.js +3 -3
- package/dist/providers/CrossmintWalletProvider.cjs +3 -3
- package/dist/providers/CrossmintWalletProvider.js +3 -3
- package/dist/providers/auth/AuthFormProvider.cjs +3 -3
- package/dist/providers/auth/AuthFormProvider.js +3 -3
- package/dist/providers/index.cjs +3 -3
- package/dist/providers/index.js +3 -3
- package/dist/utils/createCrossmintApiClient.cjs +3 -3
- package/dist/utils/createCrossmintApiClient.js +2 -2
- package/package.json +3 -3
- package/src/components/embed/v3/EmbeddedCheckoutV3IFrame.tsx +8 -2
- package/src/components/embed/v3/crypto/utils/handleSendTransaction.ts +12 -6
- package/dist/chunk-2QB7GW4K.cjs +0 -64
- package/dist/chunk-2QB7GW4K.cjs.map +0 -1
- package/dist/chunk-5JAEV6YP.js.map +0 -1
- package/dist/chunk-5VZNJ4VT.js.map +0 -1
- package/dist/chunk-BYRVAFBZ.cjs +0 -52
- package/dist/chunk-BYRVAFBZ.cjs.map +0 -1
- package/dist/chunk-CIZ2K2TA.cjs.map +0 -1
- package/dist/chunk-FH7TEEZR.js +0 -52
- package/dist/chunk-FH7TEEZR.js.map +0 -1
- package/dist/chunk-LKO5WR7D.js +0 -64
- package/dist/chunk-LKO5WR7D.js.map +0 -1
- package/dist/chunk-REUYMHNW.cjs +0 -136
- package/dist/chunk-REUYMHNW.cjs.map +0 -1
- package/dist/chunk-UC3GWTEN.js +0 -136
- package/dist/chunk-UC3GWTEN.js.map +0 -1
- package/dist/chunk-UCQ5VAPT.cjs +0 -36
- package/dist/chunk-UCQ5VAPT.cjs.map +0 -1
- /package/dist/{chunk-OPIHF55A.cjs.map → chunk-3C5IQSUX.cjs.map} +0 -0
- /package/dist/{chunk-GZRGZKN6.js.map → chunk-HG57BLPT.js.map} +0 -0
- /package/dist/{chunk-BJIMCGIQ.js.map → chunk-L3L7YEW3.js.map} +0 -0
- /package/dist/{chunk-E3BR6DXY.js.map → chunk-QKALEGXY.js.map} +0 -0
- /package/dist/{chunk-RWS44QDX.js.map → chunk-QTGK3RB5.js.map} +0 -0
- /package/dist/{chunk-2LTCJUPK.cjs.map → chunk-TIQPIPH5.cjs.map} +0 -0
- /package/dist/{chunk-CYUTXV7Z.js.map → chunk-W2Q46OO4.js.map} +0 -0
- /package/dist/{chunk-IVNGVLGR.cjs.map → chunk-W3SNJ5XS.cjs.map} +0 -0
- /package/dist/{chunk-657ZCQSH.cjs.map → chunk-WQ7WULBW.cjs.map} +0 -0
- /package/dist/{chunk-ODH26VGS.js.map → chunk-XRFRY2LN.js.map} +0 -0
- /package/dist/{chunk-VWRC3IFZ.cjs.map → chunk-Y7PF2Z3W.cjs.map} +0 -0
- /package/dist/{chunk-U2D3L4DZ.cjs.map → chunk-YNJPYSO4.cjs.map} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunkY7PF2Z3Wcjs = require('../chunk-Y7PF2Z3W.cjs');
|
|
4
|
+
require('../chunk-HENBZUED.cjs');
|
|
5
5
|
require('../chunk-4DAZAO6Y.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
exports.createCrossmintApiClient =
|
|
8
|
+
exports.createCrossmintApiClient = _chunkY7PF2Z3Wcjs.createCrossmintApiClient;
|
|
9
9
|
//# sourceMappingURL=createCrossmintApiClient.cjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crossmint/client-sdk-react-ui",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"repository": "https://github.com/Crossmint/crossmint-sdk",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Paella Labs Inc",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"zod": "3.22.4",
|
|
48
48
|
"@crossmint/client-sdk-auth": "1.0.0",
|
|
49
49
|
"@crossmint/client-sdk-base": "1.3.2",
|
|
50
|
-
"@crossmint/client-sdk-smart-wallet": "0.1.22",
|
|
51
50
|
"@crossmint/client-sdk-window": "0.1.0",
|
|
52
51
|
"@crossmint/common-sdk-auth": "1.0.0",
|
|
53
|
-
"@crossmint/common-sdk-base": "0.3.0"
|
|
52
|
+
"@crossmint/common-sdk-base": "0.3.0",
|
|
53
|
+
"@crossmint/client-sdk-smart-wallet": "0.1.22"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@testing-library/react": "^16.0.1",
|
|
@@ -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);
|
|
@@ -2,11 +2,6 @@ import type { Wallet } from "@dynamic-labs/sdk-react-core";
|
|
|
2
2
|
|
|
3
3
|
import type { BlockchainIncludingTestnet } from "@crossmint/common-sdk-base";
|
|
4
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
5
|
import type { EmbeddedCheckoutV3IFrameEmitter } from "@crossmint/client-sdk-base";
|
|
11
6
|
|
|
12
7
|
export async function handleSendTransaction(
|
|
@@ -20,12 +15,23 @@ export async function handleSendTransaction(
|
|
|
20
15
|
serializedTransaction,
|
|
21
16
|
iframeClient,
|
|
22
17
|
};
|
|
18
|
+
|
|
19
|
+
// @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile
|
|
20
|
+
const { isSolanaWallet } = await import("@dynamic-labs/solana");
|
|
23
21
|
if (isSolanaWallet(primaryWallet)) {
|
|
22
|
+
// @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile
|
|
23
|
+
const { handleSolanaTransaction } = await import("./handleSolanaTransaction");
|
|
24
24
|
return await handleSolanaTransaction({
|
|
25
25
|
...commonParams,
|
|
26
26
|
primaryWallet,
|
|
27
27
|
});
|
|
28
|
-
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile
|
|
31
|
+
const { isEthereumWallet } = await import("@dynamic-labs/ethereum");
|
|
32
|
+
if (isEthereumWallet(primaryWallet)) {
|
|
33
|
+
// @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile
|
|
34
|
+
const { handleEvmTransaction } = await import("./handleEvmTransaction");
|
|
29
35
|
return await handleEvmTransaction({ ...commonParams, primaryWallet });
|
|
30
36
|
}
|
|
31
37
|
}
|
package/dist/chunk-2QB7GW4K.cjs
DELETED
|
@@ -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":["../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 +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":[]}
|
package/dist/chunk-BYRVAFBZ.cjs
DELETED
|
@@ -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"]}
|
package/dist/chunk-FH7TEEZR.js
DELETED
|
@@ -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":[]}
|
package/dist/chunk-LKO5WR7D.js
DELETED
|
@@ -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":[]}
|
package/dist/chunk-REUYMHNW.cjs
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkUCQ5VAPTcjs = require('./chunk-UCQ5VAPT.cjs');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkUQAKJ4T7cjs = require('./chunk-UQAKJ4T7.cjs');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _chunk4DAZAO6Ycjs = require('./chunk-4DAZAO6Y.cjs');
|
|
11
|
-
|
|
12
|
-
// src/components/embed/v3/crypto/CryptoWalletConnectionHandler.tsx
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _commonsdkbase = require('@crossmint/common-sdk-base');
|
|
16
|
-
var _ethereum = require('@dynamic-labs/ethereum');
|
|
17
|
-
var _sdkreactcore = require('@dynamic-labs/sdk-react-core');
|
|
18
|
-
var _solana = require('@dynamic-labs/solana');
|
|
19
|
-
var _react = require('react');
|
|
20
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
21
|
-
function CryptoWalletConnectionHandler(props) {
|
|
22
|
-
const { iframeClient, apiKeyEnvironment } = props;
|
|
23
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24
|
-
_chunkUQAKJ4T7cjs.DynamicContextProviderWrapper,
|
|
25
|
-
{
|
|
26
|
-
apiKeyEnvironment,
|
|
27
|
-
settings: {
|
|
28
|
-
walletConnectors: [_ethereum.EthereumWalletConnectors, _solana.SolanaWalletConnectors],
|
|
29
|
-
events: {
|
|
30
|
-
onAuthFlowCancel() {
|
|
31
|
-
console.log("[CryptoWalletConnectionHandler] onAuthFlowCancel");
|
|
32
|
-
iframeClient == null ? void 0 : iframeClient.send("crypto:connect-wallet.failed", {
|
|
33
|
-
error: "cancelled"
|
|
34
|
-
});
|
|
35
|
-
},
|
|
36
|
-
onAuthFlowClose() {
|
|
37
|
-
console.log("[CryptoWalletConnectionHandler] onAuthFlowClose");
|
|
38
|
-
},
|
|
39
|
-
onAuthFailure(data, reason) {
|
|
40
|
-
console.error("[CryptoWalletConnectionHandler] onAuthFailure", data, reason);
|
|
41
|
-
},
|
|
42
|
-
onAuthSuccess(data) {
|
|
43
|
-
console.log("[CryptoWalletConnectionHandler] onAuthSuccess", data);
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
handlers: {
|
|
47
|
-
handleConnectedWallet: (wallet) => _chunk4DAZAO6Ycjs.__async.call(void 0, this, null, function* () {
|
|
48
|
-
var _a;
|
|
49
|
-
console.log("[CryptoWalletConnectionHandler] handleConnectedWallet", wallet);
|
|
50
|
-
const address = wallet.address;
|
|
51
|
-
if (!address) {
|
|
52
|
-
console.error("[CryptoWalletConnectionHandler] handleConnectedWallet: address is missing");
|
|
53
|
-
iframeClient == null ? void 0 : iframeClient.send("crypto:connect-wallet.failed", {
|
|
54
|
-
error: "address is missing"
|
|
55
|
-
});
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
const chain = yield dynamicChainToCrossmintChain(wallet);
|
|
59
|
-
iframeClient == null ? void 0 : iframeClient.send("crypto:connect-wallet.success", {
|
|
60
|
-
address,
|
|
61
|
-
chain,
|
|
62
|
-
walletProviderKey: (_a = wallet.connector) == null ? void 0 : _a.key
|
|
63
|
-
});
|
|
64
|
-
return true;
|
|
65
|
-
})
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _CryptoWalletConnectionHandler, _chunk4DAZAO6Ycjs.__spreadValues.call(void 0, {}, props))
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
function _CryptoWalletConnectionHandler({ iframeClient }) {
|
|
73
|
-
const { setShowAuthFlow, primaryWallet, handleLogOut } = _sdkreactcore.useDynamicContext.call(void 0, );
|
|
74
|
-
_react.useEffect.call(void 0, () => {
|
|
75
|
-
if (iframeClient == null) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const showAuthFlowListener = iframeClient.on("crypto:connect-wallet.show", (_0) => _chunk4DAZAO6Ycjs.__async.call(void 0, this, [_0], function* ({ show }) {
|
|
79
|
-
yield handleLogOut();
|
|
80
|
-
setShowAuthFlow(show);
|
|
81
|
-
}));
|
|
82
|
-
return () => {
|
|
83
|
-
iframeClient.off(showAuthFlowListener);
|
|
84
|
-
};
|
|
85
|
-
}, [iframeClient, handleLogOut, setShowAuthFlow]);
|
|
86
|
-
_react.useEffect.call(void 0, () => {
|
|
87
|
-
if (iframeClient == null) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const signTransactionListener = iframeClient.on(
|
|
91
|
-
"crypto:send-transaction",
|
|
92
|
-
(_0) => _chunk4DAZAO6Ycjs.__async.call(void 0, this, [_0], function* ({ chain, serializedTransaction }) {
|
|
93
|
-
if (primaryWallet == null) {
|
|
94
|
-
console.error("[CryptoWalletConnectionHandler] signTransaction: primaryWallet is missing");
|
|
95
|
-
iframeClient.send("crypto:send-transaction:failed", {
|
|
96
|
-
error: "primaryWallet is missing"
|
|
97
|
-
});
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
yield _chunkUCQ5VAPTcjs.handleSendTransaction.call(void 0,
|
|
101
|
-
primaryWallet,
|
|
102
|
-
chain,
|
|
103
|
-
serializedTransaction,
|
|
104
|
-
iframeClient
|
|
105
|
-
);
|
|
106
|
-
})
|
|
107
|
-
);
|
|
108
|
-
return () => {
|
|
109
|
-
iframeClient.off(signTransactionListener);
|
|
110
|
-
};
|
|
111
|
-
}, [iframeClient, primaryWallet]);
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
function dynamicChainToCrossmintChain(wallet) {
|
|
115
|
-
return _chunk4DAZAO6Ycjs.__async.call(void 0, this, null, function* () {
|
|
116
|
-
var _a;
|
|
117
|
-
const chain = wallet.chain;
|
|
118
|
-
if (chain === "SOL") {
|
|
119
|
-
return "solana";
|
|
120
|
-
}
|
|
121
|
-
const chainId = yield (_a = wallet.connector) == null ? void 0 : _a.getNetwork();
|
|
122
|
-
if (typeof chainId !== "number") {
|
|
123
|
-
throw new Error("chainId is not a number");
|
|
124
|
-
}
|
|
125
|
-
const chainFromChainId = _commonsdkbase.chainIdToBlockchain.call(void 0, chainId);
|
|
126
|
-
if (!chainFromChainId) {
|
|
127
|
-
throw new Error(`ChainId ${chainId} is not supported`);
|
|
128
|
-
}
|
|
129
|
-
return chainFromChainId;
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
exports.CryptoWalletConnectionHandler = CryptoWalletConnectionHandler;
|
|
136
|
-
//# sourceMappingURL=chunk-REUYMHNW.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/embed/v3/crypto/CryptoWalletConnectionHandler.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAEA;AAAA,EAGI;AAAA,OACG;AACP,SAAS,gCAAgC;AACzC,SAAqC,yBAAyB;AAC9D,SAAS,8BAA8B;AACvC,SAAS,iBAAiB;AAyDd;AAtDL,SAAS,8BAA8B,OAG3C;AACC,QAAM,EAAE,cAAc,kBAAkB,IAAI;AAE5C,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,UAAU;AAAA,QACN,kBAAkB,CAAC,0BAA0B,sBAAsB;AAAA,QACnE,QAAQ;AAAA,UACJ,mBAAmB;AACf,oBAAQ,IAAI,kDAAkD;AAC9D,yDAAc,KAAK,gCAAgC;AAAA,cAC/C,OAAO;AAAA,YACX;AAAA,UACJ;AAAA,UACA,kBAAkB;AACd,oBAAQ,IAAI,iDAAiD;AAAA,UACjE;AAAA,UACA,cAAc,MAAM,QAAQ;AACxB,oBAAQ,MAAM,iDAAiD,MAAM,MAAM;AAAA,UAC/E;AAAA,UACA,cAAc,MAAM;AAChB,oBAAQ,IAAI,iDAAiD,IAAI;AAAA,UACrE;AAAA,QACJ;AAAA,QACA,UAAU;AAAA,UACN,uBAAuB,CAAO,WAAW;AA1C7D;AA2CwB,oBAAQ,IAAI,yDAAyD,MAAM;AAE3E,kBAAM,UAAU,OAAO;AACvB,gBAAI,CAAC,SAAS;AACV,sBAAQ,MAAM,2EAA2E;AACzF,2DAAc,KAAK,gCAAgC;AAAA,gBAC/C,OAAO;AAAA,cACX;AACA,qBAAO;AAAA,YACX;AAEA,kBAAM,QAAQ,MAAM,6BAA6B,MAAM;AAEvD,yDAAc,KAAK,iCAAiC;AAAA,cAChD;AAAA,cACA;AAAA,cACA,oBAAmB,YAAO,cAAP,mBAAkB;AAAA,YACzC;AAEA,mBAAO;AAAA,UACX;AAAA,QACJ;AAAA,MACJ;AAAA,MAEA,8BAAC,mDAAmC,MAAO;AAAA;AAAA,EAC/C;AAER;AAEA,SAAS,+BAA+B,EAAE,aAAa,GAAwD;AAC3G,QAAM,EAAE,iBAAiB,eAAe,aAAa,IAAI,kBAAkB;AAE3E,YAAU,MAAM;AACZ,QAAI,gBAAgB,MAAM;AACtB;AAAA,IACJ;AACA,UAAM,uBAAuB,aAAa,GAAG,8BAA8B,CAAO,OAAa,eAAb,KAAa,WAAb,EAAE,KAAK,GAAM;AAC3F,YAAM,aAAa;AACnB,sBAAgB,IAAI;AAAA,IACxB,EAAC;AAED,WAAO,MAAM;AACT,mBAAa,IAAI,oBAAoB;AAAA,IACzC;AAAA,EACJ,GAAG,CAAC,cAAc,cAAc,eAAe,CAAC;AAEhD,YAAU,MAAM;AACZ,QAAI,gBAAgB,MAAM;AACtB;AAAA,IACJ;AACA,UAAM,0BAA0B,aAAa;AAAA,MACzC;AAAA,MACA,CAAO,OAAqC,eAArC,KAAqC,WAArC,EAAE,OAAO,sBAAsB,GAAM;AACxC,YAAI,iBAAiB,MAAM;AACvB,kBAAQ,MAAM,2EAA2E;AACzF,uBAAa,KAAK,kCAAkC;AAAA,YAChD,OAAO;AAAA,UACX,CAAC;AACD;AAAA,QACJ;AAEA,cAAM;AAAA,UACF;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,MAAM;AACT,mBAAa,IAAI,uBAAuB;AAAA,IAC5C;AAAA,EACJ,GAAG,CAAC,cAAc,aAAa,CAAC;AAEhC,SAAO;AACX;AAEA,SAAe,6BACX,QACmC;AAAA;AA3HvC;AA4HI,UAAM,QAAQ,OAAO;AACrB,QAAI,UAAU,OAAO;AACjB,aAAO;AAAA,IACX;AACA,UAAM,UAAU,OAAM,YAAO,cAAP,mBAAkB;AACxC,QAAI,OAAO,YAAY,UAAU;AAC7B,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC7C;AACA,UAAM,mBAAmB,oBAAoB,OAAO;AACpD,QAAI,CAAC,kBAAkB;AACnB,YAAM,IAAI,MAAM,WAAW,OAAO,mBAAmB;AAAA,IACzD;AACA,WAAO;AAAA,EACX;AAAA","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"]}
|