@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.
- package/README.md +114 -0
- package/dist/src/AbstraxnProvider.d.ts +9 -0
- package/dist/src/AbstraxnProvider.js +21 -0
- package/dist/src/AbstraxnProvider.js.map +1 -0
- package/dist/src/ConnectButton.css +217 -0
- package/dist/src/ConnectButton.d.ts +71 -0
- package/dist/src/ConnectButton.js +102 -0
- package/dist/src/ConnectButton.js.map +1 -0
- package/dist/src/ExternalWalletButtons.css +319 -0
- package/dist/src/ExternalWalletButtons.d.ts +56 -0
- package/dist/src/ExternalWalletButtons.js +272 -0
- package/dist/src/ExternalWalletButtons.js.map +1 -0
- package/dist/src/OnboardingUI.d.ts +63 -0
- package/dist/src/OnboardingUI.js +66 -0
- package/dist/src/OnboardingUI.js.map +1 -0
- package/dist/src/WalletModal.css +2319 -0
- package/dist/src/WalletModal.d.ts +7 -0
- package/dist/src/WalletModal.js +322 -0
- package/dist/src/WalletModal.js.map +1 -0
- package/dist/src/chains.d.ts +56 -0
- package/dist/src/chains.js +291 -0
- package/dist/src/chains.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProvider.d.ts +12 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProvider.js +146 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProvider.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.d.ts +25 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.js +3086 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderInner.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithWagmi.d.ts +8 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithWagmi.js +46 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithWagmi.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithoutWagmi.d.ts +8 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithoutWagmi.js +12 -0
- package/dist/src/components/AbstraxnProvider/AbstraxnProviderWithoutWagmi.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/context.d.ts +2 -0
- package/dist/src/components/AbstraxnProvider/context.js +6 -0
- package/dist/src/components/AbstraxnProvider/context.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/index.d.ts +6 -0
- package/dist/src/components/AbstraxnProvider/index.js +7 -0
- package/dist/src/components/AbstraxnProvider/index.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/useAbstraxnProviderBase.d.ts +30 -0
- package/dist/src/components/AbstraxnProvider/useAbstraxnProviderBase.js +49 -0
- package/dist/src/components/AbstraxnProvider/useAbstraxnProviderBase.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/useAbstraxnWallet.d.ts +2 -0
- package/dist/src/components/AbstraxnProvider/useAbstraxnWallet.js +13 -0
- package/dist/src/components/AbstraxnProvider/useAbstraxnWallet.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.d.ts +22 -0
- package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.js +242 -0
- package/dist/src/components/AbstraxnProvider/useOAuthCallbacks.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/useWalletInitialization.d.ts +25 -0
- package/dist/src/components/AbstraxnProvider/useWalletInitialization.js +539 -0
- package/dist/src/components/AbstraxnProvider/useWalletInitialization.js.map +1 -0
- package/dist/src/components/AbstraxnProvider/utils.d.ts +41 -0
- package/dist/src/components/AbstraxnProvider/utils.js +139 -0
- package/dist/src/components/AbstraxnProvider/utils.js.map +1 -0
- package/dist/src/components/OnboardingUI/OnboardingUI.css +1062 -0
- package/dist/src/components/OnboardingUI/OnboardingUIReact.d.ts +15 -0
- package/dist/src/components/OnboardingUI/OnboardingUIReact.js +318 -0
- package/dist/src/components/OnboardingUI/OnboardingUIReact.js.map +1 -0
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.d.ts +265 -0
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.js +3782 -0
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/EmailForm.d.ts +16 -0
- package/dist/src/components/OnboardingUI/components/EmailForm.js +27 -0
- package/dist/src/components/OnboardingUI/components/EmailForm.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/Modal.d.ts +14 -0
- package/dist/src/components/OnboardingUI/components/Modal.js +61 -0
- package/dist/src/components/OnboardingUI/components/Modal.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/OtpForm.d.ts +20 -0
- package/dist/src/components/OnboardingUI/components/OtpForm.js +72 -0
- package/dist/src/components/OnboardingUI/components/OtpForm.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/PasskeyButton.d.ts +14 -0
- package/dist/src/components/OnboardingUI/components/PasskeyButton.js +22 -0
- package/dist/src/components/OnboardingUI/components/PasskeyButton.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/SocialButtons.d.ts +15 -0
- package/dist/src/components/OnboardingUI/components/SocialButtons.js +20 -0
- package/dist/src/components/OnboardingUI/components/SocialButtons.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/index.d.ts +13 -0
- package/dist/src/components/OnboardingUI/components/index.js +9 -0
- package/dist/src/components/OnboardingUI/components/index.js.map +1 -0
- package/dist/src/components/OnboardingUI/hooks/index.d.ts +7 -0
- package/dist/src/components/OnboardingUI/hooks/index.js +6 -0
- package/dist/src/components/OnboardingUI/hooks/index.js.map +1 -0
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.d.ts +11 -0
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js +243 -0
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js.map +1 -0
- package/dist/src/components/OnboardingUI/hooks/useOnboarding.d.ts +21 -0
- package/dist/src/components/OnboardingUI/hooks/useOnboarding.js +153 -0
- package/dist/src/components/OnboardingUI/hooks/useOnboarding.js.map +1 -0
- package/dist/src/components/OnboardingUI/index.d.ts +12 -0
- package/dist/src/components/OnboardingUI/index.js +15 -0
- package/dist/src/components/OnboardingUI/index.js.map +1 -0
- package/dist/src/components/QRCode.d.ts +13 -0
- package/dist/src/components/QRCode.js +6 -0
- package/dist/src/components/QRCode.js.map +1 -0
- package/dist/src/components/WalletModal/components/ChainSelector.css +327 -0
- package/dist/src/components/WalletModal/components/ChainSelector.d.ts +11 -0
- package/dist/src/components/WalletModal/components/ChainSelector.js +75 -0
- package/dist/src/components/WalletModal/components/ChainSelector.js.map +1 -0
- package/dist/src/components/WalletModal/components/ExportKeyModal.css +134 -0
- package/dist/src/components/WalletModal/components/ExportKeyModal.d.ts +14 -0
- package/dist/src/components/WalletModal/components/ExportKeyModal.js +26 -0
- package/dist/src/components/WalletModal/components/ExportKeyModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/ExportWarningModal.css +107 -0
- package/dist/src/components/WalletModal/components/ExportWarningModal.d.ts +17 -0
- package/dist/src/components/WalletModal/components/ExportWarningModal.js +20 -0
- package/dist/src/components/WalletModal/components/ExportWarningModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/ManageWalletModal.css +246 -0
- package/dist/src/components/WalletModal/components/ManageWalletModal.d.ts +12 -0
- package/dist/src/components/WalletModal/components/ManageWalletModal.js +36 -0
- package/dist/src/components/WalletModal/components/ManageWalletModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/PreviewTransactionModal.css +127 -0
- package/dist/src/components/WalletModal/components/PreviewTransactionModal.d.ts +17 -0
- package/dist/src/components/WalletModal/components/PreviewTransactionModal.js +10 -0
- package/dist/src/components/WalletModal/components/PreviewTransactionModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/ReceiveModal.css +136 -0
- package/dist/src/components/WalletModal/components/ReceiveModal.d.ts +8 -0
- package/dist/src/components/WalletModal/components/ReceiveModal.js +22 -0
- package/dist/src/components/WalletModal/components/ReceiveModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/SendModal.css +277 -0
- package/dist/src/components/WalletModal/components/SendModal.d.ts +16 -0
- package/dist/src/components/WalletModal/components/SendModal.js +219 -0
- package/dist/src/components/WalletModal/components/SendModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/SuccessModal.css +85 -0
- package/dist/src/components/WalletModal/components/SuccessModal.d.ts +13 -0
- package/dist/src/components/WalletModal/components/SuccessModal.js +8 -0
- package/dist/src/components/WalletModal/components/SuccessModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/TokenSelectorModal.css +240 -0
- package/dist/src/components/WalletModal/components/TokenSelectorModal.d.ts +21 -0
- package/dist/src/components/WalletModal/components/TokenSelectorModal.js +44 -0
- package/dist/src/components/WalletModal/components/TokenSelectorModal.js.map +1 -0
- package/dist/src/components/WalletModal/components/UserAvatar.d.ts +9 -0
- package/dist/src/components/WalletModal/components/UserAvatar.js +31 -0
- package/dist/src/components/WalletModal/components/UserAvatar.js.map +1 -0
- package/dist/src/components/WalletModal/components/index.d.ts +23 -0
- package/dist/src/components/WalletModal/components/index.js +14 -0
- package/dist/src/components/WalletModal/components/index.js.map +1 -0
- package/dist/src/components/WalletModal/hooks/index.d.ts +6 -0
- package/dist/src/components/WalletModal/hooks/index.js +7 -0
- package/dist/src/components/WalletModal/hooks/index.js.map +1 -0
- package/dist/src/components/WalletModal/hooks/useAddressValidation.d.ts +4 -0
- package/dist/src/components/WalletModal/hooks/useAddressValidation.js +17 -0
- package/dist/src/components/WalletModal/hooks/useAddressValidation.js.map +1 -0
- package/dist/src/components/WalletModal/hooks/useAmountValidation.d.ts +4 -0
- package/dist/src/components/WalletModal/hooks/useAmountValidation.js +29 -0
- package/dist/src/components/WalletModal/hooks/useAmountValidation.js.map +1 -0
- package/dist/src/components/WalletModal/hooks/useSendTransaction.d.ts +20 -0
- package/dist/src/components/WalletModal/hooks/useSendTransaction.js +55 -0
- package/dist/src/components/WalletModal/hooks/useSendTransaction.js.map +1 -0
- package/dist/src/components/WalletModal/index.d.ts +5 -0
- package/dist/src/components/WalletModal/index.js +7 -0
- package/dist/src/components/WalletModal/index.js.map +1 -0
- package/dist/src/components/WalletModal/utils/addressUtils.d.ts +19 -0
- package/dist/src/components/WalletModal/utils/addressUtils.js +62 -0
- package/dist/src/components/WalletModal/utils/addressUtils.js.map +1 -0
- package/dist/src/components/WalletModal/utils/formatUtils.d.ts +20 -0
- package/dist/src/components/WalletModal/utils/formatUtils.js +47 -0
- package/dist/src/components/WalletModal/utils/formatUtils.js.map +1 -0
- package/dist/src/components/WalletModal/utils/index.d.ts +5 -0
- package/dist/src/components/WalletModal/utils/index.js +6 -0
- package/dist/src/components/WalletModal/utils/index.js.map +1 -0
- package/dist/src/connectors.d.ts +27 -0
- package/dist/src/connectors.js +70 -0
- package/dist/src/connectors.js.map +1 -0
- package/dist/src/hooks.d.ts +13136 -0
- package/dist/src/hooks.js +1358 -0
- package/dist/src/hooks.js.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/types.d.ts +224 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/wagmiConfig.d.ts +16 -0
- package/dist/src/wagmiConfig.js +103 -0
- package/dist/src/wagmiConfig.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- 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;
|