@rango-dev/queue-manager-rango-preset 0.5.1-next.8 → 0.5.1-next.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"checkStatus.d.ts","sourceRoot":"","sources":["../../src/actions/checkStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAWhE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAkY1E;;;;;;;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,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAWhE,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACZ,MAAM,UAAU,CAAC;AA4ZlB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -1 +1 @@
1
- {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../../src/actions/createTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAY1E;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../../src/actions/createTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,WAAW,EAEZ,MAAM,UAAU,CAAC;AAclB;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAmEf"}
@@ -9,5 +9,5 @@ import { SwapActionTypes, SwapQueueContext, SwapStorage } from '../types';
9
9
  *
10
10
  *
11
11
  */
12
- export declare function scheduleNextStep({ schedule, next, failed, setStorage, getStorage, context, }: ExecuterActions<SwapStorage, SwapActionTypes, SwapQueueContext>): void;
12
+ export declare function scheduleNextStep({ schedule, next, failed, setStorage, getStorage, }: ExecuterActions<SwapStorage, SwapActionTypes, SwapQueueContext>): void;
13
13
  //# sourceMappingURL=scheduleNextStep.d.ts.map
@@ -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,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG1E;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,GACR,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAwCxE"}
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,4 +1,4 @@
1
1
  import { ExecuterActions } from '@rango-dev/queue-manager-core';
2
2
  import { SwapActionTypes, SwapStorage } from '../types';
3
- export declare function start({ schedule, next, }: ExecuterActions<SwapStorage, SwapActionTypes>): void;
3
+ export declare function start({ schedule, next, getStorage, }: ExecuterActions<SwapStorage, SwapActionTypes>): void;
4
4
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/actions/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,IAAI,GACL,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,IAAI,CAGtD"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/actions/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAiB,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvE,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,IAAI,EACJ,UAAU,GACX,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,IAAI,CAOtD"}
@@ -3,4 +3,5 @@ export declare const ERROR_MESSAGE_WAIT_FOR_WALLET = "Waiting for connecting wal
3
3
  export declare const ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET: (type: string | null, address: string | null) => string;
4
4
  export declare const ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION: (type: string | null) => string;
5
5
  export declare const ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK: (network: string | null) => string;
6
+ export declare const DEFAULT_ERROR_CODE = "CLIENT_UNEXPECTED_BEHAVIOUR";
6
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qCAAqC,wCACX,CAAC;AACxC,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAC7E,eAAO,MAAM,sDAAsD,SAC3D,MAAM,GAAG,IAAI,WACV,MAAM,GAAG,IAAI,KACrB,MAGC,CAAC;AACL,eAAO,MAAM,yCAAyC,SAC9C,MAAM,GAAG,IAAI,KAClB,MAGqD,CAAC;AACzD,eAAO,MAAM,qCAAqC,YACvC,MAAM,GAAG,IAAI,KACrB,MAAqD,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qCAAqC,wCACX,CAAC;AACxC,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAC7E,eAAO,MAAM,sDAAsD,SAC3D,MAAM,GAAG,IAAI,WACV,MAAM,GAAG,IAAI,KACrB,MAGC,CAAC;AACL,eAAO,MAAM,yCAAyC,SAC9C,MAAM,GAAG,IAAI,KAClB,MAGqD,CAAC;AACzD,eAAO,MAAM,qCAAqC,YACvC,MAAM,GAAG,IAAI,KACrB,MAAqD,CAAC;AAEzD,eAAO,MAAM,kBAAkB,gCAAgC,CAAC"}
package/dist/helpers.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { ExecuterActions, QueueInfo } from '@rango-dev/queue-manager-core';
2
- import { SwapActionTypes, SwapQueueContext, SwapQueueDef, SwapStorage } from './types';
2
+ import { ArrayElement, SwapActionTypes, SwapQueueContext, SwapQueueDef, SwapStorage, Step } from './types';
3
3
  import { Meta, Network, WalletState, WalletType } from '@rango-dev/wallets-shared';
4
4
  import { Providers } from '@rango-dev/wallets-core';
5
5
  import { Transaction, TransactionType, EvmBlockchainMeta, CreateTransactionResponse } from 'rango-sdk';
6
6
  import { Manager } from '@rango-dev/queue-manager-core';
7
- import { EventType, PendingSwap, PendingSwapNetworkStatus, PendingSwapStep, StepStatus, SwapStatus, Wallet } from './shared';
7
+ import { PendingSwap, PendingSwapNetworkStatus, PendingSwapStep, StepStatus, SwapStatus, Wallet } from './shared';
8
8
  import { APIErrorCode, SignerErrorCode } from 'rango-types/lib';
9
9
  type WhenTaskBlocked = Parameters<NonNullable<SwapQueueDef['whenTaskBlocked']>>;
10
10
  type WhenTaskBlockedEvent = WhenTaskBlocked[0];
@@ -89,13 +89,14 @@ export declare function updateSwapStatus({ getStorage, setStorage, nextStatus, n
89
89
  }): {
90
90
  swap: PendingSwap;
91
91
  step: PendingSwapStep | null;
92
+ failureType?: APIErrorCode;
92
93
  };
93
94
  /**
94
95
  *
95
96
  * Set current step transaction hash, update pending swap status, and notify user if needed
96
97
  *
97
98
  */
98
- export declare function setStepTransactionIds({ getStorage, setStorage }: ExecuterActions<SwapStorage, SwapActionTypes>, txId: string | null, notifier: SwapQueueContext['notifier'], eventType?: EventType, explorerUrl?: {
99
+ export declare function setStepTransactionIds({ getStorage, setStorage }: ExecuterActions<SwapStorage, SwapActionTypes>, txId: string | null, explorerUrl?: {
99
100
  url?: string;
100
101
  description?: string;
101
102
  }): void;
@@ -116,9 +117,7 @@ export declare function markRunningSwapAsSwitchingNetwork({ getStorage, setStora
116
117
  * We are marking the queue as it depends on other queues to be run (on Parallel mode)
117
118
  * By calling this function some related fields will be updated to show a correct message and state for notfiying the user.
118
119
  */
119
- export declare function markRunningSwapAsDependsOnOtherQueues({ getStorage, setStorage, notifier, }: Pick<ExecuterActions, 'getStorage' | 'setStorage'> & {
120
- notifier: SwapQueueContext['notifier'];
121
- }): {
120
+ export declare function markRunningSwapAsDependsOnOtherQueues({ getStorage, setStorage, }: Pick<ExecuterActions, 'getStorage' | 'setStorage'>): {
122
121
  swap: PendingSwap;
123
122
  step: PendingSwapStep;
124
123
  } | undefined;
@@ -199,7 +198,6 @@ export declare function checkWaitingForConnectWalletChange(params: {
199
198
  wallet_network: string;
200
199
  manager?: Manager;
201
200
  evmChains: EvmBlockchainMeta[];
202
- notifier: SwapQueueContext['notifier'];
203
201
  }): void;
204
202
  export declare function checkWaitingForNetworkChange(manager?: Manager): void;
205
203
  /**
@@ -218,7 +216,7 @@ export declare function getRunningSwaps(manager: Manager): PendingSwap[];
218
216
  * @param notifier
219
217
  * @returns
220
218
  */
221
- export declare function resetRunningSwapNotifsOnPageLoad(runningSwaps: PendingSwap[], notifier: SwapQueueContext['notifier']): void;
219
+ export declare function resetRunningSwapNotifsOnPageLoad(runningSwaps: PendingSwap[]): void;
222
220
  /**
223
221
  *
224
222
  * Try to run blocked tasks by wallet and network name.
@@ -230,7 +228,7 @@ export declare function resetRunningSwapNotifsOnPageLoad(runningSwaps: PendingSw
230
228
  * @param manager
231
229
  * @returns
232
230
  */
233
- export declare function retryOn(wallet_network: string, notifier: SwapQueueContext['notifier'], manager?: Manager, canSwitchNetworkTo?: (type: WalletType, network: Network) => boolean, options?: {
231
+ export declare function retryOn(wallet_network: string, manager?: Manager, canSwitchNetworkTo?: (type: WalletType, network: Network) => boolean, options?: {
234
232
  fallbackToOnlyWallet: boolean;
235
233
  }): void;
236
234
  export declare function isNeedBlockQueueForParallel(step: PendingSwapStep): boolean;
@@ -239,5 +237,12 @@ export declare function cancelSwap(swap: QueueInfo, manager?: Manager): {
239
237
  swap: PendingSwap;
240
238
  step: PendingSwapStep | null;
241
239
  };
240
+ export declare function getLastSuccessfulStep<T extends {
241
+ status: StepStatus;
242
+ }[]>(steps: T): ArrayElement<T> | undefined;
243
+ export declare function getFailedStep<T extends {
244
+ status: StepStatus;
245
+ }[]>(steps: T): ArrayElement<T> | undefined;
246
+ export declare function isApprovalTX(step: Step): boolean;
242
247
  export {};
243
248
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,SAAS,EAGV,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,IAAI,EACJ,OAAO,EAEP,WAAW,EACX,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAsB,MAAM,yBAAyB,CAAC;AAExE,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AAOnB,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EACL,SAAS,EAMT,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,UAAU,EACV,UAAU,EACV,MAAM,EAGP,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhE,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;EAWjE;AAED;;;;;;;GAOG;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAY1D;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SAAU,WAAW,KAAG,eAAe,GAAG,IAMpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gBACd,eAAe,KAC3B,WAAW,GAAG,IAuBhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gBACd,eAAe,eACf,WAAW,KACvB,eA2CF,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;CAC9B,CAqDA;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,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,WAAW,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,IAAI,CA+BN;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,CA0BN;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,CA4BZ;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,EACpD,UAAU,EACV,UAAU,EACV,QAAQ,GACT,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG;IACtD,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACxC,GACG;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;CACvB,GACD,SAAS,CAwBZ;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAElD;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;;;;;GAKG;AAEH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,GAAG,CAQ1E;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,CA0ClB;AAED,eAAO,MAAM,kBAAkB,SACvB,WAAW,QACX,eAAe,KACpB,OAcF,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,CA+BN;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,mBAAmB,GACxB,IAAI,CAqCN;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,CAejE;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,IAAI,CAyKN;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACxC,GAAG,IAAI,CA6DP;AAED,wBAAgB,4BAA4B,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAgCpE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,CAW/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,WAAW,EAAE,EAC3B,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,QAkBvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACtC,OAAO,CAAC,EAAE,OAAO,EACjB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,EACpE,OAAO;;CAAiC,GACvC,IAAI,CAuDN;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,CAkBA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/hooks.d.ts CHANGED
@@ -15,5 +15,6 @@ declare function useMigration(): {
15
15
  *
16
16
  */
17
17
  declare function useQueueManager(params: UseQueueManagerParams): void;
18
- export { useQueueManager, useMigration };
18
+ declare function useEvents(): import("mitt").Emitter<import("./types").RouteExecutionEvents>;
19
+ export { useQueueManager, useMigration, useEvents };
19
20
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIhD;;;;;GAKG;AACH,iBAAS,YAAY,IAAI;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAmBA;AAED;;;;;GAKG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CA+B5D;AAED,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAKhD;;;;;GAKG;AACH,iBAAS,YAAY,IAAI;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAmBA;AAED;;;;;GAKG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAyB5D;AAED,iBAAS,SAAS,mEAEjB;AAED,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { Configs } from './configs';
2
2
  import { SwapQueueDef } from './types';
3
3
  export { PrettyError, prettifyErrorMessage } from './shared-errors';
4
- export type { SwapQueueContext, SwapStorage } from './types';
5
- export type { PendingSwapWithQueueID, PendingSwapStep, PendingSwap, EventType, SwapProgressNotification, } from './shared';
4
+ export type { SwapQueueContext, SwapStorage, RouteExecutionEvents, Route, Step, RouteEvent, StepEvent, EventSeverity, } from './types';
5
+ export { MainEvents, StepEventType, RouteEventType, StepExecutionEventStatus, StepExecutionBlockedEventStatus, } from './types';
6
+ export type { PendingSwapWithQueueID, PendingSwapStep, PendingSwap, EventType, } from './shared';
6
7
  export { getCurrentBlockchainOfOrNull, getRelatedWalletOrNull, getRelatedWallet, MessageSeverity, PendingSwapNetworkStatus, calculatePendingSwap, } from './shared';
7
- export { updateSwapStatus, checkWaitingForNetworkChange, getCurrentStep, getEvmProvider, cancelSwap, getRequiredWallet, getRunningSwaps, splitWalletNetwork, resetRunningSwapNotifsOnPageLoad, } from './helpers';
8
- export { useMigration, useQueueManager } from './hooks';
8
+ export { updateSwapStatus, checkWaitingForNetworkChange, getCurrentStep, getEvmProvider, cancelSwap, getRequiredWallet, getRunningSwaps, splitWalletNetwork, resetRunningSwapNotifsOnPageLoad, isApprovalTX, } from './helpers';
9
+ export { useMigration, useQueueManager, useEvents } from './hooks';
9
10
  export declare function makeQueueDefinition(configs: Configs): SwapQueueDef;
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7D,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,SAAS,EACT,wBAAwB,GACzB,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,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAExD,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,EAAE,OAAO,EAAc,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,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,GACd,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,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gCAAgC,EAChC,YAAY,GACb,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 ot=Object.defineProperty;var l=(e,t)=>ot(e,"name",{value:t,configurable:!0});var st="c6381a79-2817-4602-83bf-6a641a409e32",ie={API_KEY:st};function le(e){return ie[e]||""}l(le,"getConfig");function Ae(e){let t;return typeof structuredClone=="function"?t=structuredClone(e):t=JSON.parse(JSON.stringify(e)),ie=t,ie}l(Ae,"initConfig");import{getBlockChainNameFromId as xt,Networks as At}from"@rango-dev/wallets-shared";import{readAccountAddress as ht}from"@rango-dev/wallets-core";import{TransactionType as I}from"rango-sdk";var ce="Waiting for other swaps to complete",he="Waiting for connecting wallet",_e=l((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),j=l(e=>`Please connect to ${e||"your wallet"} by using bellow button or top right button on page.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),z=l(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK");import{Status as ge}from"@rango-dev/queue-manager-core";import{SignerErrorCode as L,SignerError as it,isSignerErrorCode as lt,isAPIErrorCode as ct}from"rango-types";var ut="Assertion failed (Unexpected behaviour)",pt="Create transaction failed in Rango Server",ye="Input wallet not found",k=class extends Error{constructor(n,r,a,i){super(r);this._isPrettyError=!0;Object.setPrototypeOf(this,k.prototype),k.prototype._isPrettyError=!0,this.code=n,this.detail=i,this.root=a}static isPrettyError(n){return n instanceof k||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 k("CLIENT_UNEXPECTED_BEHAVIOUR",ut,n)}static BadStatusCode(n,r){return new k("TX_FAIL",n,null,`status code = ${r}`)}static CreateTransaction(n){return new k("FETCH_TX_FAILED",pt,null,n)}static WalletMissing(){return new k("CLIENT_UNEXPECTED_BEHAVIOUR",ye,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new k("CLIENT_UNEXPECTED_BEHAVIOUR",ye,null,"Server requested for a blockchain or address not selected by user")}};l(k,"PrettyError");function Ce(e){let t="CLIENT_UNEXPECTED_BEHAVIOUR";try{return e?ct(e)?e:lt(e)?{[L.REJECTED_BY_USER]:"USER_REJECT",[L.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[L.SEND_TX_ERROR]:"SEND_TX_FAILED",[L.NOT_IMPLEMENTED]:t,[L.OPERATION_UNSUPPORTED]:t,[L.UNEXPECTED_BEHAVIOUR]:t}[e]:t:t}catch{return t}}l(Ce,"mapAppErrorCodesToAPIErrorCode");var M=l(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(k.isPrettyError(e))return e.getErrorDetail();if(it.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");import ve from"bignumber.js";import Re from"bignumber.js";var Ne=l((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new Re(e),a=1,i=1e3;for(let s=0;s<60;s++)if(new Re(r.toFixed(s,a)).eq(r)){i=s;break}if(r.gte(1e4))return r.toFormat(0,a);if(r.gte(1e3)||r.gte(100))return r.toFormat(Math.min(i,Math.min(n||100,Math.max(t||0,1))),a);if(r.gte(1))return r.toFormat(Math.min(i,Math.min(n||100,Math.max(t||0,2))),a);if(r.gte(.01))return r.toFormat(Math.min(i,Math.min(n||100,Math.max(t||0,4))),a);for(let s=t||4;s<17;s++)if(r.gte(Math.pow(10,-s)))return r.toFormat(Math.min(i,Math.min(n||100,Math.max(t||0,s))),a);return r.isEqualTo(0)?"0":r.toFormat(Math.min(i,Math.min(n||100,Math.max(t||0,8))),a)},"numberToString");import{isCosmosBlockchain as dt,isEvmBlockchain as gt,isStarknetBlockchain as ft,isTronBlockchain as St}from"rango-types";var Z=(a=>(a.WaitingForConnectingWallet="waitingForConnectingWallet",a.WaitingForQueue="waitingForQueue",a.WaitingForNetworkChange="waitingForNetworkChange",a.NetworkChanged="networkChanged",a))(Z||{}),ee=(a=>(a.error="error",a.warning="warning",a.info="info",a.success="success",a))(ee||{}),H=l((e,t)=>{try{return v(e,t)}catch{return null}},"getCurrentBlockchainOfOrNull"),v=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;if(n)return n;let r=t.transferTransaction?.fromWalletAddress;if(!r)throw k.BlockchainMissing();let a=Object.keys(e.wallets).find(i=>e.wallets[i]?.address===r)||null;if(a==null)throw k.BlockchainMissing();return a},"getCurrentBlockchainOf"),Tt=l(e=>{if(dt(e))return e.info?.explorerUrlToTx;if(gt(e)||ft(e)||St(e))return e.info.transactionUrl},"getBlockchainMetaExplorerBaseUrl"),G=l((e,t,n)=>{let r=n[t],a=Tt(r);if(a)return a.indexOf("/{txHash}")!==-1?a.replace("{txHash}",e?.toLowerCase()):`${a}/${e?.toLowerCase()}`},"getScannerUrl");function Ie(e,t){return e.steps.find(n=>n.status!=="failed"&&n.status!=="success"&&n.id!==t.id)||null}l(Ie,"getNextStep");var ue=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||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw k.WalletMissing();return n.address},"getCurrentAddressOf");function D(e,t){let n=ue(e,t),r=Object.keys(e.wallets).map(o=>({k:o,v:e.wallets[o]})).find(({v:o})=>o.address===n)||null,a=r?.k||null,i=r?.v||null,s=i?.walletType;if(i===null)throw k.AssertionFailed(`Wallet for source ${a} not passed: walletType: ${s}`);return i}l(D,"getRelatedWallet");function pe(e,t){try{return D(e,t)}catch{return null}}l(pe,"getRelatedWalletOrNull");var wt=l((e,t,n,r)=>r?.find(i=>i.blockchain===e&&i.symbol?.toUpperCase()===t?.toUpperCase()&&i.address===n)?.usdPrice||null,"getUsdPrice");function mt(e,t){let n=new ve(0);for(let r=0;r<e.fee.length;r++){let a=e.fee[r];if(a.expenseType==="DECREASE_FROM_OUTPUT")continue;let i=wt(a.asset.blockchain,a.asset.symbol,a.asset.address,t);n=n.plus(new ve(a.amount).multipliedBy(i||0))}return n}l(mt,"getUsdFeeOfStep");function Et(e,t,n,r,a,i){let s=t.result;if(!s)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:s,validateBalanceOrFee:a,steps:t.result?.swaps?.map((o,u)=>({id:u+1,fromBlockchain:o.from.blockchain,fromBlockchainLogo:o.from.blockchainLogo,fromLogo:o.from.logo,fromSymbol:o.from.symbol,fromSymbolAddress:o.from.address,fromDecimals:o.from.decimals,fromAmountPrecision:o.fromAmountPrecision,fromAmountMinValue:o.fromAmountMinValue,fromAmountMaxValue:o.fromAmountMaxValue,fromAmountRestrictionType:o.fromAmountRestrictionType,toBlockchain:o.to.blockchain,toBlockchainLogo:o.to.blockchainLogo,toSymbol:o.to.symbol,toSymbolAddress:o.to.address,toDecimals:o.to.decimals,toLogo:o.to.logo,swapperId:o.swapperId,swapperLogo:o.swapperLogo,swapperType:o.swapperType,expectedOutputAmountHumanReadable:o.toAmount,outputAmount:"",feeInUsd:i?Ne(mt(o,i?.tokens),null,8):null,estimatedTimeInSeconds:o.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,hasAlreadyProceededToSign:!1}))||[]}}l(Et,"calculatePendingSwap");import*as Pe from"@sentry/browser";function Me(e,t,n,r){try{Pe.captureException(e,{tags:{requestId:t.requestId,rpc:!0,swapper:n?.swapperId||"",walletType:r||""},level:"warning"})}catch(a){console.log({e:a})}}l(Me,"logRPCError");import{RangoClient as kt}from"rango-sdk";var te,W=l(()=>te||(te=new kt(le("API_KEY"),le("BASE_URL")),te),"httpService");var de=null;function ne(){return{claimedBy:()=>de?.id,setClaimer:e=>{de={id:e}},reset:()=>{de=null}}}l(ne,"claimQueue");var O={};function re(){return{getTransactionDataByHash:e=>O[e]||{},setTransactionDataByHash:(e,t)=>{O[e]||(O[e]={}),O[e].response=t.response||O[e].response,O[e].receiptReceived=t.receiptReceived||O[e].receiptReceived||!1}}}l(re,"inMemoryTransactionsData");function fe(e){let n=(e?.split(":")[0]||"").split("-"),r=n[n.length-1],a=n.slice(0,-1);return a[a.length-1]===r&&a.pop(),[a.join("-"),r]}l(fe,"splitWalletNetwork");var w=l(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),B=l(e=>{let{evmTransaction:t,evmApprovalTransaction:n,cosmosTransaction:r,solanaTransaction:a,transferTransaction:i,starknetApprovalTransaction:s,starknetTransaction:o,tronApprovalTransaction:u,tronTransaction:c}=e;return t||n||r||a||i||s||o||u||c},"getCurrentStepTx"),ae=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;let n=t.type;switch(n){case I.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case I.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case I.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case I.COSMOS:e.cosmosTransaction=t;break;case I.SOLANA:e.solanaTransaction=t;break;case I.TRANSFER:e.transferTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),Se=l(e=>B(e)?.type,"getCurrentStepTxType"),_t=l(e=>{let{evmApprovalTransaction:t,starknetApprovalTransaction:n,tronApprovalTransaction:r}=e;return!!(t||n||r)},"isApprovalCurrentStepTx");function R({getStorage:e,setStorage:t,nextStatus:n,nextStepStatus:r,message:a,details:i,errorCode:s=null,hasAlreadyProceededToSign:o}){let u=e().swapDetails,c=w(u);if(r&&c&&(c.status=r),n&&(u.status=n),u.hasAlreadyProceededToSign=o,n&&["failed","success"].includes(n)&&(u.finishTime=new Date().getTime().toString()),(a||i)&&(u.extraMessage=a||"",u.extraMessageDetail=i||""),r&&["failed"].includes(r)){let g=i&&i.includes("Warning")?"Swap canceled by user.":i,p=pe(u,c)?.walletType;u.extraMessageSeverity="error",W().reportFailure({requestId:u.requestId,step:c?.id||1,eventType:Ce(s),reason:g||"",data:p?{wallet:p}: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"&&c&&(c.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:u}),{swap:u,step:c}}l(R,"updateSwapStatus");function yt({getStorage:e,setStorage:t},n,r,a,i){let s=e().swapDetails;s.hasAlreadyProceededToSign=null;let o=w(s);o.executedTransactionId=n,o.executedTransactionTime=new Date().getTime().toString(),i?.url&&(o.explorerUrl=[...o.explorerUrl||[],{url:i.url,description:i.description||null}]),a==="check_tx_status"?(s.extraMessage="Checking transaction status ...",s.extraMessageDetail="",s.extraMessageSeverity="info"):a==="check_approve_tx_status"&&(s.extraMessage="Checking approve transaction status ...",s.extraMessageDetail="",s.extraMessageSeverity="info"),t({...e(),swapDetails:s}),a&&r({eventType:a,swap:s,step:o})}l(yt,"setStepTransactionIds");function Ct({getStorage:e,setStorage:t},n,r){let a=e().swapDetails,i=w(a);if(!i)return;let s=new Date;a.lastNotificationTime=s.getTime().toString(),!(i.networkStatus==="waitingForConnectingWallet"&&a.networkStatusExtraMessage===n&&a.networkStatusExtraMessageDetail===r)&&(i.networkStatus="waitingForConnectingWallet",a.networkStatusExtraMessage=n,a.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:a}))}l(Ct,"markRunningSwapAsWaitingForConnectingWallet");function be({getStorage:e,setStorage:t}){let n=e().swapDetails,r=w(n);if(!r)return;let{type:a}=P(n),i=v(n,r),s=`Change ${a} wallet network to ${i}`,o=`Please change your ${a} wallet network to ${i}.`,u=new Date;return n.lastNotificationTime=u.getTime().toString(),r.networkStatus="waitingForNetworkChange",n.networkStatusExtraMessage=s,n.networkStatusExtraMessageDetail=o,t({...e(),swapDetails:n}),{swap:n,step:r}}l(be,"markRunningSwapAsSwitchingNetwork");function De({getStorage:e,setStorage:t,notifier:n}){let r=e().swapDetails,a=w(r);if(a)return r.networkStatusExtraMessage="",r.networkStatusExtraMessageDetail="",a.networkStatus="waitingForQueue",n({eventType:"waiting_for_queue",swap:r,step:a}),t({...e(),swapDetails:r}),{swap:r,step:a}}l(De,"markRunningSwapAsDependsOnOtherQueues");function oe(e){return new Promise(t=>setTimeout(t,e))}l(oe,"delay");var Rt=l((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function Nt(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}l(Nt,"isWalletNull");function Oe(e,t){return t&&e[t]?e[t].size?e[t].get(At.ETHEREUM):e[t]:null}l(Oe,"getEvmProvider");function P(e){let t=w(e),n=H(e,t);if(!n)return{type:null,network:null,address:null};let r=Rt(e,n),a=e.wallets[n];return{type:r||null,network:n,address:a?a.address:null}}l(P,"getRequiredWallet");async function vt(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}l(vt,"getChainId");async function Be(e,t,n,r,a){if(Nt(n))return!1;let i=H(e,t);if(!i)return!1;if(r.evmBasedChains.find(s=>s.name===i)){try{let s=e.wallets[i];if(s){let o=Oe(a,s.walletType),u=await vt(o);if(u){let c=xt(u,Object.entries(r.blockchains).map(([,g])=>g));if(c&&c.toLowerCase()===i.toLowerCase())return!0;if(c&&c.toLowerCase()!==i.toLowerCase())return!1}}}catch(s){console.log(s)}return!1}return!0}l(Be,"isNetworkMatchedForTransaction");var Ue=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||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function se(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,a=w(r);a?.networkStatus&&(a.networkStatus=null,n({...t(),swapDetails:r}))}l(se,"resetNetworkStatus");function Fe(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:a}=t,{getStorage:i,setStorage:s}=e,o=i().swapDetails,u=w(o);u?.networkStatus&&(o.networkStatusExtraMessage=n,o.networkStatusExtraMessageDetail=r,u.networkStatus=a,s({...i(),swapDetails:o}))}l(Fe,"updateNetworkStatus");function Qe(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,{ok:i,reason:s}=Te(a,n.state);if(!i){let o=w(a);n.notifier({eventType:s==="account_miss_match"?"waiting_for_change_wallet_account":"waiting_for_connecting_wallet",swap:a,step:o}),Ct({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},he,e.reason.description);return}r.unblock()}l(Qe,"onBlockForConnectWallet");function Le(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails;if(!w(a)||a.status!=="running")return;let s=be({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)});s&&n.notifier({eventType:"waiting_for_network_change",swap:s.swap,step:s.step});let{type:o,network:u}=P(a);if(o&&u&&n.canSwitchNetworkTo(o,u)){let c=n.switchNetwork(o,u);c&&c.then(()=>{r.unblock()}).catch(g=>{console.log({error:g})})}}l(Le,"onBlockForChangeNetwork");function He(e,t){let{getBlockedTasks:n,forceExecute:r,queue:a,manager:i,context:s}=t,{setClaimer:o,claimedBy:u,reset:c}=ne(),g=n().filter(E=>E.reason.reason==="depends_on_other_queues");if(g.length===0)return;let p=u(),S=!!p;if(p===a.id)return;if(S){De({getStorage:a.getStorage.bind(a),setStorage:a.setStorage.bind(a),notifier:s.notifier});return}let d=g.find(E=>E.queue_id===t.queue_id);d||(d=g[0]),o(d.queue_id);let h=d.storage.get(),{type:A,network:f,address:m}=P(h.swapDetails);r(d.queue_id,{claimedBy:u(),resetClaimedBy:()=>{c(),me(`${A}-${f}:${m}`,s.notifier,i,s.canSwitchNetworkTo)}})}l(He,"onDependsOnOtherQueues");function Te(e,t){let{type:n,address:r}=P(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let a=t(n),{accounts:i,connected:s}=a,o=i||[];return s?{ok:o.some(c=>{let{address:g}=ht(c);return r.toLocaleLowerCase()===g.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}l(Te,"isRequiredWalletConnected");function qe(e){let{setTransactionDataByHash:t}=re(),{getStorage:n,setStorage:r,failed:a,next:i,schedule:s,context:o}=e,{meta:u,getSigners:c,notifier:g,isMobileWallet:p}=o,S=n().swapDetails,d=w(S),h=D(S,d),A=p(h?.walletType),f=ue(S,d),m=c(h.walletType),E=v(S,d),x=l(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),T=B(d),_=T?.type,y=_t(d),N=[I.EVM,I.STARKNET,I.TRON].includes(_);if(!T||!_){let Q=R({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return g({eventType:"transfer_failed",...Q}),a(),x()}let U=u.blockchains?.[T.blockChain]?.chainId,F=typeof S.hasAlreadyProceededToSign=="boolean",b,X,$,V,J;y?(V=`Waiting for approval of ${d?.fromSymbol} coin ${A?"on your mobile phone!":""}`,J="Waiting for approve transaction to be mined and confirmed successfully",X="waitingForApproval",b=void 0,$="confirm_approve_contract"):F?(V="Transaction is expired. Please try again.",X="failed",b="failed",J="",$="transaction_expired"):(V="Executing transaction ...",X="running",b="running",J=`${A?"Check your mobile phone!":""}`,$=N?"calling_smart_contract":"confirm_transfer");let rt=R({getStorage:n,setStorage:r,nextStepStatus:X,nextStatus:b,message:V,details:J,hasAlreadyProceededToSign:y?void 0:F,errorCode:F?"TX_EXPIRED":void 0});if(g({eventType:$,...rt}),F){a(),x();return}m.getSigner(_).signAndSendTx(T,f,U).then(({hash:C,response:Q})=>{let Y=G(C,E,u.blockchains);yt(e,C,g,y?"check_approve_tx_status":"check_tx_status",Y?{url:Y,description:y?"Approve":"Swap"}:void 0),Q&&t(C,{response:Q}),s("CHECK_TRANSACTION_STATUS"),i(),x()},C=>{if(S.status==="failed")return;let{extraMessage:Q,extraMessageDetail:Y,extraMessageErrorCode:xe}=M(C);C&&C?.root&&C?.root?.message&&C?.root?.code&&C?.root?.reason&&Me(C.root,S,d,h?.walletType);let at=R({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:Q,details:Y,errorCode:xe});g({eventType:xe==="REJECTED_BY_USER"?"contract_rejected":N?"smart_contract_call_failed":"transfer_failed",...at}),a(),x()})}l(qe,"singTransaction");function Ge(e){let{wallet_network:t,evmChains:n,manager:r}=e,[a,i]=fe(t);n.some(s=>s.name==i)&&r?.getAll().forEach(s=>{let o=s.list.getStorage(),u=o?.swapDetails;if(u&&u.status==="running"){let c=w(u);if(c){let g=o?.swapDetails.wallets[c.fromBlockchain]?.walletType,p=Object.keys(s.list.state.tasks).some(S=>{let d=s.list.state.tasks[S];return d.status===ge.BLOCKED&&["waiting_for_connecting_wallet"].includes(d.blockedFor?.reason)});if(g===a&&p&&H(u,c)!=i){let S=s.list,{type:d}=P(u),h=z(d);s.list.block({reason:{reason:"waiting_for_network_change",description:h},silent:!0});let A=be({getStorage:S.getStorage.bind(S),setStorage:S.setStorage.bind(S)});A&&e?.notifier({eventType:"waiting_for_network_change",swap:A.swap,step:A.step})}}}})}l(Ge,"checkWaitingForConnectWalletChange");function we(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let a=t.list.state.tasks[r];return a.status===ge.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),i=j(a);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:i}})}}})}l(we,"checkWaitingForNetworkChange");function It(e){let t=e?.getAll()||new Map,n=[];return t.forEach(r=>{let i=r.list.getStorage()?.swapDetails;!i||i.status!=="running"||n.push(i)}),n}l(It,"getRunningSwaps");function Pt(e,t){e.forEach(n=>{let r=w(n),a;r?.networkStatus==="waitingForQueue"?a="waiting_for_queue":n?.status==="running"&&(a="waiting_for_connecting_wallet"),a&&t&&t({eventType:a,swap:n,step:r})})}l(Pt,"resetRunningSwapNotifsOnPageLoad");function me(e,t,n,r,a={fallbackToOnlyWallet:!0}){let[i,s]=fe(e);if(!i||!s)return;let o=[],u=[];n?.getAll().forEach(g=>{if(g.status===ge.BLOCKED){let p=g.list.getStorage(),S=p?.swapDetails;if(S&&S.status==="running"){let d=w(S);d&&(H(S,d)==s&&p?.swapDetails.wallets[s]?.walletType===i?o.push(g.list):p?.swapDetails.wallets[d.fromBlockchain]?.walletType===i&&u.push(g.list))}}});let c;if(o.length>0){if(c=o[0],o.length>1)for(let g=1;g<o.length;g++){let p=o[g];De({getStorage:p.getStorage.bind(p),setStorage:p.setStorage.bind(p),notifier:t})}}else u.length>0&&a.fallbackToOnlyWallet&&(c=u[0]);r?.(i,s)?c?.checkBlock():c?.unblock()}l(me,"retryOn");function Ke(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}l(Ke,"isNeedBlockQueueForParallel");async function Xe(e){let t=await e;if(!t.ok||!t.transaction)throw k.CreateTransaction(t.error||"bad response from create tx endpoint");return t}l(Xe,"throwOnOK");function Mt(e,t){let{reset:n}=ne();e.actions.cancel();let r=R({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 n(),t&&t?.retry(),r}l(Mt,"cancelSwap");var $e=5e3;async function Wt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:i,context:s}){let o=e().swapDetails,{meta:u}=s,c=w(o);if(!c?.executedTransactionId)return;let g=B(c),p=c.executedTransactionId,S=!1,d=null,h=null,{getTransactionDataByHash:A,setTransactionDataByHash:f}=re();try{let T=Se(c),_=D(o,c);T&&_&&(h=s.getSigners(_.walletType).getSigner(T))}catch{}try{let{response:T,receiptReceived:_}=A(p);if(h?.wait&&!_){let y=g?.blockChain&&u.blockchains?.[g?.blockChain]?.chainId||void 0,{hash:N,response:U}=await h.wait(p,y,T);if(N!==p){c.executedTransactionId=N||c.executedTransactionId;let F=v(o,c),b=G(c.executedTransactionId,F,u.blockchains);b&&c.explorerUrl&&c.explorerUrl?.length>=1&&(c.explorerUrl[c.explorerUrl.length-1]={url:b,description:"Replaced Swap"}),p=c.executedTransactionId,N&&U&&f(N,{response:U})}else f(N,{receiptReceived:!0})}}catch(T){let{extraMessage:_,extraMessageDetail:y,extraMessageErrorCode:N}=M(T),U=R({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:_,details:y,errorCode:N});s?.notifier({eventType:"task_failed",...U}),S=!0}try{d=await W().checkStatus({requestId:o.requestId,txId:p,step:c.id})}catch{await oe($e),a();return}if(S)return i();if(c?.status==="failed")return;let m=d?.outputAmount||(c.outputAmount?c.outputAmount:null),E=c.outputAmount||null;o.extraMessage=d?.extraMessage||o.extraMessage,o.extraMessageSeverity="info",o.extraMessageDetail="",c.status=d?.status||c.status,c.diagnosisUrl=d?.diagnosisUrl||c.diagnosisUrl||null,c.outputAmount=m||c.outputAmount,c.explorerUrl=d?.explorerUrl||c.explorerUrl,c.internalSteps=d?.steps||null;let x=d?.newTx;if(x&&(c.status="created",c.executedTransactionId=null,c.executedTransactionTime=null,ae(c,x)),E===null&&m!==null?s.notifier({eventType:"step_completed_with_output",swap:o,step:c}):E===null&&m===null&&s.notifier({eventType:"check_tx_status",swap:o,step:c}),c.status==="success"){let T=Ie(o,c);o.extraMessageDetail="",o.extraMessage=T?`starting next step: ${T.swapperId}: ${T.fromBlockchain} -> ${T.toBlockchain}`:""}else c.status==="failed"&&(o.extraMessage="Transaction failed in blockchain",o.extraMessageSeverity="error",o.extraMessageDetail=d?.extraMessage||"",o.status="failed",o.finishTime=new Date().getTime().toString());t({...e(),swapDetails:o}),d?.status==="failed"?i():d?.status==="success"||d?.status==="running"&&d.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await oe($e),a())}l(Wt,"checkTransactionStatus");async function bt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:i,context:s}){let o=e().swapDetails,{meta:u}=s,{getTransactionDataByHash:c,setTransactionDataByHash:g}=re(),p=w(o);if(!p){console.log("ignore check status, current step is null");return}let S=B(p);if(!p?.executedTransactionId)return;let d=p.executedTransactionId,h=null;try{let f=Se(p),m=D(o,p);f&&m&&(h=s.getSigners(m.walletType).getSigner(f))}catch{}try{let{response:f,receiptReceived:m}=c(d);if(h?.wait&&!m){let E=S?.blockChain&&u.blockchains?.[S?.blockChain]?.chainId||void 0,{hash:x,response:T}=await h.wait(d,E,f);if(x!==d){p.executedTransactionId=x||p.executedTransactionId;let _=v(o,p),y=G(p.executedTransactionId,_,u.blockchains);y&&p.explorerUrl&&p.explorerUrl?.length>=1&&(p.explorerUrl[p.explorerUrl.length-1]={url:y,description:"Replaced Approve"}),d=p.executedTransactionId,x&&T&&g(x,{response:T})}else g(x,{receiptReceived:!0})}}catch(f){let{extraMessage:m,extraMessageDetail:E,extraMessageErrorCode:x}=M(f),T=R({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:m,details:E,errorCode:x});return s?.notifier({eventType:"task_failed",...T}),i()}let A=!1;try{let f=await W().checkApproval(o.requestId,p.executedTransactionId);if(p?.status==="failed")return;if(A=f.isApproved,!A&&(f.txStatus==="failed"||f.txStatus==="success")){let m,E;f.txStatus==="failed"?(m="Approve transaction failed",E="Smart contract approval tx failed in blockchain."):(m="Not enough approval",f.requiredApprovedAmount&&f.currentApprovedAmount?E=`Required approval: ${f.requiredApprovedAmount}, current approval: ${f.currentApprovedAmount}`:E="You still don't have enough approval for this swap.");let x=R({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:m,details:E});s.notifier({eventType:"not_enough_approval",...x}),i()}else A||s.notifier({eventType:"check_approve_tx_status",swap:o,step:p})}catch{A=!1}A?(p.status="approved",o.extraMessage=`Spending ${p.fromSymbol} approved successfully.`,o.extraMessageDetail=null,o.extraMessageSeverity="success",p.evmApprovalTransaction=null,p.executedTransactionId=null,p.executedTransactionTime=null,p.starknetApprovalTransaction=null,p.tronApprovalTransaction=null,t({...e(),swapDetails:o}),s.notifier({eventType:"contract_confirmed",swap:o,step:p}),r("SCHEDULE_NEXT_STEP"),n()):(await oe(2e3),a())}l(bt,"checkApprovalStatus");async function Ve(e){let t=e.getStorage().swapDetails,n=w(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}se(e),n.status==="running"?await Wt(e):n.status==="waitingForApproval"&&await bt(e)}l(Ve,"checkStatus");async function Je(e){let{setStorage:t,getStorage:n,next:r,schedule:a,context:i}=e,s=n().swapDetails,o=w(s);if(!B(o)){let c={requestId:s.requestId,step:o.id,userSettings:{slippage:s.settings.slippage,infiniteApprove:s.settings.infiniteApprove},validations:{balance:s.validateBalanceOrFee,fee:s.validateBalanceOrFee}};try{let{transaction:g}=await Xe(W().createTransaction(c));g&&ae(o,g),t({...n(),swapDetails:s}),a("EXECUTE_TRANSACTION"),r()}catch(g){s.status="failed",s.finishTime=new Date().getTime().toString();let{extraMessage:p,extraMessageDetail:S}=M(g),d=R({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:p,details:S,errorCode:"FETCH_TX_FAILED"});i.notifier({eventType:"task_failed",...d}),e.failed()}}}l(Je,"createTransaction");async function Ye(e){let{getStorage:t,context:n}=e,{meta:r,wallets:a,providers:i}=n,{claimedBy:s}=ne(),o=n.claimedBy===n._queue?.id,u=l(f=>{e.block(f),o&&e.context.resetClaimedBy&&e.context.resetClaimedBy()},"requestBlock"),c=t().swapDetails,g=w(c);if(se(e),!Te(c,n.state).ok){let{type:f,address:m}=P(c),E=a?.blockchains?.find(_=>!_.accounts?.find(y=>y.walletType===f)),x=!a||E?j(f):_e(f,m),T={reason:"waiting_for_connecting_wallet",description:x};u(T);return}let S=await Be(c,g,a,r,i);if(!!s()&&!o&&!S){let f=ce,m={reason:"depends_on_other_queues",details:f};u(m);return}else if(S)Fe(e,{message:"",details:"Wallet network changed successfully",status:"networkChanged"});else{let f=v(c,g),m=z(f),E={reason:"waiting_for_network_change",details:m};u(E);return}if(Ke(g)&&!o){let f={reason:"depends_on_other_queues",description:ce,details:{}};u(f);return}qe(e)}l(Ye,"executeTransaction");function je({schedule:e,next:t,failed:n,setStorage:r,getStorage:a,context:i}){let s=a().swapDetails,o=w(s),u=s.steps.find(c=>c.status==="failed");if(o&&!u){if(Ue(s,o))return e("EXECUTE_TRANSACTION"),t();if(o?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();s.status="running",r({...a(),swapDetails:s}),e("CREATE_TRANSACTION"),t()}else s.status=u?"failed":"success",s.finishTime=new Date().getTime().toString(),r({...a(),swapDetails:s}),i.notifier({eventType:u?"task_failed":"task_completed",swap:s,step:null}),u?n():t()}l(je,"scheduleNextStep");function ze({schedule:e,next:t}){e("SCHEDULE_NEXT_STEP"),t()}l(ze,"start");var Ze={name:"swap",actions:{["START"]:ze,["SCHEDULE_NEXT_STEP"]:je,["CREATE_TRANSACTION"]:Je,["EXECUTE_TRANSACTION"]:Ye,["CHECK_TRANSACTION_STATUS"]:Ve},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?Qe(e,t):e.reason.reason==="waiting_for_network_change"?Le(e,t):e.reason.reason==="depends_on_other_queues"&&He(e,t)}};import{useManager as Ft}from"@rango-dev/queue-manager-react";import{useEffect as ke,useState as Qt}from"react";import{Persistor as Dt,Status as K,DB_NAME as Ot}from"@rango-dev/queue-manager-core";import{v4 as Bt}from"uuid";var et="migratedToQueueManager";function Ee(){return!!window.localStorage.getItem(et)}l(Ee,"migrated");async function Ut(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(Ot)}catch{return!1}}l(Ut,"hasQueueManagerOnIDB");async function tt(){let e=window.localStorage.getItem("pendingSwaps"),t=await Ut();if(!e||Ee()||t)return!0;let n=JSON.parse(e),r=[];n.forEach(s=>{if(s.status==="running"){let o=Bt(),u={id:s.requestId,createdAt:Number(s.creationTime),name:"swap",status:K.RUNNING,storage:{swapDetails:s},state:{status:K.RUNNING,activeTaskIndex:0,tasks:{[o]:{blockedFor:null,status:K.RUNNING}}},tasks:[{id:o,action:"SCHEDULE_NEXT_STEP"}]};r.push(u)}else{let o=s.status==="success"?K.SUCCESS:K.FAILED,u={id:s.requestId,createdAt:Number(s.creationTime),name:"swap",status:o,storage:{swapDetails:s},state:{status:o,activeTaskIndex:0,tasks:{}},tasks:[]};r.push(u)}});let a=new Dt,i=r.map(s=>a.insertQueue(s));return await Promise.all(i),window.localStorage.setItem(et,"1"),!0}l(tt,"migration");var nt=0;function Lt(){let e=Ee(),[t,n]=Qt(e);return ke(()=>{(async()=>nt||(nt=1,tt().finally(()=>{n(!0)})))()},[]),{status:t}}l(Lt,"useMigration");function Ht(e){let{manager:t}=Ft();ke(()=>{e.lastConnectedWallet&&(Ge({evmChains:e.evmChains,wallet_network:e.lastConnectedWallet,manager:t,notifier:e.notifier}),me(e.lastConnectedWallet,e.notifier,t,e.canSwitchNetworkTo))},[e.lastConnectedWallet]),ke(()=>{e.disconnectedWallet&&(we(t),e.clearDisconnectedWallet())},[e.disconnectedWallet])}l(Ht,"useQueueManager");function Zr(e){return Ae(e),Ze}l(Zr,"makeQueueDefinition");export{ee as MessageSeverity,Z as PendingSwapNetworkStatus,k as PrettyError,Et as calculatePendingSwap,Mt as cancelSwap,we as checkWaitingForNetworkChange,H as getCurrentBlockchainOfOrNull,w as getCurrentStep,Oe as getEvmProvider,D as getRelatedWallet,pe as getRelatedWalletOrNull,P as getRequiredWallet,It as getRunningSwaps,Zr as makeQueueDefinition,M as prettifyErrorMessage,Pt as resetRunningSwapNotifsOnPageLoad,fe as splitWalletNetwork,R as updateSwapStatus,Lt as useMigration,Ht as useQueueManager};
1
+ var Tt=Object.defineProperty;var l=(e,t)=>Tt(e,"name",{value:t,configurable:!0});var ft="c6381a79-2817-4602-83bf-6a641a409e32",Se={API_KEY:ft};function Te(e){return Se[e]||""}l(Te,"getConfig");function Oe(e){let t;return typeof structuredClone=="function"?t=structuredClone(e):t=JSON.parse(JSON.stringify(e)),Se=t,Se}l(Oe,"initConfig");var fe=(n=>(n.RouteEvent="routeEvent",n.StepEvent="stepEvent",n))(fe||{}),Ee=(r=>(r.STARTED="started",r.FAILED="failed",r.SUCCEEDED="succeeded",r))(Ee||{}),V=(r=>(r.CREATE_TX="create_tx",r.SEND_TX="send_tx",r.TX_SENT="tx_sent",r))(V||{}),Z=(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))(Z||{}),F=(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))(F||{});import{getBlockChainNameFromId as bt,Networks as Ut}from"@rango-dev/wallets-shared";import{readAccountAddress as Mt}from"@rango-dev/wallets-core";import{TransactionType as U}from"rango-sdk";var me="Waiting for other swaps to complete",De="Waiting for connecting wallet",Pe=l((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),ee=l(e=>`Please connect to ${e||"your wallet"} by using bellow button or top right button on page.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),te=l(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),R="CLIENT_UNEXPECTED_BEHAVIOUR";import{Status as xe}from"@rango-dev/queue-manager-core";import{SignerErrorCode as K,SignerError as Et,isSignerErrorCode as mt,isAPIErrorCode as wt}from"rango-types";var At="Assertion failed (Unexpected behaviour)",Ct="Create transaction failed in Rango Server",We="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",At,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",We,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new _("CLIENT_UNEXPECTED_BEHAVIOUR",We,null,"Server requested for a blockchain or address not selected by user")}};l(_,"PrettyError");function be(e){try{return e?wt(e)?e:mt(e)?{[K.REJECTED_BY_USER]:"USER_REJECT",[K.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[K.SEND_TX_ERROR]:"SEND_TX_FAILED",[K.NOT_IMPLEMENTED]:R,[K.OPERATION_UNSUPPORTED]:R,[K.UNEXPECTED_BEHAVIOUR]:R}[e]:R:R}catch{return R}}l(be,"mapAppErrorCodesToAPIErrorCode");var L=l(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(_.isPrettyError(e))return e.getErrorDetail();if(Et.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");import Fe from"bignumber.js";import Ue from"bignumber.js";var Me=l((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new Ue(e),o=1,a=1e3;for(let c=0;c<60;c++)if(new Ue(r.toFixed(c,o)).eq(r)){a=c;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 c=t||4;c<17;c++)if(r.gte(Math.pow(10,-c)))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,c))),o);return r.isEqualTo(0)?"0":r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,8))),o)},"numberToString");import{isCosmosBlockchain as xt,isEvmBlockchain as _t,isStarknetBlockchain as yt,isTronBlockchain as kt}from"rango-types";var ne=(o=>(o.WaitingForConnectingWallet="waitingForConnectingWallet",o.WaitingForQueue="waitingForQueue",o.WaitingForNetworkChange="waitingForNetworkChange",o.NetworkChanged="networkChanged",o))(ne||{}),re=(o=>(o.error="error",o.warning="warning",o.info="info",o.success="success",o))(re||{}),P=l((e,t)=>{try{return W(e,t)}catch{return null}},"getCurrentBlockchainOfOrNull"),W=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;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"),Rt=l(e=>{if(xt(e))return e.info?.explorerUrlToTx;if(_t(e)||yt(e)||kt(e))return e.info.transactionUrl},"getBlockchainMetaExplorerBaseUrl"),Y=l((e,t,n)=>{let r=n[t],o=Rt(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}l(Le,"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||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw _.WalletMissing();return n.address},"getCurrentAddressOf");function X(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,o=r?.k||null,a=r?.v||null,c=a?.walletType;if(a===null)throw _.AssertionFailed(`Wallet for source ${o} not passed: walletType: ${c}`);return a}l(X,"getRelatedWallet");function Ae(e,t){try{return X(e,t)}catch{return null}}l(Ae,"getRelatedWalletOrNull");var ht=l((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 Fe(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 Fe(o.amount).multipliedBy(a||0))}return n}l(Nt,"getUsdFeeOfStep");function vt(e,t,n,r,o,a){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:o,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:a?Me(Nt(i,a?.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,hasAlreadyProceededToSign:!1}))||[]}}l(vt,"calculatePendingSwap");import*as Be from"@sentry/browser";function Qe(e,t,n,r){try{Be.captureException(e,{tags:{requestId:t.requestId,rpc:!0,swapper:n?.swapperId||"",walletType:r||""},level:"warning"})}catch(o){console.log({e:o})}}l(Qe,"logRPCError");import{RangoClient as It}from"rango-sdk";var oe,B=l(()=>oe||(oe=new It(Te("API_KEY"),Te("BASE_URL")),oe),"httpService");import Ot from"mitt";function Xe(e){return e.map(t=>{let{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:o,feeInUsd:a,executedTransactionId:c,executedTransactionTime:i,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:T,fromSymbolAddress:g,toSymbolAddress:w,swapperType:k,swapperId:S,outputAmount:E,fromAmountMaxValue:m,fromAmountMinValue:x,fromAmountPrecision:A,fromAmountRestrictionType:y,fromDecimals:N,status:h}=t;return{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:o,feeInUsd:a,executedTransactionId:c,executedTransactionTime:i,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:T,fromSymbolAddress:g,toSymbolAddress:w,swapperName:S,swapperType:k,outputAmount:E,fromAmountMaxValue:m,fromAmountMinValue:x,fromAmountPrecision:A,fromAmountRestrictionType:y,fromDecimals:N,status:h,transaction:b(t)}})}l(Xe,"createSteps");function Dt(e,t,n){let{creationTime:r,finishTime:o,requestId:a,inputAmount:c,status:i,wallets:u,steps:s,settings:d}=e,p=Xe(s),g={route:{creationTime:r,finishTime:o,requestId:a,inputAmount:c,status:i,wallets:u,steps:p,slippage:d.slippage,infiniteApproval:d.infiniteApprove},step:p[p.length-1]};if(n)g.step=Xe([n])[0];else if(t==="failed"){let w=Ge(p);w&&(g.step=w)}else{let w=ie(p);w&&(g.step=w)}return g}l(Dt,"getEventPayload");var se=Ot();function Pt(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&&se.emit("routeEvent",{event:n,route:t})}l(Pt,"emitRouteEvent");function Wt(e,t,n){se.emit("stepEvent",{event:e,route:t,step:n})}l(Wt,"emitStepEvent");function f(e){console.log({originalEvent:e.step});let{event:t}=e,{type:n}=t,{route:r,step:o}=Dt(e.swap,n,e.step??void 0),a=`${o.fromBlockchain}.${o.fromSymbol}`,c=`${o.toBlockchain}.${o.toSymbol}`,i=o.outputAmount??"",u=e.step?P(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&&ae(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&&ae(e.step)?s="Checking approve transacation status ...":s="Checking transacation 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):Pt({...t,message:s,messageSeverity:d},r)}l(f,"notifier");var Ce=null;function le(){return{claimedBy:()=>Ce?.id,setClaimer:e=>{Ce={id:e}},reset:()=>{Ce=null}}}l(le,"claimQueue");var G={};function ce(){return{getTransactionDataByHash:e=>G[e]||{},setTransactionDataByHash:(e,t)=>{G[e]||(G[e]={}),G[e].response=t.response||G[e].response,G[e].receiptReceived=t.receiptReceived||G[e].receiptReceived||!1}}}l(ce,"inMemoryTransactionsData");function _e(e){let n=(e?.split(":")[0]||"").split("-"),r=n[n.length-1],o=n.slice(0,-1);return o[o.length-1]===r&&o.pop(),[o.join("-"),r]}l(_e,"splitWalletNetwork");var C=l(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),b=l(e=>{let{evmTransaction:t,evmApprovalTransaction:n,cosmosTransaction:r,solanaTransaction:o,transferTransaction:a,starknetApprovalTransaction:c,starknetTransaction:i,tronApprovalTransaction:u,tronTransaction:s}=e;return t||n||r||o||a||c||i||u||s},"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;let n=t.type;switch(n){case U.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case U.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case U.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case U.COSMOS:e.cosmosTransaction=t;break;case U.SOLANA:e.solanaTransaction=t;break;case U.TRANSFER:e.transferTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),ye=l(e=>b(e)?.type,"getCurrentStepTxType"),ae=l(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:c=null,hasAlreadyProceededToSign:i}){let u=e().swapDetails,s=C(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()),(o||a)&&(u.extraMessage=o||"",u.extraMessageDetail=a||""),r&&["failed"].includes(r)){let p=a&&a.includes("Warning")?"Swap canceled by user.":a,T=Ae(u,s)?.walletType;u.extraMessageSeverity="error";let g=be(c);d.failureType=g,B().reportFailure({requestId:u.requestId,step:s?.id||1,eventType:g,reason:p||"",data:T?{wallet:T}: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(O,"updateSwapStatus");function Ft({getStorage:e,setStorage:t},n,r){let o=e().swapDetails;o.hasAlreadyProceededToSign=null;let a=C(o);a.executedTransactionId=n,a.executedTransactionTime=new Date().getTime().toString(),r?.url&&(a.explorerUrl=[...a.explorerUrl||[],{url:r.url,description:r.description||null}]),o.extraMessage="Transaction sent ...",o.extraMessageDetail="",o.extraMessageSeverity="info",t({...e(),swapDetails:o}),f({event:{type:"tx_execution",status:"tx_sent"},swap:o,step:a}),f({event:{type:"check_status"},swap:o,step:a})}l(Ft,"setStepTransactionIds");function Lt({getStorage:e,setStorage:t},n,r){let o=e().swapDetails,a=C(o);if(!a)return;let c=new Date;o.lastNotificationTime=c.getTime().toString(),!(a.networkStatus==="waitingForConnectingWallet"&&o.networkStatusExtraMessage===n&&o.networkStatusExtraMessageDetail===r)&&(a.networkStatus="waitingForConnectingWallet",o.networkStatusExtraMessage=n,o.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:o}))}l(Lt,"markRunningSwapAsWaitingForConnectingWallet");function qe({getStorage:e,setStorage:t}){let n=e().swapDetails,r=C(n);if(!r)return;let{type:o}=D(n),a=W(n,r),c=`Change ${o} wallet network to ${a}`,i=`Please change your ${o} wallet network to ${a}.`,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=C(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");function pe(e){return new Promise(t=>setTimeout(t,e))}l(pe,"delay");var Bt=l((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function Qt(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}l(Qt,"isWalletNull");function $e(e,t){return t&&e[t]?e[t].size?e[t].get(Ut.ETHEREUM):e[t]:null}l($e,"getEvmProvider");function D(e){let t=C(e),n=P(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}}l(D,"getRequiredWallet");async function Xt(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}l(Xt,"getChainId");async function Ve(e,t,n,r,o){if(Qt(n))return!1;let a=P(e,t);if(!a)return!1;if(r.evmBasedChains.find(c=>c.name===a)){try{let c=e.wallets[a];if(c){let i=$e(o,c.walletType),u=await Xt(i);if(u){let s=bt(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(c){console.log(c)}return!1}return!0}l(Ve,"isNetworkMatchedForTransaction");var Ye=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||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function de(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,o=C(r);o?.networkStatus&&(o.networkStatus=null,n({...t(),swapDetails:r}))}l(de,"resetNetworkStatus");function Je(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:o}=t,{getStorage:a,setStorage:c}=e,i=a().swapDetails,u=C(i);u?.networkStatus&&(i.networkStatusExtraMessage=n,i.networkStatusExtraMessageDetail=r,u.networkStatus=o,c({...a(),swapDetails:i}))}l(Je,"updateNetworkStatus");function je(e,t){let{context:n,queue:r}=t,o=r.getStorage().swapDetails,{ok:a,reason:c}=ke(o,n.state);if(!a){let i=C(o),{type:u,address:s}=D(o);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:o,step:i}),Lt({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},De,e.reason.description);return}r.unblock()}l(je,"onBlockForConnectWallet");function ze(e,t){let{context:n,queue:r}=t,o=r.getStorage().swapDetails,a=C(o);if(!a||o.status!=="running")return;let c=qe({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)}),i=P(o,a),u=D(o).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}=D(o);if(d&&p&&n.canSwitchNetworkTo(d,p)){let T=n.switchNetwork(d,p);T&&T.then(()=>{r.unblock()}).catch(g=>{console.log({error:g})})}}l(ze,"onBlockForChangeNetwork");function Ze(e,t){let{getBlockedTasks:n,forceExecute:r,queue:o,manager:a,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(),T=!!p;if(p===o.id)return;if(T){Ke({getStorage:o.getStorage.bind(o),setStorage:o.setStorage.bind(o)});return}let g=d.find(m=>m.queue_id===t.queue_id);g||(g=d[0]),i(g.queue_id);let w=g.storage.get(),{type:k,network:S,address:E}=D(w.swapDetails);r(g.queue_id,{claimedBy:u(),resetClaimedBy:()=>{s(),he(`${k}-${S}:${E}`,a,c.canSwitchNetworkTo)}})}l(Ze,"onDependsOnOtherQueues");function ke(e,t){let{type:n,address:r}=D(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let o=t(n),{accounts:a,connected:c}=o,i=a||[];return c?{ok:i.some(s=>{let{address:d}=Mt(s);return r.toLocaleLowerCase()===d.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}l(ke,"isRequiredWalletConnected");function et(e){let{setTransactionDataByHash:t}=ce(),{getStorage:n,setStorage:r,failed:o,next:a,schedule:c,context:i}=e,{meta:u,getSigners:s,isMobileWallet:d}=i,p=n().swapDetails,T=C(p),g=X(p,T),w=d(g?.walletType),k=we(p,T),S=s(g.walletType),E=W(p,T),m=l(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),x=b(T),A=x?.type,y=ae(T);if(!x||!A){let v="Unexpected Error: tx is null!",Q=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:v,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return f({event:{type:"failed",reason:v,reasonCode:"CLIENT_UNEXPECTED_BEHAVIOUR"},...Q}),o(),m()}let N=u.blockchains?.[x.blockChain]?.chainId,h=typeof p.hasAlreadyProceededToSign=="boolean",I,H,M,j,q;y?(M=`Waiting for approval of ${T?.fromSymbol} coin ${w?"on your mobile phone!":""}`,j="Waiting for approve transaction to be mined and confirmed successfully",H="waitingForApproval",I=void 0,q="tx_execution"):h?(M="Transaction is expired. Please try again.",H="failed",I="failed",j="",q="failed"):(M="Executing transaction ...",H="running",I="running",j=`${w?"Check your mobile phone!":""}`,q="tx_execution");let ge=O({getStorage:n,setStorage:r,nextStepStatus:H,nextStatus:I,message:M,details:j,hasAlreadyProceededToSign:y?void 0:h,errorCode:h?"TX_EXPIRED":void 0});if(q==="failed"?f({event:{type:q,reason:M,reasonCode:ge.failureType??R},...ge}):f({event:{type:q,status:"send_tx"},...ge}),h){o(),m();return}S.getSigner(A).signAndSendTx(x,k,N).then(({hash:v,response:Q})=>{let z=Y(v,E,u.blockchains);Ft(e,v,z?{url:z,description:y?"Approve":"Swap"}:void 0),Q&&t(v,{response:Q}),c("CHECK_TRANSACTION_STATUS"),a(),m()},v=>{if(p.status==="failed")return;let{extraMessage:Q,extraMessageDetail:z,extraMessageErrorCode:St}=L(v);v?.root?.message&&v?.root?.code&&v?.root?.reason&&Qe(v.root,p,T,g?.walletType);let Ie=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:Q,details:z,errorCode:St});f({event:{type:"failed",reason:Q,reasonCode:Ie.failureType??R},...Ie}),o(),m()})}l(et,"singTransaction");function tt(e){let{wallet_network:t,evmChains:n,manager:r}=e,[o,a]=_e(t);n.some(c=>c.name==a)&&r?.getAll().forEach(c=>{let i=c.list.getStorage(),u=i?.swapDetails;if(u&&u.status==="running"){let s=C(u);if(s){let d=i?.swapDetails.wallets[s.fromBlockchain]?.walletType,p=Object.keys(c.list.state.tasks).some(g=>{let w=c.list.state.tasks[g];return w.status===xe.BLOCKED&&["waiting_for_connecting_wallet"].includes(w.blockedFor?.reason)}),T=P(u,s);if(d===o&&p&&T!=a){let g=c.list,{type:w}=D(u),k=te(w);c.list.block({reason:{reason:"waiting_for_network_change",description:k},silent:!0});let S=qe({getStorage:g.getStorage.bind(g),setStorage:g.setStorage.bind(g)});S&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:a,requiredNetwork:T??void 0},swap:S.swap,step:S.step})}}}})}l(tt,"checkWaitingForConnectWalletChange");function Re(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let o=t.list.state.tasks[r];return o.status===xe.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}=D(r),a=ee(o);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:a}})}}})}l(Re,"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}l(Gt,"getRunningSwaps");function Ht(e){e.forEach(t=>{let n=C(t),r="tx_execution_blocked",o;n?.networkStatus==="waitingForQueue"?o="waiting_for_queue":t?.status==="running"&&(o="waiting_for_wallet_connect"),r&&f&&f({event:{type:r,status:o??"waiting_for_queue"},swap:t,step:n})})}l(Ht,"resetRunningSwapNotifsOnPageLoad");function he(e,t,n,r={fallbackToOnlyWallet:!0}){let[o,a]=_e(e);if(!o||!a)return;let c=[],i=[];t?.getAll().forEach(s=>{if(s.status===xe.BLOCKED){let d=s.list.getStorage(),p=d?.swapDetails;if(p&&p.status==="running"){let T=C(p);T&&(P(p,T)==a&&d?.swapDetails.wallets[a]?.walletType===o?c.push(s.list):d?.swapDetails.wallets[T.fromBlockchain]?.walletType===o&&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?.(o,a)?u?.checkBlock():u?.unblock()}l(he,"retryOn");function nt(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}l(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}l(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 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(qt,"cancelSwap");function ie(e){return e.slice().reverse().find(t=>t.status==="success")}l(ie,"getLastSuccessfulStep");function Ge(e){return e.slice().reverse().find(t=>t.status==="failed")}l(Ge,"getFailedStep");function Kt(e){let{transaction:t}=e;return t?.type===U.EVM&&t.isApprovalTx||t?.type===U.STARKNET&&t.isApprovalTx||t?.type===U.TRON&&t.isApprovalTx}l(Kt,"isApprovalTX");var ot=5e3;async function $t({getStorage:e,setStorage:t,next:n,schedule:r,retry:o,failed:a,context:c}){let i=e().swapDetails,{meta:u}=c,s=C(i);if(!s?.executedTransactionId)return;let d=b(s),p=s.executedTransactionId,T=!1,g=null,w=null,{getTransactionDataByHash:k,setTransactionDataByHash:S}=ce();try{let A=ye(s),y=X(i,s);A&&y&&(w=c.getSigners(y.walletType).getSigner(A))}catch{}try{let{response:A,receiptReceived:y}=k(p);if(w?.wait&&!y){let N=d?.blockChain&&u.blockchains?.[d?.blockChain]?.chainId||void 0,{hash:h,response:I}=await w.wait(p,N,A);if(h!==p){s.executedTransactionId=h||s.executedTransactionId;let H=W(i,s),M=Y(s.executedTransactionId,H,u.blockchains);M&&s.explorerUrl&&s.explorerUrl?.length>=1&&(s.explorerUrl[s.explorerUrl.length-1]={url:M,description:"Replaced Swap"}),p=s.executedTransactionId,h&&I&&S(h,{response:I})}else S(h,{receiptReceived:!0})}}catch(A){let{extraMessage:y,extraMessageDetail:N,extraMessageErrorCode:h}=L(A),I=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:y,details:N,errorCode:h});f({event:{type:"failed",reason:y,reasonCode:I.failureType??R},...I}),T=!0}try{g=await B().checkStatus({requestId:i.requestId,txId:p,step:s.id})}catch{await pe(ot),o();return}if(T)return a();if(s?.status==="failed")return;let E=g?.outputAmount||(s.outputAmount?s.outputAmount:null),m=s.outputAmount||null;i.extraMessage=g?.extraMessage||i.extraMessage,i.extraMessageSeverity="info",i.extraMessageDetail="",s.status=g?.status||s.status,s.diagnosisUrl=g?.diagnosisUrl||s.diagnosisUrl||null,s.outputAmount=E||s.outputAmount,s.explorerUrl=g?.explorerUrl||s.explorerUrl,s.internalSteps=g?.steps||null;let x=g?.newTx;if(x&&(s.status="created",s.executedTransactionId=null,s.executedTransactionTime=null,ue(s,x)),m===null&&E!==null?f({event:{type:"output_revealed",outputAmount:E},swap:i,step:s}):m===null&&E===null&&f({event:{type:"check_status"},swap:i,step:s}),s.status==="success"){let A=Le(i,s);i.extraMessageDetail="",i.extraMessage=A?`starting next step: ${A.swapperId}: ${A.fromBlockchain} -> ${A.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=g?.extraMessage||"",i.status="failed",i.finishTime=new Date().getTime().toString());t({...e(),swapDetails:i}),g?.status==="failed"?a():g?.status==="success"||g?.status==="running"&&g.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await pe(ot),o())}l($t,"checkTransactionStatus");async function Vt({getStorage:e,setStorage:t,next:n,schedule:r,retry:o,failed:a,context:c}){let i=e().swapDetails,{meta:u}=c,{getTransactionDataByHash:s,setTransactionDataByHash:d}=ce(),p=C(i);if(!p){console.log("ignore check status, current step is null");return}let T=b(p);if(!p?.executedTransactionId)return;let g=p.executedTransactionId,w=null;try{let S=ye(p),E=X(i,p);S&&E&&(w=c.getSigners(E.walletType).getSigner(S))}catch{}try{let{response:S,receiptReceived:E}=s(g);if(w?.wait&&!E){let m=T?.blockChain&&u.blockchains?.[T?.blockChain]?.chainId||void 0,{hash:x,response:A}=await w.wait(g,m,S);if(x!==g){p.executedTransactionId=x||p.executedTransactionId;let y=W(i,p),N=Y(p.executedTransactionId,y,u.blockchains);N&&p.explorerUrl&&p.explorerUrl?.length>=1&&(p.explorerUrl[p.explorerUrl.length-1]={url:N,description:"Replaced Approve"}),g=p.executedTransactionId,x&&A&&d(x,{response:A})}else d(x,{receiptReceived:!0})}}catch(S){let{extraMessage:E,extraMessageDetail:m,extraMessageErrorCode:x}=L(S),A=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:E,details:m,errorCode:x});return f({event:{type:"failed",reason:E,reasonCode:A.failureType??R},...A}),a()}let k=!1;try{let S=await B().checkApproval(i.requestId,p.executedTransactionId);if(p?.status==="failed")return;if(k=S.isApproved,!k&&(S.txStatus==="failed"||S.txStatus==="success")){let E,m;S.txStatus==="failed"?(E="Approve transaction failed",m="Smart contract approval tx failed in blockchain."):(E="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 x=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:E,details:m});f({event:{type:"failed",reason:E,reasonCode:x.failureType??R},...x}),a()}else k||f({event:{type:"check_status"},swap:i,step:p})}catch{k=!1}k?(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),o())}l(Vt,"checkApprovalStatus");async function at(e){let t=e.getStorage().swapDetails,n=C(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}de(e),n.status==="running"?await $t(e):n.status==="waitingForApproval"&&await Vt(e)}l(at,"checkStatus");async function st(e){let{setStorage:t,getStorage:n,next:r,schedule:o}=e,a=n().swapDetails,c=C(a);if(!b(c)){f({event:{type:"tx_execution",status:"create_tx"},swap:a,step:c});let u={requestId:a.requestId,step:c.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(c,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}=L(s),T=O({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:d,details:p,errorCode:"FETCH_TX_FAILED"});f({event:{type:"failed",reason:d,reasonCode:T.failureType??R},...T}),e.failed()}}}l(st,"createTransaction");async function it(e){let{getStorage:t,context:n}=e,{meta:r,wallets:o,providers:a}=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=C(s);if(de(e),!ke(s,n.state).ok){let{type:S,address:E}=D(s),m=o?.blockchains?.find(y=>!y.accounts?.find(N=>N.walletType===S)),x=!o||m?ee(S):Pe(S,E),A={reason:"waiting_for_connecting_wallet",description:x};u(A);return}let T=await Ve(s,d,o,r,a);if(!!c()&&!i&&!T){let S=me,E={reason:"depends_on_other_queues",details:S};u(E);return}else if(T)Je(e,{message:"",details:"Wallet network changed successfully",status:"networkChanged"});else{let S=W(s,d),E=te(S),m={reason:"waiting_for_network_change",details:E};u(m);return}if(nt(d)&&!i){let S={reason:"depends_on_other_queues",description:me,details:{}};u(S);return}et(e)}l(it,"executeTransaction");function lt({schedule:e,next:t,failed:n,setStorage:r,getStorage:o}){let a=o().swapDetails,c=C(a),i=a.steps.find(u=>u.status==="failed");if(c&&!i){if(Ye(a,c))return e("EXECUTE_TRANSACTION"),t();if(c?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();a.status="running",r({...o(),swapDetails:a}),f({event:{type:"started"},swap:a,step:c}),e("CREATE_TRANSACTION"),t()}else a.status=i?"failed":"success",a.finishTime=new Date().getTime().toString(),r({...o(),swapDetails:a}),f({...i?{event:{type:"failed",reason:a.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED"}}:{event:{type:"succeeded",outputAmount:ie(a.steps)?.outputAmount??""}},swap:a,step:null}),i?n():t()}l(lt,"scheduleNextStep");function ct({schedule:e,next:t,getStorage:n}){let r=n().swapDetails;f({event:{type:"started"},swap:r,step:null}),e("SCHEDULE_NEXT_STEP"),t()}l(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 Zt}from"@rango-dev/queue-manager-react";import{useEffect as ve,useState as en}from"react";import{Persistor as Yt,Status as J,DB_NAME as Jt}from"@rango-dev/queue-manager-core";import{v4 as jt}from"uuid";var pt="migratedToQueueManager";function Ne(){return!!window.localStorage.getItem(pt)}l(Ne,"migrated");async function zt(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(Jt)}catch{return!1}}l(zt,"hasQueueManagerOnIDB");async function dt(){let e=window.localStorage.getItem("pendingSwaps"),t=await zt();if(!e||Ne()||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:J.RUNNING,storage:{swapDetails:c},state:{status:J.RUNNING,activeTaskIndex:0,tasks:{[i]:{blockedFor:null,status:J.RUNNING}}},tasks:[{id:i,action:"SCHEDULE_NEXT_STEP"}]};r.push(u)}else{let i=c.status==="success"?J.SUCCESS:J.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 o=new Yt,a=r.map(c=>o.insertQueue(c));return await Promise.all(a),window.localStorage.setItem(pt,"1"),!0}l(dt,"migration");var gt=0;function tn(){let e=Ne(),[t,n]=en(e);return ve(()=>{(async()=>gt||(gt=1,dt().finally(()=>{n(!0)})))()},[]),{status:t}}l(tn,"useMigration");function nn(e){let{manager:t}=Zt();ve(()=>{e.lastConnectedWallet&&(tt({evmChains:e.evmChains,wallet_network:e.lastConnectedWallet,manager:t}),he(e.lastConnectedWallet,t,e.canSwitchNetworkTo))},[e.lastConnectedWallet]),ve(()=>{e.disconnectedWallet&&(Re(t),e.clearDisconnectedWallet())},[e.disconnectedWallet])}l(nn,"useQueueManager");function rn(){return se}l(rn,"useEvents");function Mo(e){return Oe(e),ut}l(Mo,"makeQueueDefinition");export{fe as MainEvents,re as MessageSeverity,ne as PendingSwapNetworkStatus,_ as PrettyError,Ee as RouteEventType,F as StepEventType,Z as StepExecutionBlockedEventStatus,V as StepExecutionEventStatus,vt as calculatePendingSwap,qt as cancelSwap,Re as checkWaitingForNetworkChange,P as getCurrentBlockchainOfOrNull,C as getCurrentStep,$e as getEvmProvider,X as getRelatedWallet,Ae as getRelatedWalletOrNull,D as getRequiredWallet,Gt as getRunningSwaps,Kt as isApprovalTX,Mo as makeQueueDefinition,L as prettifyErrorMessage,Ht as resetRunningSwapNotifsOnPageLoad,_e as splitWalletNetwork,O as updateSwapStatus,rn as useEvents,tn as useMigration,nn as useQueueManager};
2
2
  //# sourceMappingURL=index.js.map