@rango-dev/widget-embedded 0.5.1-next.8 → 0.6.0
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/CHANGELOG.md +23 -0
- package/dist/QueueManager.d.ts.map +1 -1
- package/dist/Wallets.d.ts +2 -1
- package/dist/Wallets.d.ts.map +1 -1
- package/dist/Widget.d.ts +0 -1
- package/dist/Widget.d.ts.map +1 -1
- package/dist/components/AppRouter.d.ts.map +1 -1
- package/dist/components/BottomLogo.d.ts.map +1 -1
- package/dist/components/ChangeSlippageButton.d.ts.map +1 -1
- package/dist/components/ConfirmSwapWarnings.d.ts +2 -2
- package/dist/components/ConfirmSwapWarnings.d.ts.map +1 -1
- package/dist/components/HeaderButtons.d.ts.map +1 -1
- package/dist/components/Layout.d.ts.map +1 -1
- package/dist/components/SwapDetailsPlaceholder.d.ts.map +1 -1
- package/dist/components/TokenInfo.d.ts.map +1 -1
- package/dist/components/TokenPreview.d.ts +1 -1
- package/dist/components/TokenPreview.d.ts.map +1 -1
- package/dist/components/WidgetEvents.d.ts +2 -0
- package/dist/components/WidgetEvents.d.ts.map +1 -0
- package/dist/components/warnings/HighSlippageWarning.d.ts.map +1 -1
- package/dist/components/warnings/MinRequiredSlippage.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap.d.ts +1 -1
- package/dist/hooks/useConfirmSwap.d.ts.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/store/bestRoute.d.ts +4 -4
- package/dist/store/bestRoute.d.ts.map +1 -1
- package/dist/store/settings.d.ts +16 -0
- package/dist/store/settings.d.ts.map +1 -1
- package/dist/store/wallets.d.ts +2 -2
- package/dist/store/wallets.d.ts.map +1 -1
- package/dist/types/config.d.ts +23 -4
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/swap.d.ts +1 -1
- package/dist/types/swap.d.ts.map +1 -1
- package/dist/utils/routing.d.ts +1 -1
- package/dist/utils/routing.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +6 -4
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/utils/wallets.d.ts.map +1 -1
- package/package.json +10 -13
- package/src/QueueManager.tsx +0 -25
- package/src/Wallets.tsx +8 -2
- package/src/Widget.tsx +19 -22
- package/src/components/AppRouter.tsx +0 -2
- package/src/components/BottomLogo.tsx +2 -4
- package/src/components/ChangeSlippageButton.tsx +3 -3
- package/src/components/ConfirmSwapWarnings.tsx +10 -13
- package/src/components/HeaderButtons.tsx +7 -9
- package/src/components/Layout.tsx +21 -13
- package/src/components/SwapDetailsPlaceholder.tsx +10 -2
- package/src/components/TokenInfo.tsx +26 -23
- package/src/components/TokenPreview.tsx +12 -13
- package/src/components/WidgetEvents.tsx +45 -0
- package/src/components/warnings/BalanceErrors.tsx +3 -3
- package/src/components/warnings/HighSlippageWarning.tsx +9 -2
- package/src/components/warnings/MinRequiredSlippage.tsx +11 -4
- package/src/hooks/useConfirmSwap.ts +10 -3
- package/src/index.ts +56 -3
- package/src/pages/ConfirmSwapPage.tsx +5 -5
- package/src/pages/Home.tsx +2 -1
- package/src/pages/WalletsPage.tsx +2 -3
- package/src/store/bestRoute.ts +18 -8
- package/src/store/settings.ts +17 -0
- package/src/store/wallets.ts +39 -13
- package/src/types/config.ts +22 -4
- package/src/types/swap.ts +1 -1
- package/src/utils/routing.ts +1 -1
- package/src/utils/swap.ts +53 -26
- package/src/utils/wallets.ts +18 -4
- package/dist/hooks/useSelectLanguage.d.ts +0 -5
- package/dist/hooks/useSelectLanguage.d.ts.map +0 -1
- package/dist/i18n.d.ts +0 -3
- package/dist/i18n.d.ts.map +0 -1
- package/src/hooks/useSelectLanguage.ts +0 -17
- package/src/i18n.js +0 -30
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
# [0.6.0](https://github.com/rango-exchange/rango-client/compare/widget-embedded@0.5.0...widget-embedded@0.6.0) (2023-07-11)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* fix bug in routing when usd value is unknown ([df23685](https://github.com/rango-exchange/rango-client/commit/df23685d63de6dbe5a3e591ef619d845573e0657))
|
|
7
|
+
* update widget affiliate config ([0655dc1](https://github.com/rango-exchange/rango-client/commit/0655dc1949e6e8a9b1efacb71e3f66ac3d1e30fb))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* add widget events and refactor swap execution events ([0d76806](https://github.com/rango-exchange/rango-client/commit/0d7680693dd77439de38cd0b20f263f6ae8cceb0))
|
|
13
|
+
* consider internalswaps in second bestRoute & select wallets ([a2d9510](https://github.com/rango-exchange/rango-client/commit/a2d9510288b534e03d6cf2ee3ed60b895607323f))
|
|
14
|
+
* setup lingui for multi-language in widget ([a3f1331](https://github.com/rango-exchange/rango-client/commit/a3f1331def487989a5717335b062dd9ef45876ad))
|
|
15
|
+
* support for external wallets ([0db170d](https://github.com/rango-exchange/rango-client/commit/0db170d28b7052e5a750d270549d9550c52789de))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Reverts
|
|
19
|
+
|
|
20
|
+
* Revert "support for rango-types cjs format" ([4f5f55f](https://github.com/rango-exchange/rango-client/commit/4f5f55f96e8daa329588b932b19c291c30f339c4))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
# [0.5.0](https://github.com/rango-exchange/rango-client/compare/widget-embedded@0.4.0...widget-embedded@0.5.0) (2023-05-31)
|
|
2
25
|
|
|
3
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueManager.d.ts","sourceRoot":"","sources":["../src/QueueManager.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"QueueManager.d.ts","sourceRoot":"","sources":["../src/QueueManager.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAmB1D,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,eAoF7C;AAED,eAAe,YAAY,CAAC"}
|
package/dist/Wallets.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import '
|
|
2
|
+
import { EventHandler } from '@rango-dev/wallets-core';
|
|
3
3
|
import { WidgetConfig } from './types';
|
|
4
4
|
type OnConnectHandler = (key: string) => void;
|
|
5
5
|
interface WidgetContextInterface {
|
|
@@ -8,6 +8,7 @@ interface WidgetContextInterface {
|
|
|
8
8
|
export declare const WidgetContext: React.Context<WidgetContextInterface>;
|
|
9
9
|
export declare function WidgetWallets(props: PropsWithChildren<{
|
|
10
10
|
providers: WidgetConfig['wallets'];
|
|
11
|
+
onUpdateState?: EventHandler;
|
|
11
12
|
}>): JSX.Element;
|
|
12
13
|
export {};
|
|
13
14
|
//# sourceMappingURL=Wallets.d.ts.map
|
package/dist/Wallets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wallets.d.ts","sourceRoot":"","sources":["../src/Wallets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Wallets.d.ts","sourceRoot":"","sources":["../src/Wallets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AASvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAC9C,UAAU,sBAAsB;IAC9B,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,aAAa,uCAIxB,CAAC;AAEH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,iBAAiB,CAAC;IACvB,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC,eA2EH"}
|
package/dist/Widget.d.ts
CHANGED
package/dist/Widget.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../src/Widget.tsx"],"names":[],"mappings":"AACA,OAAc,EACZ,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../src/Widget.tsx"],"names":[],"mappings":"AACA,OAAc,EACZ,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAevC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,eA0CzD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,eAS3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppRouter.d.ts","sourceRoot":"","sources":["../../src/components/AppRouter.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAY,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3C,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC,
|
|
1
|
+
{"version":3,"file":"AppRouter.d.ts","sourceRoot":"","sources":["../../src/components/AppRouter.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAY,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3C,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC,eAsBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomLogo.d.ts","sourceRoot":"","sources":["../../src/components/BottomLogo.tsx"],"names":[],"mappings":";AA0BA,wBAAgB,UAAU,
|
|
1
|
+
{"version":3,"file":"BottomLogo.d.ts","sourceRoot":"","sources":["../../src/components/BottomLogo.tsx"],"names":[],"mappings":";AA0BA,wBAAgB,UAAU,gBAoBzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeSlippageButton.d.ts","sourceRoot":"","sources":["../../src/components/ChangeSlippageButton.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ChangeSlippageButton.d.ts","sourceRoot":"","sources":["../../src/components/ChangeSlippageButton.tsx"],"names":[],"mappings":";AAMA,wBAAgB,oBAAoB,gBAYnC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ConfirmSwapWarnings } from '../types';
|
|
2
|
-
export declare function ConfirmSwapWarnings(warnings:
|
|
1
|
+
import { ConfirmSwapWarnings as ConfirmSwapWarningsType } from '../types';
|
|
2
|
+
export declare function ConfirmSwapWarnings(warnings: ConfirmSwapWarningsType[]): string[];
|
|
3
3
|
//# sourceMappingURL=ConfirmSwapWarnings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmSwapWarnings.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmSwapWarnings.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ConfirmSwapWarnings.d.ts","sourceRoot":"","sources":["../../src/components/ConfirmSwapWarnings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,UAAU,CAAC;AAElB,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,YAgBtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderButtons.d.ts","sourceRoot":"","sources":["../../src/components/HeaderButtons.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"HeaderButtons.d.ts","sourceRoot":"","sources":["../../src/components/HeaderButtons.tsx"],"names":[],"mappings":";AAiBA,UAAU,SAAS;IACjB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,eA8B7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../src/components/Layout.tsx"],"names":[],"mappings":";AAqBA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4BxC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../src/components/Layout.tsx"],"names":[],"mappings":";AAqBA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4BxC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,eAwG7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwapDetailsPlaceholder.d.ts","sourceRoot":"","sources":["../../src/components/SwapDetailsPlaceholder.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SwapDetailsPlaceholder.d.ts","sourceRoot":"","sources":["../../src/components/SwapDetailsPlaceholder.tsx"],"names":[],"mappings":";AAMA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAM1B,CAAC;AAEH,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,eA0BtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenInfo.d.ts","sourceRoot":"","sources":["../../src/components/TokenInfo.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAIlD,OAAO,SAAS,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenInfo.d.ts","sourceRoot":"","sources":["../../src/components/TokenInfo.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAIlD,OAAO,SAAS,MAAM,cAAc,CAAC;AAOrC,KAAK,SAAS,GAAG,CACb;IACE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,GACD;IACE,IAAI,EAAE,IAAI,CAAC;IACX,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;CAClC,CACJ,GAAG;IAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC;AA4F1D,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,eA0MzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenPreview.d.ts","sourceRoot":"","sources":["../../src/components/TokenPreview.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,SAAS,MAAM,cAAc,CAAC;AA8ErC,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,
|
|
1
|
+
{"version":3,"file":"TokenPreview.d.ts","sourceRoot":"","sources":["../../src/components/TokenPreview.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,SAAS,MAAM,cAAc,CAAC;AA8ErC,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,eAiF5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetEvents.d.ts","sourceRoot":"","sources":["../../src/components/WidgetEvents.tsx"],"names":[],"mappings":"AAUA,wBAAgB,YAAY,SAkC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HighSlippageWarning.d.ts","sourceRoot":"","sources":["../../../src/components/warnings/HighSlippageWarning.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"HighSlippageWarning.d.ts","sourceRoot":"","sources":["../../../src/components/warnings/HighSlippageWarning.tsx"],"names":[],"mappings":";AAKA,UAAU,SAAS;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,eAenD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinRequiredSlippage.d.ts","sourceRoot":"","sources":["../../../src/components/warnings/MinRequiredSlippage.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"MinRequiredSlippage.d.ts","sourceRoot":"","sources":["../../../src/components/warnings/MinRequiredSlippage.tsx"],"names":[],"mappings":";AAKA,UAAU,SAAS;IACjB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,EAAE,SAAS,eAgBrE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfirmSwapError, ConfirmSwapWarnings } from '../types';
|
|
2
|
-
import { PendingSwap } from '@rango-dev/
|
|
2
|
+
import { PendingSwap } from '@rango-dev/queue-manager-rango-preset';
|
|
3
3
|
type ConfirmSwap = {
|
|
4
4
|
loading: boolean;
|
|
5
5
|
errors: ConfirmSwapError[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConfirmSwap.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfirmSwap.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAGhB,mBAAmB,EAEpB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"useConfirmSwap.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfirmSwap.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAGhB,mBAAmB,EAEpB,MAAM,UAAU,CAAC;AAwBlB,OAAO,EAEL,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAE/C,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,WAAW,EAAE,CAAC,MAAM,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;CAC9D,CAAC;AAEF,wBAAgB,cAAc,IAAI,WAAW,CAgO5C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { WidgetTheme, WidgetConfig, WidgetColors, BlockchainAndTokenConfig } fro
|
|
|
2
2
|
import { WidgetProps, Widget } from './Widget';
|
|
3
3
|
import { WalletType } from '@rango-dev/wallets-shared';
|
|
4
4
|
import { WidgetWallets } from './Wallets';
|
|
5
|
-
import { useWallets } from '@rango-dev/wallets-core';
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
export { useWallets };
|
|
5
|
+
import { useWallets, ProviderInterface, EventHandler as HandleWalletsUpdate } from '@rango-dev/wallets-core';
|
|
6
|
+
import { useEvents as useWidgetEvents, MainEvents, RouteEvent, StepEvent, Route, Step, RouteStartedEvent, RouteSucceededEvent, RouteFailedEvent, RouteEventType, StepStartedEvent, StepSucceededEvent, StepFailedEvent, StepTxExecutionUpdatedEvent, StepTxExecutionBlockedEvent, StepCheckStatusEvent, StepApprovalTxSucceededEvent, StepOutputRevealedEvent, StepEventType, StepExecutionEventStatus, StepExecutionBlockedEventStatus } from '@rango-dev/queue-manager-rango-preset';
|
|
7
|
+
export type { WidgetConfig, WalletType, WidgetTheme, WidgetColors, ProviderInterface, BlockchainAndTokenConfig, WidgetProps, RouteEvent, StepEvent, Route, Step, RouteStartedEvent, RouteSucceededEvent, RouteFailedEvent, StepStartedEvent, StepSucceededEvent, StepFailedEvent, StepTxExecutionUpdatedEvent, StepTxExecutionBlockedEvent, StepCheckStatusEvent, StepApprovalTxSucceededEvent, StepOutputRevealedEvent, HandleWalletsUpdate, };
|
|
8
|
+
export { Widget, WidgetWallets, useWallets, useWidgetEvents, MainEvents, RouteEventType, StepEventType, StepExecutionEventStatus, StepExecutionBlockedEventStatus, };
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,YAAY,IAAI,mBAAmB,EACpC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,EACL,IAAI,EACJ,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,IAAI,EACJ,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACpB,CAAC;AACF,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,+BAA+B,GAChC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Un=Object.defineProperty;var i=(t,e)=>Un(t,"name",{value:e,configurable:!0});import{SwapContainer as fa,styled as ga}from"@rango-dev/ui";import ie,{useContext as ha,useEffect as En,useMemo as Sa,useState as Pn}from"react";import _e,{Fragment as Sr}from"react";import{MemoryRouter as Tr,useInRouterContext as yr}from"react-router";import{useQueueManager as Cr}from"@rango-dev/queue-manager-rango-preset";import{useEffect as st,useRef as it}from"react";import{createSearchParams as fr,useLocation as gr,useSearchParams as hr}from"react-router-dom";import{create as ur}from"zustand";import ne from"bignumber.js";import Dn from"bignumber.js";var D=new Dn(0);import Ea from"bignumber.js";function G(t){return Array.from(new Set(t))}i(G,"removeDuplicateFrom");function je(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(je,"areEqual");function Mt(t,e){let o;return n;function n(...s){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...s)},e)}}i(Mt,"debounce");import{BigNumber as Ft}from"bignumber.js";var Ot=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),A=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ft(t),s=1,r=1e3;for(let a=0;a<60;a++)if(new Ft(n.toFixed(a,s)).eq(n)){r=a;break}if(n.gte(1e4))return n.toFormat(0,s);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,1))),s);if(n.gte(1))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,2))),s);if(n.gte(.01))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,4))),s);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,a))),s);return n.isEqualTo(0)?"0":n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,8))),s)},"numberToString");var Lt=i(t=>t?.result?.swaps?.reduce((e,o)=>e+o.estimatedTimeInSeconds,0)||0,"totalArrivalTime");var Ae=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Qe(t,e,o){return o&&t.find(n=>{let s=e?.split("--");return s?.length===1?n.symbol===s[0]&&n.address===null&&n.blockchain===o.name:n.symbol===s?.[0]&&n.address===s?.[1]&&n.blockchain===o.name})||null}i(Qe,"searchParamsToToken");function Ut(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Ut,"getBestRouteToTokenUsdPrice");function Ye(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Ye,"isNumberOfSwapsChanged");function Ze(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!je(o,n)}i(Ze,"isRouteSwappersUpdated");function Xe(t,e){let o=t.result?.swaps.map(s=>s.to.symbol)||[],n=e.result?.swaps.map(s=>s.to.symbol)||[];return!je(o,n)}i(Xe,"isRouteInternalCoinsUpdated");function Dt(t,e){return Ye(t,e)||Ze(t,e)||Xe(t,e)}i(Dt,"isRouteChanged");function _t(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(_t,"getRequiredBalanceOfWallet");function Je(t){if(t.store==="bestRoute"){let{prevState:e,currentState:o}=t;return!!o.fromToken&&!!o.toToken&&(e.fromChain?.name!==o.fromChain?.name||e.toChain?.name!==o.toChain?.name||e.fromToken?.symbol!==o.fromToken?.symbol||e.toToken?.symbol!==o.toToken?.symbol||e.fromToken?.blockchain!==e.fromToken?.blockchain||e.toToken?.blockchain!==o.toToken?.blockchain||e.fromToken?.address!==o.fromToken?.address||e.toToken?.address!==o.toToken?.address||e.inputAmount!==o.inputAmount)}else if(t.store==="settings"){let{prevState:e,currentState:o}=t;return e.slippage!==o.slippage||e.customSlippage!==o.customSlippage||e.disabledLiquiditySources?.length!==o.disabledLiquiditySources?.length||e.infiniteApprove||o.infiniteApprove}return!1}i(Je,"isRouteParametersChanged");function qt(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:A(o.fromAmount,6,6),toAmount:A(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}i(qt,"getFormatedBestRoute");function $t(t){let e=t.steps.map(o=>({...o,feeInUsd:A(o.feeInUsd,4,4),outputAmount:A(o.outputAmount,6,6),expectedOutputAmountHumanReadable:A(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:A(t.inputAmount,6,6),steps:e}}i($t,"getFormatedPendingSwap");var Vt=i((t,e)=>t?"loading":e?"failed":"success","getBestRouteStatus");var _n=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Z=_n;import{subscribeWithSelector as cr}from"zustand/middleware";import{RangoClient as $n}from"rango-sdk";var qn="c6381a79-2817-4602-83bf-6a641a409e32",et={API_KEY:qn};function xe(t){return et[t]}i(xe,"getConfig");function Ht(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),et=e,et}i(Ht,"initConfig");var Be,se=i(()=>Be||(Be=new $n(xe("API_KEY")),Be),"httpService");import{create as Hn}from"zustand";import{persist as Gn,subscribeWithSelector as zn}from"zustand/middleware";var Gt=[.5,1,3,5,8,13,20],zt=1,Kt=5,jt=100,Qt=0;import{create as Vn}from"zustand";var C=Z(Vn()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await se().getAllMetadata(),o=G(e.tokens.map(s=>s.blockchain)),n=e.blockchains.filter(s=>s.enabled&&o.includes(s.name));e.blockchains=n.sort((s,r)=>s.sort-r.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));var P=Z(Hn()(Gn(zn(t=>({slippage:zt,customSlippage:null,infiniteApprove:!1,affiliateRef:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),toggleAllLiquiditySources:()=>t(e=>{let{swappers:o}=C.getState().meta,n=G(o.map(s=>s.swapperGroup));return n.length===e.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:n}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings"})));import $ from"bignumber.js";import{getCosmosExperimentalChainInfo as Kn,isEvmAddress as jn,KEPLR_COMPATIBLE_WALLETS as Qn,detectInstallLink as Yn,WalletTypes as Zn,Networks as Yt}from"@rango-dev/wallets-shared";import{WalletState as X}from"@rango-dev/ui";import{isCosmosBlockchain as Xn}from"rango-types";import{readAccountAddress as Jn}from"@rango-dev/wallets-core";import ve from"bignumber.js";function er(t){switch(!0){case t.connected:return X.CONNECTED;case t.connecting:return X.CONNECTING;case!t.installed:return X.NOT_INSTALLED;default:return X.DISCONNECTED}}i(er,"getStateWallet");var tr=[Zn.LEAP];function Zt(t,e,o){return o.filter(n=>!tr.includes(n)).map(n=>{let{name:s,img:r,installLink:a,showOnMobile:l}=e(n),u=er(t(n));return{name:s,image:r,installLink:Yn(a),state:u,type:n,showOnMobile:!(typeof l>"u")}})}i(Zt,"getlistWallet");function Ee(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ee,"walletAndSupportedChainsNames");function Xt(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(g=>g.chain===l)){let g={address:u,chain:l,walletType:t};s.push(g)}}i(r,"addAccount");let a=n||[];return e.forEach(l=>{let{address:u,network:c}=Jn(l),g=a.length>0,k=a.includes(c),b=c===Yt.Unknown;if(g&&!k&&!b)return;let y=c===Yt.Unknown&&jn(u);if(b&&!y)return;o.includes(c)||y?a.filter(m=>o.includes(m)).forEach(m=>{r(m,u.toLowerCase())}):r(c,u)}),s}i(Xt,"prepareAccountsForWalletStore");function ge(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}i(ge,"getRequiredChains");function Pe(t,e,o,n){return t.map(r=>({address:r.address,walletType:r.walletType,chain:r.chain,image:o(r.walletType).img,name:o(r.walletType).name,selected:n===r.chain?!1:!!e.find(a=>a.chain===r.chain&&a.walletType===r.walletType)}))}i(Pe,"getSelectableWallets");function fe(t,e,o,n){if(t.length===0)return null;let s=t.filter(r=>r.chain===e);return s.length===0?null:s.map(r=>r.balances?.find(a=>n!==null&&a.address===n||n===null&&a.address===n&&a.symbol===o)||null).filter(r=>r!==null).sort((r,a)=>parseFloat(a?.amount||"0")-parseFloat(r?.amount||"1")).find(()=>!0)||null}i(fe,"getBalanceFromWallet");function Ie(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ie,"isAccountAndWalletMatched");function Jt(t,e,o){let{address:n,blockChain:s,explorerUrl:r,balances:a=[]}=e;return{address:n,chain:s,loading:!1,error:!1,explorerUrl:r,walletType:t.walletType,balances:a?.map(l=>({chain:s,symbol:l.asset.symbol,ticker:l.asset.symbol,address:l.asset.address||null,rawAmount:l.amount.amount,decimal:l.amount.decimals,amount:new ve(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:nr(s,l.asset.symbol,l.asset.address,o)||null}))||[]}}i(Jt,"makeBalanceFor");function eo(t){return{...t,loading:!1,error:!0}}i(eo,"resetConnectedWalletState");var to=i(t=>{let e=new Set,n=t?.reduce((r,a)=>r.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...r,a]:r,[])?.map(r=>{let a={name:r.chain,accounts:[]};return e.has(r.address)||e.add(r.address),e.forEach(l=>{r.address===l&&a.accounts.push(r)}),a}),s=A(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new ve(r?.amount||D).multipliedBy(r?.usdPrice||0))?.reduce((r,a)=>r.plus(a),D)||D).toString();return or(s)},"calculateWalletUsdValue");function or(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(or,"numberWithThousandSeperator");var Ne=i(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),nr=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice"),oo=i((t,e)=>{let o=Kn(Object.entries(t).map(([,n])=>n).filter(Xn));return o&&!!o[e]},"isExperimentalChain"),tt=i(t=>{let e=new Set(t.map(o=>o.walletType));return Qn.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function Re(t,e){return t.map(({balance:o,...n})=>{let s=A(new ve(fe(e,n.blockchain,n.symbol,n.address)?.amount||D)),r="";return n.usdPrice&&(r=A(new ve(fe(e,n.blockchain,n.symbol,n.address)?.amount||D).multipliedBy(n.usdPrice))),{...n,...s!=="0"&&{balance:{amount:s,usdValue:r}}}})}i(Re,"getTokensWithBalance");function Se(t,e,o,n){if(t?.name===n[0]?.name)return n;let r=e.filter(a=>a.blockchain===t?.name);return Ne(Re(r,o))}i(Se,"getSortedTokens");function j(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(j,"tokensAreEqual");function ot(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:j(n,e)?o=s:o=n,o}i(ot,"getDefaultToken");function no(t){return t.sort((e,o)=>+(o.state===X.CONNECTED)-+(e.state===X.CONNECTED)||+(o.state===X.DISCONNECTED||o.state===X.CONNECTING)-+(e.state===X.DISCONNECTED||e.state===X.CONNECTING))}i(no,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as Me}from"@rango-dev/queue-manager-rango-preset";function Fe(t,e){return t.lte(D)||e.lte(D)?0:e.div(t).minus(1).multipliedBy(100)}i(Fe,"getOutputRatio");function Oe(t,e){return parseInt(e.toFixed(2)||"0")<=-10&&t.gte(new $(400))||parseInt(e.toFixed(2)||"0")<=-5&&t.gte(new $(1e3))}i(Oe,"outputRatioHasWarning");function Le(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Le,"hasLimitError");function so(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(l=>{let u=l.fromAmountMinValue?new $(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new $(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?u?.gte(l.fromAmount)||c?.lte(l.fromAmount):u?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(e.fromAmountMaxValue):null,s=e.fromAmountRestrictionType==="EXCLUSIVE",r="",a="";return!s&&o&&o.gt(e.fromAmount)?(r=`Required: >= ${A(o)} ${e.from.symbol}`,a="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${A(o)} ${e.from.symbol}`,a="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${A(n)} ${e.from.symbol}`,a="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${A(n)} ${e.from.symbol}`,a="Decrease your swap amount"),{swap:e,fromAmountRangeError:r,recommendation:a}}i(so,"LimitErrorMessage");function io(t,e,o,n,s,r,a,l,u){return t!=="success"?{title:"Connect Wallet",disabled:!0}:e.length==0?{title:"Connect Wallet",disabled:!1}:o?{title:"Finding Best Route...",disabled:!0}:!u||u==="0"?{title:"Enter an amount",disabled:!0}:!n||!n.result?{title:"Swap",disabled:!0}:s?{title:"Limit Error",disabled:!0}:r?{title:"Price impact is too high!",disabled:!0}:a?{title:"USD price is unknown, price impact might be high!",disabled:!1,hasWarning:!0}:l?{title:"The route goes through Ethereum. Continue?",disabled:!1,hasWarning:!0}:{title:"Swap",disabled:!1}}i(io,"getSwapButtonState");function ao(t,e,o,n){return!((o.lte(D)||n.lte(D))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(ao,"canComputePriceImpact");function ro(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}i(ro,"requiredWallets");var rr=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function sr(t,e){let o=D;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=rr(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new $(s.amount).multipliedBy(r||0))}return o}i(sr,"getUsdFeeOfStep");function Ue(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(sr(n,e)),D)||null}i(Ue,"getTotalFeeInUsd");function lo(t){return t?!t.lt(new $(30)):!1}i(lo,"hasHighFee");function uo(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(uo,"getMinRequiredSlippage");function co(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(co,"hasProperSlippage");function De(t,e,o,n,s,r,a,l,u,c){let g=s.reduce((f,S)=>(f[S.chain]=S.address,f),{}),k=[];n.forEach(f=>{let S=k.find(m=>m.blockchain===f.chain);S?S.addresses.push(f.address):k.push({blockchain:f.chain,addresses:[f.address]})});let b=!!u,h=G((u?.result?.swaps||[]).reduce((f,S)=>(f.push(S.from.blockchain,S.to.blockchain),f),[]));return{amount:o.toString(),affiliateRef:l,checkPrerequisites:b,from:{address:t.address,blockchain:t.blockchain,symbol:t.symbol},to:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},connectedWallets:k,destination:c||void 0,selectedWallets:g,swapperGroups:r,swappersGroupsExclude:!0,slippage:a.toString(),...b&&{blockchains:h}}}i(De,"createBestRouteRequestBody");function nt(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(nt,"getWalletsForNewSwap");function he(t){return t?.result?.outputAmount||null}i(he,"getRouteOutputAmount");function Te(t,e){return!t||!e?null:new $(e).div(new $(t)).minus(1).multipliedBy(100)}i(Te,"getPercentageChange");function po(t,e){let o=he(t),n=he(e);if(!o||!n)return!1;let s=Te(o,n);return s?s.toNumber()<=-1:!0}i(po,"isOutputAmountChangedALot");function mo(t,e){let o=t.validationStatus,n=ge(t);return e.sort((r,a)=>n.indexOf(r.chain)-n.indexOf(a.chain)).flatMap(r=>_t(r,o)||[]).filter(r=>!r.ok).map(r=>{let a=r.asset.symbol,l=A(new $(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=A(new $(r.requiredAmount.amount).shiftedBy(-r.requiredAmount.decimals),8),c="";return r.reason==="FEE"&&(c=" for network fee"),r.reason==="INPUT_ASSET"&&(c=" for swap"),r.reason==="FEE_AND_INPUT_ASSET"&&(c=" for input and network fee"),`Needs \u2248 ${u} ${a}${c}, but you have ${l} ${a} in your ${r.asset.blockchain} wallet.`})}i(mo,"getBalanceWarnings");function fo(t,e){return(t?new $(t):D).multipliedBy(e||0)}i(fo,"calcOutputUsdValue");function rt(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Me.NetworkChanged}i(rt,"isNetworkStatusInWarningState");function go(t,e){let o="bellow button or",n=t.extraMessage,s=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),rt(e))switch(n=t.networkStatusExtraMessage||"",s=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Me.WaitingForConnectingWallet:n=n||"Waiting for connecting wallet";break;case Me.WaitingForQueue:n=n||"Waiting for other running tasks to be finished";break;case Me.WaitingForNetworkChange:n=n||"Waiting for changing wallet network";break}s=s||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:s,long:a}}}i(go,"getSwapMessages");function ho(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(ho,"getLastConvertedTokenInFailedSwap");function So(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(So,"shouldRetrySwap");function To(t,e){return(C.getState().meta.blockchains.find(s=>s.name===t)?.addressPatterns||[]).filter(s=>new RegExp(s).test(e)).length>0}i(To,"isValidCustomDestination");function yo(t,e,o,n,s){return t||!e&&!ro(n).every(r=>s.map(a=>a.chain).includes(r))||!!e&&!o||!!e&&!!o&&!ro(n).filter(r=>r!==e).every(r=>s.map(a=>a.chain).includes(r))}i(yo,"confirmSwapDisabled");import{create as ir}from"zustand";import{subscribeWithSelector as ar}from"zustand/middleware";import{shallow as lr}from"zustand/shallow";var B=Z(ir()(ar((t,e)=>({connectedWallets:[],selectedWallets:[],customDestination:"",connectWallet:o=>{let n=e().getOneOfWalletsDetails;t(s=>({connectedWallets:s.connectedWallets.filter(r=>r.walletType!==o[0].walletType).concat(o.map(r=>({balances:[],address:r.address,chain:r.chain,loading:!0,walletType:r.walletType,error:!1,explorerUrl:null})))})),o.forEach(async s=>n(s))},disconnectWallet:o=>{t(n=>({connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o),selectedWallets:n.selectedWallets.filter(s=>s.walletType!=o)}))},initSelectedWallets:()=>t(o=>{let n=ge(p.getState().bestRoute),s=o.connectedWallets,r=[];return n.forEach(a=>{if(!!!o.selectedWallets.find(u=>u.chain===a)){let u=s.find(c=>c.chain===a);u&&r.push({address:u.address,chain:u.chain,walletType:u.walletType})}}),{selectedWallets:o.selectedWallets.concat(r)}}),setSelectedWallet:o=>t(n=>({selectedWallets:n.selectedWallets.filter(s=>s.chain!==o.chain).concat({chain:o.chain,address:o.address,walletType:o.walletType})})),setCustomDestination:o=>t(()=>({customDestination:o})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getOneOfWalletsDetails:async o=>{let n=C.getState().meta.tokens;t(s=>({connectedWallets:s.connectedWallets.map(r=>Ie(o,r)?{...r,loading:!0}:r)}));try{let r=(await se().getWalletsDetails([{address:o.address,blockchain:o.chain}])).wallets[0];if(r)t(a=>({connectedWallets:a.connectedWallets.map(l=>Ie(o,l)?Jt(o,r,n):l)}));else throw new Error("Wallet not found")}catch{t(r=>({connectedWallets:r.connectedWallets.map(a=>Ie(o,a)?eo(a):a)}))}}}))));B.subscribe(t=>t.connectedWallets,t=>{p.setState(({sourceTokens:e,destinationTokens:o})=>{let n=Re(e,t),s=Re(o,t);return{sourceTokens:Ne(n),destinationTokens:Ne(s)}})},{equalityFn:lr});var Co=i(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ye=i((t,e)=>new ne(e||D).multipliedBy(t?.usdPrice||0),"getUsdValue"),p=Z(ur()(cr(t=>({fromChain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ne(0),outputUsdValue:new ne(0),toChain:null,toToken:null,bestRoute:null,loading:!1,error:"",sourceTokens:[],destinationTokens:[],setBestRoute:e=>t(o=>{let n=null,s=D;return Ae(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ne(e.result?.outputAmount):null,s=fo(e.result?.outputAmount,Ut(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:s}}):{}}),resetRoute:()=>t(()=>({loading:!0,error:"",bestRoute:null,outputAmount:null,outputUsdValue:new ne(0)})),setFromChain:(e,o)=>{t(n=>{if(n.fromChain?.name===e?.name)return{};let s=C.getState().meta.tokens,r=B.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens),l=ot(a,n.toToken);return{fromChain:e,sourceTokens:a,...o&&{fromToken:l},...!!n.inputAmount&&{inputUsdValue:ye(l,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:ye(e,o.inputAmount)}})),setToChain:(e,o)=>{t(n=>{if(n.toChain?.name===e?.name)return{};let s=C.getState().meta.tokens,r=B.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens);return{toChain:e,destinationTokens:a,...o&&{toToken:ot(a,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new ne(0),outputUsdValue:new ne(0),bestRoute:null,error:""},...!!o.fromToken&&{inputUsdValue:ye(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=C.getState().meta,s=B.getState().connectedWallets,r=e.status==="failed"?e.steps.findIndex(f=>f.status==="failed"):null;if(r===null||r<0)return;let a=e.steps[0],l=e.steps[e.steps.length-1],u=n.find(f=>f.name===a.fromBlockchain)||null,c=n.find(f=>f.name===l.toBlockchain)||null,g=o.find(f=>j(f,{blockchain:a.fromBlockchain,symbol:a.fromSymbol,address:a.fromSymbolAddress})),k=o.find(f=>j(f,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),b=Se(u,o,s,[]),h=Se(c,o,s,[]),y=e.inputAmount;t({fromChain:u,fromToken:g,inputAmount:y,outputAmount:null,inputUsdValue:ye(g||null,y),outputUsdValue:new ne(0),toChain:c,toToken:k,bestRoute:null,loading:!1,error:"",sourceTokens:b,destinationTokens:h})},switchFromAndTo:()=>t(e=>({fromChain:e.toChain,fromToken:e.toToken,toChain:e.fromChain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:ye(e.toToken,e.outputAmount?.toString()||"")}))})))),pr=i((t,e)=>{let o=null,n=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:g,customSlippage:k,disabledLiquiditySources:b,affiliateRef:h}=e.getState();if(!a||!l||!Ae(u))return;o?.abort(),o=new AbortController;let f=De(a,l,u,[],[],b,k||g,h);t.getState().loading||c(),se().getBestRoute(f,{signal:o.signal}).then(S=>{let{setBestRoute:m}=t.getState();m(S),t.setState({loading:!1}),o=null}).catch(S=>{S.code!=="ERR_CANCELED"&&t.setState({error:S.message,loading:!1})})},"fetchBestRoute"),s=Mt(n,600),r=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,inputUsdValue:c,resetRoute:g}=p.getState();if(!Ae(u)||c.eq(0))return t.setState({loading:!1});if(j(a,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new ne(u),outputUsdValue:c});t.getState().loading||g(),s()},"bestRouteParamsListener");return p.subscribe(a=>({fromChain:a.fromChain,fromToken:a.fromToken,toChain:a.toChain,toToken:a.toToken,inputAmount:a.inputAmount}),r,{equalityFn:(a,l)=>!Je({store:"bestRoute",prevState:a,currentState:l})}),P.subscribe(a=>({slippage:a.slippage,customSlippage:a.customSlippage,disabledLiquiditySources:a.disabledLiquiditySources,infiniteApprove:a.infiniteApprove}),r,{equalityFn:(a,l)=>!Je({store:"settings",prevState:a,currentState:l})}),{fetchBestRoute:n}},"bestRoute"),{fetchBestRoute:wo}=pr(p,P);var d={home:"/",fromChain:"from-chain",fromToken:"from-token",toChain:"to-chain",toToken:"to-token",settings:"settings",liquiditySources:"/settings/liquidity-sources",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{create as mr}from"zustand";var _=Z(mr()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",toggleConnectWalletsButton:()=>t(e=>({connectWalletsButtonDisabled:!e.connectWalletsButtonDisabled})),setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function ko(){let t=it(!0),[e,o]=hr(),n=gr(),s=it(n.search),r=it({}),a=p.use.fromChain(),l=p.use.toChain(),u=p.use.fromToken(),c=p.use.toToken(),g=p.use.setFromChain(),k=p.use.setFromToken(),b=p.use.setToChain(),h=p.use.setToToken(),y=p.use.inputAmount(),f=p.use.setInputAmount(),S=C.use.loadingStatus(),{blockchains:m,tokens:W}=C.use.meta(),E=_.use.setSelectedSwap();return st(()=>{let T={};fr(s.current).forEach((F,N)=>{T[N]=F}),r.current=T;let w=n.pathname.split(d.swaps+"/")[1]||null;w&&E(w)},[]),st(()=>{if(!t.current){let T="",w="",F="",N="",O="";if(S!=="success")T=r.current["fromChain"],w=r.current["fromToken"],F=r.current["toChain"],N=r.current["toToken"],O=r.current["fromAmount"]||y;else{if(n.state==="redirect")return;T=a?.name||"",w=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),F=l?.name||"",N=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),O=y}o({...T&&{["fromChain"]:T},...w&&{["fromToken"]:w},...F&&{["toChain"]:F},...N&&{["toToken"]:N},...O&&{["fromAmount"]:O.toString()}},{replace:!0})}t.current=!1},[n.pathname,y,a,u,l,c]),st(()=>{if(S==="success"){let T=e.get("fromChain"),w=e.get("fromToken"),F=e.get("toChain"),N=e.get("toToken"),O=e.get("fromAmount"),V=m.find(K=>K.name===T),x=Qe(W,w,V||null),I=m.find(K=>K.name===F),L=Qe(W,N,I||null);V&&(g(V),x&&k(x)),I&&(b(I),L&&h(L)),O&&f(O)}},[S]),null}i(ko,"UpdateUrl");import{useWallets as wr}from"@rango-dev/wallets-core";import{isEvmBlockchain as kr}from"rango-types";function bo({children:t,...e}){let o=yr(),n=o?Sr:Tr,{blockchains:s}=C.use.meta(),{canSwitchNetworkTo:r}=wr(),a=s.filter(kr);return Cr({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,notifier:()=>{},canSwitchNetworkTo:r}),_e.createElement(_e.Fragment,null,_e.createElement(n,null,t),o&&_e.createElement(ko,null))}i(bo,"AppRouter");import{Button as Pi,AddWalletIcon as Ii,Typography as Ni,styled as Bt,Spinner as Ri,Image as Mi}from"@rango-dev/ui";import z,{useEffect as ze}from"react";import{useNavigate as Fi}from"react-router-dom";import{useWallets as Oi}from"@rango-dev/wallets-core";import Q from"react";import{useRoutes as vi}from"react-router-dom";import H,{useEffect as Zr,useState as Do}from"react";import{useNavigate as Xr}from"react-router-dom";import{useWallets as Jr}from"@rango-dev/wallets-core";import{useInRouterContext as br,useNavigate as Wr}from"react-router-dom";function q(){let t=br(),e=Wr();return d,{navigateBackFrom:i(n=>{if(n===d.swapDetails)return e("/"+d.swaps,{replace:!0});!t||window.history.state&&window.history.state.idx>0?e(-1):[d.fromChain,d.fromToken,d.toChain,d.toToken,d.settings,d.wallets,d.swaps,d.confirmSwap].includes(n)?e(d.home,{replace:!0}):n===d.liquiditySources&&e("/"+d.settings,{replace:!0})},"navigateBackFrom")}}i(q,"useNavigateBack");import M from"react";import{Button as Wo,InfoCircleIcon as Ar,styled as qe,Typography as at,Divider as Ao,Image as xo}from"@rango-dev/ui";import{useTranslation as xr}from"react-i18next";var Br=qe("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),vr=qe("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px",".usd-value":{paddingLeft:"$8"}},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}}}),Bo=qe("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),Er=qe("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function lt(t){let{chain:e,token:o,loadingStatus:n,percentageChange:s}=t,{t:r}=xr(),a=M.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},n==="failed"&&M.createElement(Ar,{color:"error",size:24}));return M.createElement(Br,null,M.createElement(vr,{type:"outlined"},M.createElement("div",{className:"head"},M.createElement(at,{variant:"body2",color:"neutral800"},t.label),M.createElement("div",null,s,t.usdValue&&M.createElement(at,{variant:"caption",color:"neutral600",className:"usd-value"},`$${A(t.usdValue)}`))),M.createElement("div",{className:"form"},M.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&e?M.createElement(xo,{src:e.logo,size:24}):M.createElement(Bo,null),suffix:a,align:"start",size:"large"},n==="success"&&e?e.displayName:r("Chain")),M.createElement(Ao,{size:12,direction:"horizontal"}),M.createElement(Wo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&o?M.createElement(xo,{src:o.image,size:24}):M.createElement(Bo,null),suffix:a,size:"large",align:"start"},n==="success"&&o?o.symbol:r("Token")),M.createElement(Ao,{size:12,direction:"horizontal"}),M.createElement("div",{className:"amount"},M.createElement(Er,null,M.createElement(at,{variant:"h4"},t.amount))))))}i(lt,"TokenPreview");import{t as _o}from"i18next";import{Divider as qo,ConfirmSwap as es,LoadingFailedAlert as ts}from"@rango-dev/ui";import J from"react";import{styled as Pr,ChevronRightIcon as Ir,GasIcon as Nr,Divider as Rr}from"@rango-dev/ui";var Mr=Pr("div",{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"$8",borderRadius:"$5",backgroundColor:"$neutral100",color:"$neutral800",fontSize:"$12",".routes":{display:"flex",alignItems:"center"},".fee":{display:"flex",alignItems:"center"}});function Fr(t){if(!t.routes)return null;let e=t.routes.result?.swaps;return J.createElement(Mr,null,J.createElement("div",{className:"routes"},e?.map((o,n)=>{let s=n+1==e.length;return J.createElement(J.Fragment,{key:n},J.createElement("div",{className:"route"},o.from.symbol),J.createElement(Ir,{size:12}),s?J.createElement("div",{className:"route"},o.to.symbol):null)})),t.totalFee?J.createElement("div",{className:"fee"},J.createElement(Nr,{size:12}),J.createElement(Rr,{size:4,direction:"horizontal"}),"$",t.totalFee):null)}i(Fr,"RoutesOverview");var vo=Fr;import{useManager as os}from"@rango-dev/queue-manager-react";import{useEffect as Lr,useRef as ut,useState as ct}from"react";import pt from"bignumber.js";import{calculatePendingSwap as Eo}from"@rango-dev/queue-manager-rango-preset";function Io(){let t=p.use.fromToken(),e=p.use.toToken(),o=p.use.inputAmount(),n=p.use.bestRoute(),s=p.use.setBestRoute(),r=p.use.inputUsdValue(),a=P.use.affiliateRef(),l=B.use.connectedWallets(),u=B.use.customDestination(),c=B.use.selectedWallets(),g=C.use.meta(),k=P.use.customSlippage(),b=P.use.slippage(),h=P.use.disabledLiquiditySources(),y=k||b,f=ut(!1),S=ut(null),m=ut(null),[W,E]=ct(!1),[T,w]=ct([]),[F,N]=ct([]);return Lr(()=>()=>m.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:W,warnings:F,errors:T,confirmSwap:i(async()=>{if(f.current){let x={slippage:y.toString(),disabledSwappersGroups:h};return T.length>0&&w([]),F.length>0&&N([]),f.current=!1,S.current?Eo(o.toString(),S.current,nt(c),x,!1,g):void 0}m.current=new AbortController,E(!0);let V=De(t,e,o,l,c,h,y,a,n,u);try{let x=await se().getBestRoute(V,{signal:m.current?.signal});if(m.current=null,E(!1),!x.result||!new pt(x.requestAmount).isEqualTo(new pt(o||"-1"))){w(ue=>ue.concat({type:0}));return}let I={errors:[],warnings:[]};if(Dt(n,x)){s(x);let ue=new pt(x.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),re=Fe(r,ue);Oe(r,re)?I.errors.push({type:1}):po(n,x)?I.warnings.push({type:3,newOutputAmount:A(he(x)),percentageChange:A(Te(he(n),he(x)),null,2)}):Xe(n,x)?I.warnings.push({type:2}):Ye(n,x)?I.warnings.push({type:0}):Ze(n,x)&&I.warnings.push({type:1})}let K=mo(x,c);K.length===0||I.errors.push({type:4,messages:K});let ae=uo(n);co(y.toString(),ae)||I.errors.push({type:3,minRequiredSlippage:ae});let le=I.errors.length===0,me=I.warnings.length===0;if((le||!le&&f.current)&&(me||!me&&f.current)){let ue={slippage:y.toString(),disabledSwappersGroups:h};return Eo(o.toString(),x,nt(c),ue,!1,g)}else f.current||(f.current=!0,w(I.errors),N(I.warnings),S.current=x);return}catch(x){if(x?.code==="ERR_CANCELED")return;let I=x?.response?.status;E(!1),w([{type:2,status:I}]);return}},"confirmSwap")}}i(Io,"useConfirmSwap");import Fo from"react";import{Divider as qr,Typography as $r,styled as Vr}from"@rango-dev/ui";import mt from"react";import Ur from"react";import{Button as Dr}from"@rango-dev/ui";import{useNavigate as _r}from"react-router-dom";function $e(){let t=_r();return Ur.createElement(Dr,{type:"primary",variant:"outlined",size:"small",onClick:()=>t("/"+d.settings)},"Change Slippage")}i($e,"ChangeSlippageButton");var Hr=Vr($r,{color:"$error500 !important"});function No({minRequiredSlippage:t}){return mt.createElement(Hr,{variant:"body2"},"We recommend you to increase slippage to at least \xA0",t,"\xA0 for this route.",mt.createElement(qr,{size:8}),mt.createElement($e,null))}i(No,"MinRequiredSlippage");import{Divider as Gr,styled as dt,Typography as Ro}from"@rango-dev/ui";import ce from"react";var zr=dt("ul",{padding:0,margin:0,variants:{showListStyle:{true:{paddingLeft:"$24"}}}}),Kr=dt("li",{variants:{showListStyle:{true:{listStyleType:"disc",listStylePosition:"outside"}}}}),jr=dt(Ro,{display:"block"});function Mo({messages:t}){let e=t.length>1;return ce.createElement(ce.Fragment,null,ce.createElement(Ro,{className:"title",variant:"title",color:"error"},"Insufficent Balance:"),ce.createElement(Gr,{size:8}),ce.createElement(zr,{showListStyle:e},t.map((o,n)=>ce.createElement(Kr,{showListStyle:e,key:n},ce.createElement(jr,{variant:"body2"},o)))))}i(Mo,"BalanceErrors");function ft(t){return t.flatMap(e=>{switch(e.type){case 0:return"No routes found. Please try again later.";case 2:return`Failed to confirm swap ${e.status?`'status': ${e.status})`:""}, please try again.`;case 1:return"Route updated and price impact is too high, try again later!";case 3:return Fo.createElement(No,{minRequiredSlippage:e.minRequiredSlippage});case 4:return Fo.createElement(Mo,{messages:e.messages});default:return[]}})}i(ft,"ConfirmSwapErrors");function gt(t){return t.flatMap(e=>{switch(e.type){case 0:return"Route has been updated.";case 3:return`Output amount changed to ${e.newOutputAmount} (${e.percentageChange}% change).`;case 1:return"Route swappers has been updated.";case 2:return"Route internal coins has been updated.";default:return[]}})}i(gt,"ConfirmSwapWarnings");import ht from"react";import{Alert as Qr}from"@rango-dev/ui";import Oo from"react";function Lo(t){let{selectedSlippage:e}=t;return Oo.createElement(Qr,{type:"warning",footer:Oo.createElement($e,null)},"Caution, your slippage is high (=",e,"). Your trade may be front run.")}i(Lo,"HighSlippageWarning");function Uo(t){let{selectedSlippage:e}=t,o=e>=Kt;return ht.createElement(ht.Fragment,null,o&&ht.createElement(Lo,{selectedSlippage:e}))}i(Uo,"ConfirmSwapExtraMessages");import St from"react";import{Typography as Yr}from"@rango-dev/ui";function Ve(t){let{inputUsdValue:e,outputUsdValue:o}=t;if(!e||!o||!o.gt(0))return null;let n=Te(e.toNumber(),o.toNumber()),s=n?.lt(0);return St.createElement(St.Fragment,null,s&&St.createElement(Yr,{variant:"caption",color:"$error500"},`(${A(n,0,2)}%)`))}i(Ve,"PercentageChange");function $o({customDestinationEnabled:t}){let e=Xr(),{navigateBackFrom:o}=q(),n=p.use.bestRoute(),s=p.use.loading(),r=p.use.error(),a=_.use.setSelectedSwap(),{blockchains:l,tokens:u}=C.use.meta(),c=C.use.loadingStatus(),g=B.use.connectedWallets(),k=B.use.selectedWallets(),b=B.use.customDestination(),h=B.use.setCustomDestination(),y=B.use.initSelectedWallets(),f=B.use.setSelectedWallet(),S=P.use.slippage(),m=P.use.customSlippage(),W=p.use.inputUsdValue(),E=p.use.outputUsdValue(),T=p.use.setInputAmount(),[w,F]=Do(""),N=Vt(s,!!r),[O,V]=Do(""),{manager:x}=os(),{loading:I,errors:L,warnings:K,confirmSwap:pe}=Io(),ae=m||S,le=!L.find(U=>U.type===3),{getWalletInfo:me,connect:ue}=Jr(),re=n?.result?.swaps[0],de=n?.result?.swaps[n?.result?.swaps.length-1],Nn=A(re?.fromAmount,4,6),Rn=A(de?.toAmount,4,6);Zr(()=>{y(),b&&h("")},[]);let Mn=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,Rt=!!n?.result?.swaps.find(U=>U.from.blockchain===Mn),We=Pe(g,k,me,Rt?"":O),Fn=i(U=>{let Ke=U;tt(We).forEach(Ln=>ue?.(Ln,Ke))},"handleConnectChain"),On=Ue(n,u);return H.createElement(es,{requiredWallets:ge(n),selectableWallets:We,setCustomDestination:h,customDestination:b,customDestinationEnabled:t,isValidCustomDestination:To,checkedDestination:!!O,setDestinationChain:V,onBack:o.bind(null,d.confirmSwap),onConfirm:async()=>{pe?.().then(async U=>{if(U)try{await x?.create("swap",{swapDetails:U},{id:U.requestId}),a(U.requestId),e("/"+d.swaps+`/${U.requestId}`,{replace:!0}),setTimeout(()=>{T("")},0)}catch(Ke){F("Error: "+Ke?.message)}})},isWalletRequired:Rt,onChange:U=>f(U),confirmDisabled:c!=="success"||yo(s,O,b,n,We),handleConnectChain:U=>Fn(U),isExperimentalChain:U=>tt(We).length>0?oo(l,U):!1,previewInputs:H.createElement(H.Fragment,null,H.createElement(lt,{chain:{displayName:re?.from.blockchain||"",logo:re?.from.blockchainLogo||""},token:{symbol:re?.from.symbol||"",image:re?.from.logo||""},usdValue:W,amount:Nn,label:_o("From"),loadingStatus:c!=="success"?c:N}),H.createElement(qo,{size:12}),H.createElement(lt,{chain:{displayName:de?.to.blockchain||"",logo:de?.to.blockchainLogo||""},token:{symbol:de?.to.symbol||"",image:de?.to.logo||""},usdValue:E,amount:Rn,label:_o("To"),loadingStatus:c!=="success"?c:N,percentageChange:H.createElement(Ve,{inputUsdValue:W,outputUsdValue:E})})),previewRoutes:H.createElement(vo,{routes:n,totalFee:A(On,0,2)}),loading:I,errors:w?[w,...ft(L)]:ft(L),warnings:gt(K),extraMessages:H.createElement(H.Fragment,null,c==="failed"&&H.createElement(ts,null),c==="failed"&&le&&H.createElement(qo,null),le&&H.createElement(Uo,{selectedSlippage:ae})),confirmButtonTitle:K.length>0||L.length>0?"Proceed anyway!":"Confirm swap!"})}i($o,"ConfirmSwapPage");import{History as ns}from"@rango-dev/ui";import{useManager as rs}from"@rango-dev/queue-manager-react";import ss from"react";import{useNavigate as is}from"react-router-dom";var He=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let s=o.list.getStorage();s?.swapDetails&&e.push({id:n,swap:s?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import Vo from"dayjs";var Ho=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=Vo();return t.forEach(n=>{let s=Vo(Number(n.creationTime));o.isSame(s,"day")?e.get("today")?.swaps.push(n):o.isSame(s,"week")?e.get("week")?.swaps.push(n):o.isSame(s,"month")?e.get("month")?.swaps.push(n):o.isSame(s,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");function Go(){let t=_.use.setSelectedSwap(),e=is(),{navigateBackFrom:o}=q(),{manager:n,state:s}=rs(),r=He(n).map(({swap:l})=>l),a=!s.loadedFromPersistor;return ss.createElement(ns,{list:r,groupBy:Ho,loading:a,onSwapClick:l=>{t(l),e(`${l}`,{replace:!0})},onBack:o.bind(null,d.swaps)})}i(Go,"HistoryPage");import{Alert as en,BestRoute as Ps,Button as tn,styled as ke,Typography as on,VerticalSwapIcon as Is,Header as Ns}from"@rango-dev/ui";import R,{useEffect as Rs,useState as Ms}from"react";import{useInRouterContext as Fs,useNavigate as Os}from"react-router-dom";import v from"react";import{AngleDownIcon as as,Button as Tt,InfoCircleIcon as ls,styled as we,TextField as us,Typography as Ce,Image as zo,Divider as yt}from"@rango-dev/ui";import{useNavigate as cs}from"react-router-dom";import{useTranslation as ps}from"react-i18next";var ms=we("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),ds=we("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100",backgroundColor:"$surface"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px"},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}},".output-usd":{display:"flex",div:{display:"flex",paddingLeft:"$8"}}}),fs=we("div",{display:"flex",justifyContent:"flex-end",".balance":{display:"flex",alignItems:"center"}}),Ko=we("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),gs=we("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function Ct(t){let{type:e,chain:o,token:n}=t,s=C.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.inputUsdValue(),u=p.use.fromToken(),c=p.use.setInputAmount(),g=p.use.bestRoute(),k=p.use.inputAmount(),b=B.use.connectedWallets(),h=p.use.loading(),y=cs(),{t:f}=ps(),S=r&&u?A(fe(b,r?.name,u?.symbol,u?.address)?.amount||"0",8):"0",m=r&&u?A(fe(b,r?.name,u?.symbol,u?.address)?.amount||"0",fe(b,r?.name,u?.symbol,u?.address)?.decimal):"0",W=v.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},s==="failed"&&v.createElement(ls,{color:"error",size:24}),v.createElement(as,null));return v.createElement(ms,null,v.createElement(ds,{type:t.type==="From"?"filled":"outlined"},v.createElement("div",{className:"head"},v.createElement(Ce,{variant:"body2",color:"neutral800"},f(e)),t.type==="From"?v.createElement(fs,null,v.createElement("div",{className:"balance",onClick:()=>{S!=="0"&&c(m.split(",").join(""))}},v.createElement(Ce,{variant:"body3",color:"neutral600"},`${f("Balance")}: ${S} ${u?.symbol||""}`),v.createElement(yt,{size:4}),v.createElement(Tt,{type:"primary",variant:"ghost",size:"compact"},f("Max")))):v.createElement("div",{className:"output-usd"},v.createElement(Ve,{inputUsdValue:l,outputUsdValue:t.outputUsdValue}),v.createElement("div",null,v.createElement(Ce,{variant:"caption",color:"neutral600"},`$${A(t.outputUsdValue)}`)))),v.createElement("div",{className:"form"},v.createElement(Tt,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-chain`)},variant:"outlined",disabled:s==="failed",loading:s==="loading",prefix:s==="success"&&o?v.createElement(zo,{src:o.logo,size:24}):v.createElement(Ko,null),suffix:W,align:"start",size:"large"},s==="success"&&o?o.displayName:f("Chain")),v.createElement(yt,{size:12,direction:"horizontal"}),v.createElement(Tt,{className:"selectors",onClick:()=>{y(`${t.type.toLowerCase()}-token`)},variant:"outlined",disabled:s==="failed"||e==="From"&&!r||e==="To"&&!a,loading:s==="loading",prefix:s==="success"&&n?v.createElement(zo,{src:n.image,size:24}):v.createElement(Ko,null),suffix:W,size:"large",align:"start"},s==="success"&&n?n.symbol:f("Token")),v.createElement(yt,{size:12,direction:"horizontal"}),v.createElement("div",{className:"amount"},t.type==="From"?v.createElement(us,{type:"number",size:"large",autoFocus:!0,placeholder:"0",style:{position:"relative",backgroundColor:"$background !important"},suffix:v.createElement("span",{style:{position:"absolute",right:"4px",bottom:"2px"}},v.createElement(Ce,{variant:"caption",color:"neutral800"},`$${A(l)}`)),value:t.inputAmount||"",min:0,onChange:t.type==="From"?E=>{t.onAmountChange(E.target.value)}:void 0}):v.createElement(gs,null,v.createElement(Ce,{variant:"h4"},h&&"?",!!g?.result&&`\u2248 ${A(t.outputAmount)}`,(!k||k==="0")&&"0"))))))}i(Ct,"TokenInfo");import ee from"react";import{styled as wt}from"@rango-dev/ui";import{Typography as jo}from"@rango-dev/ui";import{useTranslation as hs}from"react-i18next";var Ss=wt("div",{display:"flex",width:"100%",justifyContent:"end",alignItems:"center",paddingTop:"$16"}),Ts=wt("svg",{fill:"$foreground",width:"$24",margin:"0 $8 0 $16"}),ys=wt("a",{display:"flex",justifyContent:"center",alignItems:"center",textDecoration:"none"});function Qo(){let{t}=hs();return ee.createElement(Ss,null,ee.createElement(jo,{variant:"caption",color:"$neutral600"},t("Powered By")),ee.createElement(ys,{href:"https://rango.exchange",target:"_blank"},ee.createElement(Ts,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 33.68 29"},ee.createElement("defs",null),ee.createElement("g",{id:"Layer_2","data-name":"Layer 2"},ee.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},ee.createElement("path",{d:"M33.68,18.05A17.93,17.93,0,0,0,28.34,5.29,18.31,18.31,0,0,0,15.45,0H13.54V7.41L6.07,0H.69L9.83,9.07H0V11A17.93,17.93,0,0,0,5.34,23.71,18.32,18.32,0,0,0,18.24,29h1.9V21.59l7.38,7.31h5.39l-9-9h9.82ZM17.37,16.16H12.49a1.93,1.93,0,0,0-1.35.55,1.89,1.89,0,0,0-.56,1.34,1.85,1.85,0,0,0,.56,1.33,1.93,1.93,0,0,0,1.35.55h3.84V25.1A14.43,14.43,0,0,1,8,21a14.21,14.21,0,0,1-4.1-8.2H21.2a1.86,1.86,0,0,0,.74-.13,1.92,1.92,0,0,0,.64-.4,2,2,0,0,0,.43-.62,1.88,1.88,0,0,0,0-1.47,2,2,0,0,0-.43-.62,1.92,1.92,0,0,0-.64-.4,1.86,1.86,0,0,0-.74-.13H17.35V3.9A14.43,14.43,0,0,1,25.64,8a14.19,14.19,0,0,1,4.11,8.2Zm2.12-5.27a1.43,1.43,0,0,1,.26-.83,1.52,1.52,0,0,1,.67-.56,1.55,1.55,0,0,1,.88-.08,1.51,1.51,0,0,1,.77.4,1.54,1.54,0,0,1,.42.77,1.41,1.41,0,0,1-.09.86,1.47,1.47,0,0,1-.55.68,1.56,1.56,0,0,1-.84.25,1.52,1.52,0,0,1-1.52-1.49Z"}),ee.createElement("path",{d:"M21.7,11.57a.68.68,0,0,0-.12-.38.64.64,0,0,0-.31-.25.68.68,0,0,0-.75.15.61.61,0,0,0-.19.35.62.62,0,0,0,0,.4.67.67,0,0,0,.25.3.69.69,0,0,0,.39.12.7.7,0,0,0,.49-.2A.68.68,0,0,0,21.7,11.57Z"})))),ee.createElement(jo,{variant:"body2"},"RANGO")))}i(Qo,"BottomLogo");import{useEffect as Cs,useRef as ws}from"react";import{useSearchParams as ks}from"react-router-dom";function Yo({count:t}){let e=ws(!0),[o,n]=ks(),s=p.use.outputAmount();return Cs(()=>{if(e.current)e.current=!1;else{let r=o.get("fromChain"),a=o.get("fromToken"),l=o.get("toChain"),u=o.get("toToken");n({...l&&{["fromChain"]:l},...u&&{["fromToken"]:u},...r&&{["toChain"]:r},...a&&{["toToken"]:a},...s&&{["fromAmount"]:s.toString()}})}},[t]),null}i(Yo,"SwithFromAndTo");import{styled as bs}from"@rango-dev/ui";var Zo=bs("div",{display:"flex",flexDirection:"column",width:"100%",paddingTop:"$16"});var Xo={genericServerError:"Error connecting server, please reload the app and try again"};import nn from"bignumber.js";import te from"react";import{SettingsIcon as Ws,Tooltip as kt,styled as As,Button as bt,HistoryIcon as xs,RetryIcon as Bs}from"@rango-dev/ui";import{useNavigate as vs}from"react-router-dom";var Es=As("div",{display:"flex"});function Jo(t){let{onClickRefresh:e}=t,o=vs();return te.createElement(Es,null,te.createElement(kt,{content:"Refresh"},te.createElement(bt,{variant:"ghost",onClick:e,disabled:!e},te.createElement(Bs,{size:24,disabled:!e}))),te.createElement(kt,{content:"Transactions History"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.swaps)},te.createElement(xs,{size:24}))),te.createElement(kt,{content:"Settings"},te.createElement(bt,{variant:"ghost",onClick:()=>o(d.settings)},te.createElement(Ws,{size:24}))))}i(Jo,"HeaderButtons");var Ls=ke("div",{display:"flex",flexDirection:"column"}),Us=ke("div",{position:"relative",paddingBottom:"$12"}),Ds=ke("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"}),_s=ke("div",{width:"100%",paddingTop:"$16"}),qs=ke("div",{width:"100%",paddingTop:"$16"});function rn(){let t=Fs(),e=Os(),[o,n]=Ms(0),s=p.use.fromChain(),r=p.use.fromToken(),a=p.use.toChain(),l=p.use.toToken(),u=p.use.setInputAmount(),c=p.use.inputUsdValue(),g=p.use.inputAmount(),k=p.use.outputAmount(),b=p.use.outputUsdValue(),h=p.use.bestRoute(),y=C.use.meta().tokens,f=p.use.loading(),S=p.use.error(),m=C.use.loadingStatus(),W=B.use.connectedWallets(),E=_.use.setCurrentPage(),T=p.use.switchFromAndTo(),w=m==="failed"?Xo.genericServerError:S,F=!1,N=g&&(!!h||f||S),O=Fe(c,b),V=Oe(c,O),{fromAmountRangeError:x,recommendation:I,swap:L}=so(h),K=!ao(h,g,c,b),pe=io(m,W,f,h,Le(h),V,K,F,g),ae=Ue(h,y),le=lo(ae);return Rs(()=>(E(d.home),E.bind(null,"")),[]),R.createElement(Ls,null,R.createElement(Ns,{title:"SWAP",suffix:R.createElement(Jo,{onClickRefresh:h||S?wo:void 0})}),R.createElement(Us,null,R.createElement(Ct,{type:"From",chain:s,token:r,onAmountChange:u,inputAmount:g}),R.createElement(Ds,null,R.createElement(tn,{variant:"ghost",onClick:()=>{T(),n(me=>me+1)}},R.createElement(Is,{size:32}),t&&R.createElement(Yo,{count:o})))),R.createElement(Ct,{type:"To",chain:a,token:l,outputAmount:k?new nn(k):new nn(0),outputUsdValue:b}),N&&R.createElement(_s,null,R.createElement(Ps,{error:S,loading:f,data:qt(h),totalFee:A(ae,0,2),feeWarning:le,totalTime:Ot(Lt(h))})),(w||Le(h))&&R.createElement(qs,null,w&&R.createElement(en,{type:"error"},w),Le(h)&&R.createElement(en,{type:"error",title:`${L?.swapperId} Limit`},R.createElement(R.Fragment,null,R.createElement(on,{variant:"body2"},`${x}, Yours: ${A(L?.fromAmount||null)} ${L?.from.symbol}`),R.createElement(on,{variant:"body2"},I)))),R.createElement(Zo,null,R.createElement(tn,{type:"primary",align:"grow",size:"large",disabled:pe.disabled,onClick:()=>{pe.title==="Connect Wallet"?e(d.wallets):e(d.confirmSwap,{replace:!0})}},pe.title),R.createElement(Qo,null)))}i(rn,"Home");import{LiquiditySourcesSelector as $s}from"@rango-dev/ui";import Vs from"react";function sn({supportedSwappers:t}){let e=C.use.meta().swappers,o=C.use.loadingStatus(),n=P.use.toggleLiquiditySource(),s=P.use.disabledLiquiditySources(),r=P.use.toggleAllLiquiditySources(),{navigateBackFrom:a}=q(),l=[];return G(e.map(u=>u.swapperGroup)).map(u=>e.find(c=>c.swapperGroup===u)).find(u=>{if(u)for(let c of u.types)l.push({title:u.swapperGroup,logo:u.logo,type:c,selected:!s.includes(u.swapperGroup)})}),Vs.createElement($s,{toggleAll:r,list:t?l.filter(u=>t.filter(c=>c===u.title).length>0):l,onChange:u=>n(u.title),onBack:a.bind(null,d.liquiditySources),loadingStatus:o})}i(sn,"LiquiditySourcePage");import Hs from"react";import{BlockchainSelector as Gs}from"@rango-dev/ui";function Wt(t){let{type:e,supportedChains:o}=t,n=o?C.use.meta().blockchains.filter(g=>o.includes(g.name)):C.use.meta().blockchains,s=C.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.setFromChain(),u=p.use.setToChain(),{navigateBackFrom:c}=q();return Hs.createElement(Gs,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:a,loadingStatus:s,onChange:g=>{e==="from"?l(g,!0):u(g,!0),c(d.fromChain)},onBack:c.bind(null,d.fromChain)})}i(Wt,"SelectChainPage");import zs from"react";import{TokenSelector as Ks}from"@rango-dev/ui";function At(t){let{navigateBackFrom:e}=q(),{type:o,supportedTokens:n}=t,s=p.use.sourceTokens(),r=p.use.destinationTokens(),a=n?s.filter(h=>n.some(y=>j(y,h))):s,l=n?r.filter(h=>n.some(y=>j(y,h))):r,u=p.use.fromToken(),c=p.use.toToken(),g=p.use.setFromToken(),k=p.use.setToToken(),b=C.use.loadingStatus();return zs.createElement(Ks,{type:o==="from"?"Source":"Destination",list:o=="from"?a:l,selected:o==="from"?u:c,onChange:h=>{o==="from"?g(h):k(h),e(d.fromToken)},onBack:e.bind(null,d.fromToken),loadingStatus:b})}i(At,"SelectTokenPage");import js from"react";import{Settings as Qs}from"@rango-dev/ui";import{useNavigate as Ys}from"react-router-dom";function an({supportedSwappers:t,singleTheme:e}){let o=P.use.slippage(),n=P.use.setSlippage(),s=P.use.disabledLiquiditySources(),r=P.use.customSlippage(),a=P.use.setCustomSlippage(),l=P.use.theme(),u=P.use.setTheme(),c=C.use.meta().swappers,g=Ys(),{navigateBackFrom:k}=q(),b=P.use.infiniteApprove(),h=P.use.toggleInfiniteApprove(),y=C.use.loadingStatus(),f=[];G(c.map(m=>m.swapperGroup)).map(m=>c.find(W=>W.swapperGroup===m)).find(m=>{if(m)for(let W of m.types)f.push({title:m.swapperGroup,logo:m.logo,type:W,selected:!s.includes(m.swapperGroup)})}),t&&f.filter(m=>t.filter(W=>W===m.title).length>0);let S=t?f.filter(m=>t.filter(W=>W===m.title).length>0):f;return js.createElement(Qs,{slippages:Gt,selectedSlippage:o,onSlippageChange:m=>n(m),onLiquiditySourcesClick:()=>g(d.liquiditySources),onBack:k.bind(null,d.settings),liquiditySources:S,selectedLiquiditySources:S.filter(m=>m.selected),singleTheme:e,customSlippage:r,onCustomSlippageChange:a,minSlippage:Qt,maxSlippage:jt,selectedTheme:l,onThemeChange:u,infiniteApprove:b,toggleInfiniteApprove:h,loadingStatus:y})}i(an,"SettingsPage");import{Alert as Xs,SecondaryPage as Js,styled as xt,Wallet as ei,WalletState as un}from"@rango-dev/ui";import oe,{useEffect as cn,useRef as ti,useState as oi}from"react";import{WalletTypes as ni,detectMobileScreens as ri}from"@rango-dev/wallets-shared";import{useWallets as si}from"@rango-dev/wallets-core";import{useTranslation as ii}from"react-i18next";import{Spinner as ai}from"@rango-dev/ui";import{LoadingFailedAlert as li}from"@rango-dev/ui";import{allProviders as Zs}from"@rango-dev/provider-all";function Ge(t){let e=Zs();if(t){let o=[];return t.forEach(n=>{if(typeof n=="string"){let s=e.find(r=>r.config.type===n);s?o.push(s):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else o.push(n)}),o}return e}i(Ge,"matchAndGenerateProviders");function ln(t){return Ge(t).map(n=>n.config.type)}i(ln,"configWalletsToWalletName");var ui=xt("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),ci=xt("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),pi=xt("div",{paddingBottom:"$16"}),mi=Object.values(ni);function pn({supportedWallets:t,multiWallets:e}){let{navigateBackFrom:o}=q(),{state:n,disconnect:s,getWalletInfo:r,connect:a}=si(),l=Zt(n,r,ln(t)||mi),u=ti(),c=ri()?l.filter(m=>m.showOnMobile):l;c=no(c);let[g,k]=oi(""),b=_.use.toggleConnectWalletsButton(),h=C.use.loadingStatus(),{t:y}=ii(),f=i(async m=>{let W=n(m);try{if(g&&k(""),W.connected)await s(m);else{if(!e&&l.find(E=>E.state===un.CONNECTED))return;await a(m)}}catch(E){k("Error: "+E?.message)}},"onSelectWallet"),S=i(()=>{let m=u.current?.filter(W=>W.state===un.CONNECTING)||[];for(let W of m)s(W.type)},"disconnectConnectingWallets");return cn(()=>(b(),()=>{S(),b()}),[]),cn(()=>{u.current=l},[l]),oe.createElement(Js,{title:y("Select Wallet")||"",textField:!1,onBack:o.bind(null,d.wallets)},oe.createElement(oe.Fragment,null,g&&oe.createElement(pi,null,oe.createElement(Xs,{type:"error",title:g})),h==="loading"&&oe.createElement(ci,{className:"loader"},oe.createElement(ai,{size:24})),h==="failed"&&oe.createElement(li,null),oe.createElement(ui,null,h==="success"&&c.map((m,W)=>oe.createElement(ei,{...m,key:`${W}-${m.type}`,onClick:f})))))}i(pn,"WalletsPage");import hn from"react";import{useManager as Ti}from"@rango-dev/queue-manager-react";import{SwapHistory as yi,useCopyToClipboard as Ci}from"@rango-dev/ui";import{cancelSwap as wi,PendingSwapNetworkStatus as ki}from"@rango-dev/queue-manager-rango-preset";import{useWallets as bi}from"@rango-dev/wallets-core";import{getCurrentBlockchainOfOrNull as Wi,getCurrentStep as Ai,getRelatedWalletOrNull as xi}from"@rango-dev/queue-manager-rango-preset";function mn(t){let e=Math.floor((new Date().getTime()-t)/1e3),o,n=Math.floor(e/31536e3);return n>=1?o="year":(n=Math.floor(e/2592e3),n>=1?o="month":(n=Math.floor(e/86400),n>=1?o="day":(n=Math.floor(e/3600),n>=1?o="hour":(n=Math.floor(e/60),n>=1?o="minute":(n=e,o="second"))))),(n>1||n===0)&&(o+="s"),n+" "+o}i(mn,"timeSince");function dn(t){return t.finishTime?`${mn(parseInt(t.finishTime))} ago`:`${mn(parseInt(t.creationTime))} ago`}i(dn,"getSwapDate");import{useNavigate as Bi}from"react-router-dom";import be from"react";import{SecondaryPage as di,Spinner as fi,Alert as gi,styled as fn}from"@rango-dev/ui";var hi=fn("div",{height:"450px"}),Si=fn("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function gn(t){let{requestId:e,loading:o,onBack:n}=t;return be.createElement(di,{title:"Swap Details",textField:!1,onBack:n},be.createElement(hi,null,o?be.createElement(Si,null,be.createElement(fi,{size:24})):be.createElement(gi,{type:"secondary",title:`Swap with request ID = ${e} not found.`})))}i(gn,"SwapDetailsPlaceholder");function Sn(){let t=_.use.selectedSwapRequestId(),{canSwitchNetworkTo:e,connect:o,getWalletInfo:n}=bi(),s=p.use.retry(),r=Bi(),{navigateBackFrom:a}=q(),[l,u]=Ci(2e3),{manager:c,state:g}=Ti(),b=He(c).find(({swap:L})=>L.requestId===t),h=i(()=>{let L=c?.get(b?.id);L&&wi(L)},"onCancel"),y=b?.swap,f=!g.loadedFromPersistor;if(!y)return hn.createElement(gn,{requestId:t||"",loading:f,onBack:a.bind(null,d.swapDetails)});let S=Ai(y),m=S?Wi(y,S):null,W=S?xi(y,S):null,E=S?.networkStatus,T=go(y,S),w=rt(S),F=dn(y),N=So(y),O=i(L=>!!n(L)?.mobileWallet,"isMobileWallet"),x=E===ki.WaitingForNetworkChange&&!!m&&!!W?.walletType&&(O(W.walletType)||e(W.walletType,m))?o.bind(null,W.walletType,m):void 0,I=ho(y);return hn.createElement(yi,{onBack:a.bind(null,d.swapDetails),pendingSwap:$t(y),onCopy:u,isCopied:l,onCancel:h,shortMessage:T.shortMessage,detailedMessage:T.detailedMessage,currentStepBlockchain:m||"",switchNetwork:x,type:w?"warning":y.extraMessageSeverity||void 0,date:F,...N&&{onRetry:()=>{s(y),setTimeout(()=>{r(d.home)},0)}},...I&&{lastConvertedTokenInFailedSwap:{blockchain:I.blockchain,outputAmount:I.outputAmount||"",symbol:I.symbol}}})}i(Sn,"SwapDetailsPage");var Ei=i(t=>t.replace("/",""),"getAbsolutePath");function Tn(t){let{config:e}=t;return vi([{path:d.home,element:Q.createElement(rn,null)},{path:d.fromChain,element:Q.createElement(Wt,{type:"from",supportedChains:e?.from?.blockchains})},{path:d.toChain,element:Q.createElement(Wt,{type:"to",supportedChains:e?.to?.blockchains})},{path:d.fromToken,element:Q.createElement(At,{type:"from",supportedTokens:e?.from?.tokens})},{path:d.toToken,element:Q.createElement(At,{type:"to",supportedTokens:e?.to?.tokens})},{path:d.settings,element:Q.createElement(an,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:d.liquiditySources,element:Q.createElement(sn,{supportedSwappers:e?.liquiditySources})},{path:d.swaps,element:Q.createElement(Go,null)},{path:d.swapDetails,element:Q.createElement(Sn,null)},{path:d.wallets,element:Q.createElement(pn,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets})},{path:Ei(d.confirmSwap),element:Q.createElement($o,{customDestinationEnabled:e?.customDestination})}])}i(Tn,"AppRoutes");import{useTranslation as Li}from"react-i18next";var Ui=Bt("div",{display:"flex",width:"100%",justifyContent:"end",".balance":{display:"flex"}}),Di=Bt("div",{display:"flex",paddingLeft:"12px"}),_i=Bt("div",{marginLeft:-15,marginRight:"$6","& img":{borderRadius:"50%"}});function yn({config:t}){let e=Fi(),{connectedWallets:o,selectedWallets:n}=B(),{getWalletInfo:s}=Oi(),r=G(Pe(o,n,s).map(E=>E.image)),{blockchains:a,tokens:l}=C.use.meta(),u=p.use.setFromChain(),c=p.use.setFromToken(),g=p.use.setToChain(),k=p.use.setToToken(),b=p.use.setInputAmount(),h=P.use.setAffiliateRef(),y=to(o),f=_.use.connectWalletsButtonDisabled(),S=C.use.loadingStatus(),m=B(Co),{t:W}=Li();return ze(()=>{if(S==="success"){let E=a.find(w=>w.name===t?.to?.blockchain),T=l.find(w=>j(w,t?.to?.token||null));g(E||null),k(T||null)}},[t?.to?.token,t?.to?.blockchain,S]),ze(()=>{b(t?.amount?.toString()||"")},[t?.amount]),ze(()=>{if(S==="success"){let E=a.find(w=>w.name===t?.from?.blockchain),T=l.find(w=>j(w,t?.from?.token||null));u(E||null),c(T||null)}},[t?.from?.token,t?.from?.blockchain,S]),ze(()=>{h(t?.affiliateRef||null)},[t?.affiliateRef]),z.createElement(z.Fragment,null,z.createElement(Ui,null,z.createElement(Pi,{size:"small",suffix:z.createElement(Ii,{size:20}),variant:"ghost",flexContent:!0,loading:S==="loading",disabled:S==="failed",onClick:()=>{f||e(d.wallets)},prefix:r?.length?z.createElement(Di,null,r.map((E,T)=>z.createElement(_i,{key:T},z.createElement(Mi,{src:E,size:24})))):null},z.createElement("div",{className:"balance"},z.createElement(Ni,{variant:"body2"},o?.length?`$${y||0}`:W("Connect Wallet")),m&&z.createElement(Ri,null)))),z.createElement(Tn,{config:t}))}i(yn,"Layout");import{globalCss as qi}from"@rango-dev/ui";var Cn=i(t=>qi({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"],body:{fontFamily:t}})(),"globalFont");import{createTheme as wn,generateRangeColors as Y}from"@rango-dev/ui";import{useState as Hi,useEffect as kn,useLayoutEffect as Gi}from"react";import{useEffect as $i,useRef as Vi}from"react";function vt(t){let e=Vi();return $i(()=>{e.current=t},[t]),e.current}i(vt,"usePrevious");function bn({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=P.use.theme(),r=C.use.fetchMeta(),a=P.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",g=l?.background||"#fff",k=l?.foreground||"#000",b={...Y("primary","dark",u?.primary),...Y("error","dark",u?.error),...Y("warning","dark",u?.warning),...Y("success","dark",u?.success),...Y("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},h={surface:l?.surface||"#fff",...Y("primary","light",l?.primary||"#5FA425"),...Y("error","light",l?.error||"#FF0000"),...Y("warning","light",l?.warning||"#F5A623"),...Y("success","light",l?.success||"#0070F3"),...Y("neutral","light",c),background:g,foreground:k},y=wn({colors:h,radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${l?.neutral||"#f0f2f5"} ,0px 6px 10px 3px ${l?.neutral||"#f0f2f5"}, 0px 1px 18px 3px ${l?.neutral||"#f0f2f5"}`}}),f=wn({colors:{...h,...Y("neutral","dark","#111111"),foreground:g,background:k,surface:"#000",...JSON.parse(JSON.stringify(b))},radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${u?.neutral||"#222"}, 0px 6px 10px 3px ${u?.neutral||"#222"}, 0px 1px 18px 3px ${u?.neutral||"#222"}`}}),[S,m]=Hi("light");kn(()=>{(async()=>await r())();let T=i(w=>{w.matches?m("dark"):m("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&m("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",T),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",T)}},[]),kn(()=>{n!=="auto"&&a(n)},[n]);let W=vt(e);return Gi(()=>{let{classList:T}=document.body;W&&T.remove(`font_${W.replace(/ /g,"")}`),T.add(`font_${e.replace(/ /g,"")}`)},[e]),{activeTheme:i(()=>s==="auto"?S==="dark"?f:y:s==="dark"?f:y,"getActiveTheme")()}}i(bn,"useTheme");import{useTranslation as zi}from"react-i18next";function Et(){let{i18n:t}=zi(),e=t?.language||"en";return{changeLanguage:i(n=>{e!==n&&t.changeLanguage(n)},"changeLanguage"),currentLanguage:e}}i(Et,"useSelectLanguage");import Qi from"i18next";import{initReactI18next as Yi}from"react-i18next";var Wn={swap:"SWAP","Connect Wallet":"Connect Wallet","Powered By":"Powered By",From:"You sell",To:"You receive",Balance:"Balance",Max:"Max",Chain:"Chain",Token:"Token",Source:"Source",Destination:"Destination","Select Wallet":"Connect Your Wallet"};var An={swap:"TAKAS","Select Wallet":"C\xFCzdan Se\xE7","Powered By":"Taraf\u0131ndan desteklenmektedir","Connect Wallet":"C\xFCzdan\u0131 Ba\u011Fla",From:"\u0130tibaren",To:"\u0130le",Max:"maks.",Chain:"Zincir",Token:"Jeton"};import Zi from"i18next-http-backend";import Xi from"i18next-browser-languagedetector";var Ji=["en","tr"];Qi.use(Zi).use(Xi).use(Yi).init({resources:{en:{translation:Wn},tr:{translation:An}},fallbackLng:"en",debug:!0,whitelist:Ji});import ea,{useMemo as ta}from"react";import{Provider as oa}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as na,checkWaitingForNetworkChange as ra}from"@rango-dev/queue-manager-rango-preset";import{useWallets as sa}from"@rango-dev/wallets-core";import{convertEvmBlockchainMetaToEvmChainInfo as ia}from"@rango-dev/wallets-shared";import{isEvmBlockchain as aa}from"rango-types";function la(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:a}=sa(),l=ta(()=>na({API_KEY:xe("API_KEY")}),[]),u=B.use.getOneOfWalletsDetails(),{blockchains:c}=C.use.meta(),g=B.use.connectedWallets(),k={blockchains:g.map(T=>({accounts:[T],name:T.chain}))},b=i((T,w)=>{if(r(T,w))return s(T,w)},"switchNetwork"),h=i(T=>!!a(T).mobileWallet,"isMobileWallet"),y=c.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),f=c.filter(aa),S=i(T=>{let{supportedChains:w}=a(T);return Ee(w)},"getSupportedChainNames"),m=e(),W=i(T=>{let w=T.swap?.steps[T.swap.steps.length-1],F=T.step?.outputAmount||"",N=T.step||w;if(T.eventType==="task_completed"||T.eventType==="step_completed_with_output"&&w?.id!==T.step?.id||F){let O=g.find(x=>x.chain===N?.fromBlockchain),V=N?.fromBlockchain!==N?.toBlockchain&&g.find(x=>x.chain===N?.toBlockchain);O&&u(O),V&&u(V)}},"notifier"),E={meta:{blockchains:y,evmBasedChains:f,evmNetworkChainInfo:ia(f),getSupportedChainNames:S},getSigners:o,wallets:k,providers:m,switchNetwork:b,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:h,notifier:W};return ea.createElement(oa,{queuesDefs:[l],context:E,onPersistedDataLoaded:T=>{ra(T)},isPaused:!1},t.children)}i(la,"QueueManager");var xn=la;import vn from"react";import{Events as Pt,Provider as ca}from"@rango-dev/wallets-core";import{isEvmBlockchain as pa}from"rango-sdk";import{useEffect as ua}from"react";function Bn(t){let e=B.use.clearConnectedWallet(),o=Ge(void 0);return ua(()=>{e(),o=Ge(t)},[t]),{providers:o}}i(Bn,"useWalletProviders");import{createContext as ma,useRef as da}from"react";var It=ma({onConnectWallet:()=>{}});function Nt(t){let{blockchains:e}=C.use.meta(),{providers:o}=Bn(t.providers),n=B.use.disconnectWallet(),s=B.use.connectWallet(),r=da(),a=e.filter(pa).map(u=>u.name),l=i((u,c,g,k,b)=>{if(c===Pt.ACCOUNTS)if(g){let h=Ee(b),y=Xt(u,g,a,h);s(y)}else n(u);if(c===Pt.ACCOUNTS&&k.connected){let h=`${u}-${k.network}-${g}`;k.connected&&(r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===Pt.NETWORK&&k.network){let h=`${u}-${k.network}`;r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"onUpdateState");return vn.createElement(It.Provider,{value:{onConnectWallet:u=>{r.current=u}}},vn.createElement(ca,{allBlockChains:e,providers:o,onUpdateState:l},t.children))}i(Nt,"WidgetWallets");var Ta=ga("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function In(t){let{config:e}=t;Cn(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=bn(e?.theme||{}),{changeLanguage:n}=Et(),[s,r]=Pn(""),[a,l]=Pn(),u=_.use.currentPage(),c=ha(It);return Sa(()=>{e?.apiKey&&Ht({API_KEY:e?.apiKey})},[e]),En(()=>{n(e?.language||"en")},[e?.language]),En(()=>{c.onConnectWallet(r)},[]),ie.createElement(Ta,{id:"swap-container",className:o},ie.createElement(xn,null,ie.createElement(fa,{fixedHeight:u!==d.home},ie.createElement(bo,{lastConnectedWallet:s,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},ie.createElement(yn,{config:e})))))}i(In,"Main");function ya(t){return t.config?.externalWallets?ie.createElement(In,{...t}):ie.createElement(Nt,{providers:t.config?.wallets},ie.createElement(In,{...t}))}i(ya,"Widget");import{useWallets as dh}from"@rango-dev/wallets-core";export{ya as Widget,Nt as WidgetWallets,dh as useWallets};
|
|
1
|
+
var qn=Object.defineProperty;var i=(t,e)=>qn(t,"name",{value:e,configurable:!0});import{SwapContainer as Ta,styled as ya,I18nManager as Ca}from"@rango-dev/ui";import re,{useContext as wa,useEffect as ka,useMemo as ba,useState as Un}from"react";import qe,{Fragment as wr}from"react";import{MemoryRouter as kr,useInRouterContext as br}from"react-router";import{useQueueManager as Wr}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lt,useRef as ut}from"react";import{createSearchParams as Tr,useLocation as yr,useSearchParams as Cr}from"react-router-dom";import{create as dr}from"zustand";import ie from"bignumber.js";import Vn from"bignumber.js";var L=new Vn(0);import Fa from"bignumber.js";function H(t){return Array.from(new Set(t))}i(H,"removeDuplicateFrom");function Ye(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ye,"areEqual");function Dt(t,e){let o;return n;function n(...s){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...s)},e)}}i(Dt,"debounce");import{BigNumber as _t}from"bignumber.js";var $t=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),W=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new _t(t),s=1,r=1e3;for(let a=0;a<60;a++)if(new _t(n.toFixed(a,s)).eq(n)){r=a;break}if(n.gte(1e4))return n.toFormat(0,s);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,1))),s);if(n.gte(1))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,2))),s);if(n.gte(.01))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,4))),s);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,a))),s);return n.isEqualTo(0)?"0":n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,8))),s)},"numberToString");var qt=i(t=>t?.result?.swaps?.reduce((e,o)=>e+o.estimatedTimeInSeconds,0)||0,"totalArrivalTime");var xe=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Ze(t,e,o){return o&&t.find(n=>{let s=e?.split("--");return s?.length===1?n.symbol===s[0]&&n.address===null&&n.blockchain===o.name:n.symbol===s?.[0]&&n.address===s?.[1]&&n.blockchain===o.name})||null}i(Ze,"searchParamsToToken");function Vt(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Vt,"getBestRouteToTokenUsdPrice");function Je(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Je,"isNumberOfSwapsChanged");function et(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!Ye(o,n)}i(et,"isRouteSwappersUpdated");function tt(t,e){let o=t.result?.swaps.map(s=>s.to.symbol)||[],n=e.result?.swaps.map(s=>s.to.symbol)||[];return!Ye(o,n)}i(tt,"isRouteInternalCoinsUpdated");function Ht(t,e){return Je(t,e)||et(t,e)||tt(t,e)}i(Ht,"isRouteChanged");function Gt(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Gt,"getRequiredBalanceOfWallet");function ot(t){if(t.store==="bestRoute"){let{prevState:e,currentState:o}=t;return!!o.fromToken&&!!o.toToken&&(e.fromChain?.name!==o.fromChain?.name||e.toChain?.name!==o.toChain?.name||e.fromToken?.symbol!==o.fromToken?.symbol||e.toToken?.symbol!==o.toToken?.symbol||e.fromToken?.blockchain!==e.fromToken?.blockchain||e.toToken?.blockchain!==o.toToken?.blockchain||e.fromToken?.address!==o.fromToken?.address||e.toToken?.address!==o.toToken?.address||e.inputAmount!==o.inputAmount)}else if(t.store==="settings"){let{prevState:e,currentState:o}=t;return e.slippage!==o.slippage||e.customSlippage!==o.customSlippage||e.disabledLiquiditySources?.length!==o.disabledLiquiditySources?.length||e.infiniteApprove||o.infiniteApprove}return!1}i(ot,"isRouteParametersChanged");function zt(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:W(o.fromAmount,6,6),toAmount:W(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}i(zt,"getFormatedBestRoute");function Kt(t){let e=t.steps.map(o=>({...o,feeInUsd:W(o.feeInUsd,4,4),outputAmount:W(o.outputAmount,6,6),expectedOutputAmountHumanReadable:W(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:W(t.inputAmount,6,6),steps:e}}i(Kt,"getFormatedPendingSwap");var jt=i((t,e)=>t?"loading":e?"failed":"success","getBestRouteStatus");var Hn=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Y=Hn;import{subscribeWithSelector as fr}from"zustand/middleware";import{RangoClient as zn}from"rango-sdk";var Gn="c6381a79-2817-4602-83bf-6a641a409e32",nt={API_KEY:Gn};function Be(t){return nt[t]}i(Be,"getConfig");function Qt(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),nt=e,nt}i(Qt,"initConfig");var Ee,le=i(()=>Ee||(Ee=new zn(Be("API_KEY")),Ee),"httpService");import{create as jn}from"zustand";import{persist as Qn,subscribeWithSelector as Xn}from"zustand/middleware";var Xt=[.5,1,3,5,8,13,20],Yt=1,Zt=5,Jt=100,eo=0;import{create as Kn}from"zustand";var w=Y(Kn()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await le().getAllMetadata(),o=H(e.tokens.map(s=>s.blockchain)),n=e.blockchains.filter(s=>s.enabled&&o.includes(s.name));e.blockchains=n.sort((s,r)=>s.sort-r.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));var A=Y(jn()(Qn(Xn(t=>({slippage:Yt,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),setAffiliatePercent:e=>t(()=>({affiliatePercent:e})),setAffiliateWallets:e=>t(()=>({affiliateWallets:e})),toggleAllLiquiditySources:()=>t(e=>{let{swappers:o}=w.getState().meta,n=H(o.map(s=>s.swapperGroup));return n.length===e.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:n}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings"})));import $ from"bignumber.js";import{i18n as J}from"@lingui/core";import{getCosmosExperimentalChainInfo as Yn,isEvmAddress as Zn,KEPLR_COMPATIBLE_WALLETS as Jn,detectInstallLink as er,WalletTypes as tr,Networks as to}from"@rango-dev/wallets-shared";import{WalletState as Z}from"@rango-dev/ui";import{isCosmosBlockchain as or}from"rango-types";import{readAccountAddress as nr}from"@rango-dev/wallets-core";import Pe from"bignumber.js";function rr(t){switch(!0){case t.connected:return Z.CONNECTED;case t.connecting:return Z.CONNECTING;case!t.installed:return Z.NOT_INSTALLED;default:return Z.DISCONNECTED}}i(rr,"getStateWallet");var sr=[tr.LEAP];function oo(t,e,o){return o.filter(n=>!sr.includes(n)).map(n=>{let{name:s,img:r,installLink:a,showOnMobile:l}=e(n),u=rr(t(n));return{name:s,image:r,installLink:er(a),state:u,type:n,showOnMobile:!(typeof l>"u")}})}i(oo,"getlistWallet");function Ie(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ie,"walletAndSupportedChainsNames");function no(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(f=>f.chain===l)){let f={address:u,chain:l,walletType:t};s.push(f)}}i(r,"addAccount");let a=n||[];return e.forEach(l=>{let{address:u,network:c}=nr(l),f=a.length>0,T=a.includes(c),y=c===to.Unknown;if(f&&!T&&!y)return;let S=c===to.Unknown&&Zn(u);if(y&&!S)return;o.includes(c)||S?a.filter(m=>o.includes(m)).forEach(m=>{r(m,u.toLowerCase())}):r(c,u)}),s}i(no,"prepareAccountsForWalletStore");function fe(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain;e.includes(n)||e.push(n),e.includes(s)||e.push(s),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(r=>{let a=r.from.blockchain,l=r.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(fe,"getRequiredChains");function Ne(t,e,o,n){return t.map(r=>({address:r.address,walletType:r.walletType,chain:r.chain,image:o(r.walletType).img,name:o(r.walletType).name,selected:n===r.chain?!1:!!e.find(a=>a.chain===r.chain&&a.walletType===r.walletType)}))}i(Ne,"getSelectableWallets");function de(t,e,o,n){if(t.length===0)return null;let s=t.filter(r=>r.chain===e);return s.length===0?null:s.map(r=>r.balances?.find(a=>n!==null&&a.address===n||n===null&&a.address===n&&a.symbol===o)||null).filter(r=>r!==null).sort((r,a)=>parseFloat(a?.amount||"0")-parseFloat(r?.amount||"1")).find(()=>!0)||null}i(de,"getBalanceFromWallet");function Re(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Re,"isAccountAndWalletMatched");function ro(t,e,o){let{address:n,blockChain:s,explorerUrl:r,balances:a=[]}=e;return{address:n,chain:s,loading:!1,error:!1,explorerUrl:r,walletType:t.walletType,balances:a?.map(l=>({chain:s,symbol:l.asset.symbol,ticker:l.asset.symbol,address:l.asset.address||null,rawAmount:l.amount.amount,decimal:l.amount.decimals,amount:new Pe(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:ar(s,l.asset.symbol,l.asset.address,o)||null}))||[]}}i(ro,"makeBalanceFor");function so(t){return{...t,loading:!1,error:!0}}i(so,"resetConnectedWalletState");var io=i(t=>{let e=new Set,n=t?.reduce((r,a)=>r.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...r,a]:r,[])?.map(r=>{let a={name:r.chain,accounts:[]};return e.has(r.address)||e.add(r.address),e.forEach(l=>{r.address===l&&a.accounts.push(r)}),a}),s=W(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new Pe(r?.amount||L).multipliedBy(r?.usdPrice||0))?.reduce((r,a)=>r.plus(a),L)||L).toString();return ir(s)},"calculateWalletUsdValue");function ir(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ir,"numberWithThousandSeperator");var Me=i(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),ar=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice"),ao=i((t,e)=>{let o=Yn(Object.entries(t).map(([,n])=>n).filter(or));return o&&!!o[e]},"isExperimentalChain"),rt=i(t=>{let e=new Set(t.map(o=>o.walletType));return Jn.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function Fe(t,e){return t.map(({balance:o,...n})=>{let s=W(new Pe(de(e,n.blockchain,n.symbol,n.address)?.amount||L)),r="";return n.usdPrice&&(r=W(new Pe(de(e,n.blockchain,n.symbol,n.address)?.amount||L).multipliedBy(n.usdPrice))),{...n,...s!=="0"&&{balance:{amount:s,usdValue:r}}}})}i(Fe,"getTokensWithBalance");function Se(t,e,o,n){if(t?.name===n[0]?.name)return n;let r=e.filter(a=>a.blockchain===t?.name);return Me(Fe(r,o))}i(Se,"getSortedTokens");function j(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(j,"tokensAreEqual");function st(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:j(n,e)?o=s:o=n,o}i(st,"getDefaultToken");function lo(t){return t.sort((e,o)=>+(o.state===Z.CONNECTED)-+(e.state===Z.CONNECTED)||+(o.state===Z.DISCONNECTED||o.state===Z.CONNECTING)-+(e.state===Z.DISCONNECTED||e.state===Z.CONNECTING))}i(lo,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as Ue}from"@rango-dev/queue-manager-rango-preset";function Oe(t,e){return!t||!e||t.lte(L)||e.lte(L)?0:e.div(t).minus(1).multipliedBy(100)}i(Oe,"getOutputRatio");function Le(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new $(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new $(1e3)))??!1}i(Le,"outputRatioHasWarning");function De(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(De,"hasLimitError");function co(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(l=>{let u=l.fromAmountMinValue?new $(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new $(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?u?.gte(l.fromAmount)||c?.lte(l.fromAmount):u?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new $(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new $(e.fromAmountMaxValue):null,s=e.fromAmountRestrictionType==="EXCLUSIVE",r="",a="";return!s&&o&&o.gt(e.fromAmount)?(r=`Required: >= ${W(o)} ${e.from.symbol}`,a="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${W(o)} ${e.from.symbol}`,a="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${W(n)} ${e.from.symbol}`,a="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${W(n)} ${e.from.symbol}`,a="Decrease your swap amount"),{swap:e,fromAmountRangeError:r,recommendation:a}}i(co,"LimitErrorMessage");function po(t,e,o,n,s,r,a,l,u){return t!=="success"?{title:`${J.t("Connect Wallet")}`,disabled:!0}:e.length==0?{title:`${J.t("Connect Wallet")}`,disabled:!1}:o?{title:`${J.t("Finding Best Route...")}`,disabled:!0}:!u||u==="0"?{title:`${J.t("Enter an amount")}`,disabled:!0}:!n||!n.result?{title:`${J.t("Swap")}`,disabled:!0}:s?{title:`${J.t("Limit Error")}`,disabled:!0}:r?{title:`${J.t("Price impact is too high!")}`,disabled:!0}:a?{title:`${J.t("USD price is unknown, price impact might be high!")}`,disabled:!1,hasWarning:!0}:l?{title:`${J.t("The route goes through Ethereum. Continue?")}`,disabled:!1,hasWarning:!0}:{title:`${J.t("Swap")}`,disabled:!1}}i(po,"getSwapButtonState");function mo(t,e,o,n){return!((!o||!n||o.lte(L)||n.lte(L))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(mo,"canComputePriceImpact");function uo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}i(uo,"requiredWallets");var lr=i((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function ur(t,e){let o=L;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=lr(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new $(s.amount).multipliedBy(r||0))}return o}i(ur,"getUsdFeeOfStep");function _e(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(ur(n,e)),L)||null}i(_e,"getTotalFeeInUsd");function fo(t){return t?!t.lt(new $(30)):!1}i(fo,"hasHighFee");function go(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(go,"getMinRequiredSlippage");function ho(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ho,"hasProperSlippage");function $e(t,e,o,n,s,r,a,l,u,c,f,T){let y=s.reduce((m,d)=>(m[d.chain]=d.address,m),{}),h=[];n.forEach(m=>{let d=h.find(B=>B.blockchain===m.chain);d?d.addresses.push(m.address):h.push({blockchain:m.chain,addresses:[m.address]})});let S=!!f,k=H((f?.result?.swaps||[]).reduce((m,d)=>(m.push(d.from.blockchain,d.to.blockchain),d.internalSwaps&&Array.isArray(d.internalSwaps)&&d.internalSwaps.map(B=>{m.push(B.from.blockchain,B.to.blockchain)}),m),[]));return{amount:o.toString(),affiliateRef:l??void 0,affiliatePercent:u??void 0,affiliateWallets:c??void 0,checkPrerequisites:S,from:{address:t.address,blockchain:t.blockchain,symbol:t.symbol},to:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},connectedWallets:h,destination:T||void 0,selectedWallets:y,swapperGroups:r,swappersGroupsExclude:!0,slippage:a.toString(),...S&&{blockchains:k}}}i($e,"createBestRouteRequestBody");function it(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(it,"getWalletsForNewSwap");function ge(t){return t?.result?.outputAmount||null}i(ge,"getRouteOutputAmount");function Te(t,e){return!t||!e?null:new $(e).div(new $(t)).minus(1).multipliedBy(100)}i(Te,"getPercentageChange");function So(t,e){let o=ge(t),n=ge(e);if(!o||!n)return!1;let s=Te(o,n);return s?s.toNumber()<=-1:!0}i(So,"isOutputAmountChangedALot");function To(t,e){let o=t.validationStatus,n=fe(t);return e.sort((r,a)=>n.indexOf(r.chain)-n.indexOf(a.chain)).flatMap(r=>Gt(r,o)||[]).filter(r=>!r.ok).map(r=>{let a=r.asset.symbol,l=W(new $(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=W(new $(r.requiredAmount.amount).shiftedBy(-r.requiredAmount.decimals),8),c="";return r.reason==="FEE"&&(c=" for network fee"),r.reason==="INPUT_ASSET"&&(c=" for swap"),r.reason==="FEE_AND_INPUT_ASSET"&&(c=" for input and network fee"),`Needs \u2248 ${u} ${a}${c}, but you have ${l} ${a} in your ${r.asset.blockchain} wallet.`})}i(To,"getBalanceWarnings");function yo(t,e){return(t?new $(t):L).multipliedBy(e||0)}i(yo,"calcOutputUsdValue");function at(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ue.NetworkChanged}i(at,"isNetworkStatusInWarningState");function Co(t,e){let o="bellow button or",n=t.extraMessage,s=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),at(e))switch(n=t.networkStatusExtraMessage||"",s=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Ue.WaitingForConnectingWallet:n=n||"Waiting for connecting wallet";break;case Ue.WaitingForQueue:n=n||"Waiting for other running tasks to be finished";break;case Ue.WaitingForNetworkChange:n=n||"Waiting for changing wallet network";break}s=s||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:s,long:a}}}i(Co,"getSwapMessages");function wo(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(wo,"getLastConvertedTokenInFailedSwap");function ko(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(ko,"shouldRetrySwap");function bo(t,e){return(w.getState().meta.blockchains.find(s=>s.name===t)?.addressPatterns||[]).filter(s=>new RegExp(s).test(e)).length>0}i(bo,"isValidCustomDestination");function Wo(t,e,o,n,s){return t||!e&&!uo(n).every(r=>s.map(a=>a.chain).includes(r))||!!e&&!o||!!e&&!!o&&!uo(n).filter(r=>r!==e).every(r=>s.map(a=>a.chain).includes(r))}i(Wo,"confirmSwapDisabled");import{create as cr}from"zustand";import{subscribeWithSelector as pr}from"zustand/middleware";import{shallow as mr}from"zustand/shallow";var x=Y(cr()(pr((t,e)=>({connectedWallets:[],selectedWallets:[],customDestination:"",connectWallet:o=>{let n=e().getWalletsDetails;t(s=>({connectedWallets:s.connectedWallets.filter(r=>r.walletType!==o[0].walletType).concat(o.map(r=>({balances:[],address:r.address,chain:r.chain,loading:!0,walletType:r.walletType,error:!1,explorerUrl:null})))})),n(o)},disconnectWallet:o=>{t(n=>({connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o),selectedWallets:n.selectedWallets.filter(s=>s.walletType!=o)}))},initSelectedWallets:()=>t(o=>{let n=fe(p.getState().bestRoute),s=o.connectedWallets,r=[];return n.forEach(a=>{if(!!!o.selectedWallets.find(u=>u.chain===a)){let u=s.find(c=>c.chain===a);u&&r.push({address:u.address,chain:u.chain,walletType:u.walletType})}}),{selectedWallets:o.selectedWallets.concat(r)}}),setSelectedWallet:o=>t(n=>({selectedWallets:n.selectedWallets.filter(s=>s.chain!==o.chain).concat({chain:o.chain,address:o.address,walletType:o.walletType})})),setCustomDestination:o=>t(()=>({customDestination:o})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n=!0)=>{let s=e().getWalletsDetails,{tokens:r}=w.getState().meta;t(a=>({connectedWallets:a.connectedWallets.map(l=>o.find(u=>Re(u,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:c,chain:f})=>({address:c,blockchain:f})),u=(await le().getWalletsDetails(a)).wallets;if(u)t(c=>({connectedWallets:c.connectedWallets.map(f=>{let T=o.find(h=>Re(h,f)),y=u.find(h=>h.address===f.address&&h.blockChain===f.chain);return y?.failed&&T&&n&&s([T],!1),T&&y?ro(T,y,r):f})}));else throw new Error("Wallet not found")}catch{t(l=>({connectedWallets:l.connectedWallets.map(u=>o.find(c=>Re(c,u))?so(u):u)}))}}}))));x.subscribe(t=>t.connectedWallets,t=>{p.setState(({sourceTokens:e,destinationTokens:o})=>{let n=Fe(e,t),s=Fe(o,t);return{sourceTokens:Me(n),destinationTokens:Me(s)}})},{equalityFn:mr});var Ao=i(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ye=i((t,e)=>t?.usdPrice?new ie(e||L).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),p=Y(dr()(fr(t=>({fromChain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ie(0),outputUsdValue:new ie(0),toChain:null,toToken:null,bestRoute:null,loading:!1,error:"",sourceTokens:[],destinationTokens:[],setBestRoute:e=>t(o=>{let n=null,s=L;return xe(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ie(e.result?.outputAmount):null,s=yo(e.result?.outputAmount,Vt(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:s}}):{}}),resetRoute:()=>t(()=>({loading:!0,error:"",bestRoute:null,outputAmount:null,outputUsdValue:new ie(0)})),setFromChain:(e,o)=>{t(n=>{if(n.fromChain?.name===e?.name)return{};let s=w.getState().meta.tokens,r=x.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens),l=st(a,n.toToken);return{fromChain:e,sourceTokens:a,...o&&{fromToken:l},...!!n.inputAmount&&{inputUsdValue:ye(l,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:ye(e,o.inputAmount)}})),setToChain:(e,o)=>{t(n=>{if(n.toChain?.name===e?.name)return{};let s=w.getState().meta.tokens,r=x.getState().connectedWallets,a=Se(e,s,r,n.destinationTokens);return{toChain:e,destinationTokens:a,...o&&{toToken:st(a,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new ie(0),outputUsdValue:new ie(0),bestRoute:null,error:""},...!!o.fromToken&&{inputUsdValue:ye(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=w.getState().meta,s=x.getState().connectedWallets,r=e.status==="failed"?e.steps.findIndex(k=>k.status==="failed"):null;if(r===null||r<0)return;let a=e.steps[0],l=e.steps[e.steps.length-1],u=n.find(k=>k.name===a.fromBlockchain)||null,c=n.find(k=>k.name===l.toBlockchain)||null,f=o.find(k=>j(k,{blockchain:a.fromBlockchain,symbol:a.fromSymbol,address:a.fromSymbolAddress})),T=o.find(k=>j(k,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),y=Se(u,o,s,[]),h=Se(c,o,s,[]),S=e.inputAmount;t({fromChain:u,fromToken:f,inputAmount:S,outputAmount:null,inputUsdValue:ye(f||null,S),outputUsdValue:new ie(0),toChain:c,toToken:T,bestRoute:null,loading:!1,error:"",sourceTokens:y,destinationTokens:h})},switchFromAndTo:()=>t(e=>({fromChain:e.toChain,fromToken:e.toToken,toChain:e.fromChain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:ye(e.toToken,e.outputAmount?.toString()||"")}))})))),gr=i((t,e)=>{let o=null,n=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:f,customSlippage:T,disabledLiquiditySources:y,affiliateRef:h,affiliatePercent:S,affiliateWallets:k}=e.getState();if(!a||!l||!xe(u))return;o?.abort(),o=new AbortController;let m=$e(a,l,u,[],[],y,T||f,h,S,k);t.getState().loading||c(),le().getBestRoute(m,{signal:o.signal}).then(d=>{let{setBestRoute:B}=t.getState();B(d),t.setState({loading:!1}),o=null}).catch(d=>{d.code!=="ERR_CANCELED"&&t.setState({error:d.message,loading:!1})})},"fetchBestRoute"),s=Dt(n,600),r=i(()=>{let{fromToken:a,toToken:l,inputAmount:u,inputUsdValue:c,resetRoute:f}=p.getState();if(!xe(u)||c?.eq(0))return t.setState({loading:!1});if(j(a,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new ie(u),outputUsdValue:c});t.getState().loading||f(),s()},"bestRouteParamsListener");return p.subscribe(a=>({fromChain:a.fromChain,fromToken:a.fromToken,toChain:a.toChain,toToken:a.toToken,inputAmount:a.inputAmount}),r,{equalityFn:(a,l)=>!ot({store:"bestRoute",prevState:a,currentState:l})}),A.subscribe(a=>({slippage:a.slippage,customSlippage:a.customSlippage,disabledLiquiditySources:a.disabledLiquiditySources,infiniteApprove:a.infiniteApprove}),r,{equalityFn:(a,l)=>!ot({store:"settings",prevState:a,currentState:l})}),{fetchBestRoute:n}},"bestRoute"),{fetchBestRoute:vo}=gr(p,A);var g={home:"/",fromChain:"from-chain",fromToken:"from-token",toChain:"to-chain",toToken:"to-token",settings:"settings",liquiditySources:"/settings/liquidity-sources",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{create as hr}from"zustand";var D=Y(hr()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",toggleConnectWalletsButton:()=>t(e=>({connectWalletsButtonDisabled:!e.connectWalletsButtonDisabled})),setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function xo(){let t=ut(!0),[e,o]=Cr(),n=yr(),s=ut(n.search),r=ut({}),a=p.use.fromChain(),l=p.use.toChain(),u=p.use.fromToken(),c=p.use.toToken(),f=p.use.setFromChain(),T=p.use.setFromToken(),y=p.use.setToChain(),h=p.use.setToToken(),S=p.use.inputAmount(),k=p.use.setInputAmount(),C=w.use.loadingStatus(),{blockchains:m,tokens:d}=w.use.meta(),B=D.use.setSelectedSwap();return lt(()=>{let E={};Tr(s.current).forEach((I,M)=>{E[M]=I}),r.current=E;let P=n.pathname.split(g.swaps+"/")[1]||null;P&&B(P)},[]),lt(()=>{if(!t.current){let E="",P="",I="",M="",U="";if(C!=="success")E=r.current["fromChain"],P=r.current["fromToken"],I=r.current["toChain"],M=r.current["toToken"],U=r.current["fromAmount"]||S;else{if(n.state==="redirect")return;E=a?.name||"",P=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),I=l?.name||"",M=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),U=S}o({...E&&{["fromChain"]:E},...P&&{["fromToken"]:P},...I&&{["toChain"]:I},...M&&{["toToken"]:M},...U&&{["fromAmount"]:U.toString()}},{replace:!0})}t.current=!1},[n.pathname,S,a,u,l,c]),lt(()=>{if(C==="success"){let E=e.get("fromChain"),P=e.get("fromToken"),I=e.get("toChain"),M=e.get("toToken"),U=e.get("fromAmount"),z=m.find(N=>N.name===E),se=Ze(d,P,z||null),q=m.find(N=>N.name===I),b=Ze(d,M,q||null);z&&(f(z),se&&T(se)),q&&(y(q),b&&h(b)),U&&k(U)}},[C]),null}i(xo,"UpdateUrl");import{useWallets as Ar}from"@rango-dev/wallets-core";import{isEvmBlockchain as vr}from"rango-types";function Bo({children:t,...e}){let o=br(),n=o?wr:kr,{blockchains:s}=w.use.meta(),{canSwitchNetworkTo:r}=Ar(),a=s.filter(vr);return Wr({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:r}),qe.createElement(qe.Fragment,null,qe.createElement(n,null,t),o&&qe.createElement(xo,null))}i(Bo,"AppRouter");import{Button as Oi,AddWalletIcon as Li,Typography as Di,styled as Nt,Spinner as _i,Image as $i}from"@rango-dev/ui";import G,{useEffect as Qe}from"react";import{useNavigate as qi}from"react-router-dom";import{useWallets as Vi}from"@rango-dev/wallets-core";import Q from"react";import{useRoutes as Fi}from"react-router-dom";import V,{useEffect as rs,useState as zo}from"react";import{useNavigate as ss}from"react-router-dom";import{useWallets as is}from"@rango-dev/wallets-core";import{i18n as ze}from"@lingui/core";import{useInRouterContext as xr,useNavigate as Br}from"react-router-dom";function _(){let t=xr(),e=Br();return g,{navigateBackFrom:i(n=>{if(n===g.swapDetails)return e("/"+g.swaps,{replace:!0});!t||window.history.state&&window.history.state.idx>0?e(-1):[g.fromChain,g.fromToken,g.toChain,g.toToken,g.settings,g.wallets,g.swaps,g.confirmSwap].includes(n)?e(g.home,{replace:!0}):n===g.liquiditySources&&e("/"+g.settings,{replace:!0})},"navigateBackFrom")}}i(_,"useNavigateBack");import F from"react";import{Button as Eo,InfoCircleIcon as Er,styled as Ve,Typography as ct,Divider as Po,Image as Io}from"@rango-dev/ui";import{i18n as No}from"@lingui/core";var Pr=Ve("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),Ir=Ve("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px",".usd-value":{paddingLeft:"$8"}},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}}}),Ro=Ve("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),Nr=Ve("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function pt(t){let{chain:e,token:o,loadingStatus:n,percentageChange:s}=t,r=F.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},n==="failed"&&F.createElement(Er,{color:"error",size:24}));return F.createElement(Pr,null,F.createElement(Ir,{type:"outlined"},F.createElement("div",{className:"head"},F.createElement(ct,{variant:"body2",color:"neutral800"},t.label),F.createElement("div",null,s,t.usdValue&&F.createElement(ct,{variant:"caption",color:"neutral600",className:"usd-value"},`$${W(t.usdValue)}`))),F.createElement("div",{className:"form"},F.createElement(Eo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&e?F.createElement(Io,{src:e.logo,size:24}):F.createElement(Ro,null),suffix:r,align:"start",size:"large"},n==="success"&&e?e.displayName:No.t("Chain")),F.createElement(Po,{size:12,direction:"horizontal"}),F.createElement(Eo,{className:"selectors",variant:"outlined",loading:n==="loading",prefix:n==="success"&&o?F.createElement(Io,{src:o.image,size:24}):F.createElement(Ro,null),suffix:r,size:"large",align:"start"},n==="success"&&o?o.symbol:No.t("Token")),F.createElement(Po,{size:12,direction:"horizontal"}),F.createElement("div",{className:"amount"},F.createElement(Nr,null,F.createElement(ct,{variant:"h4"},t.amount))))))}i(pt,"TokenPreview");import{Divider as Ko,ConfirmSwap as as,LoadingFailedAlert as ls}from"@rango-dev/ui";import ee from"react";import{styled as Rr,ChevronRightIcon as Mr,GasIcon as Fr,Divider as Ur}from"@rango-dev/ui";var Or=Rr("div",{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"$8",borderRadius:"$5",backgroundColor:"$neutral100",color:"$neutral800",fontSize:"$12",".routes":{display:"flex",alignItems:"center"},".fee":{display:"flex",alignItems:"center"}});function Lr(t){if(!t.routes)return null;let e=t.routes.result?.swaps;return ee.createElement(Or,null,ee.createElement("div",{className:"routes"},e?.map((o,n)=>{let s=n+1==e.length;return ee.createElement(ee.Fragment,{key:n},ee.createElement("div",{className:"route"},o.from.symbol),ee.createElement(Mr,{size:12}),s?ee.createElement("div",{className:"route"},o.to.symbol):null)})),t.totalFee?ee.createElement("div",{className:"fee"},ee.createElement(Fr,{size:12}),ee.createElement(Ur,{size:4,direction:"horizontal"}),"$",t.totalFee):null)}i(Lr,"RoutesOverview");var Mo=Lr;import{useManager as us}from"@rango-dev/queue-manager-react";import{useEffect as _r,useRef as mt,useState as dt}from"react";import ft from"bignumber.js";import{calculatePendingSwap as Fo}from"@rango-dev/queue-manager-rango-preset";function Oo(){let t=p.use.fromToken(),e=p.use.toToken(),o=p.use.inputAmount(),n=p.use.bestRoute(),s=p.use.setBestRoute(),r=p.use.inputUsdValue(),a=A.use.affiliateRef(),l=A.use.affiliatePercent(),u=A.use.affiliateWallets(),c=x.use.connectedWallets(),f=x.use.customDestination(),T=x.use.selectedWallets(),y=w.use.meta(),h=A.use.customSlippage(),S=A.use.slippage(),k=A.use.disabledLiquiditySources(),C=h||S,m=mt(!1),d=mt(null),B=mt(null),[E,P]=dt(!1),[I,M]=dt([]),[U,z]=dt([]);return _r(()=>()=>B.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:E,warnings:U,errors:I,confirmSwap:i(async()=>{if(m.current){let b={slippage:C.toString(),disabledSwappersGroups:k};return I.length>0&&M([]),U.length>0&&z([]),m.current=!1,d.current?Fo(o.toString(),d.current,it(T),b,!1,y):void 0}B.current=new AbortController,P(!0);let q=$e(t,e,o,c,T,k,C,a,l,u,n,f);try{let b=await le().getBestRoute(q,{signal:B.current?.signal});if(B.current=null,P(!1),!b.result||!new ft(b.requestAmount).isEqualTo(new ft(o||"-1"))){M(K=>K.concat({type:0}));return}let N={errors:[],warnings:[]};if(Ht(n,b)){s(b);let K=new ft(b.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),Ae=Oe(r,K);Le(r,Ae)?N.errors.push({type:1}):So(n,b)?N.warnings.push({type:3,newOutputAmount:W(ge(b)),percentageChange:W(Te(ge(n),ge(b)),null,2)}):tt(n,b)?N.warnings.push({type:2}):Je(n,b)?N.warnings.push({type:0}):et(n,b)&&N.warnings.push({type:1})}let ue=To(b,T);ue.length===0||N.errors.push({type:4,messages:ue});let me=go(n);ho(C.toString(),me)||N.errors.push({type:3,minRequiredSlippage:me});let We=N.errors.length===0,ae=N.warnings.length===0;if((We||!We&&m.current)&&(ae||!ae&&m.current)){let K={slippage:C.toString(),disabledSwappersGroups:k};return Fo(o.toString(),b,it(T),K,!1,y)}else m.current||(m.current=!0,M(N.errors),z(N.warnings),d.current=b);return}catch(b){if(b?.code==="ERR_CANCELED")return;let N=b?.response?.status;P(!1),M([{type:2,status:N}]);return}},"confirmSwap")}}i(Oo,"useConfirmSwap");import $o from"react";import{Divider as Gr,Typography as zr,styled as Kr}from"@rango-dev/ui";import gt from"react";import $r from"react";import{Button as qr}from"@rango-dev/ui";import{useNavigate as Vr}from"react-router-dom";import{i18n as Hr}from"@lingui/core";function He(){let t=Vr();return $r.createElement(qr,{type:"primary",variant:"outlined",size:"small",onClick:()=>t("/"+g.settings)},Hr.t("Change Slippage"))}i(He,"ChangeSlippageButton");import{i18n as jr}from"@lingui/core";var Qr=Kr(zr,{color:"$error500 !important"});function Lo({minRequiredSlippage:t}){return gt.createElement(Qr,{variant:"body2"},jr.t("increaseSlippage",{minRequiredSlippage:t},{message:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route."}),gt.createElement(Gr,{size:8}),gt.createElement(He,null))}i(Lo,"MinRequiredSlippage");import{Divider as Xr,styled as ht,Typography as Do}from"@rango-dev/ui";import ce from"react";import{i18n as Yr}from"@lingui/core";var Zr=ht("ul",{padding:0,margin:0,variants:{showListStyle:{true:{paddingLeft:"$24"}}}}),Jr=ht("li",{variants:{showListStyle:{true:{listStyleType:"disc",listStylePosition:"outside"}}}}),es=ht(Do,{display:"block"});function _o({messages:t}){let e=t.length>1;return ce.createElement(ce.Fragment,null,ce.createElement(Do,{className:"title",variant:"title",color:"error"},Yr.t("Insufficent Balance:")),ce.createElement(Xr,{size:8}),ce.createElement(Zr,{showListStyle:e},t.map((o,n)=>ce.createElement(Jr,{showListStyle:e,key:n},ce.createElement(es,{variant:"body2"},o)))))}i(_o,"BalanceErrors");function St(t){return t.flatMap(e=>{switch(e.type){case 0:return"No routes found. Please try again later.";case 2:return`Failed to confirm swap ${e.status?`'status': ${e.status})`:""}, please try again.`;case 1:return"Route updated and price impact is too high, try again later!";case 3:return $o.createElement(Lo,{minRequiredSlippage:e.minRequiredSlippage});case 4:return $o.createElement(_o,{messages:e.messages});default:return[]}})}i(St,"ConfirmSwapErrors");function qo(t){return t.flatMap(e=>{switch(e.type){case 0:return"Route has been updated.";case 3:return`Output amount changed to ${e.newOutputAmount} (${e.percentageChange}% change).`;case 1:return"Route swappers has been updated.";case 2:return"Route internal coins has been updated.";default:return[]}})}i(qo,"ConfirmSwapWarnings");import Tt from"react";import{Alert as ts}from"@rango-dev/ui";import Vo from"react";import{i18n as os}from"@lingui/core";function Ho(t){let{selectedSlippage:e}=t;return Vo.createElement(ts,{type:"warning",footer:Vo.createElement(He,null)},os.t("highSlippage",{selectedSlippage:e},{message:" Caution, your slippage is high (={selectedSlippage}). Your trade may be front run."}))}i(Ho,"HighSlippageWarning");function Go(t){let{selectedSlippage:e}=t,o=e>=Zt;return Tt.createElement(Tt.Fragment,null,o&&Tt.createElement(Ho,{selectedSlippage:e}))}i(Go,"ConfirmSwapExtraMessages");import yt from"react";import{Typography as ns}from"@rango-dev/ui";function Ge(t){let{inputUsdValue:e,outputUsdValue:o}=t;if(!e||!o||!o.gt(0))return null;let n=Te(e.toNumber(),o.toNumber()),s=n?.lt(0);return yt.createElement(yt.Fragment,null,s&&yt.createElement(ns,{variant:"caption",color:"$error500"},`(${W(n,0,2)}%)`))}i(Ge,"PercentageChange");function jo({customDestinationEnabled:t}){let e=ss(),{navigateBackFrom:o}=_(),n=p.use.bestRoute(),s=p.use.loading(),r=p.use.error(),a=D.use.setSelectedSwap(),{blockchains:l,tokens:u}=w.use.meta(),c=w.use.loadingStatus(),f=x.use.connectedWallets(),T=x.use.selectedWallets(),y=x.use.customDestination(),h=x.use.setCustomDestination(),S=x.use.initSelectedWallets(),k=x.use.setSelectedWallet(),C=A.use.slippage(),m=A.use.customSlippage(),d=p.use.inputUsdValue(),B=p.use.outputUsdValue(),E=p.use.setInputAmount(),[P,I]=zo(""),M=jt(s,!!r),[U,z]=zo(""),{manager:se}=us(),{loading:q,errors:b,warnings:N,confirmSwap:pe}=Oo(),ue=m||C,he=!b.find(O=>O.type===3),{getWalletInfo:me,connect:We}=is(),ae=n?.result?.swaps[0],K=n?.result?.swaps[n?.result?.swaps.length-1],Ae=W(ae?.fromAmount,4,6),Ot=W(K?.toAmount,4,6);rs(()=>{S(),y&&h("")},[]);let Ln=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,Lt=!!n?.result?.swaps.find(O=>O.from.blockchain===Ln),ve=Ne(f,T,me,Lt?"":U),Dn=i(O=>{let Xe=O;rt(ve).forEach($n=>We?.($n,Xe))},"handleConnectChain"),_n=_e(n,u);return V.createElement(as,{requiredWallets:fe(n),selectableWallets:ve,setCustomDestination:h,customDestination:y,customDestinationEnabled:t,isValidCustomDestination:bo,checkedDestination:!!U,setDestinationChain:z,onBack:o.bind(null,g.confirmSwap),onConfirm:async()=>{pe?.().then(async O=>{if(O)try{await se?.create("swap",{swapDetails:O},{id:O.requestId}),a(O.requestId),e("/"+g.swaps+`/${O.requestId}`,{replace:!0}),setTimeout(()=>{E("")},0)}catch(Xe){I("Error: "+Xe?.message)}})},isWalletRequired:Lt,onChange:O=>k(O),confirmDisabled:c!=="success"||Wo(s,U,y,n,ve),handleConnectChain:O=>Dn(O),isExperimentalChain:O=>rt(ve).length>0?ao(l,O):!1,previewInputs:V.createElement(V.Fragment,null,V.createElement(pt,{chain:{displayName:ae?.from.blockchain||"",logo:ae?.from.blockchainLogo||""},token:{symbol:ae?.from.symbol||"",image:ae?.from.logo||""},usdValue:d,amount:Ae,label:ze.t("From"),loadingStatus:c!=="success"?c:M}),V.createElement(Ko,{size:12}),V.createElement(pt,{chain:{displayName:K?.to.blockchain||"",logo:K?.to.blockchainLogo||""},token:{symbol:K?.to.symbol||"",image:K?.to.logo||""},usdValue:B,amount:Ot,label:ze.t("To"),loadingStatus:c!=="success"?c:M,percentageChange:V.createElement(Ge,{inputUsdValue:d,outputUsdValue:B})})),previewRoutes:V.createElement(Mo,{routes:n,totalFee:W(_n,0,2)}),loading:q,errors:P?[P,...St(b)]:St(b),warnings:qo(N),extraMessages:V.createElement(V.Fragment,null,c==="failed"&&V.createElement(ls,null),c==="failed"&&he&&V.createElement(Ko,null),he&&V.createElement(Go,{selectedSlippage:ue})),confirmButtonTitle:N.length>0||b.length>0?`${ze.t("Proceed anyway!")}`:`${ze.t("Confirm swap!")}`})}i(jo,"ConfirmSwapPage");import{History as cs}from"@rango-dev/ui";import{useManager as ps}from"@rango-dev/queue-manager-react";import ms from"react";import{useNavigate as ds}from"react-router-dom";var Ke=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let s=o.list.getStorage();s?.swapDetails&&e.push({id:n,swap:s?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import Qo from"dayjs";var Xo=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=Qo();return t.forEach(n=>{let s=Qo(Number(n.creationTime));o.isSame(s,"day")?e.get("today")?.swaps.push(n):o.isSame(s,"week")?e.get("week")?.swaps.push(n):o.isSame(s,"month")?e.get("month")?.swaps.push(n):o.isSame(s,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");function Yo(){let t=D.use.setSelectedSwap(),e=ds(),{navigateBackFrom:o}=_(),{manager:n,state:s}=ps(),r=Ke(n).map(({swap:l})=>l),a=!s.loadedFromPersistor;return ms.createElement(cs,{list:r,groupBy:Xo,loading:a,onSwapClick:l=>{t(l),e(`${l}`,{replace:!0})},onBack:o.bind(null,g.swaps)})}i(Yo,"HistoryPage");import{Alert as an,BestRoute as Us,Button as ln,styled as ke,Typography as un,VerticalSwapIcon as Os,Header as Ls}from"@rango-dev/ui";import R,{useEffect as Ds,useState as _s}from"react";import{i18n as $s}from"@lingui/core";import{useInRouterContext as qs,useNavigate as Vs}from"react-router-dom";import v from"react";import{AngleDownIcon as fs,Button as Ct,InfoCircleIcon as gs,styled as we,TextField as hs,Typography as Ce,Image as Zo,Divider as wt}from"@rango-dev/ui";import{useNavigate as Ss}from"react-router-dom";import{Trans as kt}from"@lingui/react";import{i18n as bt}from"@lingui/core";var Ts=we("div",{display:"flex",flexDirection:"column",width:"100%",overflow:"hidden"}),ys=we("div",{boxSizing:"border-box",borderRadius:"$5",padding:"$8 $16 $16 $16",variants:{type:{filled:{backgroundColor:"$neutral100"},outlined:{border:"1px solid $neutral100",backgroundColor:"$surface"}}},defaultVariants:{type:"filled"},".head":{display:"flex",justifyContent:"space-between",alignItems:"center",minHeight:"32px"},".form":{display:"flex",width:"100%",padding:"$2 0",".selectors":{width:"35%","._text":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},".amount":{width:"30%"}},".output-usd":{display:"flex",div:{display:"flex",paddingLeft:"$8"}}}),Cs=we("div",{display:"flex",justifyContent:"flex-end",".balance":{display:"flex",alignItems:"center"}}),Jo=we("span",{width:"24px",height:"24px",backgroundColor:"$neutral100",borderRadius:"99999px"}),ws=we("div",{windth:"100%",height:"$48",borderRadius:"$5",backgroundColor:"$surface",border:"1px solid transparent",position:"relative",display:"flex",alignItems:"center",paddingLeft:"$8",paddingRight:"$8"});function Wt(t){let{type:e,chain:o,token:n}=t,s=w.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.inputUsdValue(),u=p.use.fromToken(),c=p.use.setInputAmount(),f=p.use.bestRoute(),T=p.use.inputAmount(),y=x.use.connectedWallets(),h=p.use.loading(),S=Ss(),k=r&&u?W(de(y,r?.name,u?.symbol,u?.address)?.amount||"0",8):"0",C=r&&u?W(de(y,r?.name,u?.symbol,u?.address)?.amount||"0",de(y,r?.name,u?.symbol,u?.address)?.decimal):"0",m=v.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"}},s==="failed"&&v.createElement(gs,{color:"error",size:24}),v.createElement(fs,null));return v.createElement(Ts,null,v.createElement(ys,{type:t.type==="From"?"filled":"outlined"},v.createElement("div",{className:"head"},v.createElement(Ce,{variant:"body2",color:"neutral800"},e==="From"?v.createElement(kt,{id:"swap from",message:"From"}):v.createElement(kt,{id:"swap to",message:"To"})),t.type==="From"?v.createElement(Cs,null,v.createElement("div",{className:"balance",onClick:()=>{k!=="0"&&c(C.split(",").join(""))}},v.createElement(Ce,{variant:"body3",color:"neutral600"},bt.t("Balance"),": ",k," ",u?.symbol||""),v.createElement(wt,{size:4}),v.createElement(Ct,{type:"primary",variant:"ghost",size:"compact"},v.createElement(kt,{id:"maximum amount of asset",message:"Max"})))):v.createElement("div",{className:"output-usd"},v.createElement(Ge,{inputUsdValue:l,outputUsdValue:t.outputUsdValue}),v.createElement("div",null,v.createElement(Ce,{variant:"caption",color:"neutral600"},`$${W(t.outputUsdValue)}`)))),v.createElement("div",{className:"form"},v.createElement(Ct,{className:"selectors",onClick:()=>{S(`${t.type.toLowerCase()}-chain`)},variant:"outlined",disabled:s==="failed",loading:s==="loading",prefix:s==="success"&&o?v.createElement(Zo,{src:o.logo,size:24}):v.createElement(Jo,null),suffix:m,align:"start",size:"large"},s==="success"&&o?o.displayName:bt.t("Chain")),v.createElement(wt,{size:12,direction:"horizontal"}),v.createElement(Ct,{className:"selectors",onClick:()=>{S(`${t.type.toLowerCase()}-token`)},variant:"outlined",disabled:s==="failed"||e==="From"&&!r||e==="To"&&!a,loading:s==="loading",prefix:s==="success"&&n?v.createElement(Zo,{src:n.image,size:24}):v.createElement(Jo,null),suffix:m,size:"large",align:"start"},s==="success"&&n?n.symbol:bt.t("Token")),v.createElement(wt,{size:12,direction:"horizontal"}),v.createElement("div",{className:"amount"},t.type==="From"?v.createElement(hs,{type:"number",size:"large",autoFocus:!0,placeholder:"0",style:{position:"relative",backgroundColor:"$background !important"},suffix:v.createElement("span",{style:{position:"absolute",right:"4px",bottom:"2px"}},v.createElement(Ce,{variant:"caption",color:"neutral800"},`$${W(l)}`)),value:t.inputAmount||"",min:0,onChange:t.type==="From"?d=>{t.onAmountChange(d.target.value)}:void 0}):v.createElement(ws,null,v.createElement(Ce,{variant:"h4"},h&&"?",!!f?.result&&`\u2248 ${W(t.outputAmount)}`,(!T||T==="0")&&"0"))))))}i(Wt,"TokenInfo");import te from"react";import{styled as At}from"@rango-dev/ui";import{Typography as en}from"@rango-dev/ui";import{i18n as ks}from"@lingui/core";var bs=At("div",{display:"flex",width:"100%",justifyContent:"end",alignItems:"center",paddingTop:"$16"}),Ws=At("svg",{fill:"$foreground",width:"$24",margin:"0 $8 0 $16"}),As=At("a",{display:"flex",justifyContent:"center",alignItems:"center",textDecoration:"none"});function tn(){return te.createElement(bs,null,te.createElement(en,{variant:"caption",color:"$neutral600"},ks.t("Powered By")),te.createElement(As,{href:"https://rango.exchange",target:"_blank"},te.createElement(Ws,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 33.68 29"},te.createElement("defs",null),te.createElement("g",{id:"Layer_2","data-name":"Layer 2"},te.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},te.createElement("path",{d:"M33.68,18.05A17.93,17.93,0,0,0,28.34,5.29,18.31,18.31,0,0,0,15.45,0H13.54V7.41L6.07,0H.69L9.83,9.07H0V11A17.93,17.93,0,0,0,5.34,23.71,18.32,18.32,0,0,0,18.24,29h1.9V21.59l7.38,7.31h5.39l-9-9h9.82ZM17.37,16.16H12.49a1.93,1.93,0,0,0-1.35.55,1.89,1.89,0,0,0-.56,1.34,1.85,1.85,0,0,0,.56,1.33,1.93,1.93,0,0,0,1.35.55h3.84V25.1A14.43,14.43,0,0,1,8,21a14.21,14.21,0,0,1-4.1-8.2H21.2a1.86,1.86,0,0,0,.74-.13,1.92,1.92,0,0,0,.64-.4,2,2,0,0,0,.43-.62,1.88,1.88,0,0,0,0-1.47,2,2,0,0,0-.43-.62,1.92,1.92,0,0,0-.64-.4,1.86,1.86,0,0,0-.74-.13H17.35V3.9A14.43,14.43,0,0,1,25.64,8a14.19,14.19,0,0,1,4.11,8.2Zm2.12-5.27a1.43,1.43,0,0,1,.26-.83,1.52,1.52,0,0,1,.67-.56,1.55,1.55,0,0,1,.88-.08,1.51,1.51,0,0,1,.77.4,1.54,1.54,0,0,1,.42.77,1.41,1.41,0,0,1-.09.86,1.47,1.47,0,0,1-.55.68,1.56,1.56,0,0,1-.84.25,1.52,1.52,0,0,1-1.52-1.49Z"}),te.createElement("path",{d:"M21.7,11.57a.68.68,0,0,0-.12-.38.64.64,0,0,0-.31-.25.68.68,0,0,0-.75.15.61.61,0,0,0-.19.35.62.62,0,0,0,0,.4.67.67,0,0,0,.25.3.69.69,0,0,0,.39.12.7.7,0,0,0,.49-.2A.68.68,0,0,0,21.7,11.57Z"})))),te.createElement(en,{variant:"body2"},"RANGO")))}i(tn,"BottomLogo");import{useEffect as vs,useRef as xs}from"react";import{useSearchParams as Bs}from"react-router-dom";function on({count:t}){let e=xs(!0),[o,n]=Bs(),s=p.use.outputAmount();return vs(()=>{if(e.current)e.current=!1;else{let r=o.get("fromChain"),a=o.get("fromToken"),l=o.get("toChain"),u=o.get("toToken");n({...l&&{["fromChain"]:l},...u&&{["fromToken"]:u},...r&&{["toChain"]:r},...a&&{["toToken"]:a},...s&&{["fromAmount"]:s.toString()}})}},[t]),null}i(on,"SwithFromAndTo");import{styled as Es}from"@rango-dev/ui";var nn=Es("div",{display:"flex",flexDirection:"column",width:"100%",paddingTop:"$16"});var rn={genericServerError:"Error connecting server, please reload the app and try again"};import cn from"bignumber.js";import oe from"react";import{SettingsIcon as Ps,Tooltip as vt,styled as Is,Button as xt,HistoryIcon as Ns,RetryIcon as Rs}from"@rango-dev/ui";import{useNavigate as Ms}from"react-router-dom";import{i18n as Bt}from"@lingui/core";var Fs=Is("div",{display:"flex"});function sn(t){let{onClickRefresh:e}=t,o=Ms();return oe.createElement(Fs,null,oe.createElement(vt,{content:Bt.t("Refresh")},oe.createElement(xt,{variant:"ghost",onClick:e,disabled:!e},oe.createElement(Rs,{size:24,disabled:!e}))),oe.createElement(vt,{content:Bt.t("Transactions History")},oe.createElement(xt,{variant:"ghost",onClick:()=>o(g.swaps)},oe.createElement(Ns,{size:24}))),oe.createElement(vt,{content:Bt.t("Settings")},oe.createElement(xt,{variant:"ghost",onClick:()=>o(g.settings)},oe.createElement(Ps,{size:24}))))}i(sn,"HeaderButtons");var Hs=ke("div",{display:"flex",flexDirection:"column"}),Gs=ke("div",{position:"relative",paddingBottom:"$12"}),zs=ke("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"}),Ks=ke("div",{width:"100%",paddingTop:"$16"}),js=ke("div",{width:"100%",paddingTop:"$16"});function pn(){let t=qs(),e=Vs(),[o,n]=_s(0),s=p.use.fromChain(),r=p.use.fromToken(),a=p.use.toChain(),l=p.use.toToken(),u=p.use.setInputAmount(),c=p.use.inputUsdValue(),f=p.use.inputAmount(),T=p.use.outputAmount(),y=p.use.outputUsdValue(),h=p.use.bestRoute(),S=w.use.meta().tokens,k=p.use.loading(),C=p.use.error(),m=w.use.loadingStatus(),d=x.use.connectedWallets(),B=D.use.setCurrentPage(),E=p.use.switchFromAndTo(),P=m==="failed"?rn.genericServerError:C,I=!1,M=f&&(!!h||k||C),U=Oe(c,y),z=Le(c,U),{fromAmountRangeError:se,recommendation:q,swap:b}=co(h),N=!mo(h,f,c,y),pe=po(m,d,k,h,De(h),z,N,I,f),ue=_e(h,S),he=fo(ue);return Ds(()=>(B(g.home),B.bind(null,"")),[]),R.createElement(Hs,null,R.createElement(Ls,{title:$s.t("SWAP"),suffix:R.createElement(sn,{onClickRefresh:h||C?vo:void 0})}),R.createElement(Gs,null,R.createElement(Wt,{type:"From",chain:s,token:r,onAmountChange:u,inputAmount:f}),R.createElement(zs,null,R.createElement(ln,{variant:"ghost",onClick:()=>{E(),n(me=>me+1)}},R.createElement(Os,{size:32}),t&&R.createElement(on,{count:o})))),R.createElement(Wt,{type:"To",chain:a,token:l,outputAmount:T?new cn(T):new cn(0),outputUsdValue:y}),M&&R.createElement(Ks,null,R.createElement(Us,{error:C,loading:k,data:zt(h),totalFee:W(ue,0,2),feeWarning:he,totalTime:$t(qt(h))})),(P||De(h))&&R.createElement(js,null,P&&R.createElement(an,{type:"error"},P),De(h)&&R.createElement(an,{type:"error",title:`${b?.swapperId} Limit`},R.createElement(R.Fragment,null,R.createElement(un,{variant:"body2"},`${se}, Yours: ${W(b?.fromAmount||null)} ${b?.from.symbol}`),R.createElement(un,{variant:"body2"},q)))),R.createElement(nn,null,R.createElement(ln,{type:"primary",align:"grow",size:"large",disabled:pe.disabled,onClick:()=>{pe.title==="Connect Wallet"?e(g.wallets):e(g.confirmSwap,{replace:!0})}},pe.title),R.createElement(tn,null)))}i(pn,"Home");import{LiquiditySourcesSelector as Qs}from"@rango-dev/ui";import Xs from"react";function mn({supportedSwappers:t}){let e=w.use.meta().swappers,o=w.use.loadingStatus(),n=A.use.toggleLiquiditySource(),s=A.use.disabledLiquiditySources(),r=A.use.toggleAllLiquiditySources(),{navigateBackFrom:a}=_(),l=[];return H(e.map(u=>u.swapperGroup)).map(u=>e.find(c=>c.swapperGroup===u)).find(u=>{if(u)for(let c of u.types)l.push({title:u.swapperGroup,logo:u.logo,type:c,selected:!s.includes(u.swapperGroup)})}),Xs.createElement(Qs,{toggleAll:r,list:t?l.filter(u=>t.filter(c=>c===u.title).length>0):l,onChange:u=>n(u.title),onBack:a.bind(null,g.liquiditySources),loadingStatus:o})}i(mn,"LiquiditySourcePage");import Ys from"react";import{BlockchainSelector as Zs}from"@rango-dev/ui";function Et(t){let{type:e,supportedChains:o}=t,n=o?w.use.meta().blockchains.filter(f=>o.includes(f.name)):w.use.meta().blockchains,s=w.use.loadingStatus(),r=p.use.fromChain(),a=p.use.toChain(),l=p.use.setFromChain(),u=p.use.setToChain(),{navigateBackFrom:c}=_();return Ys.createElement(Zs,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:a,loadingStatus:s,onChange:f=>{e==="from"?l(f,!0):u(f,!0),c(g.fromChain)},onBack:c.bind(null,g.fromChain)})}i(Et,"SelectChainPage");import Js from"react";import{TokenSelector as ei}from"@rango-dev/ui";function Pt(t){let{navigateBackFrom:e}=_(),{type:o,supportedTokens:n}=t,s=p.use.sourceTokens(),r=p.use.destinationTokens(),a=n?s.filter(h=>n.some(S=>j(S,h))):s,l=n?r.filter(h=>n.some(S=>j(S,h))):r,u=p.use.fromToken(),c=p.use.toToken(),f=p.use.setFromToken(),T=p.use.setToToken(),y=w.use.loadingStatus();return Js.createElement(ei,{type:o==="from"?"Source":"Destination",list:o=="from"?a:l,selected:o==="from"?u:c,onChange:h=>{o==="from"?f(h):T(h),e(g.fromToken)},onBack:e.bind(null,g.fromToken),loadingStatus:y})}i(Pt,"SelectTokenPage");import ti from"react";import{Settings as oi}from"@rango-dev/ui";import{useNavigate as ni}from"react-router-dom";function dn({supportedSwappers:t,singleTheme:e}){let o=A.use.slippage(),n=A.use.setSlippage(),s=A.use.disabledLiquiditySources(),r=A.use.customSlippage(),a=A.use.setCustomSlippage(),l=A.use.theme(),u=A.use.setTheme(),c=w.use.meta().swappers,f=ni(),{navigateBackFrom:T}=_(),y=A.use.infiniteApprove(),h=A.use.toggleInfiniteApprove(),S=w.use.loadingStatus(),k=[];H(c.map(m=>m.swapperGroup)).map(m=>c.find(d=>d.swapperGroup===m)).find(m=>{if(m)for(let d of m.types)k.push({title:m.swapperGroup,logo:m.logo,type:d,selected:!s.includes(m.swapperGroup)})}),t&&k.filter(m=>t.filter(d=>d===m.title).length>0);let C=t?k.filter(m=>t.filter(d=>d===m.title).length>0):k;return ti.createElement(oi,{slippages:Xt,selectedSlippage:o,onSlippageChange:m=>n(m),onLiquiditySourcesClick:()=>f(g.liquiditySources),onBack:T.bind(null,g.settings),liquiditySources:C,selectedLiquiditySources:C.filter(m=>m.selected),singleTheme:e,customSlippage:r,onCustomSlippageChange:a,minSlippage:eo,maxSlippage:Jt,selectedTheme:l,onThemeChange:u,infiniteApprove:y,toggleInfiniteApprove:h,loadingStatus:S})}i(dn,"SettingsPage");import{Alert as si,SecondaryPage as ii,styled as It,Wallet as ai,WalletState as gn}from"@rango-dev/ui";import ne,{useEffect as hn,useRef as li,useState as ui}from"react";import{WalletTypes as ci,detectMobileScreens as pi}from"@rango-dev/wallets-shared";import{useWallets as mi}from"@rango-dev/wallets-core";import{i18n as di}from"@lingui/core";import{Spinner as fi}from"@rango-dev/ui";import{LoadingFailedAlert as gi}from"@rango-dev/ui";import{allProviders as ri}from"@rango-dev/provider-all";function je(t){let e=ri();if(t){let o=[];return t.forEach(n=>{if(typeof n=="string"){let s=e.find(r=>r.config.type===n);s?o.push(s):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else o.push(n)}),o}return e}i(je,"matchAndGenerateProviders");function fn(t){return je(t).map(n=>n.config.type)}i(fn,"configWalletsToWalletName");var hi=It("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),Si=It("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),Ti=It("div",{paddingBottom:"$16"}),yi=Object.values(ci);function Sn({supportedWallets:t,multiWallets:e}){let{navigateBackFrom:o}=_(),{state:n,disconnect:s,getWalletInfo:r,connect:a}=mi(),l=oo(n,r,fn(t)||yi),u=li(),c=pi()?l.filter(C=>C.showOnMobile):l;c=lo(c);let[f,T]=ui(""),y=D.use.toggleConnectWalletsButton(),h=w.use.loadingStatus(),S=i(async C=>{let m=n(C);try{if(f&&T(""),m.connected)await s(C);else{if(!e&&l.find(d=>d.state===gn.CONNECTED))return;await a(C)}}catch(d){T("Error: "+d?.message)}},"onSelectWallet"),k=i(()=>{let C=u.current?.filter(m=>m.state===gn.CONNECTING)||[];for(let m of C)s(m.type)},"disconnectConnectingWallets");return hn(()=>(y(),()=>{k(),y()}),[]),hn(()=>{u.current=l},[l]),ne.createElement(ii,{title:di.t("Select Wallet")||"",textField:!1,onBack:o.bind(null,g.wallets)},ne.createElement(ne.Fragment,null,f&&ne.createElement(Ti,null,ne.createElement(si,{type:"error",title:f})),h==="loading"&&ne.createElement(Si,{className:"loader"},ne.createElement(fi,{size:24})),h==="failed"&&ne.createElement(gi,null),ne.createElement(hi,null,h==="success"&&c.map((C,m)=>ne.createElement(ai,{...C,key:`${m}-${C.type}`,onClick:S})))))}i(Sn,"WalletsPage");import bn from"react";import{useManager as Ai}from"@rango-dev/queue-manager-react";import{SwapHistory as vi,useCopyToClipboard as xi}from"@rango-dev/ui";import{cancelSwap as Bi,PendingSwapNetworkStatus as Ei}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Pi}from"@rango-dev/wallets-core";import{getCurrentBlockchainOfOrNull as Ii,getCurrentStep as Ni,getRelatedWalletOrNull as Ri}from"@rango-dev/queue-manager-rango-preset";function Tn(t){let e=Math.floor((new Date().getTime()-t)/1e3),o,n=Math.floor(e/31536e3);return n>=1?o="year":(n=Math.floor(e/2592e3),n>=1?o="month":(n=Math.floor(e/86400),n>=1?o="day":(n=Math.floor(e/3600),n>=1?o="hour":(n=Math.floor(e/60),n>=1?o="minute":(n=e,o="second"))))),(n>1||n===0)&&(o+="s"),n+" "+o}i(Tn,"timeSince");function yn(t){return t.finishTime?`${Tn(parseInt(t.finishTime))} ago`:`${Tn(parseInt(t.creationTime))} ago`}i(yn,"getSwapDate");import{useNavigate as Mi}from"react-router-dom";import be from"react";import{SecondaryPage as Ci,Spinner as wi,Alert as ki,styled as wn}from"@rango-dev/ui";import{i18n as Cn}from"@lingui/core";var bi=wn("div",{height:"450px"}),Wi=wn("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function kn(t){let{requestId:e,loading:o,onBack:n}=t;return be.createElement(Ci,{title:Cn.t("Swap Details"),textField:!1,onBack:n},be.createElement(bi,null,o?be.createElement(Wi,null,be.createElement(wi,{size:24})):be.createElement(ki,{type:"secondary",title:Cn.t("swapNotFound",{requestId:e},{message:"Swap with request ID = ${requestId} not found."})})))}i(kn,"SwapDetailsPlaceholder");function Wn(){let t=D.use.selectedSwapRequestId(),{canSwitchNetworkTo:e,connect:o,getWalletInfo:n}=Pi(),s=p.use.retry(),r=Mi(),{navigateBackFrom:a}=_(),[l,u]=xi(2e3),{manager:c,state:f}=Ai(),y=Ke(c).find(({swap:b})=>b.requestId===t),h=i(()=>{let b=c?.get(y?.id);b&&Bi(b)},"onCancel"),S=y?.swap,k=!f.loadedFromPersistor;if(!S)return bn.createElement(kn,{requestId:t||"",loading:k,onBack:a.bind(null,g.swapDetails)});let C=Ni(S),m=C?Ii(S,C):null,d=C?Ri(S,C):null,B=C?.networkStatus,E=Co(S,C),P=at(C),I=yn(S),M=ko(S),U=i(b=>!!n(b)?.mobileWallet,"isMobileWallet"),se=B===Ei.WaitingForNetworkChange&&!!m&&!!d?.walletType&&(U(d.walletType)||e(d.walletType,m))?o.bind(null,d.walletType,m):void 0,q=wo(S);return bn.createElement(vi,{onBack:a.bind(null,g.swapDetails),pendingSwap:Kt(S),onCopy:u,isCopied:l,onCancel:h,shortMessage:E.shortMessage,detailedMessage:E.detailedMessage,currentStepBlockchain:m||"",switchNetwork:se,type:P?"warning":S.extraMessageSeverity||void 0,date:I,...M&&{onRetry:()=>{s(S),setTimeout(()=>{r(g.home)},0)}},...q&&{lastConvertedTokenInFailedSwap:{blockchain:q.blockchain,outputAmount:q.outputAmount||"",symbol:q.symbol}}})}i(Wn,"SwapDetailsPage");var Ui=i(t=>t.replace("/",""),"getAbsolutePath");function An(t){let{config:e}=t;return Fi([{path:g.home,element:Q.createElement(pn,null)},{path:g.fromChain,element:Q.createElement(Et,{type:"from",supportedChains:e?.from?.blockchains})},{path:g.toChain,element:Q.createElement(Et,{type:"to",supportedChains:e?.to?.blockchains})},{path:g.fromToken,element:Q.createElement(Pt,{type:"from",supportedTokens:e?.from?.tokens})},{path:g.toToken,element:Q.createElement(Pt,{type:"to",supportedTokens:e?.to?.tokens})},{path:g.settings,element:Q.createElement(dn,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:g.liquiditySources,element:Q.createElement(mn,{supportedSwappers:e?.liquiditySources})},{path:g.swaps,element:Q.createElement(Yo,null)},{path:g.swapDetails,element:Q.createElement(Wn,null)},{path:g.wallets,element:Q.createElement(Sn,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets})},{path:Ui(g.confirmSwap),element:Q.createElement(jo,{customDestinationEnabled:e?.customDestination})}])}i(An,"AppRoutes");import{i18n as Hi}from"@lingui/core";var Gi=Nt("div",{display:"flex",width:"100%",justifyContent:"end",".balance":{display:"flex"}}),zi=Nt("div",{display:"flex",paddingLeft:"12px"}),Ki=Nt("div",{marginLeft:-15,marginRight:"$6","& img":{borderRadius:"50%"}});function vn({config:t}){let e=qi(),{connectedWallets:o,selectedWallets:n}=x(),{getWalletInfo:s}=Vi(),r=H(Ne(o,n,s).map(E=>E.image)),{blockchains:a,tokens:l}=w.use.meta(),u=p.use.setFromChain(),c=p.use.setFromToken(),f=p.use.setToChain(),T=p.use.setToToken(),y=p.use.setInputAmount(),h=A.use.setAffiliateRef(),S=A.use.setAffiliatePercent(),k=A.use.setAffiliateWallets(),C=io(o),m=D.use.connectWalletsButtonDisabled(),d=w.use.loadingStatus(),B=x(Ao);return Qe(()=>{if(d==="success"){let E=a.find(I=>I.name===t?.to?.blockchain),P=l.find(I=>j(I,t?.to?.token||null));f(E||null),T(P||null)}},[t?.to?.token,t?.to?.blockchain,d]),Qe(()=>{y(t?.amount?.toString()||"")},[t?.amount]),Qe(()=>{if(d==="success"){let E=a.find(I=>I.name===t?.from?.blockchain),P=l.find(I=>j(I,t?.from?.token||null));u(E||null),c(P||null)}},[t?.from?.token,t?.from?.blockchain,d]),Qe(()=>{h(t?.affiliate?.ref??null),S(t?.affiliate?.percent??null),k(t?.affiliate?.wallets??null)},[t?.affiliate?.ref,t?.affiliate?.percent,t?.affiliate?.wallets]),G.createElement(G.Fragment,null,G.createElement(Gi,null,G.createElement(Oi,{size:"small",suffix:G.createElement(Li,{size:20}),variant:"ghost",flexContent:!0,loading:d==="loading",disabled:d==="failed",onClick:()=>{m||e(g.wallets)},prefix:r?.length?G.createElement(zi,null,r.map((E,P)=>G.createElement(Ki,{key:P},G.createElement($i,{src:E,size:24})))):null},G.createElement("div",{className:"balance"},G.createElement(Di,{variant:"body2"},o?.length?`$${C||0}`:Hi.t("Connect Wallet")),B&&G.createElement(_i,null)))),G.createElement(An,{config:t}))}i(vn,"Layout");import{globalCss as ji}from"@rango-dev/ui";var xn=i(t=>ji({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"],body:{fontFamily:t}})(),"globalFont");import{createTheme as Bn,generateRangeColors as X}from"@rango-dev/ui";import{useState as Yi,useEffect as En,useLayoutEffect as Zi}from"react";import{useEffect as Qi,useRef as Xi}from"react";function Rt(t){let e=Xi();return Qi(()=>{e.current=t},[t]),e.current}i(Rt,"usePrevious");function Pn({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=A.use.theme(),r=w.use.fetchMeta(),a=A.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",f=l?.background||"#fff",T=l?.foreground||"#000",y={...X("primary","dark",u?.primary),...X("error","dark",u?.error),...X("warning","dark",u?.warning),...X("success","dark",u?.success),...X("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},h={surface:l?.surface||"#fff",...X("primary","light",l?.primary||"#5FA425"),...X("error","light",l?.error||"#FF0000"),...X("warning","light",l?.warning||"#F5A623"),...X("success","light",l?.success||"#0070F3"),...X("neutral","light",c),background:f,foreground:T},S=Bn({colors:h,radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${l?.neutral||"#f0f2f5"} ,0px 6px 10px 3px ${l?.neutral||"#f0f2f5"}, 0px 1px 18px 3px ${l?.neutral||"#f0f2f5"}`}}),k=Bn({colors:{...h,...X("neutral","dark","#111111"),foreground:f,background:T,surface:"#000",...JSON.parse(JSON.stringify(y))},radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${u?.neutral||"#222"}, 0px 6px 10px 3px ${u?.neutral||"#222"}, 0px 1px 18px 3px ${u?.neutral||"#222"}`}}),[C,m]=Yi("light");En(()=>{(async()=>await r())();let E=i(P=>{P.matches?m("dark"):m("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&m("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",E),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",E)}},[]),En(()=>{n!=="auto"&&a(n)},[n]);let d=Rt(e);return Zi(()=>{let{classList:E}=document.body;d&&E.remove(`font_${d.replace(/ /g,"")}`),E.add(`font_${e.replace(/ /g,"")}`)},[e]),{activeTheme:i(()=>s==="auto"?C==="dark"?k:S:s==="dark"?k:S,"getActiveTheme")()}}i(Pn,"useTheme");import Ji,{useMemo as ea}from"react";import{Provider as ta}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as oa,checkWaitingForNetworkChange as na}from"@rango-dev/queue-manager-rango-preset";import{useWallets as ra}from"@rango-dev/wallets-core";import{convertEvmBlockchainMetaToEvmChainInfo as sa}from"@rango-dev/wallets-shared";import{isEvmBlockchain as ia}from"rango-types";function aa(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:a}=ra(),l=ea(()=>oa({API_KEY:Be("API_KEY")}),[]),{blockchains:u}=w.use.meta(),f={blockchains:x.use.connectedWallets().map(d=>({accounts:[d],name:d.chain}))},T=i((d,B)=>{if(r(d,B))return s(d,B)},"switchNetwork"),y=i(d=>!!a(d).mobileWallet,"isMobileWallet"),h=u.filter(d=>d.enabled).reduce((d,B)=>(d[B.name]=B,d),{}),S=u.filter(ia),k=i(d=>{let{supportedChains:B}=a(d);return Ie(B)},"getSupportedChainNames"),C=e(),m={meta:{blockchains:h,evmBasedChains:S,evmNetworkChainInfo:sa(S),getSupportedChainNames:k},getSigners:o,wallets:f,providers:C,switchNetwork:T,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:y};return Ji.createElement(ta,{queuesDefs:[l],context:m,onPersistedDataLoaded:d=>{na(d)},isPaused:!1},t.children)}i(aa,"QueueManager");var In=aa;import Rn from"react";import{Events as Mt,Provider as ua}from"@rango-dev/wallets-core";import{isEvmBlockchain as ca}from"rango-sdk";import{useEffect as la}from"react";function Nn(t){let e=x.use.clearConnectedWallet(),o=je(void 0);return la(()=>{e(),o=je(t)},[t]),{providers:o}}i(Nn,"useWalletProviders");import{createContext as pa,useRef as ma}from"react";var Ft=pa({onConnectWallet:()=>{}});function Ut(t){let{blockchains:e}=w.use.meta(),{providers:o}=Nn(t.providers),n=x.use.disconnectWallet(),s=x.use.connectWallet(),r=ma(),a=e.filter(ca).map(u=>u.name),l=i((u,c,f,T,y)=>{if(c===Mt.ACCOUNTS)if(f){let h=Ie(y),S=no(u,f,a,h);s(S)}else n(u);if(c===Mt.ACCOUNTS&&T.connected){let h=`${u}-${T.network}-${f}`;T.connected&&(r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===Mt.NETWORK&&T.network){let h=`${u}-${T.network}`;r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(u,c,f,T,y)},"onUpdateState");return Rn.createElement(Ft.Provider,{value:{onConnectWallet:u=>{r.current=u}}},Rn.createElement(ua,{allBlockChains:e,providers:o,onUpdateState:l,autoConnect:!0},t.children))}i(Ut,"WidgetWallets");import{useEffect as da}from"react";import{useEvents as fa,MainEvents as ga,StepEventType as Mn,StepExecutionEventStatus as ha,isApprovalTX as Sa}from"@rango-dev/queue-manager-rango-preset";function Fn(){let t=x.use.connectedWallets(),e=x.use.getWalletsDetails(),o=fa();return da(()=>(o.on(ga.StepEvent,n=>{let{event:s,step:r}=n;if(s.type===Mn.TX_EXECUTION&&s.status===ha.TX_SENT&&!Sa(r)||s.type===Mn.SUCCEEDED){let l=t.find(c=>c.chain===r?.fromBlockchain),u=r?.fromBlockchain!==r?.toBlockchain&&t.find(c=>c.chain===r?.toBlockchain);l&&e([l]),u&&e([u])}}),()=>o.all.clear()),[o,t.length]),null}i(Fn,"WidgetEvents");var Wa=ya("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function On(t){let{config:e}=t;xn(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=Pn(e?.theme||{}),[n,s]=Un(""),[r,a]=Un(),l=D.use.currentPage(),u=wa(Ft);return ba(()=>{e?.apiKey&&Qt({API_KEY:e?.apiKey})},[e]),ka(()=>{u.onConnectWallet(s)},[]),re.createElement(Ca,{language:e?.language},re.createElement(Wa,{id:"swap-container",className:o},re.createElement(In,null,re.createElement(Fn,null),re.createElement(Ta,{fixedHeight:l!==g.home},re.createElement(Bo,{lastConnectedWallet:n,disconnectedWallet:r,clearDisconnectedWallet:()=>{a(void 0)}},re.createElement(vn,{config:e}))))))}i(On,"Main");function Aa(t){return t.config?.externalWallets?re.createElement(On,{...t}):re.createElement(Ut,{providers:t.config?.wallets},re.createElement(On,{...t}))}i(Aa,"Widget");import{useWallets as Ch}from"@rango-dev/wallets-core";import{useEvents as Wh,MainEvents as Ah,RouteEventType as Rh,StepEventType as qh,StepExecutionEventStatus as Vh,StepExecutionBlockedEventStatus as Hh}from"@rango-dev/queue-manager-rango-preset";export{Ah as MainEvents,Rh as RouteEventType,qh as StepEventType,Hh as StepExecutionBlockedEventStatus,Vh as StepExecutionEventStatus,Aa as Widget,Ut as WidgetWallets,Ch as useWallets,Wh as useWidgetEvents};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|