@layerswap/widget 1.0.4 → 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 +43 -9
- package/dist/esm/components/Buttons/copyButton.js +5 -3
- package/dist/esm/components/Buttons/secondaryButton.js +1 -1
- package/dist/esm/components/ColorSchema.js +3 -11
- package/dist/esm/components/Common/CountDownTimer.js +0 -14
- package/dist/esm/components/Input/Amount/Balance.js +9 -3
- 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/Swap/Withdraw/Wallet/index.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/balanceAccounts.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/useAllWithdrawalBalances.js +4 -4
- 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 +44 -77
- package/dist/index.css +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/Models/Theme.d.ts +0 -4
- 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/stores/balanceStore.d.ts +6 -4
- package/dist/types/stores/balanceStore.d.ts.map +1 -1
- package/dist/types/types/wallet.d.ts +3 -2
- package/dist/types/types/wallet.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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) => {
|
|
@@ -19,8 +19,11 @@ function processQueue() {
|
|
|
19
19
|
export const useBalanceStore = create()(subscribeWithSelector((set, get, api) => ({
|
|
20
20
|
balances: {},
|
|
21
21
|
lastFetchMap: {},
|
|
22
|
+
balanceKeysForSorting: {},
|
|
22
23
|
initiatedBalances: null,
|
|
23
|
-
|
|
24
|
+
sortingDataIsLoading: false,
|
|
25
|
+
partialPublished: false,
|
|
26
|
+
startTimeOfInit: undefined,
|
|
24
27
|
fetchBalance: (address, network, options) => {
|
|
25
28
|
const key = getKey(address, network);
|
|
26
29
|
const entry = get().balances[key];
|
|
@@ -76,92 +79,56 @@ export const useBalanceStore = create()(subscribeWithSelector((set, get, api) =>
|
|
|
76
79
|
}));
|
|
77
80
|
return queuedPromise;
|
|
78
81
|
},
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
initSortingBalances: pairs => {
|
|
83
|
+
const initiatedBalances = pairs.reduce((acc, { address, network }) => {
|
|
84
|
+
const key = getKey(address, network);
|
|
85
|
+
acc[network.name] = key;
|
|
86
|
+
return acc;
|
|
87
|
+
}, {});
|
|
88
|
+
const sortedpairs = pairs.sort((a, b) => Number(a.network.source_rank) - Number(b.network.source_rank));
|
|
89
|
+
sortedpairs.forEach(({ address, network }) => {
|
|
90
|
+
get().fetchBalance(address, network, { dedupeInterval: 120000, ignoreCache: false, retryCount: 0 });
|
|
86
91
|
});
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
92
|
+
set({ sortingDataIsLoading: true });
|
|
93
|
+
set({ initiatedBalances });
|
|
94
|
+
set({ startTimeOfInit: Date.now() });
|
|
95
|
+
set({ partialPublished: false });
|
|
96
|
+
api.subscribe(state => state.balances, balances => {
|
|
97
|
+
const keysArray = Object.entries(get().initiatedBalances || {});
|
|
98
|
+
const done = keysArray.every(([_, key]) => balances[key].data);
|
|
90
99
|
if (done) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (entry)
|
|
95
|
-
acc[network.name] = key;
|
|
96
|
-
return acc;
|
|
97
|
-
}, {});
|
|
98
|
-
set({ initiatedBalances: finalMap });
|
|
99
|
-
set({ isLoading: false });
|
|
100
|
-
unsub(); // cleanup subscription
|
|
100
|
+
set({ sortingDataIsLoading: false });
|
|
101
|
+
set({ balanceKeysForSorting: get().initiatedBalances });
|
|
102
|
+
set({ partialPublished: false });
|
|
101
103
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
104
|
+
else {
|
|
105
|
+
const startedAt = get().startTimeOfInit ?? 0;
|
|
106
|
+
const elapsed = Date.now() - startedAt;
|
|
107
|
+
if (!get().partialPublished && elapsed >= 3000) {
|
|
108
|
+
const partial = {};
|
|
109
|
+
keysArray.forEach(([networkName, key]) => {
|
|
110
|
+
if (balances[key]?.data) {
|
|
111
|
+
partial[networkName] = key;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
set({ balanceKeysForSorting: partial });
|
|
115
|
+
set({ partialPublished: true });
|
|
116
|
+
set({ sortingDataIsLoading: false });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}, { fireImmediately: true });
|
|
115
120
|
}
|
|
116
121
|
})));
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
let lastBalances = {};
|
|
120
|
-
let memoizedResult = null;
|
|
121
|
-
//Discuss with Babken M.
|
|
122
|
-
export const selectResolvedInitiatedBalances = (state) => {
|
|
123
|
-
const keys = state.initiatedBalances;
|
|
122
|
+
export const selectResolvedSortingBalances = (state) => {
|
|
123
|
+
const keys = state.balanceKeysForSorting;
|
|
124
124
|
if (!keys)
|
|
125
125
|
return null;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
return memoizedResult;
|
|
129
|
-
}
|
|
130
|
-
// Check if the actual data has changed, not just the object references
|
|
131
|
-
if (lastInitiatedBalances && memoizedResult) {
|
|
132
|
-
let hasChanged = false;
|
|
133
|
-
// Check if keys are different
|
|
134
|
-
const currentKeySet = Object.keys(keys);
|
|
135
|
-
const lastKeySet = Object.keys(lastInitiatedBalances);
|
|
136
|
-
if (currentKeySet.length !== lastKeySet.length ||
|
|
137
|
-
!currentKeySet.every(k => lastKeySet.includes(k))) {
|
|
138
|
-
hasChanged = true;
|
|
139
|
-
}
|
|
140
|
-
// Check if balance data has changed for existing keys
|
|
141
|
-
if (!hasChanged) {
|
|
142
|
-
for (const [_, key] of Object.entries(keys)) {
|
|
143
|
-
const entry = state.balances[key];
|
|
144
|
-
const lastEntry = lastBalances[key];
|
|
145
|
-
if (entry?.data !== lastEntry?.data) {
|
|
146
|
-
hasChanged = true;
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
if (!hasChanged) {
|
|
152
|
-
return memoizedResult;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
// Recalculate the result
|
|
156
|
-
const result = Object.entries(keys).reduce((acc, [networkName, key]) => {
|
|
126
|
+
const keysArray = Object.entries(keys);
|
|
127
|
+
const balanceData = keysArray.reduce((acc, [networkName, key]) => {
|
|
157
128
|
const entry = state.balances[key];
|
|
158
129
|
if (entry?.data)
|
|
159
130
|
acc[networkName] = entry.data;
|
|
160
131
|
return acc;
|
|
161
132
|
}, {});
|
|
162
|
-
|
|
163
|
-
lastInitiatedBalances = keys;
|
|
164
|
-
lastBalances = state.balances;
|
|
165
|
-
memoizedResult = result;
|
|
166
|
-
return result;
|
|
133
|
+
return balanceData;
|
|
167
134
|
};
|