@rango-dev/widget-embedded 0.14.1-next.2 → 0.14.1-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"bestRoute.d.ts","sourceRoot":"","sources":["../../src/store/bestRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,SAAS,MAAM,cAAc,CAAC;AAkBrC,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,eAAe,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAExD,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;gCApBV,IAAI;uCACG,IAAI;yCACF,IAAI;yCACJ,cAAc,GAAG,IAAI,KAAK,IAAI;uCAChC,cAAc,GAAG,IAAI,KAAK,IAAI;oCAEjC,KAAK,GAAG,IAAI,KAAK,IAAI;kCACvB,KAAK,GAAG,IAAI,KAAK,IAAI;uCAChB,MAAM,KAAK,IAAI;;oCAElB,iBAAiB,GAAG,IAAI,KAAK,IAAI;mCAClC,WAAW,KAAK,IAAI;qCAClB,IAAI;8CACK,OAAO,KAAK,IAAI;4CAClB,MAAM,EAAE,KAAK,IAAI;;8CAEf,MAAM,KAAK,IAAI;uCACtB,IAAI;;CAwN9B,CAAC"}
1
+ {"version":3,"file":"bestRoute.d.ts","sourceRoot":"","sources":["../../src/store/bestRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,SAAS,MAAM,cAAc,CAAC;AAoBrC,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,eAAe,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAExD,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;gCApBV,IAAI;uCACG,IAAI;yCACF,IAAI;yCACJ,cAAc,GAAG,IAAI,KAAK,IAAI;uCAChC,cAAc,GAAG,IAAI,KAAK,IAAI;oCAEjC,KAAK,GAAG,IAAI,KAAK,IAAI;kCACvB,KAAK,GAAG,IAAI,KAAK,IAAI;uCAChB,MAAM,KAAK,IAAI;;oCAElB,iBAAiB,GAAG,IAAI,KAAK,IAAI;mCAClC,WAAW,KAAK,IAAI;qCAClB,IAAI;8CACK,OAAO,KAAK,IAAI;4CAClB,MAAM,EAAE,KAAK,IAAI;;8CAEf,MAAM,KAAK,IAAI;uCACtB,IAAI;;CA4L9B,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { BlockchainMeta } from 'rango-sdk';
1
+ import type { Asset, BlockchainMeta, Token } from 'rango-sdk';
2
2
  export declare function getBlockchainDisplayNameFor(blockchainName: string, blockchains: BlockchainMeta[]): string | undefined;
3
3
  export declare function getBlockchainShortNameFor(blockchainName: string, blockchains: BlockchainMeta[]): string | undefined;
4
+ export declare function findToken(t: Asset, tokens: Token[]): Token | null;
5
+ export declare function findBlockchain(name: string, blockchains: BlockchainMeta[]): BlockchainMeta | null;
4
6
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/utils/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,cAAc,EAAE,GAC5B,MAAM,GAAG,SAAS,CAGpB;AACD,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,cAAc,EAAE,GAC5B,MAAM,GAAG,SAAS,CAGpB"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/utils/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAI9D,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,cAAc,EAAE,GAC5B,MAAM,GAAG,SAAS,CAGpB;AACD,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,cAAc,EAAE,GAC5B,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAElD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,yBAEzE"}
@@ -15,7 +15,14 @@ export declare function getRequiredBalanceOfWallet(selectedWallet: Wallet, fee:
15
15
  export declare function isRouteParametersChanged(params: BestRouteEqualityParams): boolean | undefined;
16
16
  export declare function getFormattedBestRoute(bestRoute: BestRouteResponse | null): BestRouteResponse | null;
17
17
  export declare function getFormattedPendingSwap(pendingSwap: PendingSwap): PendingSwap;
18
- export declare const getBestRouteStatus: (loading: boolean, error: boolean) => "failed" | "success" | "loading";
18
+ export declare const getBestRouteStatus: (loading: boolean, error: boolean) => "loading" | "success" | "failed";
19
19
  export declare function getPriceImpactLevel(priceImpact: number): PriceImpactWarningLevel;
20
20
  export declare function findCommonTokens<T extends Asset[], R extends Asset[]>(listA: T, listB: R): R;
21
+ export declare function createRetryRoute(pendingSwap: PendingSwap, blockchains: BlockchainMeta[], tokens: Token[]): {
22
+ fromBlockchain: BlockchainMeta | null;
23
+ fromToken: Token | null;
24
+ toBlockchain: BlockchainMeta | null;
25
+ toToken: Token | null;
26
+ inputAmount: string;
27
+ };
21
28
  //# sourceMappingURL=routing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/utils/routing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,EACN,MAAM,WAAW,CAAC;AAEnB,OAAO,SAAS,MAAM,cAAc,CAAC;AAcrC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,EAAE,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,EAAE,cAAc,GAAG,IAAI,GAC3B,KAAK,GAAG,IAAI,CAqBd;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI,GAAG,SAAS,CAG3B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAK1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAMT;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,SAAS,GAAG,IAAI,EAC9B,YAAY,EAAE,SAAS,GAAG,CAAC,WAQ5B;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,0BAA0B,EAAE,GAAG,IAAI,GACvC,wBAAwB,EAAE,GAAG,IAAI,CAcnC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,uBA4BvE;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAClC,iBAAiB,GAAG,IAAI,CAyB1B;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CA6B7E;AAGD,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,OAAO,qCAQlE,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,GAClB,uBAAuB,CASzB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,EACnE,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,CAAC,KAUT"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/utils/routing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,EACN,MAAM,WAAW,CAAC;AAGnB,OAAO,SAAS,MAAM,cAAc,CAAC;AAerC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,EAAE,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,EAAE,cAAc,GAAG,IAAI,GAC3B,KAAK,GAAG,IAAI,CAqBd;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI,GAAG,SAAS,CAG3B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAK1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,WAO1B;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAMT;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,SAAS,GAAG,IAAI,EAC9B,YAAY,EAAE,SAAS,GAAG,CAAC,WAQ5B;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,0BAA0B,EAAE,GAAG,IAAI,GACvC,wBAAwB,EAAE,GAAG,IAAI,CAcnC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,uBAAuB,uBA4BvE;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,GAAG,IAAI,GAClC,iBAAiB,GAAG,IAAI,CAyB1B;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CA6B7E;AAGD,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,OAAO,qCAQlE,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,GAClB,uBAAuB,CASzB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,EACnE,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,CAAC,KAUT;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,cAAc,EAAE,EAC7B,MAAM,EAAE,KAAK,EAAE,GACd;IACD,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CA4CA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/widget-embedded",
3
- "version": "0.14.1-next.2",
3
+ "version": "0.14.1-next.4",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -19,11 +19,11 @@
19
19
  "dependencies": {
20
20
  "@lingui/core": "4.2.1",
21
21
  "@lingui/react": "4.2.1",
22
- "@rango-dev/provider-all": "^0.17.0",
22
+ "@rango-dev/provider-all": "^0.17.1-next.0",
23
23
  "@rango-dev/queue-manager-core": "^0.17.0",
24
- "@rango-dev/queue-manager-rango-preset": "^0.17.0",
24
+ "@rango-dev/queue-manager-rango-preset": "^0.17.1-next.0",
25
25
  "@rango-dev/queue-manager-react": "^0.17.0",
26
- "@rango-dev/ui": "^0.17.1-next.0",
26
+ "@rango-dev/ui": "^0.17.1-next.1",
27
27
  "@rango-dev/wallets-react": "^0.3.0",
28
28
  "@rango-dev/wallets-shared": "^0.17.0",
29
29
  "bignumber.js": "^9.1.1",
@@ -9,9 +9,11 @@ import { subscribeWithSelector } from 'zustand/middleware';
9
9
 
10
10
  import { ZERO } from '../constants/numbers';
11
11
  import { isPositiveNumber } from '../utils/numbers';
12
- import { getBestRouteToTokenUsdPrice } from '../utils/routing';
12
+ import {
13
+ createRetryRoute,
14
+ getBestRouteToTokenUsdPrice,
15
+ } from '../utils/routing';
13
16
  import { calcOutputUsdValue } from '../utils/swap';
14
- import { tokensAreEqual } from '../utils/wallets';
15
17
 
16
18
  import { useMetaStore } from './meta';
17
19
  import createSelectors from './selectors';
@@ -173,49 +175,21 @@ export const useBestRouteStore = createSelectors(
173
175
  },
174
176
  retry: (pendingSwap) => {
175
177
  const { tokens, blockchains } = useMetaStore.getState().meta;
176
- const failedIndex =
177
- pendingSwap.status === 'failed'
178
- ? pendingSwap.steps.findIndex((s) => s.status === 'failed')
179
- : null;
180
178
 
181
- if (failedIndex === null || failedIndex < 0) {
182
- return;
183
- }
184
-
185
- const firstStep = pendingSwap.steps[0];
186
- const lastStep = pendingSwap.steps[pendingSwap.steps.length - 1];
187
- const fromBlockchain =
188
- blockchains.find(
189
- (blockchain) => blockchain.name === firstStep.fromBlockchain
190
- ) || null;
191
- const toBlockchain =
192
- blockchains.find(
193
- (blockchain) => blockchain.name === lastStep.toBlockchain
194
- ) || null;
195
-
196
- const fromToken = tokens.find((token) =>
197
- tokensAreEqual(token, {
198
- blockchain: firstStep.fromBlockchain,
199
- symbol: firstStep.fromSymbol,
200
- address: firstStep.fromSymbolAddress,
201
- })
202
- );
203
-
204
- const toToken = tokens.find((token) =>
205
- tokensAreEqual(token, {
206
- blockchain: lastStep.toBlockchain,
207
- symbol: lastStep.toSymbol,
208
- address: lastStep.toSymbolAddress,
209
- })
210
- );
179
+ const {
180
+ fromBlockchain,
181
+ fromToken,
182
+ toBlockchain,
183
+ toToken,
184
+ inputAmount,
185
+ } = createRetryRoute(pendingSwap, blockchains, tokens);
211
186
 
212
- const inputAmount = pendingSwap.inputAmount;
213
187
  set({
214
188
  fromBlockchain,
215
189
  fromToken,
216
190
  inputAmount,
217
191
  outputAmount: null,
218
- inputUsdValue: getUsdValue(fromToken || null, inputAmount),
192
+ inputUsdValue: getUsdValue(fromToken ?? null, inputAmount),
219
193
  outputUsdValue: new BigNumber(0),
220
194
  toBlockchain,
221
195
  toToken,
package/src/utils/meta.ts CHANGED
@@ -1,4 +1,6 @@
1
- import type { BlockchainMeta } from 'rango-sdk';
1
+ import type { Asset, BlockchainMeta, Token } from 'rango-sdk';
2
+
3
+ import { tokensAreEqual } from './wallets';
2
4
 
3
5
  export function getBlockchainDisplayNameFor(
4
6
  blockchainName: string,
@@ -14,3 +16,11 @@ export function getBlockchainShortNameFor(
14
16
  return blockchains.find((blockchain) => blockchain.name === blockchainName)
15
17
  ?.shortName;
16
18
  }
19
+
20
+ export function findToken(t: Asset, tokens: Token[]) {
21
+ return tokens.find((token) => tokensAreEqual(token, t)) ?? null;
22
+ }
23
+
24
+ export function findBlockchain(name: string, blockchains: BlockchainMeta[]) {
25
+ return blockchains.find((blockchain) => blockchain.name === name) ?? null;
26
+ }
@@ -13,6 +13,7 @@ import type {
13
13
  Token,
14
14
  } from 'rango-sdk';
15
15
 
16
+ import { getLastSuccessfulStep } from '@rango-dev/queue-manager-rango-preset';
16
17
  import BigNumber from 'bignumber.js';
17
18
 
18
19
  import {
@@ -25,6 +26,7 @@ import {
25
26
  } from '../constants/routing';
26
27
 
27
28
  import { areEqual } from './common';
29
+ import { findBlockchain, findToken } from './meta';
28
30
  import { numberToString } from './numbers';
29
31
 
30
32
  export function searchParamsToToken(
@@ -261,3 +263,59 @@ export function findCommonTokens<T extends Asset[], R extends Asset[]>(
261
263
 
262
264
  return listB.filter((token) => set.has(tokenToString(token))) as R;
263
265
  }
266
+
267
+ export function createRetryRoute(
268
+ pendingSwap: PendingSwap,
269
+ blockchains: BlockchainMeta[],
270
+ tokens: Token[]
271
+ ): {
272
+ fromBlockchain: BlockchainMeta | null;
273
+ fromToken: Token | null;
274
+ toBlockchain: BlockchainMeta | null;
275
+ toToken: Token | null;
276
+ inputAmount: string;
277
+ } {
278
+ const firstStep = pendingSwap.steps[0];
279
+ const lastStep = pendingSwap.steps[pendingSwap.steps.length - 1];
280
+ const lastSuccessfulStep = getLastSuccessfulStep(pendingSwap.steps);
281
+
282
+ const toToken = {
283
+ blockchain: lastStep.toBlockchain,
284
+ symbol: lastStep.toSymbol,
285
+ address: lastStep.toSymbolAddress,
286
+ };
287
+
288
+ const fromBlockchainMeta = findBlockchain(
289
+ lastSuccessfulStep
290
+ ? lastSuccessfulStep.toBlockchain
291
+ : firstStep.fromBlockchain,
292
+ blockchains
293
+ );
294
+ const toBlockchainMeta = findBlockchain(lastStep.toBlockchain, blockchains);
295
+ const fromTokenMeta = findToken(
296
+ lastSuccessfulStep
297
+ ? {
298
+ blockchain: fromBlockchainMeta?.name ?? '',
299
+ symbol: lastSuccessfulStep.toSymbol,
300
+ address: lastSuccessfulStep.toSymbolAddress,
301
+ }
302
+ : {
303
+ blockchain: fromBlockchainMeta?.name ?? '',
304
+ symbol: firstStep.fromSymbol,
305
+ address: firstStep.fromSymbolAddress,
306
+ },
307
+ tokens
308
+ );
309
+ const toTokenMeta = findToken(toToken, tokens);
310
+ const inputAmount = lastSuccessfulStep
311
+ ? lastSuccessfulStep.outputAmount ?? ''
312
+ : pendingSwap.inputAmount;
313
+
314
+ return {
315
+ fromBlockchain: fromBlockchainMeta,
316
+ fromToken: fromTokenMeta,
317
+ toBlockchain: toBlockchainMeta,
318
+ toToken: toTokenMeta,
319
+ inputAmount,
320
+ };
321
+ }