@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.
- package/dist/esm/Models/Theme.js +0 -8
- package/dist/esm/components/Buttons/copyButton.js +5 -3
- package/dist/esm/components/ColorSchema.js +3 -10
- package/dist/esm/components/Common/CountDownTimer.js +0 -14
- package/dist/esm/components/Input/Amount/Balance.js +7 -1
- package/dist/esm/components/Input/NumericInput.js +7 -4
- package/dist/esm/components/Input/RoutePicker/Content.js +17 -1
- package/dist/esm/components/Input/RoutePicker/Rows/index.js +1 -1
- package/dist/esm/components/Input/SourceWalletPicker.js +1 -1
- package/dist/esm/components/Menu/index.js +1 -1
- package/dist/esm/components/Modal/vaulModal.js +11 -16
- package/dist/esm/components/Pages/Swap/Form/ExchangeForm.js +1 -1
- package/dist/esm/components/Pages/Swap/Form/FeeDetails/Refuel.js +7 -5
- package/dist/esm/components/Pages/Swap/Form/FeeDetails/Slippage.js +6 -1
- package/dist/esm/components/Pages/Swap/Form/FeeDetails/SwapQuote/SummaryRow.js +1 -1
- package/dist/esm/components/Pages/Swap/Form/FeeDetails/SwapQuote/index.js +1 -1
- package/dist/esm/components/Pages/Swap/Form/FormWrapper.js +3 -7
- package/dist/esm/components/Pages/Swap/Form/NetworkForm.js +8 -0
- package/dist/esm/components/Pages/Swap/Form/SecondaryComponents/validationError/ErrorDisplay.js +1 -1
- package/dist/esm/components/Pages/Swap/Withdraw/ManualWithdraw.js +2 -2
- package/dist/esm/components/Pages/Swap/Withdraw/Summary/Summary.js +3 -3
- package/dist/esm/components/Pages/Swap/Withdraw/Summary/index.js +1 -1
- package/dist/esm/components/Pages/Swap/Withdraw/Wallet/Common/buttons.js +1 -1
- package/dist/esm/components/Pages/SwapHistory/History.js +1 -1
- package/dist/esm/components/Pages/SwapHistory/SwapDetailsComponent.js +4 -1
- package/dist/esm/components/Pages/SwapHistory/index.js +3 -3
- package/dist/esm/components/Wallet/WalletComponents/ConnectedWallets.js +1 -1
- package/dist/esm/components/Wallet/WalletComponents/WalletsList.js +3 -2
- package/dist/esm/components/Wallet/WalletModal/ConnectorsList.js +44 -23
- package/dist/esm/components/Widget/Index.js +2 -3
- package/dist/esm/components/utils/RoundDecimals.js +4 -2
- package/dist/esm/context/asyncModal.js +1 -1
- package/dist/esm/context/callbackProvider.js +0 -8
- package/dist/esm/context/swap.js +3 -5
- package/dist/esm/context/walletProviders.js +1 -1
- package/dist/esm/hooks/useFormValidation.js +7 -3
- package/dist/esm/lib/AppSettings.js +1 -1
- package/dist/esm/lib/NetworkSettings.js +0 -16
- package/dist/esm/lib/axiosInterceptor.js +2 -2
- package/dist/esm/stores/balanceStore.js +1 -1
- package/dist/index.css +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/Models/Theme.d.ts +0 -3
- package/dist/types/Models/Theme.d.ts.map +1 -1
- package/dist/types/components/Buttons/copyButton.d.ts +3 -1
- package/dist/types/components/Buttons/copyButton.d.ts.map +1 -1
- package/dist/types/components/ColorSchema.d.ts.map +1 -1
- package/dist/types/components/Common/CountDownTimer.d.ts.map +1 -1
- package/dist/types/components/Input/Amount/Balance.d.ts.map +1 -1
- package/dist/types/components/Input/NumericInput.d.ts.map +1 -1
- package/dist/types/components/Input/RoutePicker/Content.d.ts.map +1 -1
- package/dist/types/components/Input/SourceWalletPicker.d.ts.map +1 -1
- package/dist/types/components/Modal/vaulModal.d.ts.map +1 -1
- package/dist/types/components/Pages/Swap/Form/FeeDetails/Refuel.d.ts.map +1 -1
- package/dist/types/components/Pages/Swap/Form/NetworkForm.d.ts.map +1 -1
- package/dist/types/components/Pages/SwapHistory/SwapDetailsComponent.d.ts.map +1 -1
- package/dist/types/components/Pages/SwapHistory/index.d.ts.map +1 -1
- package/dist/types/components/Wallet/WalletComponents/WalletsList.d.ts.map +1 -1
- package/dist/types/components/Wallet/WalletModal/ConnectorsList.d.ts.map +1 -1
- package/dist/types/components/Widget/Index.d.ts.map +1 -1
- package/dist/types/components/utils/RoundDecimals.d.ts.map +1 -1
- package/dist/types/context/callbackProvider.d.ts +0 -2
- package/dist/types/context/callbackProvider.d.ts.map +1 -1
- package/dist/types/context/swap.d.ts.map +1 -1
- package/dist/types/context/validationContext.d.ts +1 -0
- package/dist/types/context/validationContext.d.ts.map +1 -1
- package/dist/types/hooks/useFormValidation.d.ts +8 -0
- package/dist/types/hooks/useFormValidation.d.ts.map +1 -1
- package/dist/types/hooks/useWallet.d.ts.map +1 -1
- package/dist/types/lib/NetworkSettings.d.ts +0 -1
- package/dist/types/lib/NetworkSettings.d.ts.map +1 -1
- package/dist/types/lib/apiClients/layerSwapApiClient.d.ts +1 -1
- package/dist/types/types/wallet.d.ts +2 -1
- package/dist/types/types/wallet.d.ts.map +1 -1
- 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-
|
|
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(
|
|
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
|
|
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:
|
|
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 ? (
|
|
93
|
-
const allHiddenConnectors = useMemo(() => featuredProviders
|
|
94
|
-
|
|
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
|
|
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-[
|
|
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]':
|
|
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-
|
|
141
|
-
'
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
_jsxs("div", { className: `bg-secondary-500 rounded-lg flex flex-col gap-1.5 items-center p-3 w-full
|
|
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-
|
|
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
|
|
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
|
-
?
|
|
14
|
-
|
|
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(() => {
|
package/dist/esm/context/swap.js
CHANGED
|
@@ -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:
|
|
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:
|
|
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: '
|
|
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("
|
|
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("
|
|
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,
|
|
90
|
+
get().fetchBalance(address, network, { dedupeInterval: 120000, ignoreCache: false, retryCount: 0 });
|
|
91
91
|
});
|
|
92
92
|
set({ sortingDataIsLoading: true });
|
|
93
93
|
set({ initiatedBalances });
|