@layerswap/widget 1.0.5 → 1.0.6

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 (75) hide show
  1. package/dist/esm/Models/Theme.js +0 -8
  2. package/dist/esm/components/Buttons/copyButton.js +5 -3
  3. package/dist/esm/components/ColorSchema.js +3 -10
  4. package/dist/esm/components/Common/CountDownTimer.js +0 -14
  5. package/dist/esm/components/Input/Amount/Balance.js +7 -1
  6. package/dist/esm/components/Input/NumericInput.js +7 -4
  7. package/dist/esm/components/Input/RoutePicker/Content.js +17 -1
  8. package/dist/esm/components/Input/RoutePicker/Rows/index.js +1 -1
  9. package/dist/esm/components/Input/SourceWalletPicker.js +1 -1
  10. package/dist/esm/components/Menu/index.js +1 -1
  11. package/dist/esm/components/Modal/vaulModal.js +11 -16
  12. package/dist/esm/components/Pages/Swap/Form/ExchangeForm.js +1 -1
  13. package/dist/esm/components/Pages/Swap/Form/FeeDetails/Refuel.js +7 -5
  14. package/dist/esm/components/Pages/Swap/Form/FeeDetails/Slippage.js +6 -1
  15. package/dist/esm/components/Pages/Swap/Form/FeeDetails/SwapQuote/SummaryRow.js +1 -1
  16. package/dist/esm/components/Pages/Swap/Form/FeeDetails/SwapQuote/index.js +1 -1
  17. package/dist/esm/components/Pages/Swap/Form/FormWrapper.js +3 -7
  18. package/dist/esm/components/Pages/Swap/Form/NetworkForm.js +8 -0
  19. package/dist/esm/components/Pages/Swap/Form/SecondaryComponents/validationError/ErrorDisplay.js +1 -1
  20. package/dist/esm/components/Pages/Swap/Withdraw/ManualWithdraw.js +2 -2
  21. package/dist/esm/components/Pages/Swap/Withdraw/Summary/Summary.js +3 -3
  22. package/dist/esm/components/Pages/Swap/Withdraw/Summary/index.js +1 -1
  23. package/dist/esm/components/Pages/Swap/Withdraw/Wallet/Common/buttons.js +1 -1
  24. package/dist/esm/components/Pages/SwapHistory/History.js +1 -1
  25. package/dist/esm/components/Pages/SwapHistory/SwapDetailsComponent.js +4 -1
  26. package/dist/esm/components/Pages/SwapHistory/index.js +3 -3
  27. package/dist/esm/components/Wallet/WalletComponents/ConnectedWallets.js +1 -1
  28. package/dist/esm/components/Wallet/WalletComponents/WalletsList.js +3 -2
  29. package/dist/esm/components/Wallet/WalletModal/ConnectorsList.js +44 -23
  30. package/dist/esm/components/Widget/Index.js +2 -3
  31. package/dist/esm/components/utils/RoundDecimals.js +4 -2
  32. package/dist/esm/context/asyncModal.js +1 -1
  33. package/dist/esm/context/callbackProvider.js +0 -8
  34. package/dist/esm/context/swap.js +3 -5
  35. package/dist/esm/context/walletProviders.js +1 -1
  36. package/dist/esm/hooks/useFormValidation.js +7 -3
  37. package/dist/esm/lib/AppSettings.js +1 -1
  38. package/dist/esm/lib/NetworkSettings.js +0 -16
  39. package/dist/esm/lib/axiosInterceptor.js +2 -2
  40. package/dist/esm/stores/balanceStore.js +1 -1
  41. package/dist/index.css +2 -2
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/dist/types/Models/Theme.d.ts +0 -3
  44. package/dist/types/Models/Theme.d.ts.map +1 -1
  45. package/dist/types/components/Buttons/copyButton.d.ts +3 -1
  46. package/dist/types/components/Buttons/copyButton.d.ts.map +1 -1
  47. package/dist/types/components/ColorSchema.d.ts.map +1 -1
  48. package/dist/types/components/Common/CountDownTimer.d.ts.map +1 -1
  49. package/dist/types/components/Input/Amount/Balance.d.ts.map +1 -1
  50. package/dist/types/components/Input/NumericInput.d.ts.map +1 -1
  51. package/dist/types/components/Input/RoutePicker/Content.d.ts.map +1 -1
  52. package/dist/types/components/Input/SourceWalletPicker.d.ts.map +1 -1
  53. package/dist/types/components/Modal/vaulModal.d.ts.map +1 -1
  54. package/dist/types/components/Pages/Swap/Form/FeeDetails/Refuel.d.ts.map +1 -1
  55. package/dist/types/components/Pages/Swap/Form/NetworkForm.d.ts.map +1 -1
  56. package/dist/types/components/Pages/SwapHistory/SwapDetailsComponent.d.ts.map +1 -1
  57. package/dist/types/components/Pages/SwapHistory/index.d.ts.map +1 -1
  58. package/dist/types/components/Wallet/WalletComponents/WalletsList.d.ts.map +1 -1
  59. package/dist/types/components/Wallet/WalletModal/ConnectorsList.d.ts.map +1 -1
  60. package/dist/types/components/Widget/Index.d.ts.map +1 -1
  61. package/dist/types/components/utils/RoundDecimals.d.ts.map +1 -1
  62. package/dist/types/context/callbackProvider.d.ts +0 -2
  63. package/dist/types/context/callbackProvider.d.ts.map +1 -1
  64. package/dist/types/context/swap.d.ts.map +1 -1
  65. package/dist/types/context/validationContext.d.ts +1 -0
  66. package/dist/types/context/validationContext.d.ts.map +1 -1
  67. package/dist/types/hooks/useFormValidation.d.ts +8 -0
  68. package/dist/types/hooks/useFormValidation.d.ts.map +1 -1
  69. package/dist/types/hooks/useWallet.d.ts.map +1 -1
  70. package/dist/types/lib/NetworkSettings.d.ts +0 -1
  71. package/dist/types/lib/NetworkSettings.d.ts.map +1 -1
  72. package/dist/types/lib/apiClients/layerSwapApiClient.d.ts +1 -1
  73. package/dist/types/types/wallet.d.ts +2 -1
  74. package/dist/types/types/wallet.d.ts.map +1 -1
  75. package/package.json +1 -1
@@ -88,7 +88,7 @@ const BlankHistory = ({ onNewTransferClick }) => {
88
88
  return _jsxs("div", { className: "w-full h-full min-h-[inherit] flex flex-col justify-between items-center space-y-10", children: [_jsx("div", {}), _jsxs("div", { className: "w-full h-full flex flex-col justify-center items-center ", children: [_jsx(HistoryItemSceleton, { className: "scale-[.63] w-full shadow-lg mr-7" }), _jsx(HistoryItemSceleton, { className: "scale-[.63] -mt-12 shadow-card ml-7 w-full" }), _jsxs("div", { className: "mt-2 text-center space-y-2", children: [_jsx("h1", { className: "text-secondary-text text-[28px] font-bold tracking-wide", children: "No Transfer History" }), _jsx("p", { className: "max-w-xs text-center text-primary-text-tertiary text-base font-normal mx-auto", children: "Transfers you make with this wallet/account will appear here after excution." })] }), _jsxs("button", { type: 'button', onClick: onNewTransferClick, className: "mt-10 flex items-center gap-2 text-base text-secondary-text font-normal bg-secondary-500 hover:bg-secondary-400 py-2 px-3 rounded-lg", children: [_jsx(Plus, { className: "w-4 h-4" }), _jsx("p", { children: "New Transfer" })] })] })] });
89
89
  };
90
90
  const ConnectWalletCard = () => {
91
- return _jsxs("div", { className: "w-full h-full flex flex-col justify-between items-center space-y-10", children: [_jsxs("div", { className: "flex flex-col items-center justify-center text-center w-full h-full", children: [_jsx(HistoryItemSceleton, { className: "scale-[.63] w-full shadow-lg mr-7" }), _jsx(HistoryItemSceleton, { className: "scale-[.63] -mt-12 shadow-card ml-7 w-full" }), _jsxs("div", { className: "mt-4 text-center space-y-3", children: [_jsx("h1", { className: "text-secondary-text text-[28px] font-bold tracking-wide", children: "Connect wallet" }), _jsx("p", { className: "max-w-xs text-center text-primary-text-tertiary text-base font-normal mx-auto", children: "In order to see your transfer history you need to connect your wallet." })] })] }), _jsx("div", { className: "flex flex-col items-center w-full space-y-3", children: _jsx(ConnectButton, { className: "w-full", children: _jsx("div", { className: "w-full py-2.5 px-3 text-xl font-semibold bg-primary-text-tertiary hover:opacity-90 duration-200 active:opacity-80 transition-opacity rounded-lg text-secondary-900", children: _jsx("div", { className: "text-center text-xl font-semibold", children: "Connect Wallet" }) }) }) })] });
91
+ return _jsxs("div", { className: "w-full h-full flex flex-col justify-between items-center space-y-10", children: [_jsxs("div", { className: "flex flex-col items-center justify-center text-center w-full h-full", children: [_jsx(HistoryItemSceleton, { className: "scale-[.63] w-full shadow-card mr-7" }), _jsx(HistoryItemSceleton, { className: "scale-[.63] -mt-12 shadow-card ml-7 w-full" }), _jsxs("div", { className: "mt-4 text-center space-y-3", children: [_jsx("h1", { className: "text-secondary-text text-[28px] font-bold tracking-wide", children: "Connect wallet" }), _jsx("p", { className: "max-w-xs text-center text-primary-text-tertiary text-base font-normal mx-auto", children: "In order to see your transfer history you need to connect your wallet." })] })] }), _jsx("div", { className: "flex flex-col items-center w-full space-y-3", children: _jsx(ConnectButton, { className: "w-full", children: _jsx("div", { className: "w-full py-2.5 px-3 text-xl font-semibold bg-primary-text-tertiary hover:opacity-90 duration-200 active:opacity-80 transition-opacity rounded-lg text-secondary-900", children: _jsx("div", { className: "text-center text-xl font-semibold", children: "Connect Wallet" }) }) }) })] });
92
92
  };
93
93
  function DaysAgo({ dateInput }) {
94
94
  // Get the current date
@@ -31,7 +31,10 @@ const SwapDetails = ({ swapResponse }) => {
31
31
  // Create a new swap based on the current swap data
32
32
  // Determine if this is a cross-chain or exchange swap
33
33
  const swapType = (swap.source_exchange || swap.destination_exchange) ? 'exchange' : 'cross-chain';
34
- const newSwapData = generateSwapInitialValuesFromSwap(swap, false, settings, swapType);
34
+ const newSwapData = generateSwapInitialValuesFromSwap({
35
+ ...swap,
36
+ requested_amount: swap.requested_amount.toString()
37
+ }, false, settings, swapType);
35
38
  setSubmitedFormValues(newSwapData);
36
39
  // For wallet deposits, follow the same flow as FormWrapper's handleCreateSwap
37
40
  if (newSwapData.depositMethod === 'wallet') {
@@ -1,10 +1,10 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import Content from "./History";
4
- import Header from "./Header";
5
4
  import { SwapDataProvider } from "../../../context/swap";
6
5
  import { useBackClickCallback } from "../../../context/callbackProvider";
6
+ import { Widget } from "../../../components/Widget/Index";
7
7
  export const TransactionsHistory = () => {
8
8
  const triggerOnBackClickCallback = useBackClickCallback();
9
- return (_jsx(SwapDataProvider, { children: _jsxs("div", { id: "widget", className: 'bg-secondary-900 sm:shadow-card sm:relative rounded-lg w-full text-primary-text overflow-y-auto sm:overflow-hidden max-h-screen h-full sm:h-[650px]', children: [_jsxs("div", { className: "overflow-y-auto flex flex-col h-full z-40 pb-4", children: [_jsx(Header, { onBackClick: triggerOnBackClickCallback }), _jsx("div", { className: "px-6 h-full overflow-y-auto styled-scroll max-h-[80vh]", id: 'virtualListContainer', children: _jsx(Content, {}) })] }), _jsx("div", { id: "widget_root" })] }) }));
9
+ return (_jsx(SwapDataProvider, { children: _jsx(Widget, { goBack: triggerOnBackClickCallback, children: _jsx(Widget.Content, { children: _jsx("div", { className: "px-6 h-full overflow-y-auto styled-scroll max-h-[80vh]", id: 'virtualListContainer', children: _jsx(Content, {}) }) }) }) }));
10
10
  };
@@ -39,5 +39,5 @@ const WalletsMenuWalletsList = ({ wallets }) => {
39
39
  return _jsxs(_Fragment, { children: [_jsx("button", { onClick: () => setOpenModal(true), type: "button", className: "py-3 px-4 bg-secondary-500 flex items-center w-full rounded-xl space-x-1 disabled:text-secondary-text/40 disabled:bg-primary-900 disabled:cursor-not-allowed relative font-semibold transform border border-secondary-500 hover:bg-secondary-400 transition duration-200 ease-in-out outline-hidden", children: wallets.length === 1 ?
40
40
  _jsxs("div", { className: "flex gap-4 items-start text-primary-text", children: [_jsx(wallet.icon, { className: 'h-5 w-5' }), !wallet.isLoading && wallet.address && _jsx("p", { children: shortenAddress(wallet.address) })] })
41
41
  :
42
- _jsxs(_Fragment, { children: [_jsx("div", { className: "flex justify-center w-full", children: "Connected wallets" }), _jsx("div", { className: "place-items-end absolute left-2.5", children: _jsx(WalletsIcons, { wallets: wallets }) })] }) }), _jsx(VaulDrawer, { show: openModal, setShow: setOpenModal, header: `Connected wallets`, modalId: "connectedWallets", children: _jsx(VaulDrawer.Snap, { id: "item-1", children: _jsx(WalletsList, { wallets: wallets }) }) })] });
42
+ _jsxs(_Fragment, { children: [_jsx("div", { className: "flex justify-center w-full", children: "Connected wallets" }), _jsx("div", { className: "place-items-end absolute left-2.5", children: _jsx(WalletsIcons, { wallets: wallets }) })] }) }), _jsx(VaulDrawer, { show: openModal, setShow: setOpenModal, header: `Connected wallets`, modalId: "connectedWallets", className: "expandContainerHeight", children: _jsx(VaulDrawer.Snap, { id: "item-1", children: _jsx(WalletsList, { wallets: wallets }) }) })] });
43
43
  };
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Plus, Unplug } from "lucide-react";
3
3
  import AddressIcon from "../../../components/Common/AddressIcon";
4
+ import { useCallback } from "react";
4
5
  import { ExtendedAddress } from "../../../components/Input/Address/AddressPicker/AddressWithIcon";
5
6
  import { clsx } from 'clsx';
6
7
  import { useConnectModal } from "../WalletModal";
@@ -14,7 +15,7 @@ import { useBalance } from "../../../lib/balances/useBalance";
14
15
  const WalletsList = (props) => {
15
16
  const { wallets, token, network, provider, selectable, onSelect, selectedDepositMethod } = props;
16
17
  const { connect } = useConnectModal();
17
- const connectWallet = async () => {
18
+ const connectWallet = useCallback(async () => {
18
19
  const result = await connect(provider);
19
20
  if (result && onSelect && result.withdrawalSupportedNetworks?.some(n => n === network?.name)) {
20
21
  onSelect({
@@ -23,7 +24,7 @@ const WalletsList = (props) => {
23
24
  address: result.address
24
25
  });
25
26
  }
26
- };
27
+ }, [provider, onSelect, network]);
27
28
  const selectedSourceAccount = useSelectedAccount("from", selectedDepositMethod == 'wallet' ? network?.name : undefined);
28
29
  return (_jsxs("div", { className: "space-y-3", children: [_jsx("button", { type: 'button', onClick: connectWallet, className: "w-full flex justify-center p-2 bg-secondary-500 rounded-md hover:bg-secondary-400", children: _jsxs("div", { className: "flex items-center text-secondary-text gap-1 px-3 py-1", children: [_jsx(Plus, { className: "h-4 w-4" }), _jsx("span", { className: "text-sm", children: "Connect new wallet" })] }) }), wallets.length > 0 &&
29
30
  _jsx("div", { className: "flex flex-col justify-start space-y-3", children: wallets.map((wallet, index) => _jsx(WalletItem, { account: wallet, selectable: selectable, token: token, network: network, onWalletSelect: onSelect, selectedAddress: selectedSourceAccount?.address }, `${index}${wallet.providerName}`)) })] }));
@@ -24,9 +24,9 @@ const ConnectorsList = ({ onFinish }) => {
24
24
  let [recentConnectors, setRecentConnectors] = usePersistedState([], 'recentConnectors', 'localStorage');
25
25
  const [connectionError, setConnectionError] = useState(undefined);
26
26
  const [searchValue, setSearchValue] = useState(undefined);
27
- const { isMobile: isMobileSize } = useWindowDimensions();
28
27
  const [isScrolling, setIsScrolling] = useState(false);
29
28
  const scrollTimeout = useRef(null);
29
+ const { isMobile: isMobileSize } = useWindowDimensions();
30
30
  const handleScroll = () => {
31
31
  setIsScrolling(true);
32
32
  if (scrollTimeout.current)
@@ -89,12 +89,17 @@ const ConnectorsList = ({ onFinish }) => {
89
89
  };
90
90
  const filteredProviders = providers.filter(p => !p.hideFromList);
91
91
  const featuredProviders = selectedProvider ? [selectedProvider] : filteredProviders;
92
- const allFeaturedConnectors = useMemo(() => featuredProviders.filter(g => g.availableWalletsForConnect && g.availableWalletsForConnect?.length > 0).map((provider) => provider.availableWalletsForConnect?.filter(v => searchValue ? (searchValue ? v.name.toLowerCase().includes(searchValue?.toLowerCase()) : false) : true).map((connector) => ({ ...connector, providerName: provider.name }))).flat(), [featuredProviders, searchValue]);
93
- const allHiddenConnectors = useMemo(() => featuredProviders.filter(g => g.availableHiddenWalletsForConnect && g.availableHiddenWalletsForConnect?.length > 0).map((provider) => provider.availableHiddenWalletsForConnect?.filter(v => searchValue ? (searchValue ? v.name.toLowerCase().includes(searchValue?.toLowerCase()) : false) : true).map((connector) => ({ ...connector, providerName: provider.name }))).flat(), [featuredProviders, searchValue]);
94
- const allConnectors = useMemo(() => removeDuplicatesWithKey([...allFeaturedConnectors, ...(searchValue ? allHiddenConnectors : [])].sort((a, b) => sortRecentConnectors(a, b, recentConnectors)), 'name'), [allFeaturedConnectors, allHiddenConnectors, searchValue]);
92
+ const allFeaturedConnectors = useMemo(() => featuredProviders.filter(g => g.availableWalletsForConnect && g.availableWalletsForConnect?.length > 0).map((provider) => provider.availableWalletsForConnect?.filter(v => searchValue ? (v.name.toLowerCase().includes(searchValue?.toLowerCase())) : true).map((connector) => ({ ...connector, providerName: provider.name }))).flat(), [featuredProviders, searchValue]);
93
+ const allHiddenConnectors = useMemo(() => featuredProviders
94
+ .filter(g => g.availableHiddenWalletsForConnect && g.availableHiddenWalletsForConnect?.length > 0)
95
+ .map((provider) => provider.availableHiddenWalletsForConnect
96
+ ?.filter(v => (searchValue ? (v.name.toLowerCase().includes(searchValue?.toLowerCase())) : true) && !featuredWalletsIds.includes(v.id.toLowerCase()))
97
+ .map((connector) => ({ ...connector, providerName: provider.name, isHidden: true })))
98
+ .flat(), [featuredProviders, searchValue]);
99
+ const allConnectors = useMemo(() => removeDuplicatesWithKey([...allFeaturedConnectors, ...allHiddenConnectors].filter(c => searchValue?.length ? true : !c.isHidden).sort((a, b) => sortRecentConnectors(a, b, recentConnectors)), 'name'), [allFeaturedConnectors, allHiddenConnectors, searchValue?.length]);
95
100
  if (selectedConnector?.qr?.state) {
96
101
  const ConnectorIcon = resolveWalletConnectorIcon({ connector: selectedConnector, iconUrl: selectedConnector.icon });
97
- return _jsxs("div", { className: "flex flex-col justify-start space-y-2", children: [_jsx("p", { className: "text-secondary-text", children: "Scan the QR code with your phone" }), _jsx("div", { className: "w-full h-full bg-secondary-600 pb-3 pt-5 rounded-lg", children: _jsxs("div", { className: 'flex flex-col justify-center items-center pt-2 w-fit mx-auto', children: [selectedConnector?.qr.state == 'fetched' ?
102
+ return _jsxs("div", { className: "flex flex-col justify-start space-y-2", children: [_jsx("p", { className: "text-secondary-text", children: "Scan the QR code with your phone" }), _jsx("div", { className: "w-full h-full bg-secondary-600 py-3 rounded-lg", children: _jsxs("div", { className: 'flex flex-col justify-center items-center pt-2 w-fit mx-auto', children: [selectedConnector?.qr.state == 'fetched' ?
98
103
  _jsx(QRCodeSVG, { className: "rounded-lg", value: selectedConnector?.qr.value, includeMargin: true, size: 264, level: "H", imageSettings: selectedConnector.icon
99
104
  ? {
100
105
  src: selectedConnector.icon,
@@ -104,7 +109,7 @@ const ConnectorsList = ({ onFinish }) => {
104
109
  }
105
110
  : undefined })
106
111
  :
107
- _jsxs("div", { className: "w-[264px] h-[264px] relative", children: [_jsx("div", { className: "w-full h-full bg-secondary-500 animate-pulse rounded-xl" }), _jsx(ConnectorIcon, { className: 'h-[50px] w-[50px] absolute top-[calc(50%-25px)] right-[calc(50%-25px)]' })] }), _jsx("div", { className: 'bg-secondary-400 text-secondary-text w-full px-2 py-1.5 rounded-md mt-3 flex justify-center items-center', children: _jsx(CopyButton, { toCopy: selectedConnector?.qr.value || '', children: "Copy QR URL" }) })] }) })] });
112
+ _jsxs("div", { className: "w-[264px] h-[264px] relative", children: [_jsx("div", { className: "w-full h-full bg-secondary-500 animate-pulse rounded-xl" }), _jsx(ConnectorIcon, { className: 'h-[50px] w-[50px] absolute top-[calc(50%-25px)] right-[calc(50%-25px)]' })] }), _jsx("div", { className: 'bg-secondary-400 text-secondary-text w-full px-2 py-1.5 rounded-md mt-3 flex justify-center items-center', children: _jsx(CopyButton, { disabled: !selectedConnector?.qr.value, toCopy: selectedConnector?.qr.value || '', children: "Copy QR URL" }) })] }) })] });
108
113
  }
109
114
  if (selectedConnector) {
110
115
  const connector = allFeaturedConnectors.find(c => c?.name === selectedConnector.name);
@@ -112,12 +117,11 @@ const ConnectorsList = ({ onFinish }) => {
112
117
  return _jsx(LoadingConnect, { onRetry: () => { (connector && provider) && connect(connector, provider); }, selectedConnector: selectedConnector, connectionError: connectionError });
113
118
  }
114
119
  if (selectedMultiChainConnector) {
115
- return _jsx(MultichainConnectorPicker, { selectedConnector: selectedMultiChainConnector, allConnectors: allFeaturedConnectors, providers: featuredProviders, connect: connect });
120
+ return _jsx(MultichainConnectorPicker, { selectedConnector: selectedMultiChainConnector, allConnectors: [...allFeaturedConnectors, ...allHiddenConnectors], providers: featuredProviders, connect: connect });
116
121
  }
117
- return (_jsx(_Fragment, { children: _jsxs("div", { className: "text-primary-text space-y-3", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(SearchComponent, { searchQuery: searchValue || "", setSearchQuery: setSearchValue, placeholder: allHiddenConnectors.length > 300 ? "Search through 400+ wallets..." : "Search wallet", className: "w-full" }), (!selectedProvider || selectedProvider?.isSelectedFromFilter) &&
118
- _jsx(ProviderPicker, { providers: filteredProviders, selectedProviderName: selectedProvider?.name, setSelectedProviderName: handleSelectProvider })] }), _jsx("div", { onScroll: handleScroll, className: clsx('overflow-y-scroll -mr-4 pr-2 scrollbar:!w-1.5 scrollbar:!h-1.5 scrollbar-thumb:bg-transparent', {
119
- 'h-[55vh]': isMobileSize && AppSettings.ThemeData?.enablePortal,
120
- 'h-[265px]': !isMobileSize || !AppSettings.ThemeData?.enablePortal,
122
+ return (_jsx(_Fragment, { children: _jsxs("div", { className: "text-primary-text space-y-3 flex flex-col w-full styled-scroll relative h-full", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(SearchComponent, { searchQuery: searchValue || "", setSearchQuery: setSearchValue, placeholder: allHiddenConnectors.length > 300 ? "Search through 400+ wallets..." : "Search wallet", className: "w-full" }), (!selectedProvider || selectedProvider?.isSelectedFromFilter) &&
123
+ _jsx(ProviderPicker, { providers: filteredProviders, selectedProviderName: selectedProvider?.name, setSelectedProviderName: handleSelectProvider })] }), _jsx("div", { onScroll: handleScroll, className: clsx('overflow-y-scroll -mr-4 pr-2 scrollbar:!w-1.5 scrollbar:!h-1.5 overflow-x-hidden scrollbar-thumb:bg-transparent', {
124
+ 'max-sm:h-[55svh]': isMobileSize && AppSettings.ThemeData?.enablePortal,
121
125
  'styled-scroll': isScrolling
122
126
  }), children: _jsx("div", { className: 'grid grid-cols-2 gap-2', children: allConnectors.map(item => {
123
127
  const provider = featuredProviders.find(p => p.name === item.providerName);
@@ -130,22 +134,22 @@ const LoadingConnect = ({ onRetry, selectedConnector, connectionError }) => {
130
134
  const { isMobile: isMobileSize } = useWindowDimensions();
131
135
  const isMobilePlatform = isMobile();
132
136
  if (selectedConnector.installUrl) {
133
- return _jsx("div", { className: clsx('w-full flex flex-col justify-center items-center font-semibold relative', {
137
+ return _jsx("div", { className: clsx('w-full sm:h-full flex flex-col justify-center items-center font-semibold relative', {
134
138
  'h-[60vh]': isMobileSize && AppSettings.ThemeData?.enablePortal,
135
- 'h-[300px]': !isMobileSize || !AppSettings.ThemeData?.enablePortal,
136
- }), children: _jsxs("div", { className: "flex flex-col gap-4 items-center justify-end row-start-2 row-span-1", children: [_jsxs("div", { className: "flex-col flex items-center gap-1", children: [_jsx(ConnectorIcon, { className: "w-11 h-auto p-0.5 rounded-md bg-secondary-800" }), _jsxs("p", { className: 'text-base font-semibold', children: [_jsx("span", { children: selectedConnector?.name }), " ", _jsx("span", { children: "is not installed" })] })] }), _jsx("button", { onClick: () => window.open(selectedConnector.installUrl, '_blank'), type: "button", className: "px-3 py-1 rounded-full bg-secondary-600 text-primary-500 font-semibold text-base hover:brightness-125 transition-all duration-200", children: "INSTALL" })] }) });
139
+ 'h-[300px]': isMobileSize && !AppSettings.ThemeData?.enablePortal,
140
+ }), children: _jsx("div", { className: "flex grow items-center", children: _jsxs("div", { className: "flex flex-col gap-4 items-center justify-end row-start-2 row-span-1", children: [_jsxs("div", { className: "flex-col flex items-center gap-1", children: [_jsx(ConnectorIcon, { className: "w-11 h-auto p-0.5 rounded-md bg-secondary-800" }), _jsxs("p", { className: 'text-base font-semibold', children: [_jsx("span", { children: selectedConnector?.name }), " ", _jsx("span", { children: "is not installed" })] })] }), _jsx("button", { onClick: () => window.open(selectedConnector.installUrl, '_blank'), type: "button", className: "px-3 py-1 rounded-full bg-secondary-600 text-primary-500 font-semibold text-base hover:brightness-125 transition-all duration-200", children: "INSTALL" })] }) }) });
137
141
  }
138
142
  return (_jsxs("div", { className: clsx('w-full flex flex-col justify-center items-center font-semibold relative', {
139
143
  'h-[60vh]': isMobileSize && AppSettings.ThemeData?.enablePortal,
140
- 'h-[300px]': !isMobileSize || !AppSettings.ThemeData?.enablePortal,
141
- 'pb-20': connectionError
144
+ 'h-full': !isMobileSize || !AppSettings.ThemeData?.enablePortal,
145
+ 'h-[300px]!': isMobileSize && !AppSettings.ThemeData?.enablePortal,
142
146
  }), children: [selectedConnector &&
143
- _jsxs("div", { className: "flex flex-col gap-3 items-center justify-end row-start-2 row-span-1", children: [_jsx("div", { className: "flex-col flex items-center", children: _jsxs("div", { className: "grid grid-cols-3 items-center gap-2", children: [_jsx("div", { className: "p-3 bg-secondary-700 rounded-lg z-10", children: _jsx(LayerSwapLogoSmall, { className: "w-11 h-auto" }) }), connectionError ?
144
- _jsx(Link2Off, { className: "w-auto h-auto place-self-center" })
145
- :
146
- _jsx("div", { className: "loader text-[3px]! place-self-center" }), _jsx("div", { className: "p-3 bg-secondary-700 rounded-lg z-10", children: _jsx(ConnectorIcon, { className: "w-11 h-auto" }) })] }) }), !connectionError &&
147
- _jsxs("div", { className: "py-1 text-center", children: [_jsx("p", { className: "text-base font-medium", children: isMobilePlatform ? 'Approve connection in your wallet' : 'Approve connection in your wallet pop-up' }), _jsx("p", { className: "text-sm font-normal text-secondary-text", children: isMobilePlatform ? "Don't see the request? Check your wallet app." : "Don't see a pop-up? Check your browser windows." })] })] }), connectionError &&
148
- _jsxs("div", { className: `bg-secondary-500 rounded-lg flex flex-col gap-1.5 items-center p-3 w-full absolute bottom-0`, children: [_jsxs("div", { className: "flex w-full gap-1 text-sm text-secondary-text justify-start", children: [_jsx(CircleX, { className: "w-5 h-5 stroke-primary-500 mr-1 mt-0.5 flex-shrink-0" }), _jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx("p", { className: 'text-base text-primary-text', children: "Failed to connect" }), _jsx("p", { className: "text-sm font-normal", children: connectionError })] })] }), _jsxs("button", { type: "button", className: "flex gap-1.5 items-center justify-center bg-secondary-400 w-full text-primary-text p-4 border-none rounded-lg cursor-pointer text-sm font-medium leading-4", onClick: onRetry, children: [_jsx(RotateCw, { className: 'h-4 w-4' }), _jsx("span", { children: "Try again" })] })] })] }));
147
+ _jsx("div", { className: "flex grow items-center", children: _jsxs("div", { className: "flex flex-col gap-3 items-center justify-end row-start-2 row-span-1", children: [_jsx("div", { className: "flex-col flex items-center", children: _jsxs("div", { className: "grid grid-cols-3 items-center gap-2", children: [_jsx("div", { className: "p-3 bg-secondary-700 rounded-lg z-10", children: _jsx(LayerSwapLogoSmall, { className: "w-11 h-auto" }) }), connectionError ?
148
+ _jsx(Link2Off, { className: "w-auto h-auto place-self-center" })
149
+ :
150
+ _jsx("div", { className: "loader !text-[3px] place-self-center" }), _jsx("div", { className: "p-3 bg-secondary-700 rounded-lg z-10", children: _jsx(ConnectorIcon, { className: "w-11 h-auto" }) })] }) }), !connectionError &&
151
+ _jsxs("div", { className: "py-1 text-center", children: [_jsx("p", { className: "text-base font-medium", children: isMobilePlatform ? 'Approve connection in your wallet' : 'Approve connection in your wallet pop-up' }), _jsx("p", { className: "text-sm font-normal text-secondary-text", children: isMobilePlatform ? "Don't see the request? Check your wallet app." : "Don't see a pop-up? Check your browser windows." })] })] }) }), connectionError &&
152
+ _jsxs("div", { className: `bg-secondary-500 rounded-lg flex flex-col gap-1.5 items-center p-3 w-full bottom-0`, children: [_jsxs("div", { className: "flex w-full gap-1 text-sm text-secondary-text justify-start", children: [_jsx(CircleX, { className: "w-5 h-5 stroke-primary-500 mr-1 mt-0.5 flex-shrink-0" }), _jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx("p", { className: 'text-base text-primary-text', children: "Failed to connect" }), _jsx("p", { className: "text-sm font-normal", children: connectionError })] })] }), _jsxs("button", { type: "button", className: "flex gap-1.5 items-center justify-center bg-secondary-400 w-full text-primary-text p-4 border-none rounded-lg cursor-pointer text-sm font-medium leading-4", onClick: onRetry, children: [_jsx(RotateCw, { className: 'h-4 w-4' }), _jsx("span", { children: "Try again" })] })] })] }));
149
153
  };
150
154
  const ProviderPicker = ({ providers, selectedProviderName, setSelectedProviderName }) => {
151
155
  const values = providers.map(p => p.name);
@@ -162,7 +166,17 @@ const ProviderPicker = ({ providers, selectedProviderName, setSelectedProviderNa
162
166
  };
163
167
  const MultichainConnectorPicker = ({ selectedConnector, allConnectors, providers, connect }) => {
164
168
  const Icon = resolveWalletConnectorIcon({ connector: selectedConnector, iconUrl: selectedConnector.icon });
165
- return (_jsxs("div", { children: [_jsxs("div", { className: "flex flex-col gap-4 py-10", children: [_jsx("div", { className: "flex justify-center gap-1", children: _jsx(Icon, { className: "w-14 h-auto rounded-lg" }) }), _jsxs("p", { className: "text-base text-center text-primary-text", children: [_jsx("span", { children: selectedConnector.name }), " ", _jsx("span", { children: "supports multiple network types. Please select the one you'd like to use." })] })] }), _jsx("div", { className: "flex flex-col gap-2 w-full", children: allConnectors.filter(c => c?.name === selectedConnector.name)?.map((connector, index) => {
169
+ return (_jsxs("div", { className: "flex flex-col justify-between h-full min-h-80", children: [_jsx("div", { className: "flex grow py-4", children: _jsxs("div", { className: "flex flex-col gap-2 grow items-center justify-center", children: [_jsx("div", { className: "flex justify-center gap-1", children: _jsx(Icon, { className: "w-14 h-auto rounded-lg" }) }), _jsxs("p", { className: "text-base text-center text-primary-text px-4", children: [_jsx("span", { children: selectedConnector.name }), " ", _jsx("span", { children: "supports multiple network types. Please select the one you'd like to use." })] })] }) }), _jsx("div", { className: "flex flex-col gap-2 w-full", children: Array.from(allConnectors
170
+ .filter(c => c?.name === selectedConnector.name)
171
+ .reduce((map, connector) => {
172
+ if (!connector?.providerName)
173
+ return map;
174
+ if (!map.has(connector.providerName)) {
175
+ map.set(connector.providerName, connector);
176
+ }
177
+ return map;
178
+ }, new Map())
179
+ .values()).map((connector, index) => {
166
180
  const provider = providers.find(p => p.name === connector?.providerName);
167
181
  return (_jsxs("button", { type: "button", onClick: async () => {
168
182
  await connect(connector, provider);
@@ -170,6 +184,13 @@ const MultichainConnectorPicker = ({ selectedConnector, allConnectors, providers
170
184
  _jsx(ImageWithFallback, { className: "w-8 h-8 rounded-md", width: 30, height: 30, src: provider.providerIcon, alt: provider.name }), _jsx("p", { children: connector?.providerName })] }, index));
171
185
  }) })] }));
172
186
  };
187
+ const featuredWalletsIds = [
188
+ 'metamask',
189
+ 'argent',
190
+ 'rainbow',
191
+ 'bitkeep',
192
+ 'okx-wallet',
193
+ ];
173
194
  function sortRecentConnectors(a, b, recentConnectors) {
174
195
  function getIndex(c) {
175
196
  const idx = recentConnectors?.findIndex(v => v.connectorName === c.name);
@@ -9,10 +9,9 @@ import clsx from "clsx";
9
9
  const Widget = ({ children, hideMenu, goBack, contextualMenu }) => {
10
10
  const wrapper = useRef(null);
11
11
  return _jsxs("div", { className: "relative p-px h-full", children: [AppSettings.ThemeData?.enableWideVersion &&
12
- _jsx("div", { className: "invisible sm:visible absolute inset-0 rounded-[25px] bg-gradient-to-t from-secondary-800 to-secondary-300 pointer-events-none" }), _jsxs("div", { id: "widget", style: AppSettings.ThemeData?.cardBackgroundStyle, className: clsx("sm:pb-4 rounded-3xl w-full sm:overflow-hidden relative bg-secondary-700 h-full flex flex-col", {
12
+ _jsx("div", { className: "invisible sm:visible absolute inset-0 rounded-[25px] bg-gradient-to-t from-secondary-800 to-secondary-300 pointer-events-none" }), _jsxs("div", { id: "widget", style: AppSettings.ThemeData?.cardBackgroundStyle, className: clsx("sm:pb-4 rounded-3xl w-full overflow-hidden relative bg-secondary-700 h-full flex flex-col has-expandContainerHeight:min-h-[650px]", {
13
13
  "max-sm:has-openpicker:min-h-svh max-sm:min-h-[99.8svh] sm:has-openpicker:min-h-[79svh]": AppSettings.ThemeData?.enableWideVersion,
14
- "has-openpicker:min-h-[650px]": !AppSettings.ThemeData?.enableWideVersion,
15
- "pb-4 overflow-hidden": AppSettings.ThemeData?.enablePortal == false,
14
+ "has-openpicker:min-h-[650px]": !AppSettings.ThemeData?.enableWideVersion
16
15
  }), children: [AppSettings.ApiVersion === 'testnet' &&
17
16
  _jsx("div", { className: "relative z-20", children: _jsx("div", { className: "absolute -top-1 right-[calc(50%-68px)] bg-warning-foreground py-0.5 px-10 rounded-b-md text-xs scale-75", children: "TESTNET" }) }), !hideMenu &&
18
17
  _jsx(HeaderWithMenu, { goBack: goBack, contextualMenu: contextualMenu }), _jsx("div", { className: "relative flex-col px-4 h-full min-h-0 flex flex-1", children: _jsx("div", { className: "flex flex-col flex-1 items-start h-full min-h-0 w-full gap-3", ref: wrapper, children: children }) }), _jsx("div", { id: "widget_root" })] })] });
@@ -10,8 +10,10 @@ export function truncateDecimals(value, decimals = 0) {
10
10
  const factor = Math.pow(10, decimals);
11
11
  const truncated = Math.trunc(value * factor) / factor;
12
12
  const formatted = isScientific(truncated)
13
- ? truncated.toFixed(decimals).replace(/\.?0+$/, '')
14
- : truncated.toString();
13
+ ? (!isNaN(Number(truncated))
14
+ ? truncated.toFixed(decimals).replace(/\.?0+$/, '')
15
+ : '')
16
+ : truncated?.toString();
15
17
  return Number(formatted).toLocaleString('en-US', {
16
18
  minimumFractionDigits: 0,
17
19
  maximumFractionDigits: decimals
@@ -6,7 +6,7 @@ import VaulDrawer from "../components/Modal/vaulModal";
6
6
  ;
7
7
  const AsyncModal = ({ onConfirm, onDismiss, children, submitText, dismissText, ...props }) => {
8
8
  return (_jsx(VaulDrawer, { onClose: onDismiss, ...props, children: _jsx(VaulDrawer.Snap, { id: "item-1", children: _jsxs("div", { className: "flex flex-col items-center gap-2 mt-2", children: [children, _jsxs("div", { className: "h-full w-full space-y-3", children: [_jsx(SubmitButton, { type: "button", onClick: onConfirm, children: submitText ?? 'Confirm' }), dismissText &&
9
- _jsx(SecondaryButton, { className: "w-full h-full py-3 !text-base", size: "xl", onClick: onDismiss, children: dismissText })] })] }) }) }));
9
+ _jsx(SecondaryButton, { className: "w-full h-full py-3 !text-base text-primary-text", size: "xl", onClick: onDismiss, children: dismissText })] })] }) }) }));
10
10
  };
11
11
  const AsyncModalContext = React.createContext(null);
12
12
  const AsyncModalProvider = ({ children }) => {
@@ -40,14 +40,6 @@ export function useSwapModalStateChangeCallback() {
40
40
  }
41
41
  }, [onSwapModalStateChange]);
42
42
  }
43
- export function useSwapIdChangeCallback() {
44
- const { onSwapIdChange } = useCallbacks();
45
- return useCallback((swapId) => {
46
- if (onSwapIdChange) {
47
- onSwapIdChange(swapId);
48
- }
49
- }, [onSwapIdChange]);
50
- }
51
43
  export function useBackClickCallback() {
52
44
  const { onBackClick } = useCallbacks();
53
45
  return useCallback(() => {
@@ -8,7 +8,6 @@ import { useSettingsState } from './settings';
8
8
  import { transformSwapDataToQuoteArgs, useQuoteData } from '../hooks/useFee';
9
9
  import { useRecentNetworksStore } from '../stores/recentRoutesStore';
10
10
  import { useSelectedAccount } from './balanceAccounts';
11
- import { useSwapIdChangeCallback } from './callbackProvider';
12
11
  import { useInitialSettings } from './settings';
13
12
  import { addressFormat } from '../lib/address/formatter';
14
13
  import { useSlippageStore } from '../stores/slippageStore';
@@ -46,10 +45,8 @@ export function SwapDataProvider({ children }) {
46
45
  const { providers } = useWallet(swapBasicFormData?.source_network, 'asSource');
47
46
  const quoteArgs = useMemo(() => transformSwapDataToQuoteArgs(swapBasicFormData, !!swapBasicFormData?.refuel), [swapBasicFormData]);
48
47
  const { quote: formDataQuote, quoteError: formDataQuoteError } = useQuoteData(quoteArgs, swapId ? 0 : undefined);
49
- const triggerSwapIdChangeCallback = useSwapIdChangeCallback();
50
48
  const handleUpdateSwapid = (value) => {
51
49
  setSwapId(value);
52
- triggerSwapIdChangeCallback(value);
53
50
  };
54
51
  const setSubmitedFormValues = useCallback((values) => {
55
52
  if (!values.from || !values.to || !values.fromAsset || !values.toAsset || !values.amount || !values.destination_address)
@@ -59,7 +56,7 @@ export function SwapDataProvider({ children }) {
59
56
  destination_network: values.to,
60
57
  source_token: values.fromAsset,
61
58
  destination_token: values.toAsset,
62
- requested_amount: Number(values.amount),
59
+ requested_amount: values.amount,
63
60
  destination_address: values.destination_address,
64
61
  use_deposit_address: values.depositMethod === 'deposit_address',
65
62
  refuel: !!values.refuel,
@@ -74,6 +71,7 @@ export function SwapDataProvider({ children }) {
74
71
  if (swapId && data?.data) {
75
72
  return data?.data?.swap ? {
76
73
  ...data.data.swap,
74
+ requested_amount: data.data.swap.requested_amount.toString(),
77
75
  refuel: !!data.data.refuel
78
76
  } : undefined;
79
77
  }
@@ -96,7 +94,7 @@ export function SwapDataProvider({ children }) {
96
94
  return formDataQuoteError;
97
95
  }, [formDataQuoteError, data, swapId]);
98
96
  const refuel = useMemo(() => {
99
- if (swapId) {
97
+ if (swapId && data?.data) {
100
98
  return data?.data?.refuel;
101
99
  }
102
100
  return formDataQuote?.refuel;
@@ -22,6 +22,6 @@ export const WalletProvidersProvider = ({ children, walletProviders }) => {
22
22
  return filteredProviders;
23
23
  }, [networks, isMobilePlatform, allProviders]);
24
24
  return (_jsxs(WalletProvidersContext.Provider, { value: providers, children: [children, _jsx(VaulDrawer, { show: open, setShow: setOpen, onClose: onFinish, modalId: "connectNewWallet", header: _jsxs("div", { className: "flex items-center gap-1", children: [(selectedConnector || selectedMultiChainConnector) &&
25
- _jsx("div", { className: "sm:-ml-2 -ml-0", children: _jsx(IconButton, { onClick: goBack, icon: _jsx(ChevronLeft, { className: "h-6 w-6" }) }) }), _jsx("p", { children: (selectedMultiChainConnector && !selectedConnector) ? "Select ecosystem" : "Connect wallet" })] }), children: _jsx(VaulDrawer.Snap, { id: 'item-1', children: _jsx(ConnectorsList, { onFinish: onFinish }) }) })] }));
25
+ _jsx("div", { className: "sm:-ml-2 -ml-0", children: _jsx(IconButton, { onClick: goBack, icon: _jsx(ChevronLeft, { className: "h-6 w-6" }) }) }), _jsx("p", { children: (selectedMultiChainConnector && !selectedConnector) ? "Select ecosystem" : "Connect wallet" })] }), children: _jsx(VaulDrawer.Snap, { openFullHeight: !isMobilePlatform, id: 'item-1', className: "pb-4 sm:!pb-0 sm:h-full", children: _jsx(ConnectorsList, { onFinish: onFinish }) }) })] }));
26
26
  };
27
27
  export const useWalletProviders = () => useContext(WalletProvidersContext);
@@ -1,4 +1,8 @@
1
1
  import { isValidAddress } from '../lib/address/validator';
2
+ export const FORM_VALIDATION_ERROR_CODES = {
3
+ MIN_AMOUNT_ERROR: "MIN_AMOUNT_ERROR",
4
+ MAX_AMOUNT_ERROR: "MAX_AMOUNT_ERROR",
5
+ };
2
6
  export function resolveFormValidation({ values, maxAllowedAmount, minAllowedAmount, sourceAddress, sameAccountNetwork, quoteError }) {
3
7
  let amount = values.amount ? Number(values.amount) : undefined;
4
8
  if (!values.from && !values.fromExchange) {
@@ -23,10 +27,10 @@ export function resolveFormValidation({ values, maxAllowedAmount, minAllowedAmou
23
27
  return { message: "Can't be negative" };
24
28
  }
25
29
  if (maxAllowedAmount != undefined && amount > maxAllowedAmount) {
26
- return { message: `Max amount is ${maxAllowedAmount}` };
30
+ return { code: FORM_VALIDATION_ERROR_CODES.MAX_AMOUNT_ERROR, message: `Max amount is ${maxAllowedAmount}` };
27
31
  }
28
32
  if (minAllowedAmount != undefined && amount < minAllowedAmount) {
29
- return { message: `Min amount is ${minAllowedAmount}` };
33
+ return { code: FORM_VALIDATION_ERROR_CODES.MIN_AMOUNT_ERROR, message: `Min amount is ${minAllowedAmount}` };
30
34
  }
31
35
  if (values.to) {
32
36
  if (values.destination_address && !isValidAddress(values.destination_address, values.to)) {
@@ -46,7 +50,7 @@ export function resolveFormValidation({ values, maxAllowedAmount, minAllowedAmou
46
50
  }
47
51
  const quoteErrorCode = quoteError?.response?.data?.error?.code || quoteError?.code;
48
52
  if (quoteError && quoteErrorCode !== "QUOTE_REQUIRES_NO_DEPOSIT_ADDRESS") {
49
- return { message: quoteError.response?.data?.error?.message || 'Unable to retrieve quote' };
53
+ return { message: 'Route not found' };
50
54
  }
51
55
  return { message: '' };
52
56
  }
@@ -18,7 +18,7 @@ AppSettings.WalletConnectConfig = {
18
18
  icons: ['https://www.layerswap.io/app/symbol.png'],
19
19
  };
20
20
  AppSettings.TonClientConfig = {
21
- tonApiKey: 'ac793ea74c19105d617dfbeedb827f1b267b4e91f1b15b2420d003ec49722c82',
21
+ tonApiKey: '815b3d3036592d941bbcec5a4db824a588c1b2d210c3a4b6d188dcd4a15337d2',
22
22
  manifestUrl: `https://layerswap.io/app/tonconnect-manifest.json`
23
23
  };
24
24
  AppSettings.ImtblPassportConfig = {
@@ -71,7 +71,6 @@ class NetworkSettings {
71
71
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.ZksyncEraMainnet] = {
72
72
  ChainId: 324,
73
73
  isFeatured: true,
74
- DefaultPriorityFee: 0,
75
74
  BaseFeeMultiplier: 1.7
76
75
  };
77
76
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.ZkspaceMainnet] = {
@@ -93,13 +92,11 @@ class NetworkSettings {
93
92
  ChainId: 42161,
94
93
  isFeatured: true,
95
94
  AccountExplorerTemplate: 'https://arbiscan.io/address/{0}',
96
- DefaultPriorityFee: 0,
97
95
  BaseFeeMultiplier: 4.15
98
96
  };
99
97
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.ArbitrumNova] = {
100
98
  ChainId: 42170,
101
99
  AccountExplorerTemplate: 'https://nova.arbiscan.io/address/{0}',
102
- DefaultPriorityFee: 0,
103
100
  BaseFeeMultiplier: 1.7
104
101
  };
105
102
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.ArbitrumGoerli] = {
@@ -123,19 +120,16 @@ class NetworkSettings {
123
120
  AccountExplorerTemplate: 'https://optimistic.etherscan.io/address/{0}',
124
121
  GasCalculationType: GasCalculation.OptimismType,
125
122
  BaseFeeMultiplier: 1.5,
126
- DefaultPriorityFee: 1
127
123
  };
128
124
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.ScrollMainnet] = {
129
125
  ChainId: 534352,
130
126
  GasCalculationType: GasCalculation.OptimismType,
131
127
  BaseFeeMultiplier: 1.5,
132
- DefaultPriorityFee: 1
133
128
  };
134
129
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.ZircuitMainnet] = {
135
130
  ChainId: 48900,
136
131
  GasCalculationType: GasCalculation.OptimismType,
137
132
  BaseFeeMultiplier: 1.5,
138
- DefaultPriorityFee: 1
139
133
  };
140
134
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.OptimismGoerli] = {
141
135
  GasCalculationType: GasCalculation.OptimismType,
@@ -151,7 +145,6 @@ class NetworkSettings {
151
145
  ChainId: 1,
152
146
  isFeatured: true,
153
147
  AccountExplorerTemplate: 'https://etherscan.io/address/{0}',
154
- DefaultPriorityFee: 0.3,
155
148
  BaseFeeMultiplier: 1.7
156
149
  };
157
150
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.AbstractMainnet] = {
@@ -215,7 +208,6 @@ class NetworkSettings {
215
208
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.LineaMainnet] = {
216
209
  ChainId: 59144,
217
210
  BaseFeeMultiplier: 1.7,
218
- DefaultPriorityFee: 1
219
211
  };
220
212
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.BaseTestnet] = {
221
213
  GasCalculationType: GasCalculation.OptimismType
@@ -224,31 +216,26 @@ class NetworkSettings {
224
216
  ChainId: 8453,
225
217
  GasCalculationType: GasCalculation.OptimismType,
226
218
  BaseFeeMultiplier: 1.7,
227
- DefaultPriorityFee: 1
228
219
  };
229
220
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.MantaMainnet] = {
230
221
  ChainId: 169,
231
222
  GasCalculationType: GasCalculation.OptimismType,
232
223
  BaseFeeMultiplier: 1.7,
233
- DefaultPriorityFee: 1
234
224
  };
235
225
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.RolluxMainnet] = {
236
226
  ChainId: 570,
237
227
  GasCalculationType: GasCalculation.OptimismType,
238
228
  BaseFeeMultiplier: 1.7,
239
- DefaultPriorityFee: 1
240
229
  };
241
230
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.OpBNBMainnet] = {
242
231
  ChainId: 204,
243
232
  GasCalculationType: GasCalculation.OptimismType,
244
233
  BaseFeeMultiplier: 1.7,
245
- DefaultPriorityFee: 1
246
234
  };
247
235
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.PGNMainnet] = {
248
236
  ChainId: 424,
249
237
  GasCalculationType: GasCalculation.OptimismType,
250
238
  BaseFeeMultiplier: 2.1,
251
- DefaultPriorityFee: 2.1
252
239
  };
253
240
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.PGNTestnet] = {
254
241
  GasCalculationType: GasCalculation.OptimismType
@@ -258,7 +245,6 @@ class NetworkSettings {
258
245
  };
259
246
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.AvalancheMainnet] = {
260
247
  ChainId: 43114,
261
- DefaultPriorityFee: 2.1,
262
248
  BaseFeeMultiplier: 1.7
263
249
  };
264
250
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.PolygonZkMainnet] = {
@@ -268,7 +254,6 @@ class NetworkSettings {
268
254
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.ZoraMainnet] = {
269
255
  GasCalculationType: GasCalculation.OptimismType,
270
256
  BaseFeeMultiplier: 1.7,
271
- DefaultPriorityFee: 1
272
257
  };
273
258
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.BlastSepolia] = {
274
259
  GasCalculationType: GasCalculation.OptimismType,
@@ -276,7 +261,6 @@ class NetworkSettings {
276
261
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.RedStoneMainnet] = {
277
262
  GasCalculationType: GasCalculation.OptimismType,
278
263
  BaseFeeMultiplier: 1.7,
279
- DefaultPriorityFee: 1
280
264
  };
281
265
  NetworkSettings.KnownSettings[KnownInternalNames.Networks.BlastMainnet] = {
282
266
  GasCalculationType: GasCalculation.OptimismType,
@@ -13,7 +13,7 @@ export const InitializeAuthInstance = (baseURL) => {
13
13
  config.headers["X-LS-APIKEY"] = apiKey;
14
14
  }
15
15
  else {
16
- throw new Error("NEXT_PUBLIC_API_KEY is not set up in env vars");
16
+ throw new Error("Api key is not provided");
17
17
  }
18
18
  return config;
19
19
  }, (error) => {
@@ -34,7 +34,7 @@ export const InitializeUnauthInstance = (baseURL) => {
34
34
  config.headers["X-LS-APIKEY"] = apiKey;
35
35
  }
36
36
  else {
37
- throw new Error("NEXT_PUBLIC_API_KEY is not set up in env vars");
37
+ throw new Error("Api key is not provided");
38
38
  }
39
39
  return config;
40
40
  }, (error) => {
@@ -87,7 +87,7 @@ export const useBalanceStore = create()(subscribeWithSelector((set, get, api) =>
87
87
  }, {});
88
88
  const sortedpairs = pairs.sort((a, b) => Number(a.network.source_rank) - Number(b.network.source_rank));
89
89
  sortedpairs.forEach(({ address, network }) => {
90
- get().fetchBalance(address, network, { dedupeInterval: 120000, ignoreCache: false, timeoutMs: 4500, retryCount: 0 });
90
+ get().fetchBalance(address, network, { dedupeInterval: 120000, ignoreCache: false, retryCount: 0 });
91
91
  });
92
92
  set({ sortingDataIsLoading: true });
93
93
  set({ initiatedBalances });