@rango-dev/queue-manager-rango-preset 0.22.1-next.9 → 0.23.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 CHANGED
@@ -1,3 +1,37 @@
1
+ # 0.23.0 (2023-12-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * a bug in updateHash ([516855d](https://github.com/yeager-eren/rango-client/commit/516855dee5fa3544dbfa849e4cc2da480cbe958e))
7
+ * add initial state with props in app store and fix bug of passing liquidity sources via config ([5d50d0f](https://github.com/yeager-eren/rango-client/commit/5d50d0fa18c0519a9464bb205684ecdaf881d936))
8
+ * add wallets-core to rango-preset package dependencies ([0a8920a](https://github.com/yeager-eren/rango-client/commit/0a8920a11db4a8d213e01ee770289242bf1defc8))
9
+ * avoid getting transaction receipt multiple times ([3ef2875](https://github.com/yeager-eren/rango-client/commit/3ef2875bfad470cf2780ae5f82c4841e7eeb60ff))
10
+ * better parsing of evm rpc errors ([f23031a](https://github.com/yeager-eren/rango-client/commit/f23031ae14e6e841ee488591bd1bf58cfa7ca15b))
11
+ * checking starknet and tron approval ([ff857fe](https://github.com/yeager-eren/rango-client/commit/ff857fe5f5bd172486ca0e740451742c9e4ed2b3))
12
+ * display transaction url after refreshing ([c976bff](https://github.com/yeager-eren/rango-client/commit/c976bffd3827ee20de5dd0f21be6d430432fff28))
13
+ * fix bug of duplicate modals for wallet connect ([efb5482](https://github.com/yeager-eren/rango-client/commit/efb54827fd51e6c6c8f42c6abf33c3d7610755e8))
14
+ * fix emitting failed event in swap execution ([cedc535](https://github.com/yeager-eren/rango-client/commit/cedc53523dc8ddc5f339b4da6afa822058bd760d))
15
+ * fix flow bug when check status failed ([3a886e6](https://github.com/yeager-eren/rango-client/commit/3a886e68cf45c8bf500823fae96070acbbd3942a))
16
+ * fix HMR for widget and playground ([8524820](https://github.com/yeager-eren/rango-client/commit/8524820f10cf0b8921f3db0c4f620ff98daa4103))
17
+ * fix retry logic in failed swaps ([2efcef1](https://github.com/yeager-eren/rango-client/commit/2efcef1779a33aa0ea65d4f17f3d443c218e2be1))
18
+ * fix signer wait change network issues ([e453db6](https://github.com/yeager-eren/rango-client/commit/e453db6ccf7736e36e5ada0c29502be32254fe9c))
19
+ * getChainId & networkMatched on wallet connect v1 ([9ec8cfb](https://github.com/yeager-eren/rango-client/commit/9ec8cfbd3f9be9befcfb632485afa1ee436e92a2))
20
+ * handle replaced transactions ([1c8598d](https://github.com/yeager-eren/rango-client/commit/1c8598d2755afc9e439ee80c0951d83c6aed9f2a))
21
+ * throw error on sdk's create transaction ([47e2947](https://github.com/yeager-eren/rango-client/commit/47e29470c0e972b92a5c15db07aba83c2cec29f4))
22
+ * update rango-types and fix notification bugs ([993f185](https://github.com/yeager-eren/rango-client/commit/993f185e0b8c5e5e15a2c65ba2d85d1f9c8daa90))
23
+
24
+
25
+ ### Features
26
+
27
+ * add state of wallets' details to useWidget ([2a59055](https://github.com/yeager-eren/rango-client/commit/2a590551cc0a3d663fd9901e125890ff1386c0aa))
28
+ * add Ton Transaction and integrate MyTonWallet ([73af7d5](https://github.com/yeager-eren/rango-client/commit/73af7d5f58b11886dc55e5f7e70f196355d3e6f3))
29
+ * add widget events and refactor swap execution events ([0d76806](https://github.com/yeager-eren/rango-client/commit/0d7680693dd77439de38cd0b20f263f6ae8cceb0))
30
+ * Get Wallet Connect project id from config ([9fb30b4](https://github.com/yeager-eren/rango-client/commit/9fb30b4b1a83e2005bbf42553298f24b1e278e1c))
31
+ * support safe wallet ([d04cbcd](https://github.com/yeager-eren/rango-client/commit/d04cbcd2a612755563512d9dff6f2312088d8b4d))
32
+
33
+
34
+
1
35
  # [0.14.0](https://github.com/rango-exchange/rango-client/compare/queue-manager-rango-preset@0.13.0...queue-manager-rango-preset@0.14.0) (2023-08-03)
2
36
 
3
37
 
@@ -1,5 +1,6 @@
1
- import { ExecuterActions } from '@rango-dev/queue-manager-core';
2
- import { SwapActionTypes, SwapQueueContext, SwapStorage } from '../types';
1
+ import type { SwapQueueContext, SwapStorage } from '../types';
2
+ import type { ExecuterActions } from '@rango-dev/queue-manager-core';
3
+ import { SwapActionTypes } from '../types';
3
4
  /**
4
5
  *
5
6
  * For doing a swap the user needs to accept a `contract` so it can use the user balance.
@@ -1 +1 @@
1
- {"version":3,"file":"checkStatus.d.ts","sourceRoot":"","sources":["../../src/actions/checkStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAWhE,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACZ,MAAM,UAAU,CAAC;AA2alB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAiBf"}
1
+ {"version":3,"file":"checkStatus.d.ts","sourceRoot":"","sources":["../../src/actions/checkStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAyBrE,OAAO,EAAiB,eAAe,EAAE,MAAM,UAAU,CAAC;AAib1D;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -1 +1 @@
1
- {"version":3,"file":"executeTransaction.d.ts","sourceRoot":"","sources":["../../src/actions/executeTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAsBrE;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CA+Ff"}
1
+ {"version":3,"file":"executeTransaction.d.ts","sourceRoot":"","sources":["../../src/actions/executeTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAwBrE;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CA+Ff"}
@@ -1,5 +1,6 @@
1
- import { ExecuterActions } from '@rango-dev/queue-manager-core';
2
- import { SwapActionTypes, SwapQueueContext, SwapStorage } from '../types';
1
+ import type { SwapQueueContext, SwapStorage } from '../types';
2
+ import type { ExecuterActions } from '@rango-dev/queue-manager-core';
3
+ import { SwapActionTypes } from '../types';
3
4
  /**
4
5
  *
5
6
  * This function is responsibe for scheduling the correct `action` based on `PendingSwap` status.
@@ -1 +1 @@
1
- {"version":3,"file":"scheduleNextStep.d.ts","sourceRoot":"","sources":["../../src/actions/scheduleNextStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACZ,MAAM,UAAU,CAAC;AAQlB;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,EACV,UAAU,GACX,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GAAG,IAAI,CA4DxE"}
1
+ {"version":3,"file":"scheduleNextStep.d.ts","sourceRoot":"","sources":["../../src/actions/scheduleNextStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AASrE,OAAO,EAAiB,eAAe,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,EACV,UAAU,GACX,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAiExE"}
package/dist/helpers.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import type { PendingSwap, PendingSwapStep, StepStatus, SwapStatus, Wallet } from './shared';
1
+ import type { SwapStatus, Wallet } from './shared';
2
2
  import type { ArrayElement, Step, SwapQueueContext, SwapQueueDef, SwapStorage } from './types';
3
3
  import type { ExecuterActions, Manager, QueueInfo } from '@rango-dev/queue-manager-core';
4
4
  import type { Meta, Network, Providers, WalletState, WalletType } from '@rango-dev/wallets-shared';
5
5
  import type { CreateTransactionResponse, EvmBlockchainMeta, Transaction } from 'rango-sdk';
6
- import type { APIErrorCode, SignerErrorCode } from 'rango-types';
6
+ import type { APIErrorCode, PendingSwap, PendingSwapStep, SignerErrorCode, StepStatus } from 'rango-types';
7
7
  import { TransactionType } from 'rango-sdk';
8
- import { PendingSwapNetworkStatus } from './shared';
8
+ import { PendingSwapNetworkStatus } from 'rango-types';
9
9
  import { SwapActionTypes } from './types';
10
10
  type WhenTaskBlocked = Parameters<NonNullable<SwapQueueDef['whenTaskBlocked']>>;
11
11
  type WhenTaskBlockedEvent = WhenTaskBlocked[0];
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,MAAM,EACP,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,YAAY,EACZ,IAAI,EACJ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EACP,SAAS,EAGV,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,IAAI,EACJ,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AASjE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAU5C,OAAO,EAQL,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAOlB,OAAO,EAKL,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,KAAK,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAChF,KAAK,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAC/C,KAAK,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAI9C;;;;GAIG;AACH,wBAAgB,UAAU;;2BAGC,MAAM;;EAShC;AAED;;;;;GAKG;AACH,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,wBAAwB;qCAEH,MAAM;qCAEN,MAAM,QAAQ,eAAe;EAajE;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SAAU,WAAW,KAAG,eAAe,GAAG,IAMpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gBACd,eAAe,KAC3B,WAAW,GAAG,IAyBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gBACd,eAAe,eACf,WAAW,KACvB,eAqDF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,gBAClB,eAAe,KAC3B,eAAe,GAAG,SAEpB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gBACrB,eAAe,KAC3B,OAWF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,OAAO,EACP,SAAgB,EAChB,yBAAyB,GAC1B,EAAE;IACD,UAAU,EAAE,eAAe,CACzB,WAAW,EACX,eAAe,EACf,gBAAgB,CACjB,CAAC,YAAY,CAAC,CAAC;IAChB,UAAU,EAAE,eAAe,CACzB,WAAW,EACX,eAAe,EACf,gBAAgB,CACjB,CAAC,YAAY,CAAC,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,SAAS,CAAC,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI,CAAC;IAClD,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,GAAG;IACF,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CA8EA;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,EACzE,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,IAAI,CA+CN;AAED;;;GAGG;AACH,wBAAgB,2CAA2C,CACzD,EACE,UAAU,EACV,UAAU,GACX,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC,EACrD,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,IAAI,CA4BN;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,UAAU,EACV,UAAU,GACX,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC,GACjD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;CACvB,GACD,SAAS,CA8BZ;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,EACpD,UAAU,EACV,UAAU,GACX,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC,GACjD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;CACvB,GACD,SAAS,CA6BZ;AAED,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExD;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,SACtB,WAAW,WACR,OAAO,KACf,UAEF,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAM3D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG;IACpD,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAoBA;AAiBD;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CA8ClB;AAED,eAAO,MAAM,kBAAkB,SACvB,WAAW,QACX,eAAe,KACpB,OAeF,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,IAAI,CASN;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,EACxE,IAAI,GAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAKzC,GACA,IAAI,CAYN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,EAC3B,IAAI,EAAE,mBAAmB,GACxB,IAAI,CA2CN;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,mBAAmB,GACxB,IAAI,CAoDN;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,mBAAmB,GACxB,IAAI,CA6DN;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,WAAW,GAC1C;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,oBAAoB,CAAA;CAAE,CAiBjE;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,IAAI,CA+KN;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC,GAAG,IAAI,CAuEP;AAED,wBAAgB,4BAA4B,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAgCpE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,CAa/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,WAAW,EAAE,QA2B3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,OAAO,EACjB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,EACpE,OAAO;;CAAiC,GACvC,IAAI,CAyDN;AAMD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAE1E;AAMD,wBAAsB,SAAS,CAC7B,WAAW,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC9C,OAAO,CAAC,yBAAyB,CAAC,CAQpC;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,OAAO,GAChB;IACD,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;CAC9B,CAgCA;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,EAAE,EACtE,KAAK,EAAE,CAAC,GACP,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAK7B;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,EAAE,EAC9D,KAAK,EAAE,CAAC,GACP,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAK7B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAShD"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,8 +3,8 @@ import type { SwapQueueDef } from './types';
3
3
  export { PrettyError, prettifyErrorMessage } from './shared-errors';
4
4
  export type { SwapQueueContext, SwapStorage, RouteExecutionEvents, Route, Step, RouteEvent, StepEvent, EventSeverity, RouteStartedEvent, RouteSucceededEvent, RouteFailedEvent, StepStartedEvent, StepSucceededEvent, StepFailedEvent, StepTxExecutionUpdatedEvent, StepTxExecutionBlockedEvent, StepCheckStatusEvent, StepApprovalTxSucceededEvent, StepOutputRevealedEvent, } from './types';
5
5
  export { MainEvents, StepEventType, RouteEventType, StepExecutionEventStatus, StepExecutionBlockedEventStatus, } from './types';
6
- export type { PendingSwapWithQueueID, PendingSwapStep, PendingSwap, EventType, } from './shared';
7
- export { getCurrentBlockchainOfOrNull, getRelatedWalletOrNull, getRelatedWallet, MessageSeverity, PendingSwapNetworkStatus, calculatePendingSwap, } from './shared';
6
+ export type { PendingSwapWithQueueID, EventType } from './shared';
7
+ export { getCurrentBlockchainOfOrNull, getRelatedWalletOrNull, getRelatedWallet, MessageSeverity, calculatePendingSwap, } from './shared';
8
8
  export { updateSwapStatus, checkWaitingForNetworkChange, getCurrentStep, cancelSwap, getRequiredWallet, getRunningSwaps, resetRunningSwapNotifsOnPageLoad, isApprovalTX, getLastSuccessfulStep, } from './helpers';
9
9
  export { useMigration, useQueueManager, useEvents } from './hooks';
10
10
  export declare function makeQueueDefinition(configs: Configs): SwapQueueDef;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,KAAK,EACL,IAAI,EACJ,UAAU,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,SAAS,GACV,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,gCAAgC,EAChC,YAAY,EACZ,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAGlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,KAAK,EACL,IAAI,EACJ,UAAU,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,gCAAgC,EAChC,YAAY,EACZ,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAGlE"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var gt=Object.defineProperty;var l=(e,t)=>gt(e,"name",{value:t,configurable:!0});var Tt="c6381a79-2817-4602-83bf-6a641a409e32",ge={API_KEY:Tt};function Te(e){return ge[e]||""}l(Te,"getConfig");function Ie(e){let t;return typeof structuredClone=="function"?t=structuredClone(e):t=JSON.parse(JSON.stringify(e)),ge=t,ge}l(Ie,"initConfig");var Ee=(n=>(n.RouteEvent="routeEvent",n.StepEvent="stepEvent",n))(Ee||{}),fe=(r=>(r.STARTED="started",r.FAILED="failed",r.SUCCEEDED="succeeded",r))(fe||{}),Y=(r=>(r.CREATE_TX="create_tx",r.SEND_TX="send_tx",r.TX_SENT="tx_sent",r))(Y||{}),te=(a=>(a.WAITING_FOR_QUEUE="waiting_for_queue",a.WAITING_FOR_WALLET_CONNECT="waiting_for_wallet_connect",a.WAITING_FOR_NETWORK_CHANGE="waiting_for_network_change",a.WAITING_FOR_CHANGE_WALLET_ACCOUNT="waiting_for_change_wallet_account",a))(te||{}),B=(u=>(u.STARTED="started",u.FAILED="failed",u.SUCCEEDED="succeeded",u.TX_EXECUTION="tx_execution",u.TX_EXECUTION_BLOCKED="tx_execution_blocked",u.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",u.CHECK_STATUS="check_status",u.OUTPUT_REVEALED="output_revealed",u))(B||{});import{Status as Ce}from"@rango-dev/queue-manager-core";import{readAccountAddress as Wt}from"@rango-dev/wallets-core";import{getBlockChainNameFromId as bt,getEvmProvider as Ut,splitWalletNetwork as He}from"@rango-dev/wallets-shared";import{TransactionType as b}from"rango-sdk";var me="Waiting for other swaps to complete",Oe="Waiting for connecting wallet",De=l((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),ne=l(e=>`Please connect to ${e||"your wallet"} by using bellow button or top right button on page.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),re=l(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),v="CLIENT_UNEXPECTED_BEHAVIOUR";import{RangoClient as Et}from"rango-sdk";var ae,Q=l(()=>ae||(ae=new Et(Te("API_KEY"),Te("BASE_URL")),ae),"httpService");import It from"mitt";import Me from"bignumber.js";import{isCosmosBlockchain as Ct,isEvmBlockchain as xt,isStarknetBlockchain as _t,isTronBlockchain as kt}from"rango-types";import Pe from"bignumber.js";var We=l((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new Pe(e),a=1,o=1e3;for(let c=0;c<60;c++)if(new Pe(r.toFixed(c,a)).eq(r)){o=c;break}if(r.gte(1e4))return r.toFormat(0,a);if(r.gte(1e3)||r.gte(100))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,1))),a);if(r.gte(1))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,2))),a);if(r.gte(.01))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,4))),a);for(let c=t||4;c<17;c++)if(r.gte(Math.pow(10,-c)))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,c))),a);return r.isEqualTo(0)?"0":r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,8))),a)},"numberToString");import{SignerErrorCode as q,SignerError as ft,isSignerErrorCode as mt,isAPIErrorCode as wt}from"rango-types";var At="Assertion failed (Unexpected behaviour)",yt="Create transaction failed in Rango Server",be="Input wallet not found",x=class extends Error{constructor(n,r,a,o){super(r);this._isPrettyError=!0;Object.setPrototypeOf(this,x.prototype),x.prototype._isPrettyError=!0,this.code=n,this.detail=o,this.root=a}static isPrettyError(n){return n instanceof x||Object.prototype.hasOwnProperty.call(n,"_isPrettyError")}getErrorDetail(){let n=typeof this.root=="object"&&this.root&&this.root.error?this.root.error:JSON.stringify(this.root),r=typeof this.root=="string"?this.root:this.root instanceof Error?this.root.message:n;return{extraMessage:this.message,extraMessageDetail:this.detail||r,extraMessageErrorCode:this.code||null}}static AssertionFailed(n){return new x("CLIENT_UNEXPECTED_BEHAVIOUR",At,null,n)}static BadStatusCode(n,r){return new x("TX_FAIL",n,null,`status code = ${r}`)}static CreateTransaction(n){return new x("FETCH_TX_FAILED",yt,null,n)}static WalletMissing(){return new x("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new x("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}};l(x,"PrettyError");function Ue(e){try{return e?wt(e)?e:mt(e)?{[q.REJECTED_BY_USER]:"USER_REJECT",[q.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[q.SEND_TX_ERROR]:"SEND_TX_FAILED",[q.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[q.NOT_IMPLEMENTED]:v,[q.OPERATION_UNSUPPORTED]:v,[q.UNEXPECTED_BEHAVIOUR]:v}[e]:v:v}catch{return v}}l(Ue,"mapAppErrorCodesToAPIErrorCode");var X=l(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(x.isPrettyError(e))return e.getErrorDetail();if(ft.isSignerError(e)){let t=e.getErrorDetail();return{extraMessage:t.message,extraMessageDetail:t.detail,extraMessageErrorCode:t.code}}return e instanceof Error?{extraMessage:e.toString(),extraMessageErrorCode:null}:typeof e!="string"?{extraMessage:JSON.stringify(e),extraMessageErrorCode:null}:{extraMessage:e,extraMessageErrorCode:null}},"prettifyErrorMessage");var oe=(a=>(a.WaitingForConnectingWallet="waitingForConnectingWallet",a.WaitingForQueue="waitingForQueue",a.WaitingForNetworkChange="waitingForNetworkChange",a.NetworkChanged="networkChanged",a))(oe||{}),se=(a=>(a.error="error",a.warning="warning",a.info="info",a.success="success",a))(se||{}),U=l((e,t)=>{try{return M(e,t)}catch{return null}},"getCurrentBlockchainOfOrNull"),M=l((e,t)=>{let n=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain||t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain||t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain||t.cosmosTransaction?.blockChain||t.solanaTransaction?.blockChain||t.tonTransaction?.blockChain;if(n)return n;let r=t.transferTransaction?.fromWalletAddress;if(!r)throw x.BlockchainMissing();let a=Object.keys(e.wallets).find(o=>e.wallets[o]?.address===r)||null;if(a==null)throw x.BlockchainMissing();return a},"getCurrentBlockchainOf"),vt=l(e=>{if(Ct(e))return e.info?.explorerUrlToTx;if(xt(e)||_t(e)||kt(e))return e.info.transactionUrl},"getBlockchainMetaExplorerBaseUrl"),J=l((e,t,n)=>{let r=n[t],a=vt(r);if(a)return a.indexOf("/{txHash}")!==-1?a.replace("{txHash}",e?.toLowerCase()):`${a}/${e?.toLowerCase()}`},"getScannerUrl");function Fe(e,t){return e.steps.find(n=>n.status!=="failed"&&n.status!=="success"&&n.id!==t.id)||null}l(Fe,"getNextStep");var we=l((e,t)=>{let n=e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw x.WalletMissing();return n.address},"getCurrentAddressOf");function K(e,t){let n=we(e,t),r=Object.keys(e.wallets).map(i=>({k:i,v:e.wallets[i]})).find(({v:i})=>i.address===n)||null,a=r?.k||null,o=r?.v||null,c=o?.walletType;if(o===null)throw x.AssertionFailed(`Wallet for source ${a} not passed: walletType: ${c}`);return o}l(K,"getRelatedWallet");function Ae(e,t){try{return K(e,t)}catch{return null}}l(Ae,"getRelatedWalletOrNull");var Rt=l((e,t,n,r)=>r?.find(o=>o.blockchain===e&&o.symbol?.toUpperCase()===t?.toUpperCase()&&o.address===n)?.usdPrice||null,"getUsdPrice");function ht(e,t){let n=new Me(0);for(let r=0;r<e.fee.length;r++){let a=e.fee[r];if(a.expenseType==="DECREASE_FROM_OUTPUT")continue;let o=Rt(a.asset.blockchain,a.asset.symbol,a.asset.address,t);n=n.plus(new Me(a.amount).multipliedBy(o||0))}return n}l(ht,"getUsdFeeOfStep");function Nt(e,t,n,r,a,o){let c=t.result;if(!c)throw Error("Simulation result should not be null");return{creationTime:new Date().getTime().toString(),finishTime:null,requestId:t.requestId||"",inputAmount:e,wallets:n,status:"running",isPaused:!1,extraMessage:null,extraMessageSeverity:null,extraMessageDetail:null,extraMessageErrorCode:null,networkStatusExtraMessage:null,networkStatusExtraMessageDetail:null,lastNotificationTime:null,settings:r,simulationResult:c,validateBalanceOrFee:a,steps:t.result?.swaps?.map((i,u)=>({id:u+1,fromBlockchain:i.from.blockchain,fromBlockchainLogo:i.from.blockchainLogo,fromLogo:i.from.logo,fromSymbol:i.from.symbol,fromSymbolAddress:i.from.address,fromDecimals:i.from.decimals,fromAmountPrecision:i.fromAmountPrecision,fromAmountMinValue:i.fromAmountMinValue,fromAmountMaxValue:i.fromAmountMaxValue,fromAmountRestrictionType:i.fromAmountRestrictionType,toBlockchain:i.to.blockchain,toBlockchainLogo:i.to.blockchainLogo,toSymbol:i.to.symbol,toSymbolAddress:i.to.address,toDecimals:i.to.decimals,toLogo:i.to.logo,swapperId:i.swapperId,swapperLogo:i.swapperLogo,swapperType:i.swapperType,expectedOutputAmountHumanReadable:i.toAmount,outputAmount:"",feeInUsd:o?We(ht(i,o?.tokens),null,8):null,estimatedTimeInSeconds:i.estimatedTimeInSeconds||null,status:"created",networkStatus:null,startTransactionTime:new Date().getTime(),externalTransactionId:null,executedTransactionId:null,executedTransactionTime:null,explorerUrl:null,diagnosisUrl:null,trackingCode:null,internalSteps:null,evmTransaction:null,evmApprovalTransaction:null,starknetTransaction:null,starknetApprovalTransaction:null,tronTransaction:null,tronApprovalTransaction:null,cosmosTransaction:null,solanaTransaction:null,transferTransaction:null,tonTransaction:null,hasAlreadyProceededToSign:!1}))||[]}}l(Nt,"calculatePendingSwap");function Le(e){return e.map(t=>{let{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:c,executedTransactionTime:i,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:g,fromSymbolAddress:T,toSymbolAddress:E,swapperType:_,swapperId:S,outputAmount:w,fromAmountMaxValue:m,fromAmountMinValue:C,fromAmountPrecision:R,fromAmountRestrictionType:y,fromDecimals:k,status:O}=t;return{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:c,executedTransactionTime:i,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:g,fromSymbolAddress:T,toSymbolAddress:E,swapperName:S,swapperType:_,outputAmount:w,fromAmountMaxValue:m,fromAmountMinValue:C,fromAmountPrecision:R,fromAmountRestrictionType:y,fromDecimals:k,status:O,transaction:F(t)}})}l(Le,"createSteps");function Ot(e,t,n){let{creationTime:r,finishTime:a,requestId:o,inputAmount:c,status:i,wallets:u,steps:s,settings:d}=e,p=Le(s),T={route:{creationTime:r,finishTime:a,requestId:o,inputAmount:c,status:i,wallets:u,steps:p,slippage:d.slippage,infiniteApproval:d.infiniteApprove},step:p[p.length-1]};if(n)T.step=Le([n])[0];else if(t==="failed"){let E=Be(p);E&&(T.step=E)}else{let E=z(p);E&&(T.step=E)}return T}l(Ot,"getEventPayload");var ie=It();function Dt(e,t){let n,{type:r}=e;switch(r){case"started":n={...e,type:"started"};break;case"failed":n={...e,type:"failed"};break;case"succeeded":n={...e,type:"succeeded"};break;default:break}n&&ie.emit("routeEvent",{event:n,route:t})}l(Dt,"emitRouteEvent");function Pt(e,t,n){ie.emit("stepEvent",{event:e,route:t,step:n})}l(Pt,"emitStepEvent");function f(e){let{event:t}=e,{type:n}=t,{route:r,step:a}=Ot(e.swap,n,e.step??void 0),o=`${a.fromBlockchain}.${a.fromSymbol}`,c=`${a.toBlockchain}.${a.toSymbol}`,i=a.outputAmount??"",u=e.step?U(e.swap,e.step):null,s="",d="info";switch(n){case"started":s="Swap process started",d="success";break;case"succeeded":s=`You received ${i} ${c}, hooray!`,d="success";break;case"failed":s=`Swap failed: ${e.swap?.extraMessage??"Reason is unknown"}`,d="error";break;case"tx_execution":t.status==="create_tx"?(s="Please wait while the transaction is created ...",d="info"):t.status==="send_tx"?(e.step&&j(e.step)?s=`Please confirm '${a.swapperName}' smart contract access to ${o}`:s="Please confirm transaction request in your wallet",d="warning"):t.status==="tx_sent"&&(s="Transaction sent successfully",d="info");break;case"check_status":e.step&&j(e.step)?s="Checking approve transaction status ...":s="Checking transaction status ...",d="info";break;case"approval_tx_succeeded":s="Smart contract called successfully",d="success";break;case"output_revealed":s="Transaction output amount revealed",d="success";break;case"tx_execution_blocked":t.status==="waiting_for_wallet_connect"?(s="Please connect your wallet.",d="warning"):t.status==="waiting_for_queue"?(s="Waiting for other swaps to complete",d="warning"):t.status==="waiting_for_change_wallet_account"?(s="Please change your wallet account.",d="warning"):t.status==="waiting_for_network_change"&&(s=`Please change your wallet network to ${u}.`,d="warning");break;default:break}e.step&&Pt({...t,message:s,messageSeverity:d},r,a),(e.event.type==="failed"||!e.step)&&Dt({...t,message:s,messageSeverity:d},r)}l(f,"notifier");import*as Qe from"@sentry/browser";function Xe(e,t,n,r){try{Qe.captureException(e,{tags:{requestId:t.requestId,rpc:!0,swapper:n?.swapperId||"",walletType:r||""},level:"warning"})}catch(a){console.log({e:a})}}l(Xe,"logRPCError");var ye=null;function le(){return{claimedBy:()=>ye?.id,setClaimer:e=>{ye={id:e}},reset:()=>{ye=null}}}l(le,"claimQueue");var $={};function ce(){return{getTransactionDataByHash:e=>$[e]||{},setTransactionDataByHash:(e,t)=>{$[e]||($[e]={}),$[e].response=t.response||$[e].response,$[e].receiptReceived=t.receiptReceived||$[e].receiptReceived||!1}}}l(ce,"inMemoryTransactionsData");var A=l(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),F=l(e=>{let{evmTransaction:t,evmApprovalTransaction:n,cosmosTransaction:r,solanaTransaction:a,transferTransaction:o,starknetApprovalTransaction:c,starknetTransaction:i,tronApprovalTransaction:u,tronTransaction:s,tonTransaction:d}=e;return t||n||r||a||o||c||i||u||s||d},"getCurrentStepTx"),ue=l((e,t)=>{e.transferTransaction=null,e.cosmosTransaction=null,e.evmTransaction=null,e.solanaTransaction=null,e.evmApprovalTransaction=null,e.starknetApprovalTransaction=null,e.starknetTransaction=null,e.tronApprovalTransaction=null,e.tronTransaction=null,e.tonTransaction=null;let n=t.type;switch(n){case b.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case b.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case b.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case b.COSMOS:e.cosmosTransaction=t;break;case b.SOLANA:e.solanaTransaction=t;break;case b.TRANSFER:e.transferTransaction=t;break;case b.TON:e.tonTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),xe=l(e=>F(e)?.type,"getCurrentStepTxType"),j=l(e=>{let{evmApprovalTransaction:t,starknetApprovalTransaction:n,tronApprovalTransaction:r}=e;return!!(t||n||r)},"isApprovalCurrentStepTx");function D({getStorage:e,setStorage:t,nextStatus:n,nextStepStatus:r,message:a,details:o,errorCode:c=null,hasAlreadyProceededToSign:i}){let u=e().swapDetails,s=A(u),d={swap:u,step:s};if(r&&s&&(s.status=r),n&&(u.status=n),u.hasAlreadyProceededToSign=i,n&&["failed","success"].includes(n)&&(u.finishTime=new Date().getTime().toString()),(a||o)&&(u.extraMessage=a||"",u.extraMessageDetail=o||""),r&&["failed"].includes(r)){let p=o&&o.includes("Warning")?"Swap canceled by user.":o,g=Ae(u,s)?.walletType;u.extraMessageSeverity="error";let T=Ue(c);d.failureType=T,Q().reportFailure({requestId:u.requestId,step:s?.id||1,eventType:T,reason:p||"",tags:g?{wallet:g}:void 0}).then().catch()}else r&&["running"].includes(r)?u.extraMessageSeverity="info":r&&["success","approved"].includes(r)?u.extraMessageSeverity="success":r&&["waitingForApproval"].includes(r)&&(u.extraMessageSeverity="warning");return r==="running"&&s&&(s.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:u}),d}l(D,"updateSwapStatus");function Mt({getStorage:e,setStorage:t},n,r){let a=e().swapDetails;a.hasAlreadyProceededToSign=null;let o=A(a);o.executedTransactionId=n,o.executedTransactionTime=new Date().getTime().toString(),r?.url&&(o.explorerUrl=[...o.explorerUrl||[],{url:r.url,description:r.description||null}]),j(o)?a.extraMessage="Checking approve transaction status ...":a.extraMessage="Checking transaction status ...",a.extraMessageDetail="",a.extraMessageSeverity="info",t({...e(),swapDetails:a}),f({event:{type:"tx_execution",status:"tx_sent"},swap:a,step:o}),f({event:{type:"check_status"},swap:a,step:o})}l(Mt,"setStepTransactionIds");function Ft({getStorage:e,setStorage:t},n,r){let a=e().swapDetails,o=A(a);if(!o)return;let c=new Date;a.lastNotificationTime=c.getTime().toString(),!(o.networkStatus==="waitingForConnectingWallet"&&a.networkStatusExtraMessage===n&&a.networkStatusExtraMessageDetail===r)&&(o.networkStatus="waitingForConnectingWallet",a.networkStatusExtraMessage=n,a.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:a}))}l(Ft,"markRunningSwapAsWaitingForConnectingWallet");function qe({getStorage:e,setStorage:t}){let n=e().swapDetails,r=A(n);if(!r)return;let{type:a}=P(n),o=M(n,r),c=`Change ${a} wallet network to ${o}`,i=`Please change your ${a} wallet network to ${o}.`,u=new Date;return n.lastNotificationTime=u.getTime().toString(),r.networkStatus="waitingForNetworkChange",n.networkStatusExtraMessage=c,n.networkStatusExtraMessageDetail=i,t({...e(),swapDetails:n}),{swap:n,step:r}}l(qe,"markRunningSwapAsSwitchingNetwork");function Ke({getStorage:e,setStorage:t}){let n=e().swapDetails,r=A(n);if(r)return n.networkStatusExtraMessage="",n.networkStatusExtraMessageDetail="",r.networkStatus="waitingForQueue",f({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:n,step:r}),t({...e(),swapDetails:n}),{swap:n,step:r}}l(Ke,"markRunningSwapAsDependsOnOtherQueues");async function pe(e){return new Promise(t=>setTimeout(t,e))}l(pe,"delay");var Lt=l((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function Bt(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}l(Bt,"isWalletNull");function P(e){let t=A(e),n=U(e,t);if(!n)return{type:null,network:null,address:null};let r=Lt(e,n),a=e.wallets[n];return{type:r||null,network:n,address:a?a.address:null}}l(P,"getRequiredWallet");async function Qt(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}l(Qt,"getChainId");async function $e(e,t,n,r,a){if(Bt(n))return!1;let o=U(e,t);if(!o)return!1;if(r.evmBasedChains.find(c=>c.name===o)){try{let c=e.wallets[o];if(c){let i=Ut(a,c.walletType),u=await Qt(i);if(u){let s=bt(u,Object.entries(r.blockchains).map(([,d])=>d));if(s&&s.toLowerCase()===o.toLowerCase())return!0;if(s&&s.toLowerCase()!==o.toLowerCase())return!1}}}catch(c){console.log(c)}return!1}return!0}l($e,"isNetworkMatchedForTransaction");var Ve=l((e,t)=>(e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function de(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,a=A(r);a?.networkStatus&&(a.networkStatus=null,n({...t(),swapDetails:r}))}l(de,"resetNetworkStatus");function Ye(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:a}=t,{getStorage:o,setStorage:c}=e,i=o().swapDetails,u=A(i);u?.networkStatus&&(i.networkStatusExtraMessage=n,i.networkStatusExtraMessageDetail=r,u.networkStatus=a,c({...o(),swapDetails:i}))}l(Ye,"updateNetworkStatus");function Je(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,{ok:o,reason:c}=_e(a,n.state);if(!o){let i=A(a),{type:u,address:s}=P(a);f({event:{type:"tx_execution_blocked",...c==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:s??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:u??void 0,requiredAccount:s??void 0}},swap:a,step:i}),Ft({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},Oe,e.reason.description);return}r.unblock()}l(Je,"onBlockForConnectWallet");function je(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,o=A(a);if(!o||a.status!=="running")return;let c=qe({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)}),i=U(a,o),u=P(a).type,s=u?n.state(u).network:void 0;c&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:i??void 0,currentNetwork:s??void 0},swap:c.swap,step:c.step});let{type:d,network:p}=P(a);if(d&&p&&n.canSwitchNetworkTo(d,p)){let g=n.switchNetwork(d,p);g&&g.then(()=>{r.unblock()}).catch(T=>{console.log({error:T})})}}l(je,"onBlockForChangeNetwork");function ze(e,t){let{getBlockedTasks:n,forceExecute:r,queue:a,manager:o,context:c}=t,{setClaimer:i,claimedBy:u,reset:s}=le(),d=n().filter(m=>m.reason.reason==="depends_on_other_queues");if(d.length===0)return;let p=u(),g=!!p;if(p===a.id)return;if(g){Ke({getStorage:a.getStorage.bind(a),setStorage:a.setStorage.bind(a)});return}let T=d.find(m=>m.queue_id===t.queue_id);T||(T=d[0]),i(T.queue_id);let E=T.storage.get(),{type:_,network:S,address:w}=P(E.swapDetails);r(T.queue_id,{claimedBy:u(),resetClaimedBy:()=>{s(),ve(`${_}-${S}:${w}`,o,c.canSwitchNetworkTo)}})}l(ze,"onDependsOnOtherQueues");function _e(e,t){let{type:n,address:r}=P(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let a=t(n),{accounts:o,connected:c}=a,i=o||[];return c?{ok:i.some(s=>{let{address:d}=Wt(s);return r.toLocaleLowerCase()===d.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}l(_e,"isRequiredWalletConnected");function Ze(e){let{setTransactionDataByHash:t}=ce(),{getStorage:n,setStorage:r,failed:a,next:o,schedule:c,context:i}=e,{meta:u,getSigners:s,isMobileWallet:d}=i,p=n().swapDetails,g=A(p),T=K(p,g),E=d(T?.walletType),_=we(p,g),S=s(T.walletType),w=M(p,g),m=l(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),C=F(g),R=C?.type,y=j(g);if(!C||!R){let I="Unexpected Error: tx is null!",W=D({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:I,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return f({event:{type:"failed",reason:I,reasonCode:"CLIENT_UNEXPECTED_BEHAVIOUR"},...W}),a(),m()}let k=u.blockchains?.[C.blockChain]?.chainId,O=typeof p.hasAlreadyProceededToSign=="boolean",h,N,G,L,H;y?(G=`Waiting for approval of ${g?.fromSymbol} coin ${E?"on your mobile phone!":""}`,L="Waiting for approve transaction to be mined and confirmed successfully",N="waitingForApproval",h=void 0,H="tx_execution"):O?(G="Transaction is expired. Please try again.",N="failed",h="failed",L="",H="failed"):(G="Executing transaction ...",N="running",h="running",L=`${E?"Check your mobile phone!":""}`,H="tx_execution");let Se=D({getStorage:n,setStorage:r,nextStepStatus:N,nextStatus:h,message:G,details:L,hasAlreadyProceededToSign:y?void 0:O,errorCode:O?"TX_EXPIRED":void 0});if(H==="failed"?f({event:{type:H,reason:G,reasonCode:Se.failureType??v},...Se}):f({event:{type:H,status:"send_tx"},...Se}),O){a(),m();return}S.getSigner(R).signAndSendTx(C,_,k).then(({hash:I,response:W})=>{let ee=J(I,w,u.blockchains);Mt(e,I,ee&&(!W||W&&!W.hashRequiringUpdate)?{url:ee,description:y?"Approve":"Swap"}:void 0),W&&t(I,{response:W}),c("CHECK_TRANSACTION_STATUS"),o(),m()},I=>{if(p.status==="failed")return;let{extraMessage:W,extraMessageDetail:ee,extraMessageErrorCode:St}=X(I);Xe(I?.trace?.stack||I?.trace||I?.root||I,p,g,T?.walletType);let Ne=D({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:W,details:ee,errorCode:St});f({event:{type:"failed",reason:W,reasonCode:Ne.failureType??v},...Ne}),a(),m()})}l(Ze,"signTransaction");function et(e){let{wallet_network:t,evmChains:n,manager:r}=e,[a,o]=He(t);n.some(c=>c.name==o)&&r?.getAll().forEach(c=>{let i=c.list.getStorage(),u=i?.swapDetails;if(u&&u.status==="running"){let s=A(u);if(s){let d=i?.swapDetails.wallets[s.fromBlockchain]?.walletType,p=Object.keys(c.list.state.tasks).some(T=>{let E=c.list.state.tasks[T];return E.status===Ce.BLOCKED&&["waiting_for_connecting_wallet"].includes(E.blockedFor?.reason)}),g=U(u,s);if(d===a&&p&&g!=o){let T=c.list,{type:E}=P(u),_=re(E);c.list.block({reason:{reason:"waiting_for_network_change",description:_},silent:!0});let S=qe({getStorage:T.getStorage.bind(T),setStorage:T.setStorage.bind(T)});S&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:o,requiredNetwork:g??void 0},swap:S.swap,step:S.step})}}}})}l(et,"checkWaitingForConnectWalletChange");function ke(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let a=t.list.state.tasks[r];return a.status===Ce.BLOCKED&&["waiting_for_network_change","depends_on_other_queues"].includes(a.blockedFor?.reason)})){let r=t.list.getStorage()?.swapDetails;if(r.status==="running"){let{type:a}=P(r),o=ne(a);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:o}})}}})}l(ke,"checkWaitingForNetworkChange");function Xt(e){let t=e?.getAll()||new Map,n=[];return t.forEach(r=>{let o=r.list.getStorage()?.swapDetails;!o||o.status!=="running"||n.push(o)}),n}l(Xt,"getRunningSwaps");function Gt(e){e.forEach(t=>{let n=A(t),r="tx_execution_blocked",a;n?.networkStatus==="waitingForQueue"?a="waiting_for_queue":t?.status==="running"&&(a="waiting_for_wallet_connect"),r&&f&&f({event:{type:r,status:a??"waiting_for_queue"},swap:t,step:n})})}l(Gt,"resetRunningSwapNotifsOnPageLoad");function ve(e,t,n,r={fallbackToOnlyWallet:!0}){let[a,o]=He(e);if(!a||!o)return;let c=[],i=[];t?.getAll().forEach(s=>{if(s.status===Ce.BLOCKED){let d=s.list.getStorage(),p=d?.swapDetails;if(p&&p.status==="running"){let g=A(p);g&&(U(p,g)==o&&d?.swapDetails.wallets[o]?.walletType===a?c.push(s.list):d?.swapDetails.wallets[g.fromBlockchain]?.walletType===a&&i.push(s.list))}}});let u;if(c.length>0){if(u=c[0],c.length>1)for(let s=1;s<c.length;s++){let d=c[s];Ke({getStorage:d.getStorage.bind(d),setStorage:d.setStorage.bind(d)})}}else i.length>0&&r.fallbackToOnlyWallet&&(u=i[0]);n?.(a,o)?u?.checkBlock():u?.unblock()}l(ve,"retryOn");function tt(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}l(tt,"isNeedBlockQueueForParallel");async function nt(e){let t=await e;if(!t.ok||!t.transaction)throw x.CreateTransaction(t.error||"bad response from create tx endpoint");return t}l(nt,"throwOnOK");function Ht(e,t){let{reset:n}=le();e.actions.cancel();let r=D({getStorage:e.actions.getStorage,setStorage:e.actions.setStorage,message:"Swap canceled by user.",details:"Warning: If you've already signed and sent a transaction, it won't be affected, but next swap steps will not be executed.",nextStatus:"failed",nextStepStatus:"failed",errorCode:"USER_CANCEL"});return f({event:{type:"failed",reasonCode:"USER_CANCEL",reason:r.swap.extraMessage??void 0},swap:r.swap,step:r.step}),n(),t&&t?.retry(),r}l(Ht,"cancelSwap");function z(e){return e.slice().reverse().find(t=>t.status==="success")}l(z,"getLastSuccessfulStep");function Be(e){return e.slice().reverse().find(t=>t.status==="failed")}l(Be,"getFailedStep");function qt(e){let{transaction:t}=e;return t?.type===b.EVM&&t.isApprovalTx||t?.type===b.STARKNET&&t.isApprovalTx||t?.type===b.TRON&&t.isApprovalTx}l(qt,"isApprovalTX");var rt=5e3;async function Kt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:c}){let i=e().swapDetails,{meta:u}=c,s=A(i);if(!s?.executedTransactionId)return;let d=F(s),p=s.executedTransactionId,g=!1,T=!1,E=null,_=null,{getTransactionDataByHash:S,setTransactionDataByHash:w}=ce();try{let y=xe(s),k=K(i,s);y&&k&&(_=c.getSigners(k.walletType).getSigner(y))}catch{}try{let{response:y,receiptReceived:k}=S(p);if(_?.wait&&!k){let O=d?.blockChain&&u.blockchains?.[d?.blockChain]?.chainId||void 0,{hash:h,response:N}=await _.wait(p,O,y);if(N?.isMultiSig&&(g=!N.hashWasUpdated),h!==p){s.executedTransactionId=h||s.executedTransactionId;let G=M(i,s),L;!!Object.keys(u.blockchains).length&&(L=J(s.executedTransactionId,G,u.blockchains)),L&&s.explorerUrl&&s.explorerUrl?.length>=1&&(s.explorerUrl[s.explorerUrl.length-1]={url:L,description:"Replaced Swap"}),p=s.executedTransactionId,h&&N&&w(h,{response:N})}else w(h,{receiptReceived:!0})}else _||(g=!0)}catch(y){let{extraMessage:k,extraMessageDetail:O,extraMessageErrorCode:h}=X(y),N=D({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:k,details:O,errorCode:h});f({event:{type:"failed",reason:k,reasonCode:N.failureType??v},...N}),T=!0}try{E=await Q().checkStatus({requestId:i.requestId,txId:p,step:s.id})}catch{await pe(rt),a();return}if(T)return o();if(s?.status==="failed")return;let m=E?.outputAmount||(s.outputAmount?s.outputAmount:null),C=s.outputAmount||null;i.extraMessage=E?.extraMessage||i.extraMessage,i.extraMessageSeverity="info",i.extraMessageDetail="",s.status=E?.status||s.status,s.diagnosisUrl=E?.diagnosisUrl||s.diagnosisUrl||null,s.outputAmount=m||s.outputAmount,s.explorerUrl=g?null:E?.explorerUrl||s.explorerUrl,s.internalSteps=E?.steps||null;let R=E?.newTx;if(R&&(s.status="created",s.executedTransactionId=null,s.executedTransactionTime=null,ue(s,R)),C===null&&m!==null?f({event:{type:"output_revealed",outputAmount:m},swap:i,step:s}):C===null&&m===null&&f({event:{type:"check_status"},swap:i,step:s}),s.status==="success"){let y=Fe(i,s);i.extraMessageDetail="",i.extraMessage=y?`starting next step: ${y.swapperId}: ${y.fromBlockchain} -> ${y.toBlockchain}`:"",f({event:{type:"succeeded",outputAmount:s.outputAmount??""},swap:i,step:s})}else s.status==="failed"&&(i.extraMessage="Transaction failed in blockchain",i.extraMessageSeverity="error",i.extraMessageDetail=E?.extraMessage||"",i.status="failed",i.finishTime=new Date().getTime().toString());t({...e(),swapDetails:i}),E?.status==="failed"?o():E?.status==="success"||E?.status==="running"&&E.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await pe(rt),a())}l(Kt,"checkTransactionStatus");async function $t({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:c}){let i=e().swapDetails,{meta:u}=c,{getTransactionDataByHash:s,setTransactionDataByHash:d}=ce(),p=A(i);if(!p){console.log("ignore check status, current step is null");return}let g=F(p);if(!p?.executedTransactionId)return;let T=p.executedTransactionId,E=null;try{let S=xe(p),w=K(i,p);S&&w&&(E=c.getSigners(w.walletType).getSigner(S))}catch{}try{let{response:S,receiptReceived:w}=s(T);if(E?.wait&&!w){let m=g?.blockChain&&u.blockchains?.[g?.blockChain]?.chainId||void 0,{hash:C,response:R}=await E.wait(T,m,S);if(C!==T){p.executedTransactionId=C||p.executedTransactionId;let y=M(i,p),k;!!Object.keys(u.blockchains).length&&(k=J(p.executedTransactionId,y,u.blockchains)),k&&p.explorerUrl&&p.explorerUrl?.length>=1&&(p.explorerUrl[p.explorerUrl.length-1]={url:k,description:"Replaced Approve"}),T=p.executedTransactionId,C&&R&&d(C,{response:R})}else d(C,{receiptReceived:!0})}}catch(S){let{extraMessage:w,extraMessageDetail:m,extraMessageErrorCode:C}=X(S),R=D({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:w,details:m,errorCode:C});return f({event:{type:"failed",reason:w,reasonCode:R.failureType??v},...R}),o()}let _=!1;try{let S=await Q().checkApproval(i.requestId,p.executedTransactionId);if(p?.status==="failed")return;if(_=S.isApproved,!_&&(S.txStatus==="failed"||S.txStatus==="success")){let w,m;S.txStatus==="failed"?(w="Approve transaction failed",m="Smart contract approval tx failed in blockchain."):(w="Not enough approval",S.requiredApprovedAmount&&S.currentApprovedAmount?m=`Required approval: ${S.requiredApprovedAmount}, current approval: ${S.currentApprovedAmount}`:m="You still don't have enough approval for this swap.");let C=D({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:w,details:m});f({event:{type:"failed",reason:w,reasonCode:C.failureType??v},...C}),o()}else _||f({event:{type:"check_status"},swap:i,step:p})}catch{_=!1}_?(p.status="approved",i.extraMessage=`Spending ${p.fromSymbol} approved successfully.`,i.extraMessageDetail=null,i.extraMessageSeverity="success",p.evmApprovalTransaction=null,p.executedTransactionId=null,p.executedTransactionTime=null,p.starknetApprovalTransaction=null,p.tronApprovalTransaction=null,t({...e(),swapDetails:i}),f({event:{type:"approval_tx_succeeded"},swap:i,step:p}),r("SCHEDULE_NEXT_STEP"),n()):(await pe(2e3),a())}l($t,"checkApprovalStatus");async function at(e){let t=e.getStorage().swapDetails,n=A(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}de(e),n.status==="running"?await Kt(e):n.status==="waitingForApproval"&&await $t(e)}l(at,"checkStatus");async function ot(e){let{setStorage:t,getStorage:n,next:r,schedule:a}=e,o=n().swapDetails,c=A(o);if(!F(c)){f({event:{type:"tx_execution",status:"create_tx"},swap:o,step:c});let u={requestId:o.requestId,step:c.id,userSettings:{slippage:o.settings.slippage,infiniteApprove:o.settings.infiniteApprove},validations:{balance:o.validateBalanceOrFee,fee:o.validateBalanceOrFee}};try{let{transaction:s}=await nt(Q().createTransaction(u));s&&ue(c,s),t({...n(),swapDetails:o}),a("EXECUTE_TRANSACTION"),r()}catch(s){o.status="failed",o.finishTime=new Date().getTime().toString();let{extraMessage:d,extraMessageDetail:p}=X(s),g=D({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:d,details:p,errorCode:"FETCH_TX_FAILED"});f({event:{type:"failed",reason:d,reasonCode:g.failureType??v},...g}),e.failed()}}}l(ot,"createTransaction");async function st(e){let{getStorage:t,context:n}=e,{meta:r,wallets:a,providers:o}=n,{claimedBy:c}=le(),i=n.claimedBy===n._queue?.id,u=l(S=>{e.block(S),i&&e.context.resetClaimedBy&&e.context.resetClaimedBy()},"requestBlock"),s=t().swapDetails,d=A(s);if(de(e),!_e(s,n.state).ok){let{type:S,address:w}=P(s),m=a?.blockchains?.find(y=>!y.accounts?.find(k=>k.walletType===S)),C=!a||m?ne(S):De(S,w),R={reason:"waiting_for_connecting_wallet",description:C};u(R);return}let g=await $e(s,d,a,r,o);if(!!c()&&!i&&!g){let S=me,w={reason:"depends_on_other_queues",details:S};u(w);return}else if(!g){let S=M(s,d),w=re(S),m={reason:"waiting_for_network_change",details:w};u(m);return}if(Ye(e,{message:"",details:"Wallet network changed successfully",status:"networkChanged"}),tt(d)&&!i){let S={reason:"depends_on_other_queues",description:me,details:{}};u(S);return}Ze(e)}l(st,"executeTransaction");function it({schedule:e,next:t,failed:n,setStorage:r,getStorage:a}){let o=a().swapDetails,c=A(o),i=o.steps.find(u=>u.status==="failed");if(c&&!i){if(Ve(o,c))return e("EXECUTE_TRANSACTION"),t();if(c?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();o.status="running",r({...a(),swapDetails:o}),f({event:{type:"started"},swap:o,step:c}),e("CREATE_TRANSACTION"),t()}else o.status=i?"failed":"success",o.finishTime=new Date().getTime().toString(),r({...a(),swapDetails:o}),f({...i?{event:{type:"failed",reason:o.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED"}}:{event:{type:"succeeded",outputAmount:z(o.steps)?.outputAmount??""}},swap:o,step:null}),i?n():t()}l(it,"scheduleNextStep");function lt({schedule:e,next:t,getStorage:n}){let r=n().swapDetails;f({event:{type:"started"},swap:r,step:null}),e("SCHEDULE_NEXT_STEP"),t()}l(lt,"start");var ct={name:"swap",actions:{["START"]:lt,["SCHEDULE_NEXT_STEP"]:it,["CREATE_TRANSACTION"]:ot,["EXECUTE_TRANSACTION"]:st,["CHECK_TRANSACTION_STATUS"]:at},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?Je(e,t):e.reason.reason==="waiting_for_network_change"?je(e,t):e.reason.reason==="depends_on_other_queues"&&ze(e,t)}};import{useManager as zt}from"@rango-dev/queue-manager-react";import{useEffect as he,useState as Zt}from"react";import{Persistor as Vt,Status as Z,DB_NAME as Yt}from"@rango-dev/queue-manager-core";import{v4 as Jt}from"uuid";var ut="migratedToQueueManager";function Re(){return!!window.localStorage.getItem(ut)}l(Re,"migrated");async function jt(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(Yt)}catch{return!1}}l(jt,"hasQueueManagerOnIDB");async function pt(){let e=window.localStorage.getItem("pendingSwaps"),t=await jt();if(!e||Re()||t)return!0;let n=JSON.parse(e),r=[];n.forEach(c=>{if(c.status==="running"){let i=Jt(),u={id:c.requestId,createdAt:Number(c.creationTime),name:"swap",status:Z.RUNNING,storage:{swapDetails:c},state:{status:Z.RUNNING,activeTaskIndex:0,tasks:{[i]:{blockedFor:null,status:Z.RUNNING}}},tasks:[{id:i,action:"SCHEDULE_NEXT_STEP"}]};r.push(u)}else{let i=c.status==="success"?Z.SUCCESS:Z.FAILED,u={id:c.requestId,createdAt:Number(c.creationTime),name:"swap",status:i,storage:{swapDetails:c},state:{status:i,activeTaskIndex:0,tasks:{}},tasks:[]};r.push(u)}});let a=new Vt,o=r.map(c=>a.insertQueue(c));return await Promise.all(o),window.localStorage.setItem(ut,"1"),!0}l(pt,"migration");var dt=0;function en(){let e=Re(),[t,n]=Zt(e);return he(()=>{(async()=>dt||(dt=1,pt().finally(()=>{n(!0)})))()},[]),{status:t}}l(en,"useMigration");function tn(e){let{manager:t}=zt();he(()=>{e.lastConnectedWallet&&(et({evmChains:e.evmChains,wallet_network:e.lastConnectedWallet,manager:t}),ve(e.lastConnectedWallet,t,e.canSwitchNetworkTo))},[e.lastConnectedWallet]),he(()=>{e.disconnectedWallet&&(ke(t),e.clearDisconnectedWallet())},[e.disconnectedWallet])}l(tn,"useQueueManager");function nn(){return ie}l(nn,"useEvents");function ia(e){return Ie(e),ct}l(ia,"makeQueueDefinition");export{Ee as MainEvents,se as MessageSeverity,oe as PendingSwapNetworkStatus,x as PrettyError,fe as RouteEventType,B as StepEventType,te as StepExecutionBlockedEventStatus,Y as StepExecutionEventStatus,Nt as calculatePendingSwap,Ht as cancelSwap,ke as checkWaitingForNetworkChange,U as getCurrentBlockchainOfOrNull,A as getCurrentStep,z as getLastSuccessfulStep,K as getRelatedWallet,Ae as getRelatedWalletOrNull,P as getRequiredWallet,Xt as getRunningSwaps,qt as isApprovalTX,ia as makeQueueDefinition,X as prettifyErrorMessage,Gt as resetRunningSwapNotifsOnPageLoad,D as updateSwapStatus,nn as useEvents,en as useMigration,tn as useQueueManager};
1
+ var Et=Object.defineProperty;var i=(e,t)=>Et(e,"name",{value:t,configurable:!0});var Tt="c6381a79-2817-4602-83bf-6a641a409e32",ge={API_KEY:Tt};function Ee(e){return ge[e]||""}i(Ee,"getConfig");function Ie(e){let t;return typeof structuredClone=="function"?t=structuredClone(e):t=JSON.parse(JSON.stringify(e)),ge=t,ge}i(Ie,"initConfig");var Te=(n=>(n.RouteEvent="routeEvent",n.StepEvent="stepEvent",n))(Te||{}),fe=(r=>(r.STARTED="started",r.FAILED="failed",r.SUCCEEDED="succeeded",r))(fe||{}),Y=(r=>(r.CREATE_TX="create_tx",r.SEND_TX="send_tx",r.TX_SENT="tx_sent",r))(Y||{}),ne=(o=>(o.WAITING_FOR_QUEUE="waiting_for_queue",o.WAITING_FOR_WALLET_CONNECT="waiting_for_wallet_connect",o.WAITING_FOR_NETWORK_CHANGE="waiting_for_network_change",o.WAITING_FOR_CHANGE_WALLET_ACCOUNT="waiting_for_change_wallet_account",o))(ne||{}),L=(u=>(u.STARTED="started",u.FAILED="failed",u.SUCCEEDED="succeeded",u.TX_EXECUTION="tx_execution",u.TX_EXECUTION_BLOCKED="tx_execution_blocked",u.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",u.CHECK_STATUS="check_status",u.OUTPUT_REVEALED="output_revealed",u))(L||{});var me="Waiting for other swaps to complete",Oe="Waiting for connecting wallet",Pe=i((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),re=i(e=>`Please connect to ${e||"your wallet"} by using bellow button or top right button on page.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),oe=i(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),R="CLIENT_UNEXPECTED_BEHAVIOUR";import{Status as Ce}from"@rango-dev/queue-manager-core";import{readAccountAddress as bt}from"@rango-dev/wallets-core";import{getBlockChainNameFromId as Ut,getEvmProvider as Mt,splitWalletNetwork as qe}from"@rango-dev/wallets-shared";import{TransactionType as W}from"rango-sdk";import{PendingSwapNetworkStatus as Z}from"rango-types";import{RangoClient as ft}from"rango-sdk";var ae,B=i(()=>ae||(ae=new ft(Ee("API_KEY"),Ee("BASE_URL")),ae),"httpService");import Ot from"mitt";import Me from"bignumber.js";import{isCosmosBlockchain as _t,isEvmBlockchain as xt,isStarknetBlockchain as kt,isTronBlockchain as Rt}from"rango-types";import De from"bignumber.js";var We=i((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new De(e),o=1,a=1e3;for(let l=0;l<60;l++)if(new De(r.toFixed(l,o)).eq(r)){a=l;break}if(r.gte(1e4))return r.toFormat(0,o);if(r.gte(1e3)||r.gte(100))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,1))),o);if(r.gte(1))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,2))),o);if(r.gte(.01))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,4))),o);for(let l=t||4;l<17;l++)if(r.gte(Math.pow(10,-l)))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,l))),o);return r.isEqualTo(0)?"0":r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,8))),o)},"numberToString");import{SignerErrorCode as X,SignerError as mt,isSignerErrorCode as wt,isAPIErrorCode as At}from"rango-types";var yt="Assertion failed (Unexpected behaviour)",Ct="Create transaction failed in Rango Server",be="Input wallet not found",_=class extends Error{constructor(n,r,o,a){super(r);this._isPrettyError=!0;Object.setPrototypeOf(this,_.prototype),_.prototype._isPrettyError=!0,this.code=n,this.detail=a,this.root=o}static isPrettyError(n){return n instanceof _||Object.prototype.hasOwnProperty.call(n,"_isPrettyError")}getErrorDetail(){let n=typeof this.root=="object"&&this.root&&this.root.error?this.root.error:JSON.stringify(this.root),r=typeof this.root=="string"?this.root:this.root instanceof Error?this.root.message:n;return{extraMessage:this.message,extraMessageDetail:this.detail||r,extraMessageErrorCode:this.code||null}}static AssertionFailed(n){return new _("CLIENT_UNEXPECTED_BEHAVIOUR",yt,null,n)}static BadStatusCode(n,r){return new _("TX_FAIL",n,null,`status code = ${r}`)}static CreateTransaction(n){return new _("FETCH_TX_FAILED",Ct,null,n)}static WalletMissing(){return new _("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new _("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}};i(_,"PrettyError");function Ue(e){try{return e?At(e)?e:wt(e)?{[X.REJECTED_BY_USER]:"USER_REJECT",[X.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[X.SEND_TX_ERROR]:"SEND_TX_FAILED",[X.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[X.NOT_IMPLEMENTED]:R,[X.OPERATION_UNSUPPORTED]:R,[X.UNEXPECTED_BEHAVIOUR]:R}[e]:R:R}catch{return R}}i(Ue,"mapAppErrorCodesToAPIErrorCode");var Q=i(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(_.isPrettyError(e))return e.getErrorDetail();if(mt.isSignerError(e)){let t=e.getErrorDetail();return{extraMessage:t.message,extraMessageDetail:t.detail,extraMessageErrorCode:t.code}}return e instanceof Error?{extraMessage:e.toString(),extraMessageErrorCode:null}:typeof e!="string"?{extraMessage:JSON.stringify(e),extraMessageErrorCode:null}:{extraMessage:e,extraMessageErrorCode:null}},"prettifyErrorMessage");var se=(o=>(o.error="error",o.warning="warning",o.info="info",o.success="success",o))(se||{}),U=i((e,t)=>{try{return M(e,t)}catch{return null}},"getCurrentBlockchainOfOrNull"),M=i((e,t)=>{let n=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain||t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain||t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain||t.cosmosTransaction?.blockChain||t.solanaTransaction?.blockChain||t.tonTransaction?.blockChain;if(n)return n;let r=t.transferTransaction?.fromWalletAddress;if(!r)throw _.BlockchainMissing();let o=Object.keys(e.wallets).find(a=>e.wallets[a]?.address===r)||null;if(o==null)throw _.BlockchainMissing();return o},"getCurrentBlockchainOf"),vt=i(e=>{if(_t(e))return e.info?.explorerUrlToTx;if(xt(e)||kt(e)||Rt(e))return e.info.transactionUrl},"getBlockchainMetaExplorerBaseUrl"),J=i((e,t,n)=>{let r=n[t],o=vt(r);if(o)return o.indexOf("/{txHash}")!==-1?o.replace("{txHash}",e?.toLowerCase()):`${o}/${e?.toLowerCase()}`},"getScannerUrl");function Le(e,t){return e.steps.find(n=>n.status!=="failed"&&n.status!=="success"&&n.id!==t.id)||null}i(Le,"getNextStep");var we=i((e,t)=>{let n=e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw _.WalletMissing();return n.address},"getCurrentAddressOf");function G(e,t){let n=we(e,t),r=Object.keys(e.wallets).map(c=>({k:c,v:e.wallets[c]})).find(({v:c})=>c.address===n)||null,o=r?.k||null,a=r?.v||null,l=a?.walletType;if(a===null)throw _.AssertionFailed(`Wallet for source ${o} not passed: walletType: ${l}`);return a}i(G,"getRelatedWallet");function Ae(e,t){if(!t)return null;try{return G(e,t)}catch{return null}}i(Ae,"getRelatedWalletOrNull");var ht=i((e,t,n,r)=>r?.find(a=>a.blockchain===e&&a.symbol?.toUpperCase()===t?.toUpperCase()&&a.address===n)?.usdPrice||null,"getUsdPrice");function Nt(e,t){let n=new Me(0);for(let r=0;r<e.fee.length;r++){let o=e.fee[r];if(o.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=ht(o.asset.blockchain,o.asset.symbol,o.asset.address,t);n=n.plus(new Me(o.amount).multipliedBy(a||0))}return n}i(Nt,"getUsdFeeOfStep");function Fe(e,t){return{fromBlockchain:e.from.blockchain,fromBlockchainLogo:e.from.blockchainLogo,fromLogo:e.from.logo,fromSymbol:e.from.symbol,fromSymbolAddress:e.from.address,fromDecimals:e.from.decimals,fromAmountPrecision:e.fromAmountPrecision,fromAmountMinValue:e.fromAmountMinValue,fromAmountMaxValue:e.fromAmountMaxValue,fromAmountRestrictionType:e.fromAmountRestrictionType,fromUsdPrice:e.from.usdPrice,toBlockchain:e.to.blockchain,toBlockchainLogo:e.to.blockchainLogo,toSymbol:e.to.symbol,toSymbolAddress:e.to.address,toDecimals:e.to.decimals,toLogo:e.to.logo,toUsdPrice:e.to.usdPrice,swapperId:e.swapperId,swapperLogo:e.swapperLogo,swapperType:e.swapperType,expectedOutputAmountHumanReadable:e.toAmount,feeInUsd:t?We(Nt(e,t?.tokens),null,8):null,estimatedTimeInSeconds:e.estimatedTimeInSeconds||null,internalSteps:null}}i(Fe,"mapSwapStepToPendingSwapStep");function It(e,t,n,r,o,a){let l=t.result;if(!l)throw Error("Simulation result should not be null");return{creationTime:new Date().getTime().toString(),finishTime:null,requestId:t.requestId||"",inputAmount:e,wallets:n,status:"running",isPaused:!1,extraMessage:null,extraMessageSeverity:null,extraMessageDetail:null,extraMessageErrorCode:null,networkStatusExtraMessage:null,networkStatusExtraMessageDetail:null,lastNotificationTime:null,settings:r,simulationResult:l,validateBalanceOrFee:o,steps:t.result?.swaps?.map((c,u)=>{let s=Fe(c,a);return{id:u+1,...s,internalSwaps:c?.internalSwaps?.map(d=>Fe(d,a))||null,outputAmount:"",status:"created",networkStatus:null,startTransactionTime:new Date().getTime(),externalTransactionId:null,executedTransactionId:null,executedTransactionTime:null,explorerUrl:null,diagnosisUrl:null,trackingCode:null,internalSteps:null,evmTransaction:null,evmApprovalTransaction:null,starknetTransaction:null,starknetApprovalTransaction:null,tronTransaction:null,tronApprovalTransaction:null,cosmosTransaction:null,solanaTransaction:null,transferTransaction:null,tonTransaction:null,hasAlreadyProceededToSign:!1}})||[]}}i(It,"calculatePendingSwap");function Be(e){return e.map(t=>{let{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:o,feeInUsd:a,executedTransactionId:l,executedTransactionTime:c,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:E,fromSymbolAddress:S,toSymbolAddress:w,swapperType:k,swapperId:g,outputAmount:f,fromAmountMaxValue:m,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:x,fromDecimals:h,status:v}=t;return{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:o,feeInUsd:a,executedTransactionId:l,executedTransactionTime:c,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:E,fromSymbolAddress:S,toSymbolAddress:w,swapperName:g,swapperType:k,outputAmount:f,fromAmountMaxValue:m,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:x,fromDecimals:h,status:v,transaction:F(t)}})}i(Be,"createSteps");function Pt(e,t,n){let{creationTime:r,finishTime:o,requestId:a,inputAmount:l,status:c,wallets:u,steps:s,settings:d}=e,p=Be(s),S={route:{creationTime:r,finishTime:o,requestId:a,inputAmount:l,status:c,wallets:u,steps:p,slippage:d.slippage,infiniteApproval:d.infiniteApprove},step:p[p.length-1]};if(n)S.step=Be([n])[0];else if(t==="failed"){let w=Qe(p);w&&(S.step=w)}else{let w=z(p);w&&(S.step=w)}return S}i(Pt,"getEventPayload");var ie=Ot();function Dt(e,t){let n,{type:r}=e;switch(r){case"started":n={...e,type:"started"};break;case"failed":n={...e,type:"failed"};break;case"succeeded":n={...e,type:"succeeded"};break;default:break}n&&ie.emit("routeEvent",{event:n,route:t})}i(Dt,"emitRouteEvent");function Wt(e,t,n){ie.emit("stepEvent",{event:e,route:t,step:n})}i(Wt,"emitStepEvent");function T(e){let{event:t}=e,{type:n}=t,{route:r,step:o}=Pt(e.swap,n,e.step??void 0),a=`${o.fromBlockchain}.${o.fromSymbol}`,l=`${o.toBlockchain}.${o.toSymbol}`,c=o.outputAmount??"",u=e.step?U(e.swap,e.step):null,s="",d="info";switch(n){case"started":s="Swap process started",d="success";break;case"succeeded":s=`You received ${c} ${l}, hooray!`,d="success";break;case"failed":s=`Swap failed: ${e.swap?.extraMessage??"Reason is unknown"}`,d="error";break;case"tx_execution":t.status==="create_tx"?(s="Please wait while the transaction is created ...",d="info"):t.status==="send_tx"?(e.step&&j(e.step)?s=`Please confirm '${o.swapperName}' smart contract access to ${a}`:s="Please confirm transaction request in your wallet",d="warning"):t.status==="tx_sent"&&(s="Transaction sent successfully",d="info");break;case"check_status":e.step&&j(e.step)?s="Checking approve transaction status ...":s="Checking transaction status ...",d="info";break;case"approval_tx_succeeded":s="Smart contract called successfully",d="success";break;case"output_revealed":s="Transaction output amount revealed",d="success";break;case"tx_execution_blocked":t.status==="waiting_for_wallet_connect"?(s="Please connect your wallet.",d="warning"):t.status==="waiting_for_queue"?(s="Waiting for other swaps to complete",d="warning"):t.status==="waiting_for_change_wallet_account"?(s="Please change your wallet account.",d="warning"):t.status==="waiting_for_network_change"&&(s=`Please change your wallet network to ${u}.`,d="warning");break;default:break}e.step&&Wt({...t,message:s,messageSeverity:d},r,o),(e.event.type==="failed"||!e.step)&&Dt({...t,message:s,messageSeverity:d},r)}i(T,"notifier");import*as Xe from"@sentry/browser";function Ge(e,t,n,r){try{Xe.captureException(e,{tags:{requestId:t.requestId,rpc:!0,swapper:n?.swapperId||"",walletType:r||""},level:"warning"})}catch(o){console.log({e:o})}}i(Ge,"logRPCError");var ye=null;function le(){return{claimedBy:()=>ye?.id,setClaimer:e=>{ye={id:e}},reset:()=>{ye=null}}}i(le,"claimQueue");var H={};function ce(){return{getTransactionDataByHash:e=>H[e]||{},setTransactionDataByHash:(e,t)=>{H[e]||(H[e]={}),H[e].response=t.response||H[e].response,H[e].receiptReceived=t.receiptReceived||H[e].receiptReceived||!1}}}i(ce,"inMemoryTransactionsData");var y=i(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),F=i(e=>{let{evmTransaction:t,evmApprovalTransaction:n,cosmosTransaction:r,solanaTransaction:o,transferTransaction:a,starknetApprovalTransaction:l,starknetTransaction:c,tronApprovalTransaction:u,tronTransaction:s,tonTransaction:d}=e;return t||n||r||o||a||l||c||u||s||d},"getCurrentStepTx"),ue=i((e,t)=>{e.transferTransaction=null,e.cosmosTransaction=null,e.evmTransaction=null,e.solanaTransaction=null,e.evmApprovalTransaction=null,e.starknetApprovalTransaction=null,e.starknetTransaction=null,e.tronApprovalTransaction=null,e.tronTransaction=null,e.tonTransaction=null;let n=t.type;switch(n){case W.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case W.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case W.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case W.COSMOS:e.cosmosTransaction=t;break;case W.SOLANA:e.solanaTransaction=t;break;case W.TRANSFER:e.transferTransaction=t;break;case W.TON:e.tonTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),_e=i(e=>F(e)?.type,"getCurrentStepTxType"),j=i(e=>{let{evmApprovalTransaction:t,starknetApprovalTransaction:n,tronApprovalTransaction:r}=e;return!!(t||n||r)},"isApprovalCurrentStepTx");function O({getStorage:e,setStorage:t,nextStatus:n,nextStepStatus:r,message:o,details:a,errorCode:l=null,hasAlreadyProceededToSign:c}){let u=e().swapDetails,s=y(u),d={swap:u,step:s};if(r&&s&&(s.status=r),n&&(u.status=n),u.hasAlreadyProceededToSign=c,n&&["failed","success"].includes(n)&&(u.finishTime=new Date().getTime().toString()),(o||a)&&(u.extraMessage=o||"",u.extraMessageDetail=a||""),r&&["failed"].includes(r)){let p=a&&a.includes("Warning")?"Swap canceled by user.":a,E=Ae(u,s)?.walletType;u.extraMessageSeverity="error";let S=Ue(l);d.failureType=S,B().reportFailure({requestId:u.requestId,step:s?.id||1,eventType:S,reason:p||"",tags:E?{wallet:E}:void 0}).then().catch()}else r&&["running"].includes(r)?u.extraMessageSeverity="info":r&&["success","approved"].includes(r)?u.extraMessageSeverity="success":r&&["waitingForApproval"].includes(r)&&(u.extraMessageSeverity="warning");return r==="running"&&s&&(s.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:u}),d}i(O,"updateSwapStatus");function Ft({getStorage:e,setStorage:t},n,r){let o=e().swapDetails;o.hasAlreadyProceededToSign=null;let a=y(o);a.executedTransactionId=n,a.executedTransactionTime=new Date().getTime().toString(),r?.url&&(a.explorerUrl=[...a.explorerUrl||[],{url:r.url,description:r.description||null}]),j(a)?o.extraMessage="Checking approve transaction status ...":o.extraMessage="Checking transaction status ...",o.extraMessageDetail="",o.extraMessageSeverity="info",t({...e(),swapDetails:o}),T({event:{type:"tx_execution",status:"tx_sent"},swap:o,step:a}),T({event:{type:"check_status"},swap:o,step:a})}i(Ft,"setStepTransactionIds");function Lt({getStorage:e,setStorage:t},n,r){let o=e().swapDetails,a=y(o);if(!a)return;let l=new Date;o.lastNotificationTime=l.getTime().toString(),!(a.networkStatus===Z.WaitingForConnectingWallet&&o.networkStatusExtraMessage===n&&o.networkStatusExtraMessageDetail===r)&&(a.networkStatus=Z.WaitingForConnectingWallet,o.networkStatusExtraMessage=n,o.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:o}))}i(Lt,"markRunningSwapAsWaitingForConnectingWallet");function Ke({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(!r)return;let{type:o}=P(n),a=M(n,r),l=`Change ${o} wallet network to ${a}`,c=`Please change your ${o} wallet network to ${a}.`,u=new Date;return n.lastNotificationTime=u.getTime().toString(),r.networkStatus=Z.WaitingForNetworkChange,n.networkStatusExtraMessage=l,n.networkStatusExtraMessageDetail=c,t({...e(),swapDetails:n}),{swap:n,step:r}}i(Ke,"markRunningSwapAsSwitchingNetwork");function $e({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(r)return n.networkStatusExtraMessage="",n.networkStatusExtraMessageDetail="",r.networkStatus=Z.WaitingForQueue,T({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:n,step:r}),t({...e(),swapDetails:n}),{swap:n,step:r}}i($e,"markRunningSwapAsDependsOnOtherQueues");async function pe(e){return new Promise(t=>setTimeout(t,e))}i(pe,"delay");var Bt=i((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function Qt(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}i(Qt,"isWalletNull");function P(e){let t=y(e),n=U(e,t);if(!n)return{type:null,network:null,address:null};let r=Bt(e,n),o=e.wallets[n];return{type:r||null,network:n,address:o?o.address:null}}i(P,"getRequiredWallet");async function Xt(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}i(Xt,"getChainId");async function Ve(e,t,n,r,o){if(Qt(n))return!1;let a=U(e,t);if(!a)return!1;if(r.evmBasedChains.find(l=>l.name===a)){try{let l=e.wallets[a];if(l){let c=Mt(o,l.walletType),u=await Xt(c);if(u){let s=Ut(u,Object.entries(r.blockchains).map(([,d])=>d));if(s&&s.toLowerCase()===a.toLowerCase())return!0;if(s&&s.toLowerCase()!==a.toLowerCase())return!1}}}catch(l){console.log(l)}return!1}return!0}i(Ve,"isNetworkMatchedForTransaction");var Ye=i((e,t)=>(e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function de(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,o=y(r);o?.networkStatus&&(o.networkStatus=null,n({...t(),swapDetails:r}))}i(de,"resetNetworkStatus");function Je(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:o}=t,{getStorage:a,setStorage:l}=e,c=a().swapDetails,u=y(c);u?.networkStatus&&(c.networkStatusExtraMessage=n,c.networkStatusExtraMessageDetail=r,u.networkStatus=o,l({...a(),swapDetails:c}))}i(Je,"updateNetworkStatus");function je(e,t){let{context:n,queue:r}=t,o=r.getStorage().swapDetails,{ok:a,reason:l}=xe(o,n.state);if(!a){let c=y(o),{type:u,address:s}=P(o);T({event:{type:"tx_execution_blocked",...l==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:s??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:u??void 0,requiredAccount:s??void 0}},swap:o,step:c}),Lt({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},Oe,e.reason.description);return}r.unblock()}i(je,"onBlockForConnectWallet");function ze(e,t){let{context:n,queue:r}=t,o=r.getStorage().swapDetails,a=y(o);if(!a||o.status!=="running")return;let l=Ke({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)}),c=U(o,a),u=P(o).type,s=u?n.state(u).network:void 0;l&&T({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:c??void 0,currentNetwork:s??void 0},swap:l.swap,step:l.step});let{type:d,network:p}=P(o);if(d&&p&&n.canSwitchNetworkTo(d,p)){let E=n.switchNetwork(d,p);E&&E.then(()=>{r.unblock()}).catch(S=>{console.log({error:S})})}}i(ze,"onBlockForChangeNetwork");function Ze(e,t){let{getBlockedTasks:n,forceExecute:r,queue:o,manager:a,context:l}=t,{setClaimer:c,claimedBy:u,reset:s}=le(),d=n().filter(m=>m.reason.reason==="depends_on_other_queues");if(d.length===0)return;let p=u(),E=!!p;if(p===o.id)return;if(E){$e({getStorage:o.getStorage.bind(o),setStorage:o.setStorage.bind(o)});return}let S=d.find(m=>m.queue_id===t.queue_id);S||(S=d[0]),c(S.queue_id);let w=S.storage.get(),{type:k,network:g,address:f}=P(w.swapDetails);r(S.queue_id,{claimedBy:u(),resetClaimedBy:()=>{s(),Re(`${k}-${g}:${f}`,a,l.canSwitchNetworkTo)}})}i(Ze,"onDependsOnOtherQueues");function xe(e,t){let{type:n,address:r}=P(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let o=t(n),{accounts:a,connected:l}=o,c=a||[];return l?{ok:c.some(s=>{let{address:d}=bt(s);return r.toLocaleLowerCase()===d.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}i(xe,"isRequiredWalletConnected");function et(e){let{setTransactionDataByHash:t}=ce(),{getStorage:n,setStorage:r,failed:o,next:a,schedule:l,context:c}=e,{meta:u,getSigners:s,isMobileWallet:d}=c,p=n().swapDetails,E=y(p),S=G(p,E),w=d(S?.walletType),k=we(p,E),g=s(S.walletType),f=M(p,E),m=i(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),C=F(E),A=C?.type,x=j(E);if(!C||!A){let N="Unexpected Error: tx is null!",D=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:N,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return T({event:{type:"failed",reason:N,reasonCode:"CLIENT_UNEXPECTED_BEHAVIOUR"},...D}),o(),m()}let h=u.blockchains?.[C.blockChain]?.chainId,v=typeof p.hasAlreadyProceededToSign=="boolean",I,q,b,V,K;x?(b=`Waiting for approval of ${E?.fromSymbol} coin ${w?"on your mobile phone!":""}`,V="Waiting for approve transaction to be mined and confirmed successfully",q="waitingForApproval",I=void 0,K="tx_execution"):v?(b="Transaction is expired. Please try again.",q="failed",I="failed",V="",K="failed"):(b="Executing transaction ...",q="running",I="running",V=`${w?"Check your mobile phone!":""}`,K="tx_execution");let Se=O({getStorage:n,setStorage:r,nextStepStatus:q,nextStatus:I,message:b,details:V,hasAlreadyProceededToSign:x?void 0:v,errorCode:v?"TX_EXPIRED":void 0});if(K==="failed"?T({event:{type:K,reason:b,reasonCode:Se.failureType??R},...Se}):T({event:{type:K,status:"send_tx"},...Se}),v){o(),m();return}g.getSigner(A).signAndSendTx(C,k,h).then(({hash:N,response:D})=>{let te=J(N,f,u.blockchains);Ft(e,N,te&&(!D||D&&!D.hashRequiringUpdate)?{url:te,description:x?"Approve":"Swap"}:void 0),D&&t(N,{response:D}),l("CHECK_TRANSACTION_STATUS"),a(),m()},N=>{if(p.status==="failed")return;let{extraMessage:D,extraMessageDetail:te,extraMessageErrorCode:gt}=Q(N);Ge(N?.trace?.stack||N?.trace||N?.root||N,p,E,S?.walletType);let Ne=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:D,details:te,errorCode:gt});T({event:{type:"failed",reason:D,reasonCode:Ne.failureType??R},...Ne}),o(),m()})}i(et,"signTransaction");function tt(e){let{wallet_network:t,evmChains:n,manager:r}=e,[o,a]=qe(t);n.some(l=>l.name==a)&&r?.getAll().forEach(l=>{let c=l.list.getStorage(),u=c?.swapDetails;if(u&&u.status==="running"){let s=y(u);if(s){let d=c?.swapDetails.wallets[s.fromBlockchain]?.walletType,p=Object.keys(l.list.state.tasks).some(S=>{let w=l.list.state.tasks[S];return w.status===Ce.BLOCKED&&["waiting_for_connecting_wallet"].includes(w.blockedFor?.reason)}),E=U(u,s);if(d===o&&p&&E!=a){let S=l.list,{type:w}=P(u),k=oe(w);l.list.block({reason:{reason:"waiting_for_network_change",description:k},silent:!0});let g=Ke({getStorage:S.getStorage.bind(S),setStorage:S.setStorage.bind(S)});g&&T({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:a,requiredNetwork:E??void 0},swap:g.swap,step:g.step})}}}})}i(tt,"checkWaitingForConnectWalletChange");function ke(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let o=t.list.state.tasks[r];return o.status===Ce.BLOCKED&&["waiting_for_network_change","depends_on_other_queues"].includes(o.blockedFor?.reason)})){let r=t.list.getStorage()?.swapDetails;if(r.status==="running"){let{type:o}=P(r),a=re(o);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:a}})}}})}i(ke,"checkWaitingForNetworkChange");function Gt(e){let t=e?.getAll()||new Map,n=[];return t.forEach(r=>{let a=r.list.getStorage()?.swapDetails;!a||a.status!=="running"||n.push(a)}),n}i(Gt,"getRunningSwaps");function Ht(e){e.forEach(t=>{let n=y(t),r="tx_execution_blocked",o;n?.networkStatus===Z.WaitingForQueue?o="waiting_for_queue":t?.status==="running"&&(o="waiting_for_wallet_connect"),r&&T&&T({event:{type:r,status:o??"waiting_for_queue"},swap:t,step:n})})}i(Ht,"resetRunningSwapNotifsOnPageLoad");function Re(e,t,n,r={fallbackToOnlyWallet:!0}){let[o,a]=qe(e);if(!o||!a)return;let l=[],c=[];t?.getAll().forEach(s=>{if(s.status===Ce.BLOCKED){let d=s.list.getStorage(),p=d?.swapDetails;if(p&&p.status==="running"){let E=y(p);E&&(U(p,E)==a&&d?.swapDetails.wallets[a]?.walletType===o?l.push(s.list):d?.swapDetails.wallets[E.fromBlockchain]?.walletType===o&&c.push(s.list))}}});let u;if(l.length>0){if(u=l[0],l.length>1)for(let s=1;s<l.length;s++){let d=l[s];$e({getStorage:d.getStorage.bind(d),setStorage:d.setStorage.bind(d)})}}else c.length>0&&r.fallbackToOnlyWallet&&(u=c[0]);n?.(o,a)?u?.checkBlock():u?.unblock()}i(Re,"retryOn");function nt(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}i(nt,"isNeedBlockQueueForParallel");async function rt(e){let t=await e;if(!t.ok||!t.transaction)throw _.CreateTransaction(t.error||"bad response from create tx endpoint");return t}i(rt,"throwOnOK");function qt(e,t){let{reset:n}=le();e.actions.cancel();let r=O({getStorage:e.actions.getStorage,setStorage:e.actions.setStorage,message:"Swap canceled by user.",details:"Warning: If you've already signed and sent a transaction, it won't be affected, but next swap steps will not be executed.",nextStatus:"failed",nextStepStatus:"failed",errorCode:"USER_CANCEL"});return T({event:{type:"failed",reasonCode:"USER_CANCEL",reason:r.swap.extraMessage??void 0},swap:r.swap,step:r.step}),n(),t&&t?.retry(),r}i(qt,"cancelSwap");function z(e){return e.slice().reverse().find(t=>t.status==="success")}i(z,"getLastSuccessfulStep");function Qe(e){return e.slice().reverse().find(t=>t.status==="failed")}i(Qe,"getFailedStep");function Kt(e){let{transaction:t}=e;return t?.type===W.EVM&&t.isApprovalTx||t?.type===W.STARKNET&&t.isApprovalTx||t?.type===W.TRON&&t.isApprovalTx}i(Kt,"isApprovalTX");var ot=5e3,$t=2e3;async function Vt({getStorage:e,setStorage:t,next:n,schedule:r,retry:o,failed:a,context:l}){let c=e().swapDetails,{meta:u}=l,s=y(c);if(!s?.executedTransactionId)return;let d=F(s),p=s.executedTransactionId,E=!1,S=null,w=null,{getTransactionDataByHash:k,setTransactionDataByHash:g}=ce();try{let A=_e(s),x=G(c,s);A&&x&&(w=l.getSigners(x.walletType).getSigner(A))}catch{}try{let{response:A,receiptReceived:x}=k(p);if(w?.wait&&!x){let h=d?.blockChain&&u.blockchains?.[d?.blockChain]?.chainId||void 0,{hash:v,response:I}=await w.wait(p,h,A);if(v!==p){s.executedTransactionId=v||s.executedTransactionId;let q=M(c,s),b;!!Object.keys(u.blockchains).length&&(b=J(s.executedTransactionId,q,u.blockchains)),b&&s.explorerUrl&&s.explorerUrl?.length>=1&&(s.explorerUrl[s.explorerUrl.length-1]={url:b,description:"Replaced Swap"}),p=s.executedTransactionId,v&&I&&g(v,{response:I})}else g(v,{receiptReceived:!0})}}catch(A){let{extraMessage:x,extraMessageDetail:h,extraMessageErrorCode:v}=Q(A),I=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:x,details:h,errorCode:v});T({event:{type:"failed",reason:x,reasonCode:I.failureType??R},...I}),E=!0}try{S=await B().checkStatus({requestId:c.requestId,txId:p,step:s.id})}catch{await pe(ot),o();return}if(E)return a();if(s?.status==="failed")return;let f=S?.outputAmount||(s.outputAmount?s.outputAmount:null),m=s.outputAmount||null;c.extraMessage=S?.extraMessage||c.extraMessage,c.extraMessageSeverity="info",c.extraMessageDetail="",s.status=S?.status||s.status,s.diagnosisUrl=S?.diagnosisUrl||s.diagnosisUrl||null,s.outputAmount=f||s.outputAmount,s.explorerUrl=S?.explorerUrl||s.explorerUrl,s.internalSteps=S?.steps||null;let C=S?.newTx;if(C&&(s.status="created",s.executedTransactionId=null,s.executedTransactionTime=null,ue(s,C)),m===null&&f!==null?T({event:{type:"output_revealed",outputAmount:f},swap:c,step:s}):m===null&&f===null&&T({event:{type:"check_status"},swap:c,step:s}),s.status==="success"){let A=Le(c,s);c.extraMessageDetail="",c.extraMessage=A?`starting next step: ${A.swapperId}: ${A.fromBlockchain} -> ${A.toBlockchain}`:"",T({event:{type:"succeeded",outputAmount:s.outputAmount??""},swap:c,step:s})}else s.status==="failed"&&(c.extraMessage="Transaction failed in blockchain",c.extraMessageSeverity="error",c.extraMessageDetail=S?.extraMessage||"",c.status="failed",c.finishTime=new Date().getTime().toString());t({...e(),swapDetails:c}),S?.status==="failed"?a():S?.status==="success"||S?.status==="running"&&S.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await pe(ot),o())}i(Vt,"checkTransactionStatus");async function Yt({getStorage:e,setStorage:t,next:n,schedule:r,retry:o,failed:a,context:l}){let c=e().swapDetails,{meta:u}=l,{getTransactionDataByHash:s,setTransactionDataByHash:d}=ce(),p=y(c);if(!p){console.log("ignore check status, current step is null");return}let E=F(p);if(!p?.executedTransactionId)return;let S=p.executedTransactionId,w=null;try{let g=_e(p),f=G(c,p);g&&f&&(w=l.getSigners(f.walletType).getSigner(g))}catch{}try{let{response:g,receiptReceived:f}=s(S);if(w?.wait&&!f){let m=E?.blockChain&&u.blockchains?.[E?.blockChain]?.chainId||void 0,{hash:C,response:A}=await w.wait(S,m,g);if(C!==S){p.executedTransactionId=C||p.executedTransactionId;let x=M(c,p),h;!!Object.keys(u.blockchains).length&&(h=J(p.executedTransactionId,x,u.blockchains)),h&&p.explorerUrl&&p.explorerUrl?.length>=1&&(p.explorerUrl[p.explorerUrl.length-1]={url:h,description:"Replaced Approve"}),S=p.executedTransactionId,C&&A&&d(C,{response:A})}else d(C,{receiptReceived:!0})}}catch(g){let{extraMessage:f,extraMessageDetail:m,extraMessageErrorCode:C}=Q(g),A=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:f,details:m,errorCode:C});return T({event:{type:"failed",reason:f,reasonCode:A.failureType??R},...A}),a()}let k=!1;try{let g=await B().checkApproval(c.requestId,p.executedTransactionId);if(p?.status==="failed")return;if(k=g.isApproved,!k&&(g.txStatus==="failed"||g.txStatus==="success")){let f,m;g.txStatus==="failed"?(f="Approve transaction failed",m="Smart contract approval tx failed in blockchain."):(f="Not enough approval",g.requiredApprovedAmount&&g.currentApprovedAmount?m=`Required approval: ${g.requiredApprovedAmount}, current approval: ${g.currentApprovedAmount}`:m="You still don't have enough approval for this swap.");let C=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:f,details:m});T({event:{type:"failed",reason:f,reasonCode:C.failureType??R},...C}),a()}else k||T({event:{type:"check_status"},swap:c,step:p})}catch{k=!1}k?(p.status="approved",c.extraMessage=`Spending ${p.fromSymbol} approved successfully.`,c.extraMessageDetail=null,c.extraMessageSeverity="success",p.evmApprovalTransaction=null,p.executedTransactionId=null,p.executedTransactionTime=null,p.starknetApprovalTransaction=null,p.tronApprovalTransaction=null,t({...e(),swapDetails:c}),T({event:{type:"approval_tx_succeeded"},swap:c,step:p}),r("SCHEDULE_NEXT_STEP"),n()):(await pe($t),o())}i(Yt,"checkApprovalStatus");async function at(e){let t=e.getStorage().swapDetails,n=y(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}de(e),n.status==="running"?await Vt(e):n.status==="waitingForApproval"&&await Yt(e)}i(at,"checkStatus");async function st(e){let{setStorage:t,getStorage:n,next:r,schedule:o}=e,a=n().swapDetails,l=y(a);if(!F(l)){T({event:{type:"tx_execution",status:"create_tx"},swap:a,step:l});let u={requestId:a.requestId,step:l.id,userSettings:{slippage:a.settings.slippage,infiniteApprove:a.settings.infiniteApprove},validations:{balance:a.validateBalanceOrFee,fee:a.validateBalanceOrFee}};try{let{transaction:s}=await rt(B().createTransaction(u));s&&ue(l,s),t({...n(),swapDetails:a}),o("EXECUTE_TRANSACTION"),r()}catch(s){a.status="failed",a.finishTime=new Date().getTime().toString();let{extraMessage:d,extraMessageDetail:p}=Q(s),E=O({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:d,details:p,errorCode:"FETCH_TX_FAILED"});T({event:{type:"failed",reason:d,reasonCode:E.failureType??R},...E}),e.failed()}}}i(st,"createTransaction");import{PendingSwapNetworkStatus as Jt}from"rango-types";async function it(e){let{getStorage:t,context:n}=e,{meta:r,wallets:o,providers:a}=n,{claimedBy:l}=le(),c=n.claimedBy===n._queue?.id,u=i(g=>{e.block(g),c&&e.context.resetClaimedBy&&e.context.resetClaimedBy()},"requestBlock"),s=t().swapDetails,d=y(s);if(de(e),!xe(s,n.state).ok){let{type:g,address:f}=P(s),m=o?.blockchains?.find(x=>!x.accounts?.find(h=>h.walletType===g)),C=!o||m?re(g):Pe(g,f),A={reason:"waiting_for_connecting_wallet",description:C};u(A);return}let E=await Ve(s,d,o,r,a);if(!!l()&&!c&&!E){let g=me,f={reason:"depends_on_other_queues",details:g};u(f);return}else if(!E){let g=M(s,d),f=oe(g),m={reason:"waiting_for_network_change",details:f};u(m);return}if(Je(e,{message:"",details:"Wallet network changed successfully",status:Jt.NetworkChanged}),nt(d)&&!c){let g={reason:"depends_on_other_queues",description:me,details:{}};u(g);return}et(e)}i(it,"executeTransaction");function lt({schedule:e,next:t,failed:n,setStorage:r,getStorage:o}){let a=o().swapDetails,l=y(a),c=a.steps.find(u=>u.status==="failed");if(l&&!c){if(Ye(a,l))return e("EXECUTE_TRANSACTION"),t();if(l?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();a.status="running",r({...o(),swapDetails:a}),T({event:{type:"started"},swap:a,step:l}),e("CREATE_TRANSACTION"),t()}else a.status=c?"failed":"success",a.finishTime=new Date().getTime().toString(),r({...o(),swapDetails:a}),T({...c?{event:{type:"failed",reason:a.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED"}}:{event:{type:"succeeded",outputAmount:z(a.steps)?.outputAmount??""}},swap:a,step:null}),c?n():t()}i(lt,"scheduleNextStep");function ct({schedule:e,next:t,getStorage:n}){let r=n().swapDetails;T({event:{type:"started"},swap:r,step:null}),e("SCHEDULE_NEXT_STEP"),t()}i(ct,"start");var ut={name:"swap",actions:{["START"]:ct,["SCHEDULE_NEXT_STEP"]:lt,["CREATE_TRANSACTION"]:st,["EXECUTE_TRANSACTION"]:it,["CHECK_TRANSACTION_STATUS"]:at},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?je(e,t):e.reason.reason==="waiting_for_network_change"?ze(e,t):e.reason.reason==="depends_on_other_queues"&&Ze(e,t)}};import{useManager as tn}from"@rango-dev/queue-manager-react";import{useEffect as he,useState as nn}from"react";import{DB_NAME as jt,Persistor as zt,Status as ee}from"@rango-dev/queue-manager-core";import{v4 as Zt}from"uuid";var pt="migratedToQueueManager";function ve(){return!!window.localStorage.getItem(pt)}i(ve,"migrated");async function en(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(jt)}catch{return!1}}i(en,"hasQueueManagerOnIDB");async function dt(){let e=window.localStorage.getItem("pendingSwaps"),t=await en();if(!e||ve()||t)return!0;let n=JSON.parse(e),r=[];n.forEach(l=>{if(l.status==="running"){let c=Zt(),u={id:l.requestId,createdAt:Number(l.creationTime),name:"swap",status:ee.RUNNING,storage:{swapDetails:l},state:{status:ee.RUNNING,activeTaskIndex:0,tasks:{[c]:{blockedFor:null,status:ee.RUNNING}}},tasks:[{id:c,action:"SCHEDULE_NEXT_STEP"}]};r.push(u)}else{let c=l.status==="success"?ee.SUCCESS:ee.FAILED,u={id:l.requestId,createdAt:Number(l.creationTime),name:"swap",status:c,storage:{swapDetails:l},state:{status:c,activeTaskIndex:0,tasks:{}},tasks:[]};r.push(u)}});let o=new zt,a=r.map(async l=>o.insertQueue(l));return await Promise.all(a),window.localStorage.setItem(pt,"1"),!0}i(dt,"migration");var St=0;function rn(){let e=ve(),[t,n]=nn(e);return he(()=>{(async()=>St||(St=1,dt().finally(()=>{n(!0)})))()},[]),{status:t}}i(rn,"useMigration");function on(e){let{manager:t}=tn();he(()=>{e.lastConnectedWallet&&(tt({evmChains:e.evmChains,wallet_network:e.lastConnectedWallet,manager:t}),Re(e.lastConnectedWallet,t,e.canSwitchNetworkTo))},[e.lastConnectedWallet]),he(()=>{e.disconnectedWallet&&(ke(t),e.clearDisconnectedWallet())},[e.disconnectedWallet])}i(on,"useQueueManager");function an(){return ie}i(an,"useEvents");function io(e){return Ie(e),ut}i(io,"makeQueueDefinition");export{Te as MainEvents,se as MessageSeverity,_ as PrettyError,fe as RouteEventType,L as StepEventType,ne as StepExecutionBlockedEventStatus,Y as StepExecutionEventStatus,It as calculatePendingSwap,qt as cancelSwap,ke as checkWaitingForNetworkChange,U as getCurrentBlockchainOfOrNull,y as getCurrentStep,z as getLastSuccessfulStep,G as getRelatedWallet,Ae as getRelatedWalletOrNull,P as getRequiredWallet,Gt as getRunningSwaps,Kt as isApprovalTX,io as makeQueueDefinition,Q as prettifyErrorMessage,Ht as resetRunningSwapNotifsOnPageLoad,O as updateSwapStatus,an as useEvents,rn as useMigration,on as useQueueManager};
2
2
  //# sourceMappingURL=index.js.map