@n1xyz/wallet-widget 0.0.9 → 0.0.11
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/Logic/transactionManager.d.ts +1 -1
- package/dist/Logic/transactionManager.js +1 -1
- package/dist/Logic/transactionManager.js.map +1 -1
- package/dist/Modal/LoadingFallback.js +1 -1
- package/dist/Modal/LoadingFallback.js.map +1 -1
- package/dist/Modal/NTSFlow/LoadingFallback.js +1 -1
- package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -1
- package/dist/Modal/NTSFlow/components/BackButton.js +2 -2
- package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -1
- package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -1
- package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -1
- package/dist/Modal/NTSFlow/views/ConnectView.js +2 -2
- package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateSessionView.js +5 -5
- package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -1
- package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js +3 -3
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/SigningView.js +1 -1
- package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -1
- package/dist/Modal/NordFlow/NordFlow.js +22 -228
- package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
- package/dist/Modal/NordFlow/components/ChainButton.js +5 -5
- package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/EVMChainsButton.js +4 -4
- package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/Header.d.ts +10 -0
- package/dist/Modal/NordFlow/components/Header.js +11 -0
- package/dist/Modal/NordFlow/components/Header.js.map +1 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
- package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
- package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -1
- package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -1
- package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
- package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/TransactionTable.js +7 -10
- package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
- package/dist/Modal/NordFlow/components/index.d.ts +1 -0
- package/dist/Modal/NordFlow/components/index.js +1 -0
- package/dist/Modal/NordFlow/components/index.js.map +1 -1
- package/dist/Modal/NordFlow/constants.js +116 -95
- package/dist/Modal/NordFlow/constants.js.map +1 -1
- package/dist/Modal/NordFlow/context/DepositContext.d.ts +27 -0
- package/dist/Modal/NordFlow/context/DepositContext.js +308 -0
- package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/FlowContext.d.ts +23 -0
- package/dist/Modal/NordFlow/context/FlowContext.js +125 -0
- package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/NordProvider.d.ts +10 -0
- package/dist/Modal/NordFlow/context/NordProvider.js +14 -0
- package/dist/Modal/NordFlow/context/NordProvider.js.map +1 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +20 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.js +214 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/types.d.ts +26 -0
- package/dist/Modal/NordFlow/context/deposit/types.js +2 -0
- package/dist/Modal/NordFlow/context/deposit/types.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +7 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +113 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +20 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +235 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +1 -0
- package/dist/Modal/NordFlow/context/index.d.ts +5 -0
- package/dist/Modal/NordFlow/context/index.js +8 -0
- package/dist/Modal/NordFlow/context/index.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/index.d.ts +3 -5
- package/dist/Modal/NordFlow/hooks/index.js +3 -5
- package/dist/Modal/NordFlow/hooks/index.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js +2 -4
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -6
- package/dist/Modal/NordFlow/hooks/useNordInstance.js +2 -358
- package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -1
- package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/00-IdleScreen.js +9 -0
- package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +12 -6
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +1 -5
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +13 -16
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +1 -7
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +11 -9
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +1 -13
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +59 -31
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +9 -4
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +1 -8
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +18 -7
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +15 -121
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +10 -5
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +1 -7
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +9 -9
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/index.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/index.js +1 -0
- package/dist/Modal/NordFlow/screens/index.js.map +1 -1
- package/dist/Modal/NordFlow/types.d.ts +0 -5
- package/dist/Modal/NordFlow/types.js +0 -1
- package/dist/Modal/NordFlow/types.js.map +1 -1
- package/dist/Modal/NordFlow/utils/index.d.ts +0 -1
- package/dist/Modal/NordFlow/utils/index.js +0 -1
- package/dist/Modal/NordFlow/utils/index.js.map +1 -1
- package/dist/Modal/Sidebar/N1Sidebar.js +10 -10
- package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +3 -3
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +4 -4
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +6 -6
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +3 -3
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +7 -7
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +13 -13
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +4 -4
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
- package/dist/Provider/LazyWalletProvider.js +2 -0
- package/dist/Provider/LazyWalletProvider.js.map +1 -1
- package/dist/Provider/N1WalletProvider.js +48 -63
- package/dist/Provider/N1WalletProvider.js.map +1 -1
- package/dist/Provider/WalletErrorBoundary.d.ts +10 -0
- package/dist/Provider/WalletErrorBoundary.js +39 -0
- package/dist/Provider/WalletErrorBoundary.js.map +1 -0
- package/dist/Provider/hooks/useNordUserInitialization.d.ts +20 -0
- package/dist/Provider/hooks/useNordUserInitialization.js +293 -0
- package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -0
- package/dist/Provider/types.d.ts +2 -0
- package/dist/Provider/types.js.map +1 -1
- package/dist/Provider/useN1WalletProvider.d.ts +37 -0
- package/dist/Provider/useN1WalletProvider.js +398 -0
- package/dist/Provider/useN1WalletProvider.js.map +1 -0
- package/dist/components/QRCodeLoader.js +1 -1
- package/dist/components/QRCodeLoader.js.map +1 -1
- package/dist/components/logos/EVMChainsGroup.js +1 -1
- package/dist/components/logos/EVMChainsGroup.js.map +1 -1
- package/dist/components/logos/MoreChainsGroup.js +1 -1
- package/dist/components/logos/MoreChainsGroup.js.map +1 -1
- package/dist/main.css +1 -1
- package/package.json +1 -1
|
@@ -31,18 +31,18 @@ export function TransactionTable(_a) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
if (key === 'tx') {
|
|
34
|
-
return 'text-
|
|
34
|
+
return 'text-n1-main-600 dark:text-n1-main-400 text-xs font-medium hover:text-n1-main-700 dark:hover:text-n1-main-300 transition-colors duration-200';
|
|
35
35
|
}
|
|
36
36
|
if (key === 'network') {
|
|
37
37
|
return 'text-purple-600 dark:text-purple-400 font-medium';
|
|
38
38
|
}
|
|
39
39
|
if (key === 'from' || key === 'to') {
|
|
40
|
-
return 'text-gray-800 dark:text-gray-200 text-xs font-medium hover:text-
|
|
40
|
+
return 'text-n1-gray-800 dark:text-n1-gray-200 text-xs font-medium hover:text-n1-main-600 dark:hover:text-n1-main-400 transition-colors duration-200';
|
|
41
41
|
}
|
|
42
42
|
if (key === 'amount') {
|
|
43
43
|
return 'text-green-600 dark:text-emerald-500 font-semibold';
|
|
44
44
|
}
|
|
45
|
-
return 'text-gray-900 dark:text-gray-50 font-medium';
|
|
45
|
+
return 'text-n1-gray-900 dark:text-n1-gray-50 font-medium';
|
|
46
46
|
};
|
|
47
47
|
// Format display value with ellipsis for long text
|
|
48
48
|
var getDisplayValue = function (key, value) {
|
|
@@ -56,11 +56,8 @@ export function TransactionTable(_a) {
|
|
|
56
56
|
};
|
|
57
57
|
// Get explorer URL for transaction ID or address
|
|
58
58
|
var getExplorerLink = function (key, value) {
|
|
59
|
-
var _a;
|
|
60
|
-
// Extract network from tableValues to determine which explorer to use
|
|
61
|
-
var network = ((_a = tableValues.network) === null || _a === void 0 ? void 0 : _a.text) || 'solana-mainnet';
|
|
62
59
|
if (key === 'tx') {
|
|
63
|
-
return getExplorerUrl(value
|
|
60
|
+
return getExplorerUrl(value);
|
|
64
61
|
}
|
|
65
62
|
if (key === 'from') {
|
|
66
63
|
return "https://explorer.solana.com/address/".concat(value, "?cluster=devnet");
|
|
@@ -77,10 +74,10 @@ export function TransactionTable(_a) {
|
|
|
77
74
|
var indexB = fieldOrder.indexOf(keyB);
|
|
78
75
|
return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);
|
|
79
76
|
});
|
|
80
|
-
return (_jsxs("div", { className: "relative w-full h-full bg-gray-100 dark:bg-gray-950 border border-gray-200 dark:border-gray-800 p-5 rounded-sm flex flex-col justify-center", children: [onClose && (_jsx("button", { onClick: onClose, className: "absolute top-3 right-2 text-gray-500 dark:text-gray-600 hover:text-gray-500 dark:hover:text-gray-300 transition-colors duration-200 focus:outline-none", "aria-label": "Close details", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })), _jsx("div", { className: "space-y-3 text-sm pt-5", children: sortedEntries.map(function (_a) {
|
|
77
|
+
return (_jsxs("div", { className: "relative w-full h-full bg-n1-gray-100 dark:bg-n1-gray-950 border border-n1-gray-200 dark:border-n1-gray-800 p-5 rounded-sm flex flex-col justify-center", children: [onClose && (_jsx("button", { onClick: onClose, className: "absolute top-3 right-2 text-n1-gray-500 dark:text-n1-gray-600 hover:text-n1-gray-500 dark:hover:text-n1-gray-300 transition-colors duration-200 focus:outline-none", "aria-label": "Close details", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })), _jsx("div", { className: "space-y-3 text-sm pt-5", children: sortedEntries.map(function (_a) {
|
|
81
78
|
var key = _a[0], value = _a[1];
|
|
82
|
-
return (_jsxs("div", { className: "flex items-center justify-between py-2 ", children: [_jsx("span", { className: "text-gray-500 dark:text-gray-400 font-medium min-w-[120px]", children: getLabel(key) }), _jsxs("div", { className: "relative transition-all duration-300 ".concat(value.visible ? 'opacity-100' : 'opacity-0', " max-w-[65%] text-right flex-1"), children: [(key === 'tx' || key === 'from') &&
|
|
83
|
-
getExplorerLink(key, value.text) ? (_jsxs("a", { href: getExplorerLink(key, value.text), target: "_blank", rel: "noopener noreferrer", className: "".concat(getValueStyles(key, value.text), " break-all inline-block group"), title: value.text, children: [_jsx("span", { className: "underline hover:font-bold", children: getDisplayValue(key, value.text) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] })) : (_jsx("span", { className: "".concat(getValueStyles(key, value.text), " break-all inline-block"), title: value.text, children: value.text })), value.typing && (_jsx("span", { className: "inline-block ml-1 w-[2px] h-[14px] bg-
|
|
79
|
+
return (_jsxs("div", { className: "flex items-center justify-between py-2 ", children: [_jsx("span", { className: "text-n1-gray-500 dark:text-n1-gray-400 font-medium min-w-[120px]", children: getLabel(key) }), _jsxs("div", { className: "relative transition-all duration-300 ".concat(value.visible ? 'opacity-100' : 'opacity-0', " max-w-[65%] text-right flex-1"), children: [(key === 'tx' || key === 'from') &&
|
|
80
|
+
getExplorerLink(key, value.text) ? (_jsxs("a", { href: getExplorerLink(key, value.text), target: "_blank", rel: "noopener noreferrer", className: "".concat(getValueStyles(key, value.text), " break-all inline-block group"), title: value.text, children: [_jsx("span", { className: "underline hover:font-bold", children: getDisplayValue(key, value.text) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] })) : (_jsx("span", { className: "".concat(getValueStyles(key, value.text), " break-all inline-block"), title: value.text, children: value.text })), value.typing && (_jsx("span", { className: "inline-block ml-1 w-[2px] h-[14px] bg-n1-main-500 dark:bg-n1-main-400 n1-animate-pulse" }))] })] }, key));
|
|
84
81
|
}) })] }));
|
|
85
82
|
}
|
|
86
83
|
//# sourceMappingURL=TransactionTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionTable.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/TransactionTable.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AASnE,MAAM,UAAU,gBAAgB,CAAC,EAGT;QAFtB,WAAW,iBAAA,EACX,OAAO,aAAA;IAEP,+BAA+B;IAC/B,IAAM,QAAQ,GAAG,UAAC,GAAW;QAC3B,IAAM,MAAM,GAA2B;YACrC,MAAM,EAAE,QAAQ;YAChB,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;SACjB,CAAC;QAEF,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAC5B,CAAC,CAAC;IAEF,gDAAgD;IAChD,IAAM,cAAc,GAAG,UAAC,GAAW,EAAE,KAAa;QAChD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IACE,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACvC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EACzC,CAAC;gBACD,OAAO,kDAAkD,CAAC;YAC5D,CAAC;YACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,OAAO,gDAAgD,CAAC;YAC1D,CAAC;YACD,IACE,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EACrC,CAAC;gBACD,OAAO,4CAA4C,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,8IAA8I,CAAC;QACxJ,CAAC;QAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,kDAAkD,CAAC;QAC5D,CAAC;QAED,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACnC,OAAO,wIAAwI,CAAC;QAClJ,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,oDAAoD,CAAC;QAC9D,CAAC;QAED,OAAO,6CAA6C,CAAC;IACvD,CAAC,CAAC;IAEF,mDAAmD;IACnD,IAAM,eAAe,GAAG,UAAC,GAAW,EAAE,KAAa;QACjD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACnC,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,iDAAiD;IACjD,IAAM,eAAe,GAAG,UAAC,GAAW,EAAE,KAAa;;QACjD,sEAAsE;QACtE,IAAM,OAAO,GAAG,CAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,IAAI,KAAI,gBAAgB,CAAC;QAE9D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,8CAAuC,KAAK,oBAAiB,CAAC;QACvE,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,6BAA6B;IAC7B,IAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEvE,mCAAmC;IACnC,IAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAC,EAAM,EAAE,EAAM;YAAb,IAAI,QAAA;YAAI,IAAI,QAAA;QACnE,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,eAAK,SAAS,EAAC,6IAA6I,aACzJ,OAAO,IAAI,CACV,iBACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,wJAAwJ,gBACvJ,eAAe,YAE1B,cACE,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,MAAM,EAAC,cAAc,YAErB,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,sBAAsB,GACxB,GACE,GACC,CACV,EACD,cAAK,SAAS,EAAC,wBAAwB,YACpC,aAAa,CAAC,GAAG,CAAC,UAAC,EAAY;wBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oBAAM,OAAA,CACnC,eAAe,SAAS,EAAC,yCAAyC,aAChE,eAAM,SAAS,EAAC,4DAA4D,YACzE,QAAQ,CAAC,GAAG,CAAC,GACT,EACP,eACE,SAAS,EAAE,+CAAwC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,mCAAgC,aAE7H,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC;wCACjC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACjC,aACE,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EACtC,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAE,UAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,kCAA+B,EAC5E,KAAK,EAAE,KAAK,CAAC,IAAI,aAEjB,eAAM,SAAS,EAAC,2BAA2B,YACxC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAC5B,EACP,cACE,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,8FAA8F,EACxG,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,MAAM,EAAC,cAAc,YAErB,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,8EAA8E,GAChF,GACE,IACJ,CACL,CAAC,CAAC,CAAC,CACF,eACE,SAAS,EAAE,UAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,4BAAyB,EACtE,KAAK,EAAE,KAAK,CAAC,IAAI,YAEhB,KAAK,CAAC,IAAI,GACN,CACR,EACA,KAAK,CAAC,MAAM,IAAI,CACf,eAAM,SAAS,EAAC,qFAAqF,GAAQ,CAC9G,IACG,KA7CE,GAAG,CA8CP,CACP;gBAhDoC,CAgDpC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { TableValues } from '../types';\nimport { shortenAddress } from '../utils/nordUtils';\nimport { getExplorerUrl } from '../../../Logic/transactionManager';\n\ninterface TransactionTableProps {\n tableValues: TableValues & {\n amount?: { text: string; visible: boolean; typing: boolean };\n };\n onClose?: () => void;\n}\n\nexport function TransactionTable({\n tableValues,\n onClose,\n}: TransactionTableProps) {\n // Friendly labels for the keys\n const getLabel = (key: string) => {\n const labels: Record<string, string> = {\n amount: 'Amount',\n tx: 'Transaction ID',\n from: 'From',\n to: 'To',\n network: 'Network',\n status: 'Status',\n };\n\n return labels[key] || key;\n };\n\n // Get appropriate color for values based on key\n const getValueStyles = (key: string, value: string) => {\n if (key === 'status') {\n if (\n value.toLowerCase().includes('success') ||\n value.toLowerCase().includes('confirmed')\n ) {\n return 'text-green-500 dark:text-emerald-500 font-medium';\n }\n if (value.toLowerCase().includes('pending')) {\n return 'text-amber-500 dark:text-amber-400 font-medium';\n }\n if (\n value.toLowerCase().includes('fail') ||\n value.toLowerCase().includes('error')\n ) {\n return 'text-red-500 dark:text-red-400 font-medium';\n }\n }\n\n if (key === 'tx') {\n return 'text-primary-600 dark:text-primary-400 text-xs font-medium hover:text-primary-700 dark:hover:text-primary-300 transition-colors duration-200';\n }\n\n if (key === 'network') {\n return 'text-purple-600 dark:text-purple-400 font-medium';\n }\n\n if (key === 'from' || key === 'to') {\n return 'text-gray-800 dark:text-gray-200 text-xs font-medium hover:text-primary-600 dark:hover:text-primary-400 transition-colors duration-200';\n }\n\n if (key === 'amount') {\n return 'text-green-600 dark:text-emerald-500 font-semibold';\n }\n\n return 'text-gray-900 dark:text-gray-50 font-medium';\n };\n\n // Format display value with ellipsis for long text\n const getDisplayValue = (key: string, value: string) => {\n if (key === 'tx') {\n return shortenAddress(value, 5, 4);\n }\n\n if (key === 'from' || key === 'to') {\n return shortenAddress(value, 5, 4);\n }\n\n return value;\n };\n\n // Get explorer URL for transaction ID or address\n const getExplorerLink = (key: string, value: string) => {\n // Extract network from tableValues to determine which explorer to use\n const network = tableValues.network?.text || 'solana-mainnet';\n\n if (key === 'tx') {\n return getExplorerUrl(value, network);\n }\n\n if (key === 'from') {\n return `https://explorer.solana.com/address/${value}?cluster=devnet`;\n }\n\n return '';\n };\n\n // Order of fields to display\n const fieldOrder = ['amount', 'status', 'network', 'from', 'to', 'tx'];\n\n // Sort entries based on fieldOrder\n const sortedEntries = Object.entries(tableValues).sort(([keyA], [keyB]) => {\n const indexA = fieldOrder.indexOf(keyA);\n const indexB = fieldOrder.indexOf(keyB);\n return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);\n });\n\n return (\n <div className=\"relative w-full h-full bg-gray-100 dark:bg-gray-950 border border-gray-200 dark:border-gray-800 p-5 rounded-sm flex flex-col justify-center\">\n {onClose && (\n <button\n onClick={onClose}\n className=\"absolute top-3 right-2 text-gray-500 dark:text-gray-600 hover:text-gray-500 dark:hover:text-gray-300 transition-colors duration-200 focus:outline-none\"\n aria-label=\"Close details\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n <div className=\"space-y-3 text-sm pt-5\">\n {sortedEntries.map(([key, value]) => (\n <div key={key} className=\"flex items-center justify-between py-2 \">\n <span className=\"text-gray-500 dark:text-gray-400 font-medium min-w-[120px]\">\n {getLabel(key)}\n </span>\n <div\n className={`relative transition-all duration-300 ${value.visible ? 'opacity-100' : 'opacity-0'} max-w-[65%] text-right flex-1`}\n >\n {(key === 'tx' || key === 'from') &&\n getExplorerLink(key, value.text) ? (\n <a\n href={getExplorerLink(key, value.text)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`${getValueStyles(key, value.text)} break-all inline-block group`}\n title={value.text}\n >\n <span className=\"underline hover:font-bold\">\n {getDisplayValue(key, value.text)}\n </span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n </a>\n ) : (\n <span\n className={`${getValueStyles(key, value.text)} break-all inline-block`}\n title={value.text}\n >\n {value.text}\n </span>\n )}\n {value.typing && (\n <span className=\"inline-block ml-1 w-[2px] h-[14px] bg-primary-500 dark:bg-primary-400 animate-pulse\"></span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TransactionTable.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/TransactionTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import { TableValues } from '../types';\nimport { shortenAddress } from '../utils/nordUtils';\nimport { getExplorerUrl } from '../../../Logic/transactionManager';\n\ninterface TransactionTableProps {\n tableValues: TableValues & {\n amount?: { text: string; visible: boolean; typing: boolean };\n };\n onClose?: () => void;\n}\n\nexport function TransactionTable({\n tableValues,\n onClose,\n}: TransactionTableProps) {\n // Friendly labels for the keys\n const getLabel = (key: string) => {\n const labels: Record<string, string> = {\n amount: 'Amount',\n tx: 'Transaction ID',\n from: 'From',\n to: 'To',\n network: 'Network',\n status: 'Status',\n };\n\n return labels[key] || key;\n };\n\n // Get appropriate color for values based on key\n const getValueStyles = (key: string, value: string) => {\n if (key === 'status') {\n if (\n value.toLowerCase().includes('success') ||\n value.toLowerCase().includes('confirmed')\n ) {\n return 'text-green-500 dark:text-emerald-500 font-medium';\n }\n if (value.toLowerCase().includes('pending')) {\n return 'text-amber-500 dark:text-amber-400 font-medium';\n }\n if (\n value.toLowerCase().includes('fail') ||\n value.toLowerCase().includes('error')\n ) {\n return 'text-red-500 dark:text-red-400 font-medium';\n }\n }\n\n if (key === 'tx') {\n return 'text-n1-main-600 dark:text-n1-main-400 text-xs font-medium hover:text-n1-main-700 dark:hover:text-n1-main-300 transition-colors duration-200';\n }\n\n if (key === 'network') {\n return 'text-purple-600 dark:text-purple-400 font-medium';\n }\n\n if (key === 'from' || key === 'to') {\n return 'text-n1-gray-800 dark:text-n1-gray-200 text-xs font-medium hover:text-n1-main-600 dark:hover:text-n1-main-400 transition-colors duration-200';\n }\n\n if (key === 'amount') {\n return 'text-green-600 dark:text-emerald-500 font-semibold';\n }\n\n return 'text-n1-gray-900 dark:text-n1-gray-50 font-medium';\n };\n\n // Format display value with ellipsis for long text\n const getDisplayValue = (key: string, value: string) => {\n if (key === 'tx') {\n return shortenAddress(value, 5, 4);\n }\n\n if (key === 'from' || key === 'to') {\n return shortenAddress(value, 5, 4);\n }\n\n return value;\n };\n\n // Get explorer URL for transaction ID or address\n const getExplorerLink = (key: string, value: string) => {\n\n if (key === 'tx') {\n return getExplorerUrl(value);\n }\n\n if (key === 'from') {\n return `https://explorer.solana.com/address/${value}?cluster=devnet`;\n }\n\n return '';\n };\n\n // Order of fields to display\n const fieldOrder = ['amount', 'status', 'network', 'from', 'to', 'tx'];\n\n // Sort entries based on fieldOrder\n const sortedEntries = Object.entries(tableValues).sort(([keyA], [keyB]) => {\n const indexA = fieldOrder.indexOf(keyA);\n const indexB = fieldOrder.indexOf(keyB);\n return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);\n });\n\n return (\n <div className=\"relative w-full h-full bg-n1-gray-100 dark:bg-n1-gray-950 border border-n1-gray-200 dark:border-n1-gray-800 p-5 rounded-sm flex flex-col justify-center\">\n {onClose && (\n <button\n onClick={onClose}\n className=\"absolute top-3 right-2 text-n1-gray-500 dark:text-n1-gray-600 hover:text-n1-gray-500 dark:hover:text-n1-gray-300 transition-colors duration-200 focus:outline-none\"\n aria-label=\"Close details\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n <div className=\"space-y-3 text-sm pt-5\">\n {sortedEntries.map(([key, value]) => (\n <div key={key} className=\"flex items-center justify-between py-2 \">\n <span className=\"text-n1-gray-500 dark:text-n1-gray-400 font-medium min-w-[120px]\">\n {getLabel(key)}\n </span>\n <div\n className={`relative transition-all duration-300 ${value.visible ? 'opacity-100' : 'opacity-0'} max-w-[65%] text-right flex-1`}\n >\n {(key === 'tx' || key === 'from') &&\n getExplorerLink(key, value.text) ? (\n <a\n href={getExplorerLink(key, value.text)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`${getValueStyles(key, value.text)} break-all inline-block group`}\n title={value.text}\n >\n <span className=\"underline hover:font-bold\">\n {getDisplayValue(key, value.text)}\n </span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n </a>\n ) : (\n <span\n className={`${getValueStyles(key, value.text)} break-all inline-block`}\n title={value.text}\n >\n {value.text}\n </span>\n )}\n {value.typing && (\n <span className=\"inline-block ml-1 w-[2px] h-[14px] bg-n1-main-500 dark:bg-n1-main-400 n1-animate-pulse\"></span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -2,6 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { LoadingSquares } from './LoadingSquares';
|
|
3
3
|
export function WaitingMessage(_a) {
|
|
4
4
|
var message = _a.message;
|
|
5
|
-
return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 space-y-6", children: [_jsx(LoadingSquares, {}), _jsxs("div", { className: "space-y-2 text-center w-[300px]", children: [_jsxs("h3", { className: "text-xl text-gray-800 dark:text-white transition-all duration-300 h-[32px] flex items-center justify-center relative font-semibold", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Waiting for transaction" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.title })] }), _jsxs("div", { className: "text-sm text-gray-600 dark:text-neutral-400 h-[20px] flex items-center justify-center relative", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Please sign the transaction in your wallet" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.subtitle })] })] })] }));
|
|
5
|
+
return (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 space-y-6", children: [_jsx(LoadingSquares, {}), _jsxs("div", { className: "space-y-2 text-center w-[300px]", children: [_jsxs("h3", { className: "text-xl text-n1-gray-800 dark:text-white transition-all duration-300 h-[32px] flex items-center justify-center relative font-semibold", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Waiting for transaction" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.title })] }), _jsxs("div", { className: "text-sm text-n1-gray-600 dark:text-neutral-400 h-[20px] flex items-center justify-center relative", children: [_jsx("span", { className: "opacity-0 absolute select-none", "aria-hidden": "true", children: "Please sign the transaction in your wallet" }), _jsx("div", { className: "absolute min-w-[280px]", children: message.visible && message.subtitle })] })] })] }));
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=WaitingMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaitingMessage.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/WaitingMessage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,MAAM,UAAU,cAAc,CAAC,EAAgC;QAA9B,OAAO,aAAA;IACtC,OAAO,CACL,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,cAAc,KAAG,EAClB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAI,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"WaitingMessage.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/WaitingMessage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,MAAM,UAAU,cAAc,CAAC,EAAgC;QAA9B,OAAO,aAAA;IACtC,OAAO,CACL,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,cAAc,KAAG,EAClB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAI,SAAS,EAAC,uIAAuI,aACnJ,eAAM,SAAS,EAAC,gCAAgC,iBAAa,MAAM,wCAE5D,EACP,cAAK,SAAS,EAAC,wBAAwB,YACpC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,GAC7B,IACH,EACL,eAAK,SAAS,EAAC,mGAAmG,aAChH,eAAM,SAAS,EAAC,gCAAgC,iBAAa,MAAM,2DAE5D,EACP,cAAK,SAAS,EAAC,wBAAwB,YACpC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,GAChC,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { WaitingMessageState } from '../types';\nimport { LoadingSquares } from './LoadingSquares';\n\ninterface WaitingMessageProps {\n message: WaitingMessageState;\n}\n\nexport function WaitingMessage({ message }: WaitingMessageProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 space-y-6\">\n <LoadingSquares />\n <div className=\"space-y-2 text-center w-[300px]\">\n <h3 className=\"text-xl text-n1-gray-800 dark:text-white transition-all duration-300 h-[32px] flex items-center justify-center relative font-semibold\">\n <span className=\"opacity-0 absolute select-none\" aria-hidden=\"true\">\n Waiting for transaction\n </span>\n <div className=\"absolute min-w-[280px]\">\n {message.visible && message.title}\n </div>\n </h3>\n <div className=\"text-sm text-n1-gray-600 dark:text-neutral-400 h-[20px] flex items-center justify-center relative\">\n <span className=\"opacity-0 absolute select-none\" aria-hidden=\"true\">\n Please sign the transaction in your wallet\n </span>\n <div className=\"absolute min-w-[280px]\">\n {message.visible && message.subtitle}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './ImageWithFallback';\nexport * from './ChainButton';\nexport * from './LoadingSquares';\nexport * from './TransactionTable';\nexport * from './WaitingMessage';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC","sourcesContent":["export * from './ImageWithFallback';\nexport * from './ChainButton';\nexport * from './LoadingSquares';\nexport * from './TransactionTable';\nexport * from './WaitingMessage';\nexport * from './Header';\n"]}
|
|
@@ -51,130 +51,151 @@ export var CHAINS = [
|
|
|
51
51
|
* Defines all possible transitions between states and their conditions
|
|
52
52
|
*/
|
|
53
53
|
export var STATE_TRANSITIONS = [
|
|
54
|
-
//
|
|
54
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
55
55
|
{
|
|
56
|
-
from:
|
|
56
|
+
from: [
|
|
57
|
+
FlowState.ERROR,
|
|
58
|
+
FlowState.IDLE,
|
|
59
|
+
],
|
|
57
60
|
to: FlowState.CONNECTING_WALLET,
|
|
58
|
-
condition: function (context) { return !context.walletType; }, // Only if wallet is not connected
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
from: FlowState.CONNECTING_WALLET,
|
|
62
|
-
to: FlowState.ERROR,
|
|
63
|
-
// When wallet connection fails
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
from: FlowState.CONNECTING_WALLET,
|
|
67
|
-
to: FlowState.CHAIN_SELECTION,
|
|
68
|
-
condition: function (context) { return context.walletType === 'solana'; }, // If Solana wallet and no Nord account
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
from: FlowState.CONNECTING_WALLET,
|
|
72
|
-
to: FlowState.AUTH_LOADING,
|
|
73
61
|
condition: function (context) {
|
|
74
|
-
return context.
|
|
75
|
-
|
|
62
|
+
return !context.hasActiveSession
|
|
63
|
+
&& !context.hasNordAccount;
|
|
64
|
+
}
|
|
76
65
|
},
|
|
66
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
77
67
|
{
|
|
78
|
-
from:
|
|
79
|
-
|
|
68
|
+
from: [
|
|
69
|
+
FlowState.ERROR,
|
|
70
|
+
FlowState.IDLE,
|
|
71
|
+
FlowState.CONNECTING_WALLET,
|
|
72
|
+
],
|
|
73
|
+
to: FlowState.ETH_TO_SOL_AUTH,
|
|
80
74
|
condition: function (context) {
|
|
81
|
-
return context.
|
|
82
|
-
context.hasNordAccount
|
|
83
|
-
context.
|
|
84
|
-
}
|
|
75
|
+
return !context.hasActiveSession
|
|
76
|
+
&& !context.hasNordAccount
|
|
77
|
+
&& context.walletType !== 'solana';
|
|
78
|
+
}
|
|
85
79
|
},
|
|
86
|
-
//
|
|
80
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
87
81
|
{
|
|
88
|
-
from:
|
|
82
|
+
from: [
|
|
83
|
+
FlowState.ERROR,
|
|
84
|
+
FlowState.IDLE,
|
|
85
|
+
FlowState.CONNECTING_WALLET,
|
|
86
|
+
FlowState.ETH_TO_SOL_AUTH,
|
|
87
|
+
],
|
|
89
88
|
to: FlowState.CHAIN_SELECTION,
|
|
90
|
-
condition: function (context) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
to: FlowState.AUTH_LOADING,
|
|
95
|
-
condition: function (context) { return context.hasNordAccount && !context.hasActiveSession; },
|
|
96
|
-
// After ETH auth, if has Nord account but no active session
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
from: FlowState.ETH_TO_SOL_AUTH,
|
|
100
|
-
to: FlowState.FINAL_SUCCESS,
|
|
101
|
-
condition: function (context) { return context.hasNordAccount && context.hasActiveSession; },
|
|
102
|
-
// After ETH auth, if has Nord account and active session
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
from: FlowState.ETH_TO_SOL_AUTH,
|
|
106
|
-
to: FlowState.ERROR,
|
|
107
|
-
// If ETH to SOL auth fails
|
|
89
|
+
condition: function (context) {
|
|
90
|
+
return !context.hasActiveSession
|
|
91
|
+
&& !context.hasNordAccount;
|
|
92
|
+
}
|
|
108
93
|
},
|
|
109
|
-
//
|
|
94
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
110
95
|
{
|
|
111
|
-
from:
|
|
96
|
+
from: [
|
|
97
|
+
FlowState.ERROR,
|
|
98
|
+
FlowState.IDLE,
|
|
99
|
+
FlowState.CONNECTING_WALLET,
|
|
100
|
+
FlowState.ETH_TO_SOL_AUTH,
|
|
101
|
+
FlowState.CHAIN_SELECTION,
|
|
102
|
+
FlowState.AMOUNT_INPUT,
|
|
103
|
+
],
|
|
112
104
|
to: FlowState.AMOUNT_INPUT,
|
|
113
|
-
|
|
105
|
+
condition: function (context) {
|
|
106
|
+
return !context.hasActiveSession
|
|
107
|
+
&& !context.hasNordAccount;
|
|
108
|
+
}
|
|
114
109
|
},
|
|
115
|
-
//
|
|
110
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
116
111
|
{
|
|
117
|
-
from:
|
|
112
|
+
from: [
|
|
113
|
+
FlowState.ERROR,
|
|
114
|
+
FlowState.IDLE,
|
|
115
|
+
FlowState.CONNECTING_WALLET,
|
|
116
|
+
FlowState.ETH_TO_SOL_AUTH,
|
|
117
|
+
FlowState.CHAIN_SELECTION,
|
|
118
|
+
FlowState.AMOUNT_INPUT,
|
|
119
|
+
],
|
|
118
120
|
to: FlowState.DEPOSIT_PROGRESS,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
to: FlowState.CHAIN_SELECTION,
|
|
124
|
-
// If user goes back to chain selection
|
|
121
|
+
condition: function (context) {
|
|
122
|
+
return !context.hasActiveSession
|
|
123
|
+
&& !context.hasNordAccount;
|
|
124
|
+
}
|
|
125
125
|
},
|
|
126
|
-
//
|
|
126
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
127
127
|
{
|
|
128
|
-
from:
|
|
128
|
+
from: [
|
|
129
|
+
FlowState.ERROR,
|
|
130
|
+
FlowState.IDLE,
|
|
131
|
+
FlowState.CONNECTING_WALLET,
|
|
132
|
+
FlowState.ETH_TO_SOL_AUTH,
|
|
133
|
+
FlowState.CHAIN_SELECTION,
|
|
134
|
+
FlowState.AMOUNT_INPUT,
|
|
135
|
+
FlowState.DEPOSIT_PROGRESS,
|
|
136
|
+
],
|
|
129
137
|
to: FlowState.DEPOSIT_SUCCESS,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
to: FlowState.ERROR,
|
|
135
|
-
// When deposit fails
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
from: FlowState.DEPOSIT_PROGRESS,
|
|
139
|
-
to: FlowState.AMOUNT_INPUT,
|
|
140
|
-
// When deposit fails but we want to allow retry
|
|
138
|
+
condition: function (context) {
|
|
139
|
+
return !context.hasActiveSession
|
|
140
|
+
&& context.hasNordAccount;
|
|
141
|
+
}
|
|
141
142
|
},
|
|
142
|
-
//
|
|
143
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
143
144
|
{
|
|
144
|
-
from:
|
|
145
|
+
from: [
|
|
146
|
+
FlowState.IDLE,
|
|
147
|
+
FlowState.CONNECTING_WALLET,
|
|
148
|
+
FlowState.ETH_TO_SOL_AUTH,
|
|
149
|
+
FlowState.CHAIN_SELECTION,
|
|
150
|
+
FlowState.AMOUNT_INPUT,
|
|
151
|
+
FlowState.DEPOSIT_PROGRESS,
|
|
152
|
+
FlowState.DEPOSIT_SUCCESS,
|
|
153
|
+
FlowState.ERROR,
|
|
154
|
+
],
|
|
145
155
|
to: FlowState.AUTH_LOADING,
|
|
146
|
-
condition: function (context) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
to: FlowState.FINAL_SUCCESS,
|
|
151
|
-
condition: function (context) { return context.hasActiveSession; }, // If active Nord session exists
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
from: FlowState.AUTH_LOADING,
|
|
155
|
-
to: FlowState.ERROR,
|
|
156
|
-
// When Nord auth fails to start
|
|
156
|
+
condition: function (context) {
|
|
157
|
+
return !context.hasActiveSession
|
|
158
|
+
&& context.hasNordAccount;
|
|
159
|
+
}
|
|
157
160
|
},
|
|
158
|
-
//
|
|
161
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
159
162
|
{
|
|
160
|
-
from:
|
|
163
|
+
from: [
|
|
164
|
+
FlowState.IDLE,
|
|
165
|
+
FlowState.CONNECTING_WALLET,
|
|
166
|
+
FlowState.ETH_TO_SOL_AUTH,
|
|
167
|
+
FlowState.CHAIN_SELECTION,
|
|
168
|
+
FlowState.AMOUNT_INPUT,
|
|
169
|
+
FlowState.DEPOSIT_PROGRESS,
|
|
170
|
+
FlowState.DEPOSIT_SUCCESS,
|
|
171
|
+
FlowState.AUTH_LOADING,
|
|
172
|
+
FlowState.ERROR,
|
|
173
|
+
],
|
|
161
174
|
to: FlowState.FINAL_SUCCESS,
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
to: FlowState.ERROR,
|
|
167
|
-
// When auth fails
|
|
175
|
+
condition: function (context) {
|
|
176
|
+
return context.hasActiveSession
|
|
177
|
+
&& context.hasNordAccount;
|
|
178
|
+
}
|
|
168
179
|
},
|
|
169
|
-
//
|
|
180
|
+
// Global recovery transition (can happen from any state upon recovery)
|
|
170
181
|
{
|
|
171
|
-
from:
|
|
182
|
+
from: [
|
|
183
|
+
FlowState.CONNECTING_WALLET,
|
|
184
|
+
FlowState.ETH_TO_SOL_AUTH,
|
|
185
|
+
FlowState.CHAIN_SELECTION,
|
|
186
|
+
FlowState.AMOUNT_INPUT,
|
|
187
|
+
FlowState.DEPOSIT_PROGRESS,
|
|
188
|
+
FlowState.DEPOSIT_SUCCESS,
|
|
189
|
+
FlowState.AUTH_LOADING,
|
|
190
|
+
FlowState.FINAL_SUCCESS,
|
|
191
|
+
FlowState.ERROR,
|
|
192
|
+
],
|
|
172
193
|
to: FlowState.IDLE,
|
|
173
|
-
// When restarting after error
|
|
174
194
|
},
|
|
175
195
|
// Global recovery transition (can happen from any state upon recovery)
|
|
176
196
|
{
|
|
177
197
|
from: [
|
|
198
|
+
FlowState.IDLE,
|
|
178
199
|
FlowState.CONNECTING_WALLET,
|
|
179
200
|
FlowState.ETH_TO_SOL_AUTH,
|
|
180
201
|
FlowState.CHAIN_SELECTION,
|
|
@@ -182,9 +203,9 @@ export var STATE_TRANSITIONS = [
|
|
|
182
203
|
FlowState.DEPOSIT_PROGRESS,
|
|
183
204
|
FlowState.DEPOSIT_SUCCESS,
|
|
184
205
|
FlowState.AUTH_LOADING,
|
|
206
|
+
FlowState.FINAL_SUCCESS,
|
|
185
207
|
],
|
|
186
|
-
to: FlowState.
|
|
187
|
-
// For recovery after interruption
|
|
208
|
+
to: FlowState.ERROR,
|
|
188
209
|
},
|
|
189
210
|
];
|
|
190
211
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AAErD,MAAM,CAAC,IAAM,cAAc,GAAG,+BAA+B,CAAC;AAC9D,MAAM,CAAC,IAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,IAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,MAAM,CAAC,IAAM,WAAW,GAAG,KAAK,CAAC;AACjC,MAAM,CAAC,IAAM,WAAW,GAAG,KAAK,CAAC;AAEjC,MAAM,CAAC,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC;IAChE,IAAI,EAAE,aAAM,CAAC,GAAG,CAAC,CAAE;IACnB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,CAAC;CACZ,CAAC,EAJ+D,CAI/D,CAAC,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC9B;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mBAAmB;KAC1B;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,iBAAiB;KACxB;CACF,CAAC;AAEF,MAAM,CAAC,IAAM,MAAM,GAAG;IACpB;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,6BAA6B;KACpC;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,4BAA4B;KACnC;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,6BAA6B;KACpC;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,6BAA6B;KACpC;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAsB;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import { FlowState, StateTransition } from './types';\n\nexport const ANIMATION_EASE = 'cubic-bezier(0.16, 1, 0.3, 1)';\nexport const TYPING_INTERVAL = 50;\nexport const ANIMATION_DURATION = 3000;\n\nexport const MIN_DEPOSIT = 10000;\nexport const MAX_DEPOSIT = 10000;\n\nexport const INITIAL_APPS = Array.from({ length: 20 }, (_, i) => ({\n name: `App${i + 1}`,\n color: '#ff2b1f',\n progress: 0,\n}));\n\n/**\n * Available chains for deposit\n */\nexport const AVAILABLE_CHAINS = [\n {\n id: 'ethereum',\n name: 'Ethereum',\n logo: 'ethereum-logo.svg',\n },\n {\n id: 'solana',\n name: 'Solana',\n logo: 'solana-logo.svg',\n },\n];\n\nexport const CHAINS = [\n {\n id: 'ethereum',\n name: 'Ethereum',\n logo: '/images/chains/ethereum.svg',\n },\n {\n id: 'polygon',\n name: 'Polygon',\n logo: '/images/chains/polygon.svg',\n },\n {\n id: 'arbitrum',\n name: 'Arbitrum',\n logo: '/images/chains/arbitrum.svg',\n },\n {\n id: 'optimism',\n name: 'Optimism',\n logo: '/images/chains/optimism.svg',\n },\n];\n\n/**\n * State machine transitions\n * Defines all possible transitions between states and their conditions\n */\nexport const STATE_TRANSITIONS: StateTransition[] = [\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n ],\n to: FlowState.CONNECTING_WALLET,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n ],\n to: FlowState.ETH_TO_SOL_AUTH,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n && context.walletType !== 'solana'\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n ],\n to: FlowState.CHAIN_SELECTION,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n ],\n to: FlowState.AMOUNT_INPUT,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n ],\n to: FlowState.DEPOSIT_PROGRESS,\n condition: (context) =>\n !context.hasActiveSession\n && !context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.ERROR,\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n ],\n to: FlowState.DEPOSIT_SUCCESS,\n condition: (context) =>\n !context.hasActiveSession\n && context.hasNordAccount\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n FlowState.DEPOSIT_SUCCESS,\n FlowState.ERROR,\n ],\n to: FlowState.AUTH_LOADING,\n condition: (context) =>\n !context.hasActiveSession\n && context.hasNordAccount\n },\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n FlowState.DEPOSIT_SUCCESS,\n FlowState.AUTH_LOADING,\n FlowState.ERROR,\n ],\n to: FlowState.FINAL_SUCCESS,\n condition: (context) =>\n context.hasActiveSession\n && context.hasNordAccount\n },\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n FlowState.DEPOSIT_SUCCESS,\n FlowState.AUTH_LOADING,\n FlowState.FINAL_SUCCESS,\n FlowState.ERROR,\n ],\n to: FlowState.IDLE,\n },\n\n // Global recovery transition (can happen from any state upon recovery)\n {\n from: [\n FlowState.IDLE,\n FlowState.CONNECTING_WALLET,\n FlowState.ETH_TO_SOL_AUTH,\n FlowState.CHAIN_SELECTION,\n FlowState.AMOUNT_INPUT,\n FlowState.DEPOSIT_PROGRESS,\n FlowState.DEPOSIT_SUCCESS,\n FlowState.AUTH_LOADING,\n FlowState.FINAL_SUCCESS,\n ],\n to: FlowState.ERROR,\n },\n];\n\n/**\n * Local storage key for persisting flow state\n */\nexport const FLOW_STATE_STORAGE_KEY = 'n1_wallet_connection_flow_state';\n\n/**\n * Time in milliseconds after which a persisted state is considered stale\n */\nexport const STATE_EXPIRY_TIME = 30 * 60 * 1000; // 30 minutes\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TransactionResult } from '../../../Logic/transactionManager';
|
|
3
|
+
export interface DepositContextValue {
|
|
4
|
+
amount: string;
|
|
5
|
+
isDepositing: boolean;
|
|
6
|
+
transactionId: string | null;
|
|
7
|
+
transactionResult: TransactionResult | null;
|
|
8
|
+
authStatus: 'loading' | 'success' | 'error';
|
|
9
|
+
authErrorMessage: string | null;
|
|
10
|
+
authStatusMessage: string | null;
|
|
11
|
+
updateAmount: (newAmount: string) => void;
|
|
12
|
+
startDeposit: () => Promise<void>;
|
|
13
|
+
completeDeposit: () => void;
|
|
14
|
+
performAuth: () => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
interface DepositProviderProps {
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Provider component for the deposit context
|
|
21
|
+
*/
|
|
22
|
+
export declare const DepositProvider: React.FC<DepositProviderProps>;
|
|
23
|
+
/**
|
|
24
|
+
* Hook to use the deposit context
|
|
25
|
+
*/
|
|
26
|
+
export declare const useDepositContext: () => DepositContextValue;
|
|
27
|
+
export {};
|