@abstraxn/signer-react 1.0.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.
Files changed (178) hide show
  1. package/README.md +114 -0
  2. package/dist/src/AbstraxnProvider.d.ts +9 -0
  3. package/dist/src/AbstraxnProvider.js +21 -0
  4. package/dist/src/AbstraxnProvider.js.map +1 -0
  5. package/dist/src/ConnectButton.css +217 -0
  6. package/dist/src/ConnectButton.d.ts +71 -0
  7. package/dist/src/ConnectButton.js +102 -0
  8. package/dist/src/ConnectButton.js.map +1 -0
  9. package/dist/src/ExternalWalletButtons.css +319 -0
  10. package/dist/src/ExternalWalletButtons.d.ts +56 -0
  11. package/dist/src/ExternalWalletButtons.js +272 -0
  12. package/dist/src/ExternalWalletButtons.js.map +1 -0
  13. package/dist/src/OnboardingUI.d.ts +63 -0
  14. package/dist/src/OnboardingUI.js +66 -0
  15. package/dist/src/OnboardingUI.js.map +1 -0
  16. package/dist/src/WalletModal.css +2319 -0
  17. package/dist/src/WalletModal.d.ts +7 -0
  18. package/dist/src/WalletModal.js +322 -0
  19. package/dist/src/WalletModal.js.map +1 -0
  20. package/dist/src/chains.d.ts +56 -0
  21. package/dist/src/chains.js +291 -0
  22. package/dist/src/chains.js.map +1 -0
  23. package/dist/src/components/AbstraxnProvider/AbstraxnProvider.d.ts +12 -0
  24. package/dist/src/components/AbstraxnProvider/AbstraxnProvider.js +146 -0
  25. package/dist/src/components/AbstraxnProvider/AbstraxnProvider.js.map +1 -0
  26. package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.d.ts +25 -0
  27. package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.js +3086 -0
  28. package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.js.map +1 -0
  29. package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithWagmi.d.ts +8 -0
  30. package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithWagmi.js +46 -0
  31. package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithWagmi.js.map +1 -0
  32. package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithoutWagmi.d.ts +8 -0
  33. package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithoutWagmi.js +12 -0
  34. package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithoutWagmi.js.map +1 -0
  35. package/dist/src/components/AbstraxnProvider/context.d.ts +2 -0
  36. package/dist/src/components/AbstraxnProvider/context.js +6 -0
  37. package/dist/src/components/AbstraxnProvider/context.js.map +1 -0
  38. package/dist/src/components/AbstraxnProvider/index.d.ts +6 -0
  39. package/dist/src/components/AbstraxnProvider/index.js +7 -0
  40. package/dist/src/components/AbstraxnProvider/index.js.map +1 -0
  41. package/dist/src/components/AbstraxnProvider/useAbstraxnProviderBase.d.ts +30 -0
  42. package/dist/src/components/AbstraxnProvider/useAbstraxnProviderBase.js +49 -0
  43. package/dist/src/components/AbstraxnProvider/useAbstraxnProviderBase.js.map +1 -0
  44. package/dist/src/components/AbstraxnProvider/useAbstraxnWallet.d.ts +2 -0
  45. package/dist/src/components/AbstraxnProvider/useAbstraxnWallet.js +13 -0
  46. package/dist/src/components/AbstraxnProvider/useAbstraxnWallet.js.map +1 -0
  47. package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.d.ts +22 -0
  48. package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.js +242 -0
  49. package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.js.map +1 -0
  50. package/dist/src/components/AbstraxnProvider/useWalletInitialization.d.ts +25 -0
  51. package/dist/src/components/AbstraxnProvider/useWalletInitialization.js +539 -0
  52. package/dist/src/components/AbstraxnProvider/useWalletInitialization.js.map +1 -0
  53. package/dist/src/components/AbstraxnProvider/utils.d.ts +41 -0
  54. package/dist/src/components/AbstraxnProvider/utils.js +139 -0
  55. package/dist/src/components/AbstraxnProvider/utils.js.map +1 -0
  56. package/dist/src/components/OnboardingUI/OnboardingUI.css +1062 -0
  57. package/dist/src/components/OnboardingUI/OnboardingUIReact.d.ts +15 -0
  58. package/dist/src/components/OnboardingUI/OnboardingUIReact.js +318 -0
  59. package/dist/src/components/OnboardingUI/OnboardingUIReact.js.map +1 -0
  60. package/dist/src/components/OnboardingUI/OnboardingUIWeb.d.ts +265 -0
  61. package/dist/src/components/OnboardingUI/OnboardingUIWeb.js +3782 -0
  62. package/dist/src/components/OnboardingUI/OnboardingUIWeb.js.map +1 -0
  63. package/dist/src/components/OnboardingUI/components/EmailForm.d.ts +16 -0
  64. package/dist/src/components/OnboardingUI/components/EmailForm.js +27 -0
  65. package/dist/src/components/OnboardingUI/components/EmailForm.js.map +1 -0
  66. package/dist/src/components/OnboardingUI/components/Modal.d.ts +14 -0
  67. package/dist/src/components/OnboardingUI/components/Modal.js +61 -0
  68. package/dist/src/components/OnboardingUI/components/Modal.js.map +1 -0
  69. package/dist/src/components/OnboardingUI/components/OtpForm.d.ts +20 -0
  70. package/dist/src/components/OnboardingUI/components/OtpForm.js +72 -0
  71. package/dist/src/components/OnboardingUI/components/OtpForm.js.map +1 -0
  72. package/dist/src/components/OnboardingUI/components/PasskeyButton.d.ts +14 -0
  73. package/dist/src/components/OnboardingUI/components/PasskeyButton.js +22 -0
  74. package/dist/src/components/OnboardingUI/components/PasskeyButton.js.map +1 -0
  75. package/dist/src/components/OnboardingUI/components/SocialButtons.d.ts +15 -0
  76. package/dist/src/components/OnboardingUI/components/SocialButtons.js +20 -0
  77. package/dist/src/components/OnboardingUI/components/SocialButtons.js.map +1 -0
  78. package/dist/src/components/OnboardingUI/components/index.d.ts +13 -0
  79. package/dist/src/components/OnboardingUI/components/index.js +9 -0
  80. package/dist/src/components/OnboardingUI/components/index.js.map +1 -0
  81. package/dist/src/components/OnboardingUI/hooks/index.d.ts +7 -0
  82. package/dist/src/components/OnboardingUI/hooks/index.js +6 -0
  83. package/dist/src/components/OnboardingUI/hooks/index.js.map +1 -0
  84. package/dist/src/components/OnboardingUI/hooks/useAuthMethods.d.ts +11 -0
  85. package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js +243 -0
  86. package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js.map +1 -0
  87. package/dist/src/components/OnboardingUI/hooks/useOnboarding.d.ts +21 -0
  88. package/dist/src/components/OnboardingUI/hooks/useOnboarding.js +153 -0
  89. package/dist/src/components/OnboardingUI/hooks/useOnboarding.js.map +1 -0
  90. package/dist/src/components/OnboardingUI/index.d.ts +12 -0
  91. package/dist/src/components/OnboardingUI/index.js +15 -0
  92. package/dist/src/components/OnboardingUI/index.js.map +1 -0
  93. package/dist/src/components/QRCode.d.ts +13 -0
  94. package/dist/src/components/QRCode.js +6 -0
  95. package/dist/src/components/QRCode.js.map +1 -0
  96. package/dist/src/components/WalletModal/components/ChainSelector.css +327 -0
  97. package/dist/src/components/WalletModal/components/ChainSelector.d.ts +11 -0
  98. package/dist/src/components/WalletModal/components/ChainSelector.js +75 -0
  99. package/dist/src/components/WalletModal/components/ChainSelector.js.map +1 -0
  100. package/dist/src/components/WalletModal/components/ExportKeyModal.css +134 -0
  101. package/dist/src/components/WalletModal/components/ExportKeyModal.d.ts +14 -0
  102. package/dist/src/components/WalletModal/components/ExportKeyModal.js +26 -0
  103. package/dist/src/components/WalletModal/components/ExportKeyModal.js.map +1 -0
  104. package/dist/src/components/WalletModal/components/ExportWarningModal.css +107 -0
  105. package/dist/src/components/WalletModal/components/ExportWarningModal.d.ts +17 -0
  106. package/dist/src/components/WalletModal/components/ExportWarningModal.js +20 -0
  107. package/dist/src/components/WalletModal/components/ExportWarningModal.js.map +1 -0
  108. package/dist/src/components/WalletModal/components/ManageWalletModal.css +246 -0
  109. package/dist/src/components/WalletModal/components/ManageWalletModal.d.ts +12 -0
  110. package/dist/src/components/WalletModal/components/ManageWalletModal.js +36 -0
  111. package/dist/src/components/WalletModal/components/ManageWalletModal.js.map +1 -0
  112. package/dist/src/components/WalletModal/components/PreviewTransactionModal.css +127 -0
  113. package/dist/src/components/WalletModal/components/PreviewTransactionModal.d.ts +17 -0
  114. package/dist/src/components/WalletModal/components/PreviewTransactionModal.js +10 -0
  115. package/dist/src/components/WalletModal/components/PreviewTransactionModal.js.map +1 -0
  116. package/dist/src/components/WalletModal/components/ReceiveModal.css +136 -0
  117. package/dist/src/components/WalletModal/components/ReceiveModal.d.ts +8 -0
  118. package/dist/src/components/WalletModal/components/ReceiveModal.js +22 -0
  119. package/dist/src/components/WalletModal/components/ReceiveModal.js.map +1 -0
  120. package/dist/src/components/WalletModal/components/SendModal.css +277 -0
  121. package/dist/src/components/WalletModal/components/SendModal.d.ts +16 -0
  122. package/dist/src/components/WalletModal/components/SendModal.js +219 -0
  123. package/dist/src/components/WalletModal/components/SendModal.js.map +1 -0
  124. package/dist/src/components/WalletModal/components/SuccessModal.css +85 -0
  125. package/dist/src/components/WalletModal/components/SuccessModal.d.ts +13 -0
  126. package/dist/src/components/WalletModal/components/SuccessModal.js +8 -0
  127. package/dist/src/components/WalletModal/components/SuccessModal.js.map +1 -0
  128. package/dist/src/components/WalletModal/components/TokenSelectorModal.css +240 -0
  129. package/dist/src/components/WalletModal/components/TokenSelectorModal.d.ts +21 -0
  130. package/dist/src/components/WalletModal/components/TokenSelectorModal.js +44 -0
  131. package/dist/src/components/WalletModal/components/TokenSelectorModal.js.map +1 -0
  132. package/dist/src/components/WalletModal/components/UserAvatar.d.ts +9 -0
  133. package/dist/src/components/WalletModal/components/UserAvatar.js +31 -0
  134. package/dist/src/components/WalletModal/components/UserAvatar.js.map +1 -0
  135. package/dist/src/components/WalletModal/components/index.d.ts +23 -0
  136. package/dist/src/components/WalletModal/components/index.js +14 -0
  137. package/dist/src/components/WalletModal/components/index.js.map +1 -0
  138. package/dist/src/components/WalletModal/hooks/index.d.ts +6 -0
  139. package/dist/src/components/WalletModal/hooks/index.js +7 -0
  140. package/dist/src/components/WalletModal/hooks/index.js.map +1 -0
  141. package/dist/src/components/WalletModal/hooks/useAddressValidation.d.ts +4 -0
  142. package/dist/src/components/WalletModal/hooks/useAddressValidation.js +17 -0
  143. package/dist/src/components/WalletModal/hooks/useAddressValidation.js.map +1 -0
  144. package/dist/src/components/WalletModal/hooks/useAmountValidation.d.ts +4 -0
  145. package/dist/src/components/WalletModal/hooks/useAmountValidation.js +29 -0
  146. package/dist/src/components/WalletModal/hooks/useAmountValidation.js.map +1 -0
  147. package/dist/src/components/WalletModal/hooks/useSendTransaction.d.ts +20 -0
  148. package/dist/src/components/WalletModal/hooks/useSendTransaction.js +55 -0
  149. package/dist/src/components/WalletModal/hooks/useSendTransaction.js.map +1 -0
  150. package/dist/src/components/WalletModal/index.d.ts +5 -0
  151. package/dist/src/components/WalletModal/index.js +7 -0
  152. package/dist/src/components/WalletModal/index.js.map +1 -0
  153. package/dist/src/components/WalletModal/utils/addressUtils.d.ts +19 -0
  154. package/dist/src/components/WalletModal/utils/addressUtils.js +62 -0
  155. package/dist/src/components/WalletModal/utils/addressUtils.js.map +1 -0
  156. package/dist/src/components/WalletModal/utils/formatUtils.d.ts +20 -0
  157. package/dist/src/components/WalletModal/utils/formatUtils.js +47 -0
  158. package/dist/src/components/WalletModal/utils/formatUtils.js.map +1 -0
  159. package/dist/src/components/WalletModal/utils/index.d.ts +5 -0
  160. package/dist/src/components/WalletModal/utils/index.js +6 -0
  161. package/dist/src/components/WalletModal/utils/index.js.map +1 -0
  162. package/dist/src/connectors.d.ts +27 -0
  163. package/dist/src/connectors.js +70 -0
  164. package/dist/src/connectors.js.map +1 -0
  165. package/dist/src/hooks.d.ts +13136 -0
  166. package/dist/src/hooks.js +1358 -0
  167. package/dist/src/hooks.js.map +1 -0
  168. package/dist/src/index.d.ts +17 -0
  169. package/dist/src/index.js +14 -0
  170. package/dist/src/index.js.map +1 -0
  171. package/dist/src/types.d.ts +224 -0
  172. package/dist/src/types.js +2 -0
  173. package/dist/src/types.js.map +1 -0
  174. package/dist/src/wagmiConfig.d.ts +16 -0
  175. package/dist/src/wagmiConfig.js +103 -0
  176. package/dist/src/wagmiConfig.js.map +1 -0
  177. package/dist/tsconfig.tsbuildinfo +1 -0
  178. package/package.json +70 -0
@@ -0,0 +1,7 @@
1
+ import "./WalletModal.css";
2
+ export interface WalletModalProps {
3
+ isOpen: boolean;
4
+ onClose: () => void;
5
+ onRampUrl?: string;
6
+ }
7
+ export declare function WalletModal({ isOpen, onClose, onRampUrl }: WalletModalProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,322 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * WalletModal Component - Refactored
4
+ * Main wallet management interface
5
+ */
6
+ import { useCallback, useEffect, useRef, useState, useMemo, } from "react";
7
+ import { useAbstraxnWallet } from "./AbstraxnProvider";
8
+ import { ExternalWalletButtons } from "./ExternalWalletButtons";
9
+ import { AbstraxnContext } from "./AbstraxnProvider";
10
+ import { createRoot } from "react-dom/client";
11
+ import { useExportWallet } from "./hooks";
12
+ import { generateP256KeyPair } from "@turnkey/crypto";
13
+ import { LuWallet } from "react-icons/lu";
14
+ import { formatAddress, formatBalance } from "./components/WalletModal/utils";
15
+ import { SendModal, ReceiveModal, ManageWalletModal, ChainSelector, ExportWarningModal, ExportKeyModal, UserAvatar, } from "./components/WalletModal/components";
16
+ import "./WalletModal.css";
17
+ export function WalletModal({ isOpen, onClose, onRampUrl }) {
18
+ const contextValue = useAbstraxnWallet();
19
+ const { address, user, disconnect, whoami, uiConfig, availableConnectors, sendTransaction, isExternalWalletConnected, switchChainEnhanced, currentChain, availableChains, externalWalletBalance, walletBalance, } = contextValue;
20
+ const { exportWallet } = useExportWallet();
21
+ const theme = uiConfig?.theme || "light";
22
+ const walletModalThemeVars = useMemo(() => {
23
+ const primaryFallback = theme === "dark" ? "#4b5563" : "#111827";
24
+ const primaryHoverFallback = theme === "dark" ? "#6b7280" : "#1f2937";
25
+ return {
26
+ ["--abstraxn-primary"]: uiConfig?.colors?.primary || primaryFallback,
27
+ ["--abstraxn-primary-hover"]: uiConfig?.colors?.primaryHover || primaryHoverFallback,
28
+ ["--abstraxn-primary-text"]: "#ffffff",
29
+ };
30
+ }, [theme, uiConfig?.colors?.primary, uiConfig?.colors?.primaryHover]);
31
+ const externalWalletsEnabled = availableConnectors && availableConnectors.length > 0;
32
+ const externalWalletContainerRef = useRef(null);
33
+ const externalWalletRootRef = useRef(null);
34
+ // Modal states
35
+ const [showReceiveModal, setShowReceiveModal] = useState(false);
36
+ const [showSendModal, setShowSendModal] = useState(false);
37
+ const [showManageModal, setShowManageModal] = useState(false);
38
+ const [showChainSelector, setShowChainSelector] = useState(false);
39
+ const [selectedChainType, setSelectedChainType] = useState("evm");
40
+ // Export states
41
+ const [showExportWarning, setShowExportWarning] = useState(false);
42
+ const [showExportKey, setShowExportKey] = useState(false);
43
+ const [exportedWalletResult, setExportedWalletResult] = useState(null);
44
+ const [isExporting, setIsExporting] = useState(false);
45
+ const [copied, setCopied] = useState(false);
46
+ // Get dynamic address based on selected chain
47
+ const displayAddress = useMemo(() => {
48
+ if (!currentChain)
49
+ return address;
50
+ if (currentChain.type === "solana" && whoami?.solanaAddress) {
51
+ return whoami.solanaAddress;
52
+ }
53
+ return address;
54
+ }, [currentChain, address, whoami?.solanaAddress]);
55
+ // Get balance with dynamic symbol
56
+ const balanceDisplay = useMemo(() => {
57
+ const balance = externalWalletBalance || walletBalance;
58
+ if (!currentChain) {
59
+ // If no chain selected, show default
60
+ if (!balance || balance === 0n)
61
+ return "0";
62
+ return formatBalance(balance, 18, "ETH");
63
+ }
64
+ const symbol = currentChain.nativeCurrency?.symbol || "ETH";
65
+ const decimals = currentChain.nativeCurrency?.decimals || 18;
66
+ if (!balance || balance === 0n) {
67
+ return `0 ${symbol}`;
68
+ }
69
+ return formatBalance(balance, decimals, symbol);
70
+ }, [currentChain, externalWalletBalance, walletBalance]);
71
+ // Close on Escape key
72
+ useEffect(() => {
73
+ const handleEscape = (e) => {
74
+ if (e.key === "Escape" && isOpen) {
75
+ if (showExportKey) {
76
+ setShowExportKey(false);
77
+ setExportedWalletResult(null);
78
+ }
79
+ else if (showExportWarning) {
80
+ setShowExportWarning(false);
81
+ }
82
+ else if (showReceiveModal) {
83
+ setShowReceiveModal(false);
84
+ }
85
+ else if (showSendModal) {
86
+ setShowSendModal(false);
87
+ }
88
+ else if (showManageModal) {
89
+ setShowManageModal(false);
90
+ }
91
+ else {
92
+ onClose();
93
+ }
94
+ }
95
+ };
96
+ window.addEventListener("keydown", handleEscape);
97
+ return () => window.removeEventListener("keydown", handleEscape);
98
+ }, [
99
+ isOpen,
100
+ onClose,
101
+ showReceiveModal,
102
+ showSendModal,
103
+ showManageModal,
104
+ showExportWarning,
105
+ showExportKey,
106
+ ]);
107
+ // Prevent body scroll when modal is open
108
+ useEffect(() => {
109
+ if (isOpen) {
110
+ // Calculate scrollbar width to prevent layout shift
111
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
112
+ // Store original padding to restore later
113
+ const originalPaddingRight = document.body.style.paddingRight;
114
+ const originalOverflow = document.body.style.overflow;
115
+ // Prevent scroll and compensate for scrollbar width
116
+ document.body.style.overflow = "hidden";
117
+ if (scrollbarWidth > 0) {
118
+ document.body.style.paddingRight = `${scrollbarWidth}px`;
119
+ }
120
+ return () => {
121
+ // Restore original styles
122
+ document.body.style.overflow = originalOverflow;
123
+ document.body.style.paddingRight = originalPaddingRight;
124
+ };
125
+ }
126
+ // Cleanup when modal is not open
127
+ document.body.style.overflow = "";
128
+ document.body.style.paddingRight = "";
129
+ return () => {
130
+ // Ensure cleanup on unmount
131
+ document.body.style.overflow = "";
132
+ document.body.style.paddingRight = "";
133
+ };
134
+ }, [isOpen]);
135
+ // Reset sub-modals when main modal closes
136
+ useEffect(() => {
137
+ if (!isOpen) {
138
+ setShowReceiveModal(false);
139
+ setShowSendModal(false);
140
+ setShowManageModal(false);
141
+ setShowChainSelector(false);
142
+ setShowExportWarning(false);
143
+ setShowExportKey(false);
144
+ setExportedWalletResult(null);
145
+ }
146
+ }, [isOpen]);
147
+ // Close chain selector when clicking outside
148
+ // Note: This is now handled by the overlay's onClick, but keeping this for edge cases
149
+ useEffect(() => {
150
+ if (!showChainSelector)
151
+ return;
152
+ const handleClickOutside = (e) => {
153
+ if (e.target instanceof Element) {
154
+ const target = e.target;
155
+ // Check for both the view class and the content wrapper
156
+ if (!target.closest(".wallet-modal-chain-selector-view") &&
157
+ !target.closest(".wallet-modal-content")) {
158
+ setShowChainSelector(false);
159
+ }
160
+ }
161
+ };
162
+ document.addEventListener("mousedown", handleClickOutside);
163
+ return () => document.removeEventListener("mousedown", handleClickOutside);
164
+ }, [showChainSelector]);
165
+ // Mount external wallet buttons
166
+ useEffect(() => {
167
+ if (!isOpen ||
168
+ !externalWalletsEnabled ||
169
+ !externalWalletContainerRef.current) {
170
+ return;
171
+ }
172
+ const container = externalWalletContainerRef.current;
173
+ if (!externalWalletRootRef.current) {
174
+ externalWalletRootRef.current = createRoot(container);
175
+ }
176
+ externalWalletRootRef.current.render(_jsx(AbstraxnContext.Provider, { value: contextValue, children: _jsx(ExternalWalletButtons, { onConnect: async () => { } }) }));
177
+ return () => {
178
+ if (externalWalletRootRef.current) {
179
+ externalWalletRootRef.current.unmount();
180
+ externalWalletRootRef.current = null;
181
+ }
182
+ };
183
+ }, [isOpen, externalWalletsEnabled, contextValue]);
184
+ const handleCopyAddress = useCallback(() => {
185
+ const addrToCopy = displayAddress || address;
186
+ if (addrToCopy) {
187
+ navigator.clipboard.writeText(addrToCopy);
188
+ setCopied(true);
189
+ setTimeout(() => setCopied(false), 2000);
190
+ }
191
+ }, [displayAddress, address]);
192
+ const handleSend = useCallback(() => {
193
+ setShowSendModal(true);
194
+ }, []);
195
+ const handleReceive = useCallback(() => {
196
+ setShowReceiveModal(true);
197
+ }, []);
198
+ const handleBuy = useCallback(() => {
199
+ if (onRampUrl) {
200
+ window.open(onRampUrl, "_blank", "noopener,noreferrer");
201
+ }
202
+ else {
203
+ window.open("https://global.transak.com/", "_blank", "noopener,noreferrer");
204
+ }
205
+ }, [onRampUrl]);
206
+ const handleManageWallet = useCallback(() => {
207
+ setShowManageModal(true);
208
+ }, []);
209
+ const handleDisconnect = useCallback(async () => {
210
+ try {
211
+ await disconnect();
212
+ onClose();
213
+ }
214
+ catch (error) {
215
+ console.error("Failed to disconnect:", error);
216
+ }
217
+ }, [disconnect, onClose]);
218
+ const handleExportPrivateKey = useCallback(() => {
219
+ setShowManageModal(false); // Close manage modal first
220
+ setShowExportWarning(true);
221
+ }, []);
222
+ const handleAcknowledgeExport = useCallback(async (acknowledged) => {
223
+ if (!acknowledged || isExporting)
224
+ return;
225
+ const requiredAddress = currentChain?.type === "solana"
226
+ ? whoami?.solanaAddress || displayAddress
227
+ : address || displayAddress;
228
+ if (!requiredAddress) {
229
+ console.error("Address not available for export");
230
+ return;
231
+ }
232
+ setIsExporting(true);
233
+ try {
234
+ const keyPair = await generateP256KeyPair();
235
+ const pvtKey = keyPair.privateKey;
236
+ const publicKey = keyPair.publicKeyUncompressed;
237
+ const blockchainType = currentChain?.type === "solana" ? "solana" : "evm";
238
+ const res = await exportWallet(publicKey, pvtKey, blockchainType);
239
+ setExportedWalletResult(`${res}`);
240
+ setShowExportWarning(false);
241
+ setShowExportKey(true);
242
+ }
243
+ catch (error) {
244
+ console.error("Failed to export wallet:", error);
245
+ setExportedWalletResult(null);
246
+ setShowExportWarning(false);
247
+ }
248
+ finally {
249
+ setIsExporting(false);
250
+ }
251
+ }, [
252
+ address,
253
+ displayAddress,
254
+ whoami?.solanaAddress,
255
+ currentChain,
256
+ exportWallet,
257
+ isExporting,
258
+ ]);
259
+ if (!isOpen)
260
+ return null;
261
+ // Render sub-modals in priority order
262
+ // ExportKeyModal has highest priority (shown after export)
263
+ if (showExportKey && exportedWalletResult) {
264
+ return (_jsx(ExportKeyModal, { isOpen: true, onClose: () => {
265
+ setShowExportKey(false);
266
+ setExportedWalletResult(null);
267
+ setShowExportWarning(false); // Ensure warning modal is also closed
268
+ setShowManageModal(true); // Go back to manage modal
269
+ }, privateKey: exportedWalletResult, theme: theme, style: walletModalThemeVars }));
270
+ }
271
+ // ExportWarningModal (shown before export)
272
+ if (showExportWarning) {
273
+ return (_jsx(ExportWarningModal, { isOpen: true, onClose: () => {
274
+ setShowExportWarning(false);
275
+ setShowManageModal(true); // Go back to manage modal when closing warning
276
+ }, onAcknowledge: handleAcknowledgeExport, currentChain: currentChain || null, isExporting: isExporting, theme: theme, style: walletModalThemeVars }));
277
+ }
278
+ // SendModal
279
+ if (showSendModal) {
280
+ return (_jsx(SendModal, { isOpen: true, onClose: () => setShowSendModal(false), currentChain: currentChain || null, displayAddress: displayAddress, availableBalance: externalWalletBalance || walletBalance || null, externalWalletBalance: externalWalletBalance || null, walletBalance: walletBalance || null, sendTransaction: sendTransaction, theme: theme }));
281
+ }
282
+ if (showReceiveModal) {
283
+ return (_jsx(ReceiveModal, { isOpen: true, onClose: () => setShowReceiveModal(false), address: displayAddress, theme: theme }));
284
+ }
285
+ // ManageWalletModal
286
+ if (showManageModal) {
287
+ return (_jsx(ManageWalletModal, { isOpen: true, onClose: () => setShowManageModal(false), displayAddress: displayAddress, userEmail: user?.email, organizationName: whoami?.organizationName, isExternalWalletConnected: isExternalWalletConnected || false, onExportPrivateKey: handleExportPrivateKey, theme: theme }));
288
+ }
289
+ // Main Modal
290
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: `wallet-modal-overlay wallet-modal-theme-${theme}`, onClick: showChainSelector ? undefined : onClose, style: showChainSelector ? { pointerEvents: "none" } : undefined, children: _jsxs("div", { className: `wallet-modal-content wallet-modal-theme-${theme} ${showChainSelector ? "selector-open" : ""}`, onClick: (e) => e.stopPropagation(), style: showChainSelector ? { pointerEvents: "auto" } : undefined, children: [_jsxs("div", { className: "wallet-modal-header", children: [_jsx("div", { className: "wallet-modal-header-left", children: _jsxs("div", { className: "wallet-modal-user-info", children: [_jsx("div", { className: "wallet-modal-avatar", children: _jsx(UserAvatar, { user: user, isExternalWalletConnected: isExternalWalletConnected || false }) }), _jsxs("div", { className: "wallet-modal-user-details", children: [_jsxs("div", { className: "wallet-modal-address", onClick: handleCopyAddress, children: [formatAddress(displayAddress || address), copied ? (_jsx("span", { className: "wallet-modal-copy-notification", children: "Copied!" })) : (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", className: "wallet-modal-copy-icon", children: [_jsx("path", { d: "M5.5 3.5H3.5C2.67157 3.5 2 4.17157 2 5V12.5C2 13.3284 2.67157 14 3.5 14H11C11.8284 14 12.5 13.3284 12.5 12.5V10.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M5.5 3.5C5.5 2.67157 6.17157 2 7 2H12.5C13.3284 2 14 2.67157 14 3.5V9C14 9.82843 13.3284 10.5 12.5 10.5H7C6.17157 10.5 5.5 9.82843 5.5 9V3.5Z", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] }))] }), user?.email && (_jsx("div", { className: "wallet-modal-email", children: user.email }))] })] }) }), _jsx("div", { className: "wallet-modal-header-right", children: _jsx("button", { className: "wallet-modal-close", onClick: onClose, "aria-label": "Close", children: _jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: _jsx("path", { d: "M18 6L6 18M6 6L18 18", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }) })] }), !isExternalWalletConnected && (_jsxs("div", { className: "wallet-modal-actions", children: [_jsxs("button", { className: "wallet-modal-action-btn", onClick: handleSend, children: [_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "22", y1: "2", x2: "11", y2: "13" }), _jsx("polygon", { points: "22 2 15 22 11 13 2 9 22 2" })] }), _jsx("span", { children: "Send" })] }), _jsxs("button", { className: "wallet-modal-action-btn", onClick: handleReceive, children: [_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "7 10 12 15 17 10" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] }), _jsx("span", { children: "Receive" })] }), _jsxs("button", { className: "wallet-modal-action-btn", onClick: handleBuy, children: [_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "12", y1: "5", x2: "12", y2: "19" }), _jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })] }), _jsx("span", { children: "Buy" })] })] })), !isExternalWalletConnected && currentChain && (_jsxs("div", { className: "wallet-modal-asset", onClick: () => setShowChainSelector(true), children: [_jsxs("div", { className: "wallet-modal-asset-info", children: [_jsxs("div", { className: "wallet-modal-asset-icon-wrapper", children: [currentChain.iconUrl ? (_jsx("img", { src: currentChain.iconUrl, alt: currentChain.displayName, className: "wallet-modal-asset-icon-img" })) : (_jsx("div", { className: "wallet-modal-asset-icon", children: _jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M12 2v20M2 12h20" })] }) })), _jsx("span", { className: "wallet-modal-asset-status" })] }), _jsxs("div", { className: "wallet-modal-asset-details", children: [_jsx("div", { className: "wallet-modal-asset-name", children: currentChain.displayName }), _jsx("div", { className: "wallet-modal-asset-balance", children: balanceDisplay })] })] }), _jsx("div", { className: "wallet-modal-asset-arrow", children: _jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "9 18 15 12 9 6" }) }) })] })), _jsxs("div", { className: "wallet-modal-menu", children: [_jsxs("button", { className: "wallet-modal-menu-item", onClick: handleManageWallet, children: [_jsx(LuWallet, { size: 20 }), _jsx("span", { children: "Manage Wallet" })] }), _jsxs("button", { className: "wallet-modal-menu-item wallet-modal-menu-item-disconnect", onClick: handleDisconnect, children: [_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: [_jsx("path", { d: "M7 3H4C3.44772 3 3 3.44772 3 4V16C3 16.5523 3.44772 17 4 17H7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M13 7L17 10L13 13", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M17 10H9", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] }), _jsx("span", { children: "Disconnect" })] })] })] }) }), showChainSelector && (_jsx("div", { className: `wallet-modal-overlay wallet-modal-theme-${theme}`, style: { zIndex: 10006, pointerEvents: "auto" }, onClick: (e) => {
291
+ e.stopPropagation();
292
+ setShowChainSelector(false);
293
+ }, children: _jsx("div", { className: `wallet-modal-content wallet-modal-theme-${theme}`, onClick: (e) => e.stopPropagation(), children: _jsx(ChainSelector, { isOpen: showChainSelector, onClose: () => setShowChainSelector(false), currentChain: currentChain || null, availableChains: availableChains || [], onChainSelect: async (chainId) => {
294
+ console.log("Chain select triggered:", {
295
+ chainId,
296
+ currentChainId: currentChain?.id,
297
+ hasSwitchChainEnhanced: !!switchChainEnhanced,
298
+ });
299
+ // If selecting the same chain, just close
300
+ if (chainId === currentChain?.id) {
301
+ setShowChainSelector(false);
302
+ return;
303
+ }
304
+ // Switch to a different chain
305
+ if (switchChainEnhanced) {
306
+ try {
307
+ await switchChainEnhanced(chainId);
308
+ // Only close if switch was successful
309
+ setShowChainSelector(false);
310
+ }
311
+ catch (error) {
312
+ console.error("Failed to switch chain:", error);
313
+ // Don't close the selector on error so user can try again
314
+ }
315
+ }
316
+ else {
317
+ console.warn("switchChainEnhanced not available");
318
+ setShowChainSelector(false);
319
+ }
320
+ }, theme: theme }) }) }))] }));
321
+ }
322
+ //# sourceMappingURL=WalletModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletModal.js","sourceRoot":"","sources":["../../src/WalletModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Chain Constants
3
+ * Complete chain data for EVM and Solana networks
4
+ */
5
+ export interface ChainData {
6
+ id: number;
7
+ name: string;
8
+ displayName: string;
9
+ rpcUrl: string;
10
+ explorerUrl: string;
11
+ icon?: string;
12
+ iconUrl?: string;
13
+ nativeCurrency: {
14
+ name: string;
15
+ symbol: string;
16
+ decimals: number;
17
+ };
18
+ type: "evm" | "solana";
19
+ isTestnet: boolean;
20
+ blockExplorer?: {
21
+ name: string;
22
+ url: string;
23
+ };
24
+ }
25
+ /**
26
+ * EVM Chains
27
+ */
28
+ export declare const EVM_CHAINS: Record<string, ChainData>;
29
+ /**
30
+ * Solana Chains
31
+ */
32
+ export declare const SOLANA_CHAINS: Record<string, ChainData>;
33
+ /**
34
+ * All available chains
35
+ */
36
+ export declare const ALL_CHAINS: Record<string, ChainData>;
37
+ /**
38
+ * Get chain by ID
39
+ */
40
+ export declare function getChainById(chainId: number): ChainData | undefined;
41
+ /**
42
+ * Get chains by type
43
+ */
44
+ export declare function getChainsByType(type: "evm" | "solana"): ChainData[];
45
+ /**
46
+ * Get default chains (Ethereum, Polygon, Base for EVM; Solana for Solana)
47
+ */
48
+ export declare function getDefaultChains(): ChainData[];
49
+ /**
50
+ * Convert ChainData to Core Chain format for SDK compatibility
51
+ */
52
+ export declare function toCoreChain(chainData: ChainData): import("@abstraxn/signer-core").Chain;
53
+ /**
54
+ * Get chain icon SVG path (placeholder - can be replaced with actual icons)
55
+ */
56
+ export declare function getChainIcon(chainId: number): string;