@turnkey/react-wallet-kit 2.0.0 → 2.1.0
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/components/auth/index.d.ts.map +1 -1
- package/dist/components/auth/index.js +7 -57
- package/dist/components/auth/index.js.map +1 -1
- package/dist/components/auth/index.mjs +16 -132
- package/dist/components/auth/index.mjs.map +1 -1
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts +10 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.js +204 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.js.map +1 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs +253 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts +8 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.js +58 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.js.map +1 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.mjs +80 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts +10 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.js +115 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +149 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.d.ts +18 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.d.ts.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.js +233 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.js.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.mjs +323 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.mjs.map +1 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts +11 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.js +200 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.js.map +1 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs +251 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/QRCodeDisplay.d.ts +8 -0
- package/dist/components/auth/wallet/QRCodeDisplay.d.ts.map +1 -0
- package/dist/components/auth/wallet/QRCodeDisplay.js +37 -0
- package/dist/components/auth/wallet/QRCodeDisplay.js.map +1 -0
- package/dist/components/auth/wallet/QRCodeDisplay.mjs +33 -0
- package/dist/components/auth/wallet/QRCodeDisplay.mjs.map +1 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts +8 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.js +253 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.js.map +1 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs +299 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletAuthButton.d.ts +6 -0
- package/dist/components/auth/wallet/WalletAuthButton.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletAuthButton.js +33 -0
- package/dist/components/auth/wallet/WalletAuthButton.js.map +1 -0
- package/dist/components/auth/wallet/WalletAuthButton.mjs +47 -0
- package/dist/components/auth/wallet/WalletAuthButton.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletButton.d.ts +16 -0
- package/dist/components/auth/wallet/WalletButton.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletButton.js +79 -0
- package/dist/components/auth/wallet/WalletButton.js.map +1 -0
- package/dist/components/auth/wallet/WalletButton.mjs +84 -0
- package/dist/components/auth/wallet/WalletButton.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts +2 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.js +22 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.js.map +1 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.mjs +20 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts +12 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.js +79 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.js.map +1 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs +102 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletConnectFlow.d.ts +21 -0
- package/dist/components/auth/wallet/WalletConnectFlow.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletConnectFlow.js +163 -0
- package/dist/components/auth/wallet/WalletConnectFlow.js.map +1 -0
- package/dist/components/auth/wallet/WalletConnectFlow.mjs +310 -0
- package/dist/components/auth/wallet/WalletConnectFlow.mjs.map +1 -0
- package/dist/components/auth/wallet/constants.d.ts +6 -0
- package/dist/components/auth/wallet/constants.d.ts.map +1 -0
- package/dist/components/auth/wallet/constants.js +14 -0
- package/dist/components/auth/wallet/constants.js.map +1 -0
- package/dist/components/auth/wallet/constants.mjs +8 -0
- package/dist/components/auth/wallet/constants.mjs.map +1 -0
- package/dist/components/auth/wallet/utils.d.ts +4 -0
- package/dist/components/auth/wallet/utils.d.ts.map +1 -0
- package/dist/components/auth/wallet/utils.js +9 -0
- package/dist/components/auth/wallet/utils.js.map +1 -0
- package/dist/components/auth/wallet/utils.mjs +7 -0
- package/dist/components/auth/wallet/utils.mjs.map +1 -0
- package/dist/components/design/Buttons.d.ts +1 -0
- package/dist/components/design/Buttons.d.ts.map +1 -1
- package/dist/components/design/Buttons.js +2 -0
- package/dist/components/design/Buttons.js.map +1 -1
- package/dist/components/design/Buttons.mjs +2 -0
- package/dist/components/design/Buttons.mjs.map +1 -1
- package/dist/components/design/ConnectedIndicator.d.ts +6 -0
- package/dist/components/design/ConnectedIndicator.d.ts.map +1 -0
- package/dist/components/design/ConnectedIndicator.js +20 -0
- package/dist/components/design/ConnectedIndicator.js.map +1 -0
- package/dist/components/design/ConnectedIndicator.mjs +17 -0
- package/dist/components/design/ConnectedIndicator.mjs.map +1 -0
- package/dist/components/design/Inputs.d.ts +7 -0
- package/dist/components/design/Inputs.d.ts.map +1 -1
- package/dist/components/design/Inputs.js +37 -0
- package/dist/components/design/Inputs.js.map +1 -1
- package/dist/components/design/Inputs.mjs +39 -2
- package/dist/components/design/Inputs.mjs.map +1 -1
- package/dist/components/design/Svg.d.ts +1 -0
- package/dist/components/design/Svg.d.ts.map +1 -1
- package/dist/components/user/ConnectWallet.d.ts +1 -1
- package/dist/components/user/ConnectWallet.d.ts.map +1 -1
- package/dist/components/user/ConnectWallet.js +6 -100
- package/dist/components/user/ConnectWallet.js.map +1 -1
- package/dist/components/user/ConnectWallet.mjs +5 -183
- package/dist/components/user/ConnectWallet.mjs.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/providers/TurnkeyProvider.d.ts.map +1 -1
- package/dist/providers/TurnkeyProvider.js +2 -1
- package/dist/providers/TurnkeyProvider.js.map +1 -1
- package/dist/providers/TurnkeyProvider.mjs +4 -3
- package/dist/providers/TurnkeyProvider.mjs.map +1 -1
- package/dist/providers/WalletConnectProvider.d.ts +23 -0
- package/dist/providers/WalletConnectProvider.d.ts.map +1 -0
- package/dist/providers/WalletConnectProvider.js +72 -0
- package/dist/providers/WalletConnectProvider.js.map +1 -0
- package/dist/providers/WalletConnectProvider.mjs +93 -0
- package/dist/providers/WalletConnectProvider.mjs.map +1 -0
- package/dist/providers/client/Provider.d.ts.map +1 -1
- package/dist/providers/client/Provider.js +5 -2
- package/dist/providers/client/Provider.js.map +1 -1
- package/dist/providers/client/Provider.mjs +5 -2
- package/dist/providers/client/Provider.mjs.map +1 -1
- package/dist/providers/modal/Provider.d.ts +5 -1
- package/dist/providers/modal/Provider.d.ts.map +1 -1
- package/dist/providers/modal/Provider.js.map +1 -1
- package/dist/providers/modal/Provider.mjs.map +1 -1
- package/dist/providers/modal/Root.d.ts.map +1 -1
- package/dist/providers/modal/Root.js +2 -0
- package/dist/providers/modal/Root.js.map +1 -1
- package/dist/providers/modal/Root.mjs +2 -0
- package/dist/providers/modal/Root.mjs.map +1 -1
- package/dist/providers/theme/Overrides.d.ts +1 -0
- package/dist/providers/theme/Overrides.d.ts.map +1 -1
- package/dist/providers/theme/Overrides.js +3 -1
- package/dist/providers/theme/Overrides.js.map +1 -1
- package/dist/providers/theme/Overrides.mjs +3 -1
- package/dist/providers/theme/Overrides.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/base.d.ts +8 -0
- package/dist/types/base.d.ts.map +1 -1
- package/dist/types/base.js +7 -0
- package/dist/types/base.js.map +1 -1
- package/dist/types/base.mjs +8 -1
- package/dist/types/base.mjs.map +1 -1
- package/dist/utils/utils.d.ts +2 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +5 -0
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/utils.mjs +7 -1
- package/dist/utils/utils.mjs.map +1 -1
- package/package.json +5 -5
- package/dist/components/auth/Wallet.d.ts +0 -34
- package/dist/components/auth/Wallet.d.ts.map +0 -1
- package/dist/components/auth/Wallet.js +0 -514
- package/dist/components/auth/Wallet.js.map +0 -1
- package/dist/components/auth/Wallet.mjs +0 -615
- package/dist/components/auth/Wallet.mjs.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var constants = require('./constants.js');
|
|
5
|
+
|
|
6
|
+
function WalletButtonSkeleton() {
|
|
7
|
+
return jsxRuntime.jsxs("div", {
|
|
8
|
+
style: {
|
|
9
|
+
height: `${constants.WALLET_BUTTON_HEIGHT}px`
|
|
10
|
+
},
|
|
11
|
+
className: "flex items-center gap-2 rounded-xl bg-button-light dark:bg-button-dark animate-pulse pointer-events-none px-3",
|
|
12
|
+
"aria-hidden": "true",
|
|
13
|
+
children: [jsxRuntime.jsx("div", {
|
|
14
|
+
className: "size-6 rounded-full bg-icon-background-light dark:bg-icon-background-dark"
|
|
15
|
+
}), jsxRuntime.jsx("div", {
|
|
16
|
+
className: "h-3 w-full rounded bg-icon-background-light dark:bg-icon-background-dark"
|
|
17
|
+
})]
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
exports.WalletButtonSkeleton = WalletButtonSkeleton;
|
|
22
|
+
//# sourceMappingURL=WalletButtonSkeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletButtonSkeleton.js","sources":["../../../../src/components/auth/wallet/WalletButtonSkeleton.tsx"],"sourcesContent":[null],"names":["WalletButtonSkeleton","_jsxs","style","height","WALLET_BUTTON_HEIGHT","className","children","_jsx"],"mappings":";;;;;SAEgBA,oBAAoBA,GAAA;EAClC,OACEC,eAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,KAAK,EAAE;MAAEC,MAAM,EAAE,GAAGC,8BAAoB,CAAA,EAAA;KAAM;AAC9CC,IAAAA,SAAS,EAAC,+GAA+G;AAAA,IAAA,aAAA,EAC7G,MAAM;AAAAC,IAAAA,QAAA,EAAA,CAElBC,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA2E,KAAA,CAAG,EAC7FE,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA0E,KAAA,CAAG;AAAA,GAAA,CACxF;AAEV;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { WALLET_BUTTON_HEIGHT } from './constants.mjs';
|
|
3
|
+
|
|
4
|
+
function WalletButtonSkeleton() {
|
|
5
|
+
return jsxs("div", {
|
|
6
|
+
style: {
|
|
7
|
+
height: "".concat(WALLET_BUTTON_HEIGHT, "px")
|
|
8
|
+
},
|
|
9
|
+
className: "flex items-center gap-2 rounded-xl bg-button-light dark:bg-button-dark animate-pulse pointer-events-none px-3",
|
|
10
|
+
"aria-hidden": "true",
|
|
11
|
+
children: [jsx("div", {
|
|
12
|
+
className: "size-6 rounded-full bg-icon-background-light dark:bg-icon-background-dark"
|
|
13
|
+
}), jsx("div", {
|
|
14
|
+
className: "h-3 w-full rounded bg-icon-background-light dark:bg-icon-background-dark"
|
|
15
|
+
})]
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { WalletButtonSkeleton };
|
|
20
|
+
//# sourceMappingURL=WalletButtonSkeleton.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletButtonSkeleton.mjs","sources":["../../../../src/components/auth/wallet/WalletButtonSkeleton.tsx"],"sourcesContent":[null],"names":["WalletButtonSkeleton","_jsxs","style","height","concat","WALLET_BUTTON_HEIGHT","className","children","_jsx"],"mappings":";;;SAEgBA,oBAAoBA,GAAA;EAClC,OACEC,IAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,KAAK,EAAE;MAAEC,MAAM,EAAA,EAAA,CAAAC,MAAA,CAAKC,oBAAoB,EAAA,IAAA;KAAM;AAC9CC,IAAAA,SAAS,EAAC,+GAA+G;AAAA,IAAA,aAAA,EAC7G,MAAM;AAAAC,IAAAA,QAAA,EAAA,CAElBC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA2E,KAAA,CAAG,EAC7FE,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA0E,KAAA,CAAG;AAAA,GAAA,CACxF;AAEV;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type WalletConnectAppEntry } from "@turnkey/core";
|
|
2
|
+
interface WalletConnectAppChainSelectorProps {
|
|
3
|
+
apps: WalletConnectAppEntry[];
|
|
4
|
+
onSelect: (app: WalletConnectAppEntry) => Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* A chain selector specifically for WalletConnect app entries.
|
|
8
|
+
* Displays available chains for a wallet app and allows the user to select one.
|
|
9
|
+
*/
|
|
10
|
+
export declare function WalletConnectAppChainSelector(props: WalletConnectAppChainSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=WalletConnectAppChainSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletConnectAppChainSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/wallet/WalletConnectAppChainSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAS,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGlE,UAAU,kCAAkC;IAC1C,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,2CA0E1C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Buttons = require('../../design/Buttons.js');
|
|
5
|
+
var Svg = require('../../design/Svg.js');
|
|
6
|
+
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
7
|
+
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var clsx = require('clsx');
|
|
10
|
+
var core = require('@turnkey/core');
|
|
11
|
+
var Hook = require('../../../providers/modal/Hook.js');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A chain selector specifically for WalletConnect app entries.
|
|
15
|
+
* Displays available chains for a wallet app and allows the user to select one.
|
|
16
|
+
*/
|
|
17
|
+
function WalletConnectAppChainSelector(props) {
|
|
18
|
+
const {
|
|
19
|
+
apps,
|
|
20
|
+
onSelect
|
|
21
|
+
} = props;
|
|
22
|
+
const {
|
|
23
|
+
isMobile
|
|
24
|
+
} = Hook.useModal();
|
|
25
|
+
const [loadingApp, setLoadingApp] = react.useState();
|
|
26
|
+
const handleSelect = async app => {
|
|
27
|
+
setLoadingApp(app);
|
|
28
|
+
try {
|
|
29
|
+
await onSelect(app);
|
|
30
|
+
} finally {
|
|
31
|
+
setLoadingApp(undefined);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const first = apps[0];
|
|
35
|
+
return jsxRuntime.jsxs("div", {
|
|
36
|
+
className: clsx("flex flex-col w-72 gap-4 mt-11 items-center justify-center", isMobile ? "w-full" : "w-72"),
|
|
37
|
+
children: [jsxRuntime.jsx("img", {
|
|
38
|
+
src: first?.icon,
|
|
39
|
+
className: "size-14 rounded-full"
|
|
40
|
+
}), jsxRuntime.jsxs("span", {
|
|
41
|
+
className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
|
|
42
|
+
children: [first?.name ?? "This wallet", " supports multiple chains. Select which chain you would like to use."]
|
|
43
|
+
}), jsxRuntime.jsx("div", {
|
|
44
|
+
className: "w-full flex flex-col gap-2",
|
|
45
|
+
children: apps.map(app => {
|
|
46
|
+
const [isHovering, setIsHovering] = react.useState(false);
|
|
47
|
+
const isEthereum = app.chain === core.Chain.Ethereum;
|
|
48
|
+
const isSolana = app.chain === core.Chain.Solana;
|
|
49
|
+
return jsxRuntime.jsxs(Buttons.ActionButton, {
|
|
50
|
+
loading: loadingApp === app,
|
|
51
|
+
loadingText: "Preparing...",
|
|
52
|
+
onClick: () => handleSelect(app),
|
|
53
|
+
...(!isMobile && {
|
|
54
|
+
onMouseEnter: () => setIsHovering(true),
|
|
55
|
+
onMouseLeave: () => setIsHovering(false)
|
|
56
|
+
}),
|
|
57
|
+
className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
|
|
58
|
+
children: [isEthereum ? jsxRuntime.jsx(Svg.EthereumLogo, {
|
|
59
|
+
className: "size-5"
|
|
60
|
+
}) : isSolana ? jsxRuntime.jsx(Svg.SolanaLogo, {
|
|
61
|
+
className: "size-5"
|
|
62
|
+
}) : jsxRuntime.jsx("span", {
|
|
63
|
+
className: "size-5 flex items-center justify-center rounded bg-gray-300 dark:bg-gray-700",
|
|
64
|
+
children: "?"
|
|
65
|
+
}), jsxRuntime.jsx("div", {
|
|
66
|
+
className: "flex flex-col items-start",
|
|
67
|
+
children: isEthereum ? "EVM" : isSolana ? "Solana" : "Unknown"
|
|
68
|
+
}), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
|
|
69
|
+
className: clsx("absolute transition-all duration-200 text-icon-text-light dark:text-icon-text-dark", isHovering ? "right-4" : "-right-4"),
|
|
70
|
+
icon: freeSolidSvgIcons.faChevronRight
|
|
71
|
+
})]
|
|
72
|
+
}, app.chain);
|
|
73
|
+
})
|
|
74
|
+
})]
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
exports.WalletConnectAppChainSelector = WalletConnectAppChainSelector;
|
|
79
|
+
//# sourceMappingURL=WalletConnectAppChainSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletConnectAppChainSelector.js","sources":["../../../../src/components/auth/wallet/WalletConnectAppChainSelector.tsx"],"sourcesContent":[null],"names":["WalletConnectAppChainSelector","props","apps","onSelect","isMobile","useModal","loadingApp","setLoadingApp","useState","handleSelect","app","undefined","first","_jsxs","className","clsx","children","_jsx","src","icon","name","map","isHovering","setIsHovering","isEthereum","chain","Chain","Ethereum","isSolana","Solana","ActionButton","loading","loadingText","onClick","onMouseEnter","onMouseLeave","EthereumLogo","SolanaLogo","FontAwesomeIcon","faChevronRight"],"mappings":";;;;;;;;;;;;AAcA;;;AAGG;AACG,SAAUA,6BAA6BA,CAC3CC,KAAyC,EAAA;EAEzC,MAAM;IAAEC,IAAI;AAAEC,IAAAA;AAAQ,GAAE,GAAGF,KAAK;EAChC,MAAM;AAAEG,IAAAA;GAAU,GAAGC,aAAQ,EAAE;EAC/B,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGC,cAAQ,EAAyB;AAErE,EAAA,MAAMC,YAAY,GAAG,MAAOC,GAA0B,IAAI;IACxDH,aAAa,CAACG,GAAG,CAAC;IAClB,IAAI;MACF,MAAMP,QAAQ,CAACO,GAAG,CAAC;AACrB,IAAA,CAAC,SAAS;MACRH,aAAa,CAACI,SAAS,CAAC;AAC1B,IAAA;EACF,CAAC;AAED,EAAA,MAAMC,KAAK,GAAGV,IAAI,CAAC,CAAC,CAAC;EAErB,OACEW,eAAA,CAAA,KAAA,EAAA;IACEC,SAAS,EAAEC,IAAI,CACb,4DAA4D,EAC5DX,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAY,IAAAA,QAAA,EAAA,CAEDC,cAAA,CAAA,KAAA,EAAA;MAAKC,GAAG,EAAEN,KAAK,EAAEO,IAAI;AAAEL,MAAAA,SAAS,EAAC;AAAsB,KAAA,CAAG,EAC1DD,eAAA,CAAA,MAAA,EAAA;AAAMC,MAAAA,SAAS,EAAC,mEAAmE;MAAAE,QAAA,EAAA,CAChFJ,KAAK,EAAEQ,IAAI,IAAI,aAAa,EAC5B,sEAAsE;AAAA,KAAA,CAClE,EACPH,cAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,4BAA4B;AAAAE,MAAAA,QAAA,EACxCd,IAAI,CAACmB,GAAG,CAAEX,GAAG,IAAI;QAChB,MAAM,CAACY,UAAU,EAAEC,aAAa,CAAC,GAAGf,cAAQ,CAAC,KAAK,CAAC;QACnD,MAAMgB,UAAU,GAAGd,GAAG,CAACe,KAAK,KAAKC,UAAK,CAACC,QAAQ;QAC/C,MAAMC,QAAQ,GAAGlB,GAAG,CAACe,KAAK,KAAKC,UAAK,CAACG,MAAM;QAE3C,OACEhB,eAAA,CAACiB,oBAAY,EAAA;UAEXC,OAAO,EAAEzB,UAAU,KAAKI,GAAG;AAC3BsB,UAAAA,WAAW,EAAC,cAAc;AAC1BC,UAAAA,OAAO,EAAEA,MAAMxB,YAAY,CAACC,GAAG,CAAC;UAAA,IAC3B,CAACN,QAAQ,IAAI;AAChB8B,YAAAA,YAAY,EAAEA,MAAMX,aAAa,CAAC,IAAI,CAAC;AACvCY,YAAAA,YAAY,EAAEA,MAAMZ,aAAa,CAAC,KAAK;WACxC,CAAC;AACFT,UAAAA,SAAS,EAAC,wHAAwH;qBAEjIU,UAAU,GACTP,eAACmB,gBAAY,EAAA;AAACtB,YAAAA,SAAS,EAAC;YAAW,GACjCc,QAAQ,GACVX,eAACoB,cAAU,EAAA;AAACvB,YAAAA,SAAS,EAAC;AAAQ,WAAA,CAAG,GAEjCG,cAAA,CAAA,MAAA,EAAA;AAAMH,YAAAA,SAAS,EAAC,8EAA8E;;YAG/F,EAEDG,cAAA,CAAA,KAAA,EAAA;AAAKH,YAAAA,SAAS,EAAC,2BAA2B;sBACvCU,UAAU,GAAG,KAAK,GAAGI,QAAQ,GAAG,QAAQ,GAAG;AAAS,WAAA,CACjD,EAENX,cAAA,CAACqB,gCAAe,EAAA;YACdxB,SAAS,EAAEC,IAAI,CACb,oFAAoF,EACpFO,UAAU,GAAG,SAAS,GAAG,UAAU,CACpC;AACDH,YAAAA,IAAI,EAAEoB;AAAc,WAAA,CACpB;AAAA,SAAA,EA9BG7B,GAAG,CAACe,KAAK,CA+BD;MAEnB,CAAC;AAAC,KAAA,CACE;AAAA,GAAA,CACF;AAEV;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { ActionButton } from '../../design/Buttons.mjs';
|
|
4
|
+
import { EthereumLogo, SolanaLogo } from '../../design/Svg.mjs';
|
|
5
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
6
|
+
import { faChevronRight } from '@fortawesome/free-solid-svg-icons';
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
import { Chain } from '@turnkey/core';
|
|
10
|
+
import { useModal } from '../../../providers/modal/Hook.mjs';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A chain selector specifically for WalletConnect app entries.
|
|
14
|
+
* Displays available chains for a wallet app and allows the user to select one.
|
|
15
|
+
*/
|
|
16
|
+
function WalletConnectAppChainSelector(props) {
|
|
17
|
+
var _first$name;
|
|
18
|
+
var apps = props.apps,
|
|
19
|
+
onSelect = props.onSelect;
|
|
20
|
+
var _useModal = useModal(),
|
|
21
|
+
isMobile = _useModal.isMobile;
|
|
22
|
+
var _useState = useState(),
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
+
loadingApp = _useState2[0],
|
|
25
|
+
setLoadingApp = _useState2[1];
|
|
26
|
+
var handleSelect = /*#__PURE__*/function () {
|
|
27
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(app) {
|
|
28
|
+
return _regenerator().w(function (_context) {
|
|
29
|
+
while (1) switch (_context.p = _context.n) {
|
|
30
|
+
case 0:
|
|
31
|
+
setLoadingApp(app);
|
|
32
|
+
_context.p = 1;
|
|
33
|
+
_context.n = 2;
|
|
34
|
+
return onSelect(app);
|
|
35
|
+
case 2:
|
|
36
|
+
_context.p = 2;
|
|
37
|
+
setLoadingApp(undefined);
|
|
38
|
+
return _context.f(2);
|
|
39
|
+
case 3:
|
|
40
|
+
return _context.a(2);
|
|
41
|
+
}
|
|
42
|
+
}, _callee, null, [[1,, 2, 3]]);
|
|
43
|
+
}));
|
|
44
|
+
return function handleSelect(_x) {
|
|
45
|
+
return _ref.apply(this, arguments);
|
|
46
|
+
};
|
|
47
|
+
}();
|
|
48
|
+
var first = apps[0];
|
|
49
|
+
return jsxs("div", {
|
|
50
|
+
className: clsx("flex flex-col w-72 gap-4 mt-11 items-center justify-center", isMobile ? "w-full" : "w-72"),
|
|
51
|
+
children: [jsx("img", {
|
|
52
|
+
src: first === null || first === void 0 ? void 0 : first.icon,
|
|
53
|
+
className: "size-14 rounded-full"
|
|
54
|
+
}), jsxs("span", {
|
|
55
|
+
className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
|
|
56
|
+
children: [(_first$name = first === null || first === void 0 ? void 0 : first.name) !== null && _first$name !== void 0 ? _first$name : "This wallet", " supports multiple chains. Select which chain you would like to use."]
|
|
57
|
+
}), jsx("div", {
|
|
58
|
+
className: "w-full flex flex-col gap-2",
|
|
59
|
+
children: apps.map(function (app) {
|
|
60
|
+
var _useState3 = useState(false),
|
|
61
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
62
|
+
isHovering = _useState4[0],
|
|
63
|
+
setIsHovering = _useState4[1];
|
|
64
|
+
var isEthereum = app.chain === Chain.Ethereum;
|
|
65
|
+
var isSolana = app.chain === Chain.Solana;
|
|
66
|
+
return jsxs(ActionButton, _objectSpread2(_objectSpread2({
|
|
67
|
+
loading: loadingApp === app,
|
|
68
|
+
loadingText: "Preparing...",
|
|
69
|
+
onClick: function onClick() {
|
|
70
|
+
return handleSelect(app);
|
|
71
|
+
}
|
|
72
|
+
}, !isMobile && {
|
|
73
|
+
onMouseEnter: function onMouseEnter() {
|
|
74
|
+
return setIsHovering(true);
|
|
75
|
+
},
|
|
76
|
+
onMouseLeave: function onMouseLeave() {
|
|
77
|
+
return setIsHovering(false);
|
|
78
|
+
}
|
|
79
|
+
}), {}, {
|
|
80
|
+
className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
|
|
81
|
+
children: [isEthereum ? jsx(EthereumLogo, {
|
|
82
|
+
className: "size-5"
|
|
83
|
+
}) : isSolana ? jsx(SolanaLogo, {
|
|
84
|
+
className: "size-5"
|
|
85
|
+
}) : jsx("span", {
|
|
86
|
+
className: "size-5 flex items-center justify-center rounded bg-gray-300 dark:bg-gray-700",
|
|
87
|
+
children: "?"
|
|
88
|
+
}), jsx("div", {
|
|
89
|
+
className: "flex flex-col items-start",
|
|
90
|
+
children: isEthereum ? "EVM" : isSolana ? "Solana" : "Unknown"
|
|
91
|
+
}), jsx(FontAwesomeIcon, {
|
|
92
|
+
className: clsx("absolute transition-all duration-200 text-icon-text-light dark:text-icon-text-dark", isHovering ? "right-4" : "-right-4"),
|
|
93
|
+
icon: faChevronRight
|
|
94
|
+
})]
|
|
95
|
+
}), app.chain);
|
|
96
|
+
})
|
|
97
|
+
})]
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { WalletConnectAppChainSelector };
|
|
102
|
+
//# sourceMappingURL=WalletConnectAppChainSelector.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletConnectAppChainSelector.mjs","sources":["../../../../src/components/auth/wallet/WalletConnectAppChainSelector.tsx"],"sourcesContent":[null],"names":["WalletConnectAppChainSelector","props","_first$name","apps","onSelect","_useModal","useModal","isMobile","_useState","useState","_useState2","_slicedToArray","loadingApp","setLoadingApp","handleSelect","_ref","_asyncToGenerator","_regenerator","m","_callee","app","w","_context","p","n","undefined","f","a","_x","apply","arguments","first","_jsxs","className","clsx","children","_jsx","src","icon","name","map","_useState3","_useState4","isHovering","setIsHovering","isEthereum","chain","Chain","Ethereum","isSolana","Solana","ActionButton","_objectSpread","loading","loadingText","onClick","onMouseEnter","onMouseLeave","EthereumLogo","SolanaLogo","FontAwesomeIcon","faChevronRight"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { WalletProvider } from "@turnkey/core";
|
|
2
|
+
import { WalletSelectorMode } from "../../../types/base";
|
|
3
|
+
interface WalletConnectFlowProps {
|
|
4
|
+
/** The WalletConnect provider group (one per chain) */
|
|
5
|
+
providers: WalletProvider[];
|
|
6
|
+
/** The mode determines the flow behavior */
|
|
7
|
+
mode: WalletSelectorMode;
|
|
8
|
+
/** Session key for auth flow (only used when mode is Auth) */
|
|
9
|
+
sessionKey?: string | undefined;
|
|
10
|
+
/** Custom disconnect handler (e.g. to show success page). Falls back to a simple disconnect + pop. */
|
|
11
|
+
onDisconnect?: ((provider: WalletProvider) => Promise<void>) | undefined;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Orchestrates the WalletConnect connection flow.
|
|
15
|
+
*
|
|
16
|
+
* Desktop flow: Chain selector → QR code screen
|
|
17
|
+
* Mobile flow: App selector → Deep link screen (with QR fallback)
|
|
18
|
+
*/
|
|
19
|
+
export declare function WalletConnectFlow(props: WalletConnectFlowProps): null;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=WalletConnectFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletConnectFlow.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/wallet/WalletConnectFlow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,UAAU,sBAAsB;IAC9B,uDAAuD;IACvD,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,4CAA4C;IAC5C,IAAI,EAAE,kBAAkB,CAAC;IACzB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,sGAAsG;IACtG,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CAC1E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,QAwK9D"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var Hook = require('../../../providers/modal/Hook.js');
|
|
6
|
+
var Hook$1 = require('../../../providers/client/Hook.js');
|
|
7
|
+
var ExternalWalletChainSelector = require('./ExternalWalletChainSelector.js');
|
|
8
|
+
var DesktopWalletConnectScreen = require('./DesktopWalletConnectScreen.js');
|
|
9
|
+
var DisconnectWalletScreen = require('./DisconnectWalletScreen.js');
|
|
10
|
+
var MobileWalletConnectScreen = require('./MobileWalletConnectScreen.js');
|
|
11
|
+
var ShowAllWalletsScreen = require('./ShowAllWalletsScreen.js');
|
|
12
|
+
var base = require('../../../types/base.js');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Orchestrates the WalletConnect connection flow.
|
|
16
|
+
*
|
|
17
|
+
* Desktop flow: Chain selector → QR code screen
|
|
18
|
+
* Mobile flow: App selector → Deep link screen (with QR fallback)
|
|
19
|
+
*/
|
|
20
|
+
function WalletConnectFlow(props) {
|
|
21
|
+
const {
|
|
22
|
+
providers,
|
|
23
|
+
mode,
|
|
24
|
+
sessionKey,
|
|
25
|
+
onDisconnect
|
|
26
|
+
} = props;
|
|
27
|
+
const {
|
|
28
|
+
pushPage,
|
|
29
|
+
popPage,
|
|
30
|
+
isMobile
|
|
31
|
+
} = Hook.useModal();
|
|
32
|
+
const {
|
|
33
|
+
connectWalletAccount,
|
|
34
|
+
disconnectWalletAccount,
|
|
35
|
+
loginOrSignupWithWallet
|
|
36
|
+
} = Hook$1.useTurnkey();
|
|
37
|
+
const isConnectMode = mode === base.WalletSelectorMode.Connect;
|
|
38
|
+
// Check if any provider in the group is already connected
|
|
39
|
+
const isConnected = isConnectMode && providers.some(p => p.connectedAddresses?.length > 0);
|
|
40
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
41
|
+
// WalletConnect action handlers
|
|
42
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
43
|
+
const handleAction = async provider => {
|
|
44
|
+
if (mode === base.WalletSelectorMode.Auth) {
|
|
45
|
+
// Auth flow: loginOrSignupWithWallet handles connect + sign
|
|
46
|
+
await loginOrSignupWithWallet({
|
|
47
|
+
walletProvider: provider,
|
|
48
|
+
...(sessionKey && {
|
|
49
|
+
sessionKey
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
// Connect-only flow
|
|
54
|
+
await connectWalletAccount(provider);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const handleDisconnect = async provider => {
|
|
58
|
+
await disconnectWalletAccount(provider);
|
|
59
|
+
};
|
|
60
|
+
/** Push the DisconnectWalletScreen for a connected provider */
|
|
61
|
+
const pushDisconnectScreen = async provider => {
|
|
62
|
+
if (onDisconnect) {
|
|
63
|
+
await onDisconnect(provider);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
pushPage({
|
|
67
|
+
key: `Disconnect ${provider.info.name}`,
|
|
68
|
+
content: jsxRuntime.jsx(DisconnectWalletScreen.DisconnectWalletScreen, {
|
|
69
|
+
provider: provider,
|
|
70
|
+
onDisconnect: async p => {
|
|
71
|
+
await handleDisconnect(p);
|
|
72
|
+
popPage();
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
showTitle: false
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
79
|
+
// Screen navigation helpers
|
|
80
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
81
|
+
const pushDesktopQRCodeScreen = (provider, onSelectAllWallets) => {
|
|
82
|
+
pushPage({
|
|
83
|
+
key: "Connect WalletConnect",
|
|
84
|
+
content: jsxRuntime.jsx(DesktopWalletConnectScreen.DesktopWalletConnectScreen, {
|
|
85
|
+
provider: provider,
|
|
86
|
+
onAction: handleAction,
|
|
87
|
+
onDisconnect: handleDisconnect,
|
|
88
|
+
onSelectAllWallets: onSelectAllWallets
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
const pushDesktopChainSelector = onSelectAllWallets => {
|
|
93
|
+
pushPage({
|
|
94
|
+
key: `Select chain`,
|
|
95
|
+
content: jsxRuntime.jsx(ExternalWalletChainSelector.ExternalWalletChainSelector, {
|
|
96
|
+
providers: providers,
|
|
97
|
+
onDisconnect: isConnectMode ? pushDisconnectScreen : undefined,
|
|
98
|
+
onSelect: async provider => pushDesktopQRCodeScreen(provider, onSelectAllWallets)
|
|
99
|
+
})
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
/** Mobile: Deep link screen to open wallet app */
|
|
103
|
+
const pushMobileDeepLinkScreen = provider => {
|
|
104
|
+
pushPage({
|
|
105
|
+
key: `Open app`,
|
|
106
|
+
content: jsxRuntime.jsx(MobileWalletConnectScreen.MobileWalletConnectScreen, {
|
|
107
|
+
provider: provider,
|
|
108
|
+
onConnect: async p => {
|
|
109
|
+
await connectWalletAccount(p);
|
|
110
|
+
},
|
|
111
|
+
onSign: mode === base.WalletSelectorMode.Auth ? async p => {
|
|
112
|
+
await loginOrSignupWithWallet({
|
|
113
|
+
walletProvider: p,
|
|
114
|
+
...(sessionKey && {
|
|
115
|
+
sessionKey
|
|
116
|
+
})
|
|
117
|
+
});
|
|
118
|
+
} : undefined,
|
|
119
|
+
onSelectQRCode: async chain => {
|
|
120
|
+
// Fallback to QR code if deep link doesn't work
|
|
121
|
+
const chainProvider = providers.find(p => p.chainInfo.namespace === chain);
|
|
122
|
+
pushDesktopQRCodeScreen(chainProvider);
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
/** Mobile: Show all WalletConnect-compatible apps */
|
|
128
|
+
const pushMobileAppSelector = () => {
|
|
129
|
+
pushPage({
|
|
130
|
+
key: "Connect WalletConnect",
|
|
131
|
+
content: jsxRuntime.jsx(ShowAllWalletsScreen.ShowAllWalletsScreen, {
|
|
132
|
+
onSelect: async provider => pushMobileDeepLinkScreen(provider),
|
|
133
|
+
onSelectQRCode: async () => pushDesktopChainSelector()
|
|
134
|
+
})
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
138
|
+
// Flow selection
|
|
139
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
140
|
+
react.useEffect(() => {
|
|
141
|
+
// Mobile flow: App list -> deep link to wallet app
|
|
142
|
+
// Desktop flow: Chain selector -> QR code
|
|
143
|
+
//
|
|
144
|
+
// Exception: For "Connect Wallet" screen (disconnect possible),
|
|
145
|
+
// always use desktop flow since it shows connection status.
|
|
146
|
+
const useDesktopFlow = !isMobile || isConnected;
|
|
147
|
+
// Pop the WalletConnectFlow page itself so the back button on the next
|
|
148
|
+
// screen returns to the wallet list, not this empty orchestrator page.
|
|
149
|
+
popPage();
|
|
150
|
+
if (useDesktopFlow) {
|
|
151
|
+
pushDesktopChainSelector(async () => {
|
|
152
|
+
pushMobileAppSelector();
|
|
153
|
+
});
|
|
154
|
+
} else {
|
|
155
|
+
pushMobileAppSelector();
|
|
156
|
+
}
|
|
157
|
+
}, []);
|
|
158
|
+
// This component doesn't render anything - it just orchestrates navigation
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
exports.WalletConnectFlow = WalletConnectFlow;
|
|
163
|
+
//# sourceMappingURL=WalletConnectFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletConnectFlow.js","sources":["../../../../src/components/auth/wallet/WalletConnectFlow.tsx"],"sourcesContent":[null],"names":["WalletConnectFlow","props","providers","mode","sessionKey","onDisconnect","pushPage","popPage","isMobile","useModal","connectWalletAccount","disconnectWalletAccount","loginOrSignupWithWallet","useTurnkey","isConnectMode","WalletSelectorMode","Connect","isConnected","some","p","connectedAddresses","length","handleAction","provider","Auth","walletProvider","handleDisconnect","pushDisconnectScreen","key","info","name","content","_jsx","DisconnectWalletScreen","showTitle","pushDesktopQRCodeScreen","onSelectAllWallets","DesktopWalletConnectScreen","onAction","pushDesktopChainSelector","ExternalWalletChainSelector","undefined","onSelect","pushMobileDeepLinkScreen","MobileWalletConnectScreen","onConnect","onSign","onSelectQRCode","chain","chainProvider","find","chainInfo","namespace","pushMobileAppSelector","ShowAllWalletsScreen","useEffect","useDesktopFlow"],"mappings":"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"}
|