@rango-dev/widget-embedded 0.1.11-next.11 → 0.1.11-next.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmSwapPage.d.ts","sourceRoot":"","sources":["../src/pages/ConfirmSwapPage.tsx"],"names":[],"mappings":";AAiCA,wBAAgB,eAAe,gBAyJ9B"}
1
+ {"version":3,"file":"ConfirmSwapPage.d.ts","sourceRoot":"","sources":["../src/pages/ConfirmSwapPage.tsx"],"names":[],"mappings":";AAiCA,wBAAgB,eAAe,gBA2J9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../src/pages/Home.tsx"],"names":[],"mappings":";AAkEA,wBAAgB,IAAI,gBA+JnB"}
1
+ {"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../src/pages/Home.tsx"],"names":[],"mappings":";AAmEA,wBAAgB,IAAI,gBA+JnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SwapDetailsPage.d.ts","sourceRoot":"","sources":["../src/pages/SwapDetailsPage.tsx"],"names":[],"mappings":";AAiCA,wBAAgB,eAAe,gBA0I9B"}
1
+ {"version":3,"file":"SwapDetailsPage.d.ts","sourceRoot":"","sources":["../src/pages/SwapDetailsPage.tsx"],"names":[],"mappings":";AAgCA,wBAAgB,eAAe,gBAqI9B"}
@@ -3,8 +3,7 @@ import BigNumber from 'bignumber.js';
3
3
  import { BestRouteResponse, BlockchainMeta, Token } from 'rango-sdk';
4
4
  import { SelectedWallet } from './wallets';
5
5
  import { BestRouteEqualityParams } from '../types';
6
- import { TokenMeta } from '@rango-dev/ui/dist/types/meta';
7
- import { BestRouteWithFee } from '@rango-dev/ui';
6
+ import { PendingSwap } from '@rango-dev/queue-manager-rango-preset';
8
7
  export declare function searchParamsToToken(tokens: Token[], searchParams: string | null, chain: BlockchainMeta | null): Token | null;
9
8
  export declare function getBestRouteToTokenUsdPrice(bestRoute: BestRouteResponse | null): number | null | undefined;
10
9
  export declare function isNumberOfSwapsChanged(route1: BestRouteResponse, route2: BestRouteResponse): boolean;
@@ -14,6 +13,7 @@ export declare function isRouteChanged(route1: BestRouteResponse, route2: BestRo
14
13
  export declare function outToRatioHasWarning(fromUsdValue: BigNumber | null, outToInRatio: BigNumber | 0): boolean;
15
14
  export declare function getRequiredBalanceOfWallet(selectedWallet: SelectedWallet, fee: SimulationValidationStatus[] | null): SimulationAssetAndAmount[] | null;
16
15
  export declare function isRouteParametersChanged(params: BestRouteEqualityParams): boolean | undefined;
17
- export declare function getBestRouteWithCalculatedFees(bestRoute: BestRouteResponse | null, tokens: TokenMeta[]): BestRouteWithFee | null;
18
- export declare const getBestRouteStatus: (loading: boolean, error: boolean) => "loading" | "failed" | "success";
16
+ export declare function getFormatedBestRoute(bestRoute: BestRouteResponse | null): BestRouteResponse | null;
17
+ export declare function getFormatedPendingSwap(pendingSwap: PendingSwap): PendingSwap;
18
+ export declare const getBestRouteStatus: (loading: boolean, error: boolean) => "failed" | "success" | "loading";
19
19
  //# sourceMappingURL=routing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../src/utils/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,EAAE,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,EAAE,cAAc,GAAG,IAAI,GAC3B,KAAK,GAAG,IAAI,CAkBd;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI,GAAG,SAAS,CAG3B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAK1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAMT;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,SAAS,GAAG,IAAI,EAC9B,YAAY,EAAE,SAAS,GAAG,CAAC,WAQ5B;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,0BAA0B,EAAE,GAAG,IAAI,GACvC,wBAAwB,EAAE,GAAG,IAAI,CAUnC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,uBA4BvE;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,iBAAiB,GAAG,IAAI,EACnC,MAAM,EAAE,SAAS,EAAE,GAClB,gBAAgB,GAAG,IAAI,CAWzB;AAGD,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,OAAO,qCAIlE,CAAC"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../src/utils/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,EAAE,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,EAAE,cAAc,GAAG,IAAI,GAC3B,KAAK,GAAG,IAAI,CAkBd;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI,GAAG,SAAS,CAG3B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAK1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAMT;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,SAAS,GAAG,IAAI,EAC9B,YAAY,EAAE,SAAS,GAAG,CAAC,WAQ5B;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,0BAA0B,EAAE,GAAG,IAAI,GACvC,wBAAwB,EAAE,GAAG,IAAI,CAUnC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,uBA4BvE;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAClC,iBAAiB,GAAG,IAAI,CAe1B;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAiB5E;AAGD,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,OAAO,qCAIlE,CAAC"}
@@ -14,10 +14,10 @@ var reactRouterDom = require('react-router-dom');
14
14
  var zustand = require('zustand');
15
15
  var BigNumber = require('bignumber.js');
16
16
  var BigNumber__default = _interopDefault(BigNumber);
17
- var walletsShared = require('@rango-dev/wallets-shared');
18
- var walletsCore = require('@rango-dev/wallets-core');
19
17
  var middleware = require('zustand/middleware');
20
18
  var rangoSdk = require('rango-sdk');
19
+ var walletsShared = require('@rango-dev/wallets-shared');
20
+ var walletsCore = require('@rango-dev/wallets-core');
21
21
  var shallow = require('zustand/shallow');
22
22
  var reactI18next = require('react-i18next');
23
23
  var theme = require('@rango-dev/ui/src/theme');
@@ -127,6 +127,195 @@ const decimalNumber = function (number, toFixed) {
127
127
  return parseFloat(number).toFixed(toFixed);
128
128
  };
129
129
 
130
+ function searchParamsToToken(tokens, searchParams, chain) {
131
+ if (!chain) return null;
132
+ return tokens.find(token => {
133
+ const symbolAndAddress = searchParams?.split('--');
134
+ if (symbolAndAddress?.length === 1) return token.symbol === symbolAndAddress[0] && token.address === null && token.blockchain === chain.name;
135
+ return token.symbol === symbolAndAddress?.[0] && token.address === symbolAndAddress?.[1] && token.blockchain === chain.name;
136
+ }) || null;
137
+ }
138
+ function getBestRouteToTokenUsdPrice(bestRoute) {
139
+ return bestRoute?.result?.swaps[bestRoute?.result?.swaps.length - 1].to.usdPrice;
140
+ }
141
+ function isNumberOfSwapsChanged(route1, route2) {
142
+ const route1Swaps = route1.result?.swaps || [];
143
+ const route2Swaps = route2.result?.swaps || [];
144
+ return route1Swaps.length !== route2Swaps.length;
145
+ }
146
+ function isRouteSwappersUpdated(route1, route2) {
147
+ const route1Swappers = route1.result?.swaps.map(swap => swap.swapperId) || [];
148
+ const route2Swappers = route2.result?.swaps.map(swap => swap.swapperId) || [];
149
+ return !areEqual(route1Swappers, route2Swappers);
150
+ }
151
+ function isRouteInternalCoinsUpdated(route1, route2) {
152
+ const route1InternalCoins = route1.result?.swaps.map(swap => swap.to.symbol) || [];
153
+ const route2InternalCoins = route2.result?.swaps.map(swap => swap.to.symbol) || [];
154
+ return !areEqual(route1InternalCoins, route2InternalCoins);
155
+ }
156
+ function isRouteChanged(route1, route2) {
157
+ return isNumberOfSwapsChanged(route1, route2) || isRouteSwappersUpdated(route1, route2) || isRouteInternalCoinsUpdated(route1, route2);
158
+ }
159
+ function getRequiredBalanceOfWallet(selectedWallet, fee) {
160
+ if (fee === null) return null;
161
+ const relatedFeeStatus = fee?.find(item => item.blockchain === selectedWallet.chain)?.wallets.find(wallet => wallet.address?.toLowerCase() === selectedWallet.address.toLowerCase());
162
+ if (!relatedFeeStatus) return null;
163
+ return relatedFeeStatus.requiredAssets;
164
+ }
165
+ function isRouteParametersChanged(params) {
166
+ if (params.store === 'bestRoute') {
167
+ const {
168
+ prevState,
169
+ currentState
170
+ } = params;
171
+ return !!currentState.fromToken && !!currentState.toToken && (prevState.fromChain?.name !== currentState.fromChain?.name || prevState.toChain?.name !== currentState.toChain?.name || prevState.fromToken?.symbol !== currentState.fromToken?.symbol || prevState.toToken?.symbol !== currentState.toToken?.symbol || prevState.fromToken?.blockchain !== prevState.fromToken?.blockchain || prevState.toToken?.blockchain !== currentState.toToken?.blockchain || prevState.fromToken?.address !== currentState.fromToken?.address || prevState.toToken?.address !== currentState.toToken?.address || prevState.inputAmount !== currentState.inputAmount);
172
+ } else if (params.store === 'settings') {
173
+ const {
174
+ prevState,
175
+ currentState
176
+ } = params;
177
+ return prevState.slippage !== currentState.slippage || prevState.customSlippage !== currentState.customSlippage || prevState.disabledLiquiditySources?.length !== currentState.disabledLiquiditySources?.length || prevState.infiniteApprove || currentState.infiniteApprove;
178
+ }
179
+ return false;
180
+ }
181
+ function getFormatedBestRoute(bestRoute) {
182
+ if (!bestRoute) return null;
183
+ const formatedSwaps = (bestRoute.result?.swaps || []).map(swap => ({
184
+ ...swap,
185
+ fromAmount: numberToString(swap.fromAmount, 6, 6),
186
+ toAmount: numberToString(swap.toAmount, 6, 6)
187
+ }));
188
+ return {
189
+ ...bestRoute,
190
+ ...(bestRoute.result && {
191
+ result: {
192
+ ...bestRoute.result,
193
+ swaps: formatedSwaps
194
+ }
195
+ })
196
+ };
197
+ }
198
+ function getFormatedPendingSwap(pendingSwap) {
199
+ const formatedSteps = pendingSwap.steps.map(step => ({
200
+ ...step,
201
+ feeInUsd: numberToString(step.feeInUsd, 4, 4),
202
+ outputAmount: numberToString(step.outputAmount, 6, 6),
203
+ expectedOutputAmountHumanReadable: numberToString(step.expectedOutputAmountHumanReadable, 6, 6)
204
+ }));
205
+ return {
206
+ ...pendingSwap,
207
+ inputAmount: numberToString(pendingSwap.inputAmount, 6, 6),
208
+ steps: formatedSteps
209
+ };
210
+ }
211
+ //todo: refactor bestRoute store and add loadingStatus
212
+ const getBestRouteStatus = (loading, error) => {
213
+ if (loading) return 'loading';
214
+ if (error) return 'failed';else return 'success';
215
+ };
216
+
217
+ const createSelectors = _store => {
218
+ let store = _store;
219
+ store.use = {};
220
+ for (let k of Object.keys(store.getState())) {
221
+ store.use[k] = () => store(s => s[k]);
222
+ }
223
+ return store;
224
+ };
225
+
226
+ const RANGO_PUBLIC_API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32';
227
+ let configs = {
228
+ API_KEY: RANGO_PUBLIC_API_KEY
229
+ };
230
+ function getConfig(name) {
231
+ return configs[name];
232
+ }
233
+
234
+ let rango = undefined;
235
+ const httpService = () => {
236
+ if (rango) return rango;
237
+ rango = new rangoSdk.RangoClient(getConfig('API_KEY'));
238
+ return rango;
239
+ };
240
+
241
+ const SLIPPAGES = [0.5, 1, 3, 5, 8, 13, 20];
242
+ const DEFAULT_SLIPPAGE = 1;
243
+ const HIGH_SLIPPAGE = 5;
244
+ const MAX_SLIPPAGE = 100;
245
+ const MIN_SLIPPGAE = 0;
246
+
247
+ const useMetaStore = /*#__PURE__*/createSelectors( /*#__PURE__*/zustand.create()(set => ({
248
+ meta: {
249
+ blockchains: [],
250
+ popularTokens: [],
251
+ swappers: [],
252
+ tokens: []
253
+ },
254
+ loadingStatus: 'loading',
255
+ fetchMeta: async () => {
256
+ try {
257
+ const response = await httpService().getAllMetadata();
258
+ const chainThatHasTokenInMetaResponse = removeDuplicateFrom(response.tokens.map(t => t.blockchain));
259
+ const enabledChains = response.blockchains.filter(chain => chain.enabled && chainThatHasTokenInMetaResponse.includes(chain.name));
260
+ response.blockchains = enabledChains.sort((a, b) => a.sort - b.sort);
261
+ set({
262
+ meta: response,
263
+ loadingStatus: 'success'
264
+ });
265
+ } catch (error) {
266
+ set({
267
+ loadingStatus: 'failed'
268
+ });
269
+ }
270
+ }
271
+ })));
272
+
273
+ const useSettingsStore = /*#__PURE__*/createSelectors( /*#__PURE__*/zustand.create()( /*#__PURE__*/middleware.persist( /*#__PURE__*/middleware.subscribeWithSelector(set => ({
274
+ slippage: DEFAULT_SLIPPAGE,
275
+ customSlippage: null,
276
+ infiniteApprove: false,
277
+ affiliateRef: null,
278
+ disabledLiquiditySources: [],
279
+ theme: 'auto',
280
+ setSlippage: slippage => set(() => ({
281
+ slippage: slippage
282
+ })),
283
+ setCustomSlippage: customSlippage => set(() => ({
284
+ customSlippage: customSlippage
285
+ })),
286
+ setAffiliateRef: affiliateRef => set(() => ({
287
+ affiliateRef
288
+ })),
289
+ toggleAllLiquiditySources: () => set(state => {
290
+ const {
291
+ swappers
292
+ } = useMetaStore.getState().meta;
293
+ const swappersGroup = removeDuplicateFrom(swappers.map(swapper => swapper.swapperGroup));
294
+ if (swappersGroup.length === state.disabledLiquiditySources.length) return {
295
+ disabledLiquiditySources: []
296
+ };else {
297
+ return {
298
+ disabledLiquiditySources: swappersGroup
299
+ };
300
+ }
301
+ }),
302
+ toggleInfiniteApprove: () => set(state => ({
303
+ infiniteApprove: !state.infiniteApprove
304
+ })),
305
+ toggleLiquiditySource: name => set(state => {
306
+ if (state.disabledLiquiditySources.includes(name)) return {
307
+ disabledLiquiditySources: state.disabledLiquiditySources.filter(liquiditySource => liquiditySource != name)
308
+ };else return {
309
+ disabledLiquiditySources: state.disabledLiquiditySources.concat(name)
310
+ };
311
+ }),
312
+ setTheme: theme => set(() => ({
313
+ theme
314
+ }))
315
+ })), {
316
+ name: 'user-settings'
317
+ })));
318
+
130
319
  function getStateWallet(state) {
131
320
  switch (true) {
132
321
  case state.connected:
@@ -646,165 +835,6 @@ function shouldRetrySwap(pendingSwap) {
646
835
  return pendingSwap.status === 'failed' && !!pendingSwap.finishTime && new Date().getTime() - parseInt(pendingSwap.finishTime) < 4 * 3600 * 1000;
647
836
  }
648
837
 
649
- function searchParamsToToken(tokens, searchParams, chain) {
650
- if (!chain) return null;
651
- return tokens.find(token => {
652
- const symbolAndAddress = searchParams?.split('--');
653
- if (symbolAndAddress?.length === 1) return token.symbol === symbolAndAddress[0] && token.address === null && token.blockchain === chain.name;
654
- return token.symbol === symbolAndAddress?.[0] && token.address === symbolAndAddress?.[1] && token.blockchain === chain.name;
655
- }) || null;
656
- }
657
- function getBestRouteToTokenUsdPrice(bestRoute) {
658
- return bestRoute?.result?.swaps[bestRoute?.result?.swaps.length - 1].to.usdPrice;
659
- }
660
- function isNumberOfSwapsChanged(route1, route2) {
661
- const route1Swaps = route1.result?.swaps || [];
662
- const route2Swaps = route2.result?.swaps || [];
663
- return route1Swaps.length !== route2Swaps.length;
664
- }
665
- function isRouteSwappersUpdated(route1, route2) {
666
- const route1Swappers = route1.result?.swaps.map(swap => swap.swapperId) || [];
667
- const route2Swappers = route2.result?.swaps.map(swap => swap.swapperId) || [];
668
- return !areEqual(route1Swappers, route2Swappers);
669
- }
670
- function isRouteInternalCoinsUpdated(route1, route2) {
671
- const route1InternalCoins = route1.result?.swaps.map(swap => swap.to.symbol) || [];
672
- const route2InternalCoins = route2.result?.swaps.map(swap => swap.to.symbol) || [];
673
- return !areEqual(route1InternalCoins, route2InternalCoins);
674
- }
675
- function isRouteChanged(route1, route2) {
676
- return isNumberOfSwapsChanged(route1, route2) || isRouteSwappersUpdated(route1, route2) || isRouteInternalCoinsUpdated(route1, route2);
677
- }
678
- function getRequiredBalanceOfWallet(selectedWallet, fee) {
679
- if (fee === null) return null;
680
- const relatedFeeStatus = fee?.find(item => item.blockchain === selectedWallet.chain)?.wallets.find(wallet => wallet.address?.toLowerCase() === selectedWallet.address.toLowerCase());
681
- if (!relatedFeeStatus) return null;
682
- return relatedFeeStatus.requiredAssets;
683
- }
684
- function isRouteParametersChanged(params) {
685
- if (params.store === 'bestRoute') {
686
- const {
687
- prevState,
688
- currentState
689
- } = params;
690
- return !!currentState.fromToken && !!currentState.toToken && (prevState.fromChain?.name !== currentState.fromChain?.name || prevState.toChain?.name !== currentState.toChain?.name || prevState.fromToken?.symbol !== currentState.fromToken?.symbol || prevState.toToken?.symbol !== currentState.toToken?.symbol || prevState.fromToken?.blockchain !== prevState.fromToken?.blockchain || prevState.toToken?.blockchain !== currentState.toToken?.blockchain || prevState.fromToken?.address !== currentState.fromToken?.address || prevState.toToken?.address !== currentState.toToken?.address || prevState.inputAmount !== currentState.inputAmount);
691
- } else if (params.store === 'settings') {
692
- const {
693
- prevState,
694
- currentState
695
- } = params;
696
- return prevState.slippage !== currentState.slippage || prevState.customSlippage !== currentState.customSlippage || prevState.disabledLiquiditySources?.length !== currentState.disabledLiquiditySources?.length || prevState.infiniteApprove || currentState.infiniteApprove;
697
- }
698
- return false;
699
- }
700
- //todo: refactor bestRoute store and add loadingStatus
701
- const getBestRouteStatus = (loading, error) => {
702
- if (loading) return 'loading';
703
- if (error) return 'failed';else return 'success';
704
- };
705
-
706
- const createSelectors = _store => {
707
- let store = _store;
708
- store.use = {};
709
- for (let k of Object.keys(store.getState())) {
710
- store.use[k] = () => store(s => s[k]);
711
- }
712
- return store;
713
- };
714
-
715
- const RANGO_PUBLIC_API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32';
716
- let configs = {
717
- API_KEY: RANGO_PUBLIC_API_KEY
718
- };
719
- function getConfig(name) {
720
- return configs[name];
721
- }
722
-
723
- let rango = undefined;
724
- const httpService = () => {
725
- if (rango) return rango;
726
- rango = new rangoSdk.RangoClient(getConfig('API_KEY'));
727
- return rango;
728
- };
729
-
730
- const SLIPPAGES = [0.5, 1, 3, 5, 8, 13, 20];
731
- const DEFAULT_SLIPPAGE = 1;
732
- const HIGH_SLIPPAGE = 5;
733
- const MAX_SLIPPAGE = 100;
734
- const MIN_SLIPPGAE = 0;
735
-
736
- const useMetaStore = /*#__PURE__*/createSelectors( /*#__PURE__*/zustand.create()(set => ({
737
- meta: {
738
- blockchains: [],
739
- popularTokens: [],
740
- swappers: [],
741
- tokens: []
742
- },
743
- loadingStatus: 'loading',
744
- fetchMeta: async () => {
745
- try {
746
- const response = await httpService().getAllMetadata();
747
- const chainThatHasTokenInMetaResponse = removeDuplicateFrom(response.tokens.map(t => t.blockchain));
748
- const enabledChains = response.blockchains.filter(chain => chain.enabled && chainThatHasTokenInMetaResponse.includes(chain.name));
749
- response.blockchains = enabledChains.sort((a, b) => a.sort - b.sort);
750
- set({
751
- meta: response,
752
- loadingStatus: 'success'
753
- });
754
- } catch (error) {
755
- set({
756
- loadingStatus: 'failed'
757
- });
758
- }
759
- }
760
- })));
761
-
762
- const useSettingsStore = /*#__PURE__*/createSelectors( /*#__PURE__*/zustand.create()( /*#__PURE__*/middleware.persist( /*#__PURE__*/middleware.subscribeWithSelector(set => ({
763
- slippage: DEFAULT_SLIPPAGE,
764
- customSlippage: null,
765
- infiniteApprove: false,
766
- affiliateRef: null,
767
- disabledLiquiditySources: [],
768
- theme: 'auto',
769
- setSlippage: slippage => set(() => ({
770
- slippage: slippage
771
- })),
772
- setCustomSlippage: customSlippage => set(() => ({
773
- customSlippage: customSlippage
774
- })),
775
- setAffiliateRef: affiliateRef => set(() => ({
776
- affiliateRef
777
- })),
778
- toggleAllLiquiditySources: () => set(state => {
779
- const {
780
- swappers
781
- } = useMetaStore.getState().meta;
782
- const swappersGroup = removeDuplicateFrom(swappers.map(swapper => swapper.swapperGroup));
783
- if (swappersGroup.length === state.disabledLiquiditySources.length) return {
784
- disabledLiquiditySources: []
785
- };else {
786
- return {
787
- disabledLiquiditySources: swappersGroup
788
- };
789
- }
790
- }),
791
- toggleInfiniteApprove: () => set(state => ({
792
- infiniteApprove: !state.infiniteApprove
793
- })),
794
- toggleLiquiditySource: name => set(state => {
795
- if (state.disabledLiquiditySources.includes(name)) return {
796
- disabledLiquiditySources: state.disabledLiquiditySources.filter(liquiditySource => liquiditySource != name)
797
- };else return {
798
- disabledLiquiditySources: state.disabledLiquiditySources.concat(name)
799
- };
800
- }),
801
- setTheme: theme => set(() => ({
802
- theme
803
- }))
804
- })), {
805
- name: 'user-settings'
806
- })));
807
-
808
838
  const useWalletsStore = /*#__PURE__*/createSelectors( /*#__PURE__*/zustand.create()( /*#__PURE__*/middleware.subscribeWithSelector(set => ({
809
839
  accounts: [],
810
840
  balances: [],
@@ -1739,7 +1769,7 @@ function Home() {
1739
1769
  }), showBestRoute && React__default.createElement(BestRouteContainer, null, React__default.createElement(ui.BestRoute, {
1740
1770
  error: bestRouteError,
1741
1771
  loading: fetchingBestRoute,
1742
- data: bestRoute,
1772
+ data: getFormatedBestRoute(bestRoute),
1743
1773
  totalFee: numberToString(totalFeeInUsd, 0, 2),
1744
1774
  feeWarning: highFee,
1745
1775
  totalTime: secondsToString(totalArrivalTime(bestRoute))
@@ -2354,7 +2384,9 @@ function ConfirmSwapPage() {
2354
2384
  navigate(navigationRoutes.swaps + `/${swap.requestId}`, {
2355
2385
  replace: true
2356
2386
  });
2357
- setInputAmount('');
2387
+ setTimeout(() => {
2388
+ setInputAmount('');
2389
+ }, 0);
2358
2390
  }
2359
2391
  });
2360
2392
  },
@@ -2832,10 +2864,6 @@ function SwapDetailsPage() {
2832
2864
  loading: loading,
2833
2865
  onBack: navigateBackFrom.bind(null, navigationRoutes.swapDetails)
2834
2866
  });
2835
- const firstStep = swap.steps[0];
2836
- const lastStep = swap.steps[swap.steps.length - 1];
2837
- const fromAmount = numberToString(swap.inputAmount);
2838
- const toAmount = numberToString(swap.simulationResult.outputAmount);
2839
2867
  const currentStep = queueManagerRangoPreset.getCurrentStep(swap);
2840
2868
  const currentStepBlockchain = currentStep ? queueManagerRangoPreset.getCurrentBlockchainOfOrNull(swap, currentStep) : null;
2841
2869
  const currentStepWallet = currentStep ? queueManagerRangoPreset.getRelatedWalletOrNull(swap, currentStep) : null;
@@ -2848,38 +2876,41 @@ function SwapDetailsPage() {
2848
2876
  const lastConvertedTokenInFailedSwap = getLastConvertedTokenInFailedSwap(swap);
2849
2877
  return React__default.createElement(ui.SwapHistory, Object.assign({
2850
2878
  onBack: navigateBackFrom.bind(null, navigationRoutes.swapDetails),
2851
- previewInputs: React__default.createElement(React__default.Fragment, null, React__default.createElement(TokenPreview, {
2852
- chain: {
2853
- displayName: firstStep?.fromBlockchain || '',
2854
- // @ts-ignore
2855
- logo: firstStep?.fromBlockchainLogo || ''
2856
- },
2857
- token: {
2858
- symbol: firstStep?.fromSymbol || '',
2859
- image: firstStep?.fromLogo || ''
2860
- },
2861
- amount: fromAmount,
2862
- label: i18n.t('From'),
2863
- loadingStatus: 'success'
2864
- }), React__default.createElement(ui.Spacer, {
2865
- size: 12,
2866
- direction: "vertical"
2867
- }), React__default.createElement(TokenPreview, {
2868
- chain: {
2869
- displayName: lastStep?.toBlockchain || '',
2870
- //@ts-ignore
2871
- logo: lastStep?.toBlockchainLogo || ''
2872
- },
2873
- token: {
2874
- symbol: lastStep?.toSymbol || '',
2875
- image: lastStep?.toLogo || ''
2876
- },
2877
- amount: toAmount,
2878
- label: i18n.t('To'),
2879
- loadingStatus: 'success'
2880
- })),
2881
- //todo: move PendingSwap type to rango-types
2882
- pendingSwap: swap,
2879
+ /* TODO: It was temporarily removed to find a better solution*/
2880
+ /*
2881
+ previewInputs={
2882
+ <>
2883
+ <TokenPreview
2884
+ chain={{
2885
+ displayName: firstStep?.fromBlockchain || '',
2886
+ logo: firstStep?.fromBlockchainLogo || '',
2887
+ }}
2888
+ token={{
2889
+ symbol: firstStep?.fromSymbol || '',
2890
+ image: firstStep?.fromLogo || '',
2891
+ }}
2892
+ amount={fromAmount}
2893
+ label={t('From')}
2894
+ loadingStatus={'success'}
2895
+ />
2896
+ <Spacer size={12} direction="vertical" />
2897
+ <TokenPreview
2898
+ chain={{
2899
+ displayName: lastStep?.toBlockchain || '',
2900
+ logo: lastStep?.toBlockchainLogo || '',
2901
+ }}
2902
+ token={{
2903
+ symbol: lastStep?.toSymbol || '',
2904
+ image: lastStep?.toLogo || '',
2905
+ }}
2906
+ amount={toAmount}
2907
+ label={t('To')}
2908
+ loadingStatus={'success'}
2909
+ />
2910
+ </>
2911
+ }
2912
+ */
2913
+ pendingSwap: getFormatedPendingSwap(swap),
2883
2914
  onCopy: handleCopy,
2884
2915
  isCopied: isCopied,
2885
2916
  onCancel: onCancel,