@rango-dev/queue-manager-rango-preset 0.45.2-next.0 → 0.45.2-next.1

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/dist/helpers.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { SwapStatus, TargetNamespace, Wallet } from './shared';
2
- import type { ArrayElement, Step, SwapQueueContext, SwapQueueDef, SwapStorage } from './types';
2
+ import type { ArrayElement, LastConnectedWallet, 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';
@@ -180,7 +180,7 @@ export declare function isRequiredWalletConnected(swap: PendingSwap, getState: (
180
180
  };
181
181
  export declare function signTransaction(actions: ExecuterActions<SwapStorage, SwapActionTypes, SwapQueueContext>): Promise<void>;
182
182
  export declare function checkWaitingForConnectWalletChange(params: {
183
- wallet_network: string;
183
+ lastConnectedWallet: LastConnectedWallet;
184
184
  manager?: Manager;
185
185
  evmChains: EvmBlockchainMeta[];
186
186
  }): void;
@@ -213,7 +213,7 @@ export declare function resetRunningSwapNotifsOnPageLoad(runningSwaps: PendingSw
213
213
  * @param manager
214
214
  * @returns
215
215
  */
216
- export declare function retryOn(wallet_network: string, manager?: Manager, canSwitchNetworkTo?: (type: WalletType, network: Network) => boolean, options?: {
216
+ export declare function retryOn(lastConnectedWallet: LastConnectedWallet, manager?: Manager, canSwitchNetworkTo?: (type: WalletType, network: Network) => boolean, options?: {
217
217
  fallbackToOnlyWallet: boolean;
218
218
  }): void;
219
219
  export declare function isNeedBlockQueueForParallel(step: PendingSwapStep): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACpE,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,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,UAAU,EACX,MAAM,aAAa,CAAC;AAWrB,OAAO,EACL,wBAAwB,EAExB,eAAe,EAChB,MAAM,aAAa,CAAC;AAwBrB,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;IAErB,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,IA2BhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gBACd,eAAe,eACf,WAAW,KACvB,eAyDF,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,EACzB,KAAY,GACb,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;IACpC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;CAClC,GAAG;IACF,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAsFA;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,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAmBA;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,OAgBF,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,CA0CN;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,mBAAmB,GACxB,IAAI,CAuDN;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,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAkMf;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,CA0EP;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,CA0DN;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,CAkCA;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;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,EAAE,MAAM,GAAG,MAAM,GACxB,MAAM,CAMR;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAKzD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAO1D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAChB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAatD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAUlE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAOrE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAOxE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/hooks.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type UseQueueManagerParams } from './types';
1
+ import type { UseQueueManagerParams } from './types';
2
2
  /**
3
3
  *
4
4
  * Runs a migration (old swaps from localstorage to queue manager's IndexedDB)
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIrD;;;;;GAKG;AACH,iBAAS,YAAY,IAAI;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAqBA;AAED;;;;;GAKG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAyB5D;AAED,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAsB1E;;;;;GAKG;AACH,iBAAS,YAAY,IAAI;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAqBA;AAED;;;;;GAKG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAgC5D;AAED,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Configs } from './configs';
2
2
  import type { SwapQueueDef } from './types';
3
3
  export { PrettyError, prettifyErrorMessage } from './shared-errors';
4
- export type { SwapQueueContext, SwapStorage, RouteExecutionEvents, Route, Step, RouteEvent, StepEvent, RouteEventData, StepEventData, RouteStartedEvent, RouteSucceededEvent, RouteFailedEvent, StepStartedEvent, StepSucceededEvent, StepFailedEvent, StepTxExecutionUpdatedEvent, StepTxExecutionBlockedEvent, StepCheckStatusEvent, StepApprovalTxSucceededEvent, StepOutputRevealedEvent, } from './types';
4
+ export type { SwapQueueContext, SwapStorage, RouteExecutionEvents, Route, Step, RouteEvent, StepEvent, RouteEventData, StepEventData, RouteStartedEvent, RouteSucceededEvent, RouteFailedEvent, StepStartedEvent, StepSucceededEvent, StepFailedEvent, StepTxExecutionUpdatedEvent, StepTxExecutionBlockedEvent, StepCheckStatusEvent, StepApprovalTxSucceededEvent, StepOutputRevealedEvent, LastConnectedWallet, } from './types';
5
5
  export { WidgetEvents, StepEventType, RouteEventType, StepExecutionEventStatus, StepExecutionBlockedEventStatus, EventSeverity, } from './types';
6
6
  export type { PendingSwapWithQueueID, EventType, TargetNamespace, } from './shared';
7
7
  export { getCurrentNamespaceOfOrNull, getRelatedWalletOrNull, getRelatedWallet, MessageSeverity, calculatePendingSwap, getUsdPrice, } from './shared';
@@ -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,cAAc,EACd,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,YAAY,EACZ,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,+BAA+B,EAC/B,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,sBAAsB,EACtB,SAAS,EACT,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,WAAW,GACZ,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,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,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,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,+BAA+B,EAC/B,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,sBAAsB,EACtB,SAAS,EACT,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,WAAW,GACZ,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,MAAM,SAAS,CAAC;AAExD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAGlE"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var yt=Object.defineProperty;var l=(e,t)=>yt(e,"name",{value:t,configurable:!0});var Ct="c6381a79-2817-4602-83bf-6a641a409e32",fe={API_KEY:Ct,BASE_URL:""};function Y(e){return fe[e]}l(Y,"getConfig");function We(e){return fe=e,fe}l(We,"initConfig");var me=(n=>(n.RouteEvent="routeEvent",n.StepEvent="stepEvent",n))(me||{}),we=(r=>(r.STARTED="started",r.FAILED="failed",r.SUCCEEDED="succeeded",r))(we||{}),z=(r=>(r.CREATE_TX="create_tx",r.SEND_TX="send_tx",r.TX_SENT="tx_sent",r))(z||{}),ae=(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))(ae||{}),Q=(c=>(c.STARTED="started",c.FAILED="failed",c.SUCCEEDED="succeeded",c.TX_EXECUTION="tx_execution",c.TX_EXECUTION_BLOCKED="tx_execution_blocked",c.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",c.CHECK_STATUS="check_status",c.OUTPUT_REVEALED="output_revealed",c))(Q||{}),Ae=(a=>(a.ERROR="error",a.SUCCESS="success",a.WARNING="warning",a.INFO="info",a))(Ae||{});var ye="Waiting for other swaps to complete",be="Waiting for connecting wallet",Me=l((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),oe=l(e=>`Please connect your ${e??""} wallet.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),se=l(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),k="CLIENT_UNEXPECTED_BEHAVIOUR";import{warn as Ut}from"@rango-dev/logging-core";import{Status as Re}from"@rango-dev/queue-manager-core";import{legacyReadAccountAddress as Wt}from"@rango-dev/wallets-core/legacy";import{getBlockChainNameFromId as bt,getEvmProvider as Mt,splitWalletNetwork as Je}from"@rango-dev/wallets-shared";import Ft from"bignumber.js";import{PendingSwapNetworkStatus as te,SignerError as Lt,TransactionType as P}from"rango-types";import{RangoClient as xt}from"rango-sdk";var ie,X=l(()=>ie||(ie=new xt(Y("API_KEY"),Y("BASE_URL")),ie),"httpService");import Xe from"bignumber.js";import Fe from"bignumber.js";var Le=l((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new Fe(e),a=1,o=1e3;for(let u=0;u<60;u++)if(new Fe(r.toFixed(u,a)).eq(r)){o=u;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 u=t||4;u<17;u++)if(r.gte(Math.pow(10,-u)))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,u))),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 K,SignerError as _t,isSignerErrorCode as kt,isAPIErrorCode as Rt}from"rango-types";var vt="Assertion failed (Unexpected behaviour)",Nt="Create transaction failed in Rango Server",Be="Input wallet not found",O=class e extends Error{constructor(n,r,a,o){super(r);this._isPrettyError=!0;Object.setPrototypeOf(this,e.prototype),e.prototype._isPrettyError=!0,this.code=n,this.detail=o,this.root=a}static{l(this,"PrettyError")}static isPrettyError(n){return n instanceof e||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 e("CLIENT_UNEXPECTED_BEHAVIOUR",vt,null,n)}static BadStatusCode(n,r){return new e("TX_FAIL",n,null,`status code = ${r}`)}static CreateTransaction(n){return new e("FETCH_TX_FAILED",Nt,null,n)}static WalletMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",Be,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",Be,null,"Server requested for a blockchain or address not selected by user")}};function Qe(e){try{return e?Rt(e)?e:kt(e)?{[K.REJECTED_BY_USER]:"USER_REJECT",[K.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[K.SEND_TX_ERROR]:"SEND_TX_FAILED",[K.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[K.NOT_IMPLEMENTED]:k,[K.OPERATION_UNSUPPORTED]:k,[K.UNEXPECTED_BEHAVIOUR]:k}[e]:k:k}catch{return k}}l(Qe,"mapAppErrorCodesToAPIErrorCode");var H=l(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(O.isPrettyError(e))return e.getErrorDetail();if(_t.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 le=(a=>(a.error="error",a.warning="warning",a.info="info",a.success="success",a))(le||{}),M=l((e,t)=>{try{return F(e,t)}catch{return null}},"getCurrentNamespaceOfOrNull"),F=l((e,t)=>{let n=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain,r=t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain,a=t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain,o=t.cosmosTransaction?.blockChain,u=t.solanaTransaction?.blockChain,i=t.tonTransaction?.blockChain,c=t.suiTransaction?.blockChain;if(n)return{namespace:"EVM",network:n};if(r)return{namespace:"Starknet",network:r};if(a)return{namespace:"Tron",network:a};if(o)return{namespace:"Cosmos",network:o};if(u)return{namespace:"Solana",network:u};if(i)return{namespace:"Ton",network:i};if(c)return{namespace:"Sui",network:c};if(t.transferTransaction){let s=t.transferTransaction.fromWalletAddress;if(!s)throw O.BlockchainMissing();let d=Object.keys(e.wallets).find(p=>e.wallets[p]?.address===s);if(!d)throw O.BlockchainMissing();return{namespace:"UTXO",network:d}}throw new Error("Unsupported transaction type has been included in your swap.",{cause:t})},"getCurrentNamespaceOf"),Z=l((e,t,n)=>{let a=n[t].info?.transactionUrl;if(a)return a.indexOf("/{txHash}")!==-1?a.replace("{txHash}",e):`${a}/${e}`},"getScannerUrl");function Ge(e,t){return e.steps.find(n=>n.status!=="failed"&&n.status!=="success"&&n.id!==t.id)||null}l(Ge,"getNextStep");var Ce=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||""]||e.wallets[t.suiTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw O.WalletMissing();return n.address},"getCurrentAddressOf");function $(e,t){let n=Ce(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,u=o?.walletType;if(o===null)throw O.AssertionFailed(`Wallet for source ${a} not passed: walletType: ${u}`);return o}l($,"getRelatedWallet");function xe(e,t){if(!t)return null;try{return $(e,t)}catch{return null}}l(xe,"getRelatedWalletOrNull");var qe=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 Xe(0);for(let r=0;r<e.fee.length;r++){let a=e.fee[r];if(a.expenseType==="DECREASE_FROM_OUTPUT")continue;let o=qe(a.asset.blockchain,a.asset.symbol,a.asset.address,t);n=n.plus(new Xe(a.amount).multipliedBy(o||0))}return n}l(ht,"getUsdFeeOfStep");function He(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?Le(ht(e,t?.tokens),null,8):null,estimatedTimeInSeconds:e.estimatedTimeInSeconds||null,internalSteps:null}}l(He,"mapSwapStepToPendingSwapStep");function It(e,t,n,r,a,o){let u=t.result;if(!u)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:u,validateBalanceOrFee:a,steps:t.result?.swaps?.map((i,c)=>{let s=He(i,o);return{id:c+1,...s,internalSwaps:i?.internalSwaps?.map(d=>He(d,o))||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,suiTransaction:null,hasAlreadyProceededToSign:!1}})||[]}}l(It,"calculatePendingSwap");function Ke(e){return e.map(t=>{let{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:c,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:E,fromSymbolAddress:S,toSymbolAddress:m,swapperType:x,swapperId:g,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:_,status:v}=t;return{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:c,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:E,fromSymbolAddress:S,toSymbolAddress:m,swapperName:g,swapperType:x,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:_,status:v,transaction:L(t)}})}l(Ke,"createSteps");function Ot(e,t,n){let{creationTime:r,finishTime:a,requestId:o,inputAmount:u,status:i,wallets:c,steps:s,settings:d}=e,p=Ke(s),S={route:{creationTime:r,finishTime:a,requestId:o,inputAmount:u,status:i,wallets:c,steps:p,slippage:d.slippage,infiniteApproval:d.infiniteApprove},step:p[p.length-1]};if(n)S.step=Ke([n])[0];else if(t==="failed"){let m=$e(p);m&&(S.step=m)}else{let m=J(p);m&&(S.step=m)}return S}l(Ot,"getEventPayload");function Pt(e,t,n){let r,{type:a}=e;switch(a){case"started":r={...e,type:"started"};break;case"failed":r={...e,type:"failed",inputAmount:n.inputAmount,inputAmountUsd:_e(n)};break;case"succeeded":{r={...e,type:"succeeded",inputAmount:n.inputAmount,inputAmountUsd:_e(n),outputAmount:n.steps[n.steps.length-1].outputAmount??"",outputAmountUsd:Ve(n)};break}default:break}r&&Y("emitter")?.emit("routeEvent",{event:r,route:t})}l(Pt,"emitRouteEvent");function Dt(e,t,n){Y("emitter")?.emit("stepEvent",{event:e,route:t,step:n})}l(Dt,"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}`,u=`${a.toBlockchain}.${a.toSymbol}`,i=a.outputAmount??"",c=e.step?M(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} ${u}, 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&&ee(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&&ee(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 ${c?.network}.`,d="warning");break;default:break}e.step&&Dt({...t,message:s,messageSeverity:d},r,a),(e.event.type==="failed"||!e.step)&&Pt({...t,message:s,messageSeverity:d},r,e.swap)}l(f,"notifier");var ke=null;function ue(){return{claimedBy:()=>ke?.id,setClaimer:e=>{ke={id:e}},reset:()=>{ke=null}}}l(ue,"claimQueue");var V={};function ce(){return{getTransactionDataByHash:e=>V[e]||{},setTransactionDataByHash:(e,t)=>{V[e]||(V[e]={}),V[e].response=t.response||V[e].response,V[e].receiptReceived=t.receiptReceived||V[e].receiptReceived||!1}}}l(ce,"inMemoryTransactionsData");var y=l(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),L=l(e=>{let{evmTransaction:t,evmApprovalTransaction:n,cosmosTransaction:r,solanaTransaction:a,transferTransaction:o,starknetApprovalTransaction:u,starknetTransaction:i,tronApprovalTransaction:c,tronTransaction:s,tonTransaction:d,suiTransaction:p}=e;return t||n||r||a||o||u||i||c||s||d||p},"getCurrentStepTx"),pe=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,e.suiTransaction=null;let n=t.type;switch(n){case P.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case P.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case P.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case P.COSMOS:e.cosmosTransaction=t;break;case P.SOLANA:e.solanaTransaction=t;break;case P.TRANSFER:e.transferTransaction=t;break;case P.TON:e.tonTransaction=t;break;case P.SUI:e.suiTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),ve=l(e=>L(e)?.type,"getCurrentStepTxType"),ee=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:u=null,hasAlreadyProceededToSign:i,trace:c=null}){let s=e().swapDetails,d=y(s),p={swap:s,step:d};if(r&&d&&(d.status=r),n&&(s.status=n),s.hasAlreadyProceededToSign=i,n&&["failed","success"].includes(n)&&(s.finishTime=new Date().getTime().toString()),(a||o)&&(s.extraMessage=a||"",s.extraMessageDetail=o||""),r&&["failed"].includes(r)){let E=o&&o.includes("Warning")?"Swap canceled by user.":o,S=xe(s,d)?.walletType;s.extraMessageSeverity="error";let m=Qe(u);p.failureType=m;let x=u!=="REJECTED_BY_USER"&&c?.message&&typeof c.message=="string"?c.message:E||"";X().reportFailure({requestId:s.requestId,step:d?.id||1,eventType:m,reason:x,tags:S?{wallet:S}:void 0}).then().catch()}else r&&["running"].includes(r)?s.extraMessageSeverity="info":r&&["success","approved"].includes(r)?s.extraMessageSeverity="success":r&&["waitingForApproval"].includes(r)&&(s.extraMessageSeverity="warning");return r==="running"&&d&&(d.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:s}),p}l(D,"updateSwapStatus");function Bt({getStorage:e,setStorage:t},n,r){let a=e().swapDetails;a.hasAlreadyProceededToSign=null;let o=y(a);o.executedTransactionId=n,o.executedTransactionTime=new Date().getTime().toString(),r?.url&&(o.explorerUrl=[...o.explorerUrl||[],{url:r.url,description:r.description||null}]),ee(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(Bt,"setStepTransactionIds");function Qt({getStorage:e,setStorage:t},n,r){let a=e().swapDetails,o=y(a);if(!o)return;let u=new Date;a.lastNotificationTime=u.getTime().toString(),!(o.networkStatus===te.WaitingForConnectingWallet&&a.networkStatusExtraMessage===n&&a.networkStatusExtraMessageDetail===r)&&(o.networkStatus=te.WaitingForConnectingWallet,a.networkStatusExtraMessage=n,a.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:a}))}l(Qt,"markRunningSwapAsWaitingForConnectingWallet");function je({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(!r)return;let{type:a}=W(n),o=F(n,r),u=`Change ${a} wallet network to ${o.network}`,i=`Please change your ${a} wallet network to ${o.network}.`,c=new Date;return n.lastNotificationTime=c.getTime().toString(),r.networkStatus=te.WaitingForNetworkChange,n.networkStatusExtraMessage=u,n.networkStatusExtraMessageDetail=i,t({...e(),swapDetails:n}),{swap:n,step:r}}l(je,"markRunningSwapAsSwitchingNetwork");function ze({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(r)return n.networkStatusExtraMessage="",n.networkStatusExtraMessageDetail="",r.networkStatus=te.WaitingForQueue,f({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:n,step:r}),t({...e(),swapDetails:n}),{swap:n,step:r}}l(ze,"markRunningSwapAsDependsOnOtherQueues");async function de(e){return new Promise(t=>setTimeout(t,e))}l(de,"delay");var Xt=l((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function Ne(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}l(Ne,"isWalletNull");function W(e){let t=y(e),n=M(e,t);if(!n)return{type:null,namespace:null,address:null};let r=Xt(e,n.network),a=e.wallets[n.network];return{type:r||null,namespace:n,address:a?a.address:null}}l(W,"getRequiredWallet");async function Ht(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}l(Ht,"getChainId");async function Ze(e,t,n,r,a){if(Ne(n))return!1;let o=M(e,t);if(!o)return!1;if(r.evmBasedChains.find(u=>u.name===o.network)){try{let u=e.wallets[o.network];if(u){let i=Mt(a,u.walletType),c=await Ht(i);if(c){let s=bt(c,Object.entries(r.blockchains).map(([,d])=>d));if(s&&s.toLowerCase()===o.network.toLowerCase())return!0;if(s&&s.toLowerCase()!==o.network.toLowerCase())return!1}}}catch(u){console.log(u)}return!1}return!0}l(Ze,"isNetworkMatchedForTransaction");var et=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||""]||e.wallets[t.suiTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function Se(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,a=y(r);a?.networkStatus&&(a.networkStatus=null,n({...t(),swapDetails:r}))}l(Se,"resetNetworkStatus");function tt(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:a}=t,{getStorage:o,setStorage:u}=e,i=o().swapDetails,c=y(i);c?.networkStatus&&(i.networkStatusExtraMessage=n,i.networkStatusExtraMessageDetail=r,c.networkStatus=a,u({...o(),swapDetails:i}))}l(tt,"updateNetworkStatus");function nt(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,{ok:o,reason:u}=he(a,n.state);if(!o){let i=y(a),{type:c,address:s}=W(a);f({event:{type:"tx_execution_blocked",...u==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:s??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:c??void 0,requiredAccount:s??void 0}},swap:a,step:i}),Qt({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},be,e.reason.description);return}r.unblock()}l(nt,"onBlockForConnectWallet");function rt(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,o=y(a);if(!o||a.status!=="running")return;let u=je({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)}),i=M(a,o)?.network,c=W(a).type,s=c?n.state(c).network:void 0;u&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:i??void 0,currentNetwork:s??void 0},swap:u.swap,step:u.step});let{type:d,namespace:p}=W(a);if(d&&p?.network&&n.canSwitchNetworkTo(d,p.network)){let E=n.switchNetwork(d,p);E&&E.then(()=>{r.unblock()}).catch(S=>{console.log({error:S})})}}l(rt,"onBlockForChangeNetwork");function at(e,t){let{getBlockedTasks:n,forceExecute:r,queue:a,manager:o,context:u}=t,{setClaimer:i,claimedBy:c,reset:s}=ue(),d=n().filter(w=>w.reason.reason==="depends_on_other_queues");if(d.length===0)return;let p=c(),E=!!p;if(p===a.id)return;if(E){ze({getStorage:a.getStorage.bind(a),setStorage:a.setStorage.bind(a)});return}let S=d.find(w=>w.queue_id===t.queue_id);S||(S=d[0]),i(S.queue_id);let m=S.storage.get(),{type:x,namespace:g,address:T}=W(m.swapDetails);r(S.queue_id,{claimedBy:c(),resetClaimedBy:()=>{s(),Oe(`${x}-${g?.network}:${T}`,o,u.canSwitchNetworkTo)}})}l(at,"onDependsOnOtherQueues");function he(e,t){let{type:n,address:r}=W(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let a=t(n),{accounts:o,connected:u}=a,i=o||[];return u?{ok:i.some(s=>{let{address:d}=Wt(s);return r.toLocaleLowerCase()===d.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}l(he,"isRequiredWalletConnected");async function ot(e){let{setTransactionDataByHash:t}=ce(),{getStorage:n,setStorage:r,failed:a,next:o,schedule:u,context:i}=e,{meta:c,getSigners:s,isMobileWallet:d}=i,p=n().swapDetails,E=y(p),S=$(p,E),m=d(S?.walletType),x=Ce(p,E),g=F(p,E),T=l(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),w=L(E),C=w?.type,A=ee(E);if(!w||!C){let h="Unexpected Error: tx is null!",b=D({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:h,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return f({event:{type:"failed",reason:h,reasonCode:"CLIENT_UNEXPECTED_BEHAVIOUR",inputAmount:N(p),inputAmountUsd:U(p)},...b}),a(),T()}let R=c.blockchains?.[w.blockChain]?.chainId,_=typeof p.hasAlreadyProceededToSign=="boolean",v,I,G,B,q;A?(G=`Waiting for approval of ${E?.fromSymbol} coin ${m?"on your mobile phone!":""}`,B="Waiting for approve transaction to be mined and confirmed successfully",I="waitingForApproval",v=void 0,q="tx_execution"):_?(G="Transaction is expired. Please try again.",I="failed",v="failed",B="",q="failed"):(G="Executing transaction ...",I="running",v="running",B=`${m?"Check your mobile phone!":""}`,q="tx_execution");let Te=D({getStorage:n,setStorage:r,nextStepStatus:I,nextStatus:v,message:G,details:B,hasAlreadyProceededToSign:A?void 0:_,errorCode:_?"TX_EXPIRED":void 0});if(q==="failed"?f({event:{type:q,reason:G,reasonCode:Te.failureType??k,inputAmount:N(p),inputAmountUsd:U(p)},...Te}):f({event:{type:q,status:"send_tx"},...Te}),_){a(),T();return}(await s(S.walletType)).getSigner(C).signAndSendTx(w,x,R).then(({hash:h,response:b})=>{let re=Z(h,g.network,c.blockchains);Bt(e,h,re&&(!b||b&&!b.hashRequiringUpdate)?{url:re,description:A?"Approve":"Swap"}:void 0),b&&t(h,{response:b}),u("CHECK_TRANSACTION_STATUS"),o(),T()},h=>{if(p.status==="failed")return;let{extraMessage:b,extraMessageDetail:re,extraMessageErrorCode:At}=H(h);Ut(h,{tags:{requestId:p.requestId,rpc:!0,swapper:E?.swapperId||"",walletType:S?.walletType||""},context:Lt.isSignerError(h)?h.getErrorContext():{}});let Ue=D({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:b,details:re,errorCode:At,trace:h?.cause});f({event:{type:"failed",reason:b,reasonCode:Ue.failureType??k,inputAmount:N(p),inputAmountUsd:U(p)},...Ue}),a(),T()})}l(ot,"signTransaction");function st(e){let{wallet_network:t,evmChains:n,manager:r}=e,[a,o]=Je(t);n.some(u=>u.name==o)&&r?.getAll().forEach(u=>{let i=u.list.getStorage(),c=i?.swapDetails;if(c&&c.status==="running"){let s=y(c);if(s){let d=i?.swapDetails.wallets[s.fromBlockchain]?.walletType,p=Object.keys(u.list.state.tasks).some(S=>{let m=u.list.state.tasks[S];return m.status===Re.BLOCKED&&["waiting_for_connecting_wallet"].includes(m.blockedFor?.reason)}),E=M(c,s)?.network;if(d===a&&p&&E!=o){let S=u.list,{type:m}=W(c),x=se(m);u.list.block({reason:{reason:"waiting_for_network_change",description:x},silent:!0});let g=je({getStorage:S.getStorage.bind(S),setStorage:S.setStorage.bind(S)});g&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:o,requiredNetwork:E??void 0},swap:g.swap,step:g.step})}}}})}l(st,"checkWaitingForConnectWalletChange");function Ie(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let a=t.list.state.tasks[r];return a.status===Re.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}=W(r),o=oe(a);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:o}})}}})}l(Ie,"checkWaitingForNetworkChange");function Gt(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(Gt,"getRunningSwaps");function qt(e){e.forEach(t=>{let n=y(t),r="tx_execution_blocked",a;n?.networkStatus===te.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(qt,"resetRunningSwapNotifsOnPageLoad");function Oe(e,t,n,r={fallbackToOnlyWallet:!0}){let[a,o]=Je(e);if(!a||!o)return;let u=[],i=[];t?.getAll().forEach(s=>{if(s.status===Re.BLOCKED){let d=s.list.getStorage(),p=d?.swapDetails;if(p&&p.status==="running"){let E=y(p);E&&(M(p,E)?.network==o&&d?.swapDetails.wallets[o]?.walletType===a?u.push(s.list):d?.swapDetails.wallets[E.fromBlockchain]?.walletType===a&&i.push(s.list))}}});let c;if(u.length>0){if(c=u[0],u.length>1)for(let s=1;s<u.length;s++){let d=u[s];ze({getStorage:d.getStorage.bind(d),setStorage:d.setStorage.bind(d)})}}else i.length>0&&r.fallbackToOnlyWallet&&(c=i[0]);n?.(a,o)?c?.checkBlock():c?.unblock()}l(Oe,"retryOn");function it(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}l(it,"isNeedBlockQueueForParallel");async function lt(e){let t=await e;if(!t.ok||!t.transaction)throw O.CreateTransaction(t.error||"bad response from create tx endpoint");return t}l(lt,"throwOnOK");function Kt(e,t){let{reset:n}=ue();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,inputAmount:N(r.swap),inputAmountUsd:U(r.swap)},swap:r.swap,step:r.step}),n(),t&&t?.retry(),r}l(Kt,"cancelSwap");function J(e){return e.slice().reverse().find(t=>t.status==="success")}l(J,"getLastSuccessfulStep");function $e(e){return e.slice().reverse().find(t=>t.status==="failed")}l($e,"getFailedStep");function $t(e){let{transaction:t}=e;return t?.type===P.EVM&&t.isApprovalTx||t?.type===P.STARKNET&&t.isApprovalTx||t?.type===P.TRON&&t.isApprovalTx}l($t,"isApprovalTX");function ge(e,t){let n=new Ft(e).multipliedBy(t);return isNaN(n.toNumber())?"":n.toString()}l(ge,"getTokenAmountInUsd");function _e(e){return ge(e.inputAmount,e.steps[0].fromUsdPrice??"")}l(_e,"getSwapInputUsd");function Ve(e){let t=e.steps[e.steps.length-1];return ge(t.outputAmount??"",t.toUsdPrice??"")}l(Ve,"getSwapOutputUsd");function ut(e){let t=["success","failed"],n=e.steps.findLastIndex(r=>t.includes(r.status));return n<0?void 0:{step:e.steps[n],index:n}}l(ut,"getLastFinishedStep");function N(e){let t=ut(e);return t?t.index===0?e.inputAmount:e.steps[t.index-1].outputAmount??"":""}l(N,"getLastFinishedStepInput");function U(e){let t=ut(e);return ge(N(e),t?.step?.fromUsdPrice??"")}l(U,"getLastFinishedStepInputUsd");function Ee(e){let t=J(e.steps);return ge(t?.outputAmount??"",t?.toUsdPrice??"")}l(Ee,"getLastSuccessfulStepOutputUsd");var ct=5e3,Vt=5e3;async function Yt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:u}){let i=e().swapDetails,{meta:c}=u,s=y(i);if(!s?.executedTransactionId)return;let d=L(s),p=s.executedTransactionId,E=!1,S=null,m=null,{getTransactionDataByHash:x,setTransactionDataByHash:g}=ce();try{let A=ve(s),R=$(i,s);A&&R&&(m=(await u.getSigners(R.walletType)).getSigner(A))}catch{}try{let{response:A,receiptReceived:R}=x(p);if(m?.wait&&!R){let _=d?.blockChain&&c.blockchains?.[d?.blockChain]?.chainId||void 0,{hash:v,response:I}=await m.wait(p,_,A);if(v!==p){s.executedTransactionId=v||s.executedTransactionId;let G=F(i,s),B;!!Object.keys(c.blockchains).length&&(B=Z(s.executedTransactionId,G.network,c.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:R,extraMessageDetail:_,extraMessageErrorCode:v}=H(A),I=D({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:R,details:_,errorCode:v});f({event:{type:"failed",reason:R,reasonCode:I.failureType??k,inputAmount:N(i),inputAmountUsd:U(i)},...I}),E=!0}try{S=await X().checkStatus({requestId:i.requestId,txId:p,step:s.id})}catch{await de(ct),a();return}if(E)return o();if(s?.status==="failed")return;let T=S?.outputAmount||(s.outputAmount?s.outputAmount:null),w=s.outputAmount||null;i.extraMessage=S?.extraMessage||i.extraMessage,i.extraMessageSeverity="info",i.extraMessageDetail="",s.status=S?.status||s.status,s.diagnosisUrl=S?.diagnosisUrl||s.diagnosisUrl||null,s.outputAmount=T||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,pe(s,C)),w===null&&T!==null?f({event:{type:"output_revealed",outputAmount:T},swap:i,step:s}):w===null&&T===null&&f({event:{type:"check_status"},swap:i,step:s}),s.status==="success"){let A=Ge(i,s);i.extraMessageDetail="",i.extraMessage=A?`starting next step: ${A.swapperId}: ${A.fromBlockchain} -> ${A.toBlockchain}`:"",f({event:{type:"succeeded",inputAmount:N(i),inputAmountUsd:U(i),outputAmount:s.outputAmount??"",outputAmountUsd:Ee(i)},swap:i,step:s})}else s.status==="failed"&&(i.extraMessage="Transaction failed in blockchain",i.extraMessageSeverity="error",i.extraMessageDetail=S?.extraMessage||"",i.status="failed",i.finishTime=new Date().getTime().toString());t({...e(),swapDetails:i}),S?.status==="failed"?o():S?.status==="success"||S?.status==="running"&&S.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await de(ct),a())}l(Yt,"checkTransactionStatus");async function Jt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:u}){let i=e().swapDetails,{meta:c}=u,{getTransactionDataByHash:s,setTransactionDataByHash:d}=ce(),p=y(i);if(!p){console.log("ignore check status, current step is null");return}let E=L(p);if(!p?.executedTransactionId)return;let S=p.executedTransactionId,m=null;try{let g=ve(p),T=$(i,p);g&&T&&(m=(await u.getSigners(T.walletType)).getSigner(g))}catch{}try{let{response:g,receiptReceived:T}=s(S);if(m?.wait&&!T){let w=E?.blockChain&&c.blockchains?.[E?.blockChain]?.chainId||void 0,{hash:C,response:A}=await m.wait(S,w,g);if(C!==S){p.executedTransactionId=C||p.executedTransactionId;let R=F(i,p),_;!!Object.keys(c.blockchains).length&&(_=Z(p.executedTransactionId,R.network,c.blockchains)),_&&p.explorerUrl&&p.explorerUrl?.length>=1&&(p.explorerUrl[p.explorerUrl.length-1]={url:_,description:"Replaced Approve"}),S=p.executedTransactionId,C&&A&&d(C,{response:A})}else d(C,{receiptReceived:!0})}}catch(g){let{extraMessage:T,extraMessageDetail:w,extraMessageErrorCode:C}=H(g),A=D({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:T,details:w,errorCode:C});return f({event:{type:"failed",reason:T,reasonCode:A.failureType??k,inputAmount:N(i),inputAmountUsd:U(i)},...A}),o()}let x=!1;try{let g=await X().checkApproval(i.requestId,p.executedTransactionId);if(p?.status==="failed")return;if(x=g.isApproved,!x&&(g.txStatus==="failed"||g.txStatus==="success")){let T,w;g.txStatus==="failed"?(T="Approve transaction failed",w="Smart contract approval tx failed in blockchain."):(T="Not enough approval",g.requiredApprovedAmount&&g.currentApprovedAmount?w=`Required approval: ${g.requiredApprovedAmount}, current approval: ${g.currentApprovedAmount}`:w="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:T,details:w});f({event:{type:"failed",reason:T,reasonCode:C.failureType??k,inputAmount:N(i),inputAmountUsd:U(i)},...C}),o()}else x||f({event:{type:"check_status"},swap:i,step:p})}catch{x=!1}x?(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 de(Vt),a())}l(Jt,"checkApprovalStatus");async function pt(e){let t=e.getStorage().swapDetails,n=y(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}Se(e),n.status==="running"?await Yt(e):n.status==="waitingForApproval"&&await Jt(e)}l(pt,"checkStatus");async function dt(e){let{setStorage:t,getStorage:n,next:r,schedule:a}=e,o=n().swapDetails,u=y(o);if(!L(u)){f({event:{type:"tx_execution",status:"create_tx"},swap:o,step:u});let c={requestId:o.requestId,step:u.id,userSettings:{slippage:o.settings.slippage,infiniteApprove:o.settings.infiniteApprove},validations:{balance:o.validateBalanceOrFee,fee:o.validateBalanceOrFee,approve:!0}};try{let{transaction:s}=await lt(X().createTransaction(c));s&&pe(u,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}=H(s),E=D({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:d,details:p,errorCode:"FETCH_TX_FAILED"});f({event:{type:"failed",reason:d,reasonCode:E.failureType??k,inputAmount:N(o),inputAmountUsd:N(o)},...E}),e.failed()}}}l(dt,"createTransaction");import{PendingSwapNetworkStatus as jt}from"rango-types";async function St(e){let{getStorage:t,context:n}=e,{meta:r,wallets:a,providers:o}=n,{claimedBy:u}=ue(),i=n.claimedBy===n._queue?.id,c=l(g=>{e.block(g),i&&e.context.resetClaimedBy&&e.context.resetClaimedBy()},"requestBlock"),s=t().swapDetails,d=y(s);if(Se(e),!he(s,n.state).ok){let{type:g,address:T}=W(s),w=a?.blockchains?.find(R=>!R.accounts?.find(_=>_.walletType===g)),C=Ne(a)||w?oe(g):Me(g,T),A={reason:"waiting_for_connecting_wallet",description:C};c(A);return}let E=await Ze(s,d,a,r,o);if(!!u()&&!i&&!E){let g=ye,T={reason:"depends_on_other_queues",details:g};c(T);return}else if(!E){let g=F(s,d),T=se(g.network),w={reason:"waiting_for_network_change",details:T};c(w);return}if(tt(e,{message:"",details:"Wallet network changed successfully",status:jt.NetworkChanged}),it(d)&&!i){let g={reason:"depends_on_other_queues",description:ye,details:{}};c(g);return}await ot(e)}l(St,"executeTransaction");function gt({schedule:e,next:t,failed:n,setStorage:r,getStorage:a}){let o=a().swapDetails,u=y(o),i=o.steps.find(c=>c.status==="failed");if(u&&!i){if(et(o,u))return e("EXECUTE_TRANSACTION"),t();if(u?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();o.status="running",r({...a(),swapDetails:o}),f({event:{type:"started"},swap:o,step:u}),e("CREATE_TRANSACTION"),t()}else{o.status=i?"failed":"success",o.finishTime=new Date().getTime().toString(),r({...a(),swapDetails:o});let c=N(o),s=U(o);f({...i?{event:{type:"failed",reason:o.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED",inputAmount:c,inputAmountUsd:s}}:{event:{type:"succeeded",inputAmount:c,inputAmountUsd:s,outputAmount:J(o.steps)?.outputAmount??"",outputAmountUsd:Ee(o)}},swap:o,step:null}),i?n():t()}}l(gt,"scheduleNextStep");function Et({schedule:e,next:t,getStorage:n}){let r=n().swapDetails;f({event:{type:"started"},swap:r,step:null}),e("SCHEDULE_NEXT_STEP"),t()}l(Et,"start");var Tt={name:"swap",actions:{START:Et,SCHEDULE_NEXT_STEP:gt,CREATE_TRANSACTION:dt,EXECUTE_TRANSACTION:St,CHECK_TRANSACTION_STATUS:pt},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?nt(e,t):e.reason.reason==="waiting_for_network_change"?rt(e,t):e.reason.reason==="depends_on_other_queues"&&at(e,t)}};import{useManager as nn}from"@rango-dev/queue-manager-react";import{useEffect as De,useState as rn}from"react";import{DB_NAME as zt,Persistor as Zt,Status as ne}from"@rango-dev/queue-manager-core";import{v4 as en}from"uuid";var ft="migratedToQueueManager";function Pe(){return!!window.localStorage.getItem(ft)}l(Pe,"migrated");async function tn(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(zt)}catch{return!1}}l(tn,"hasQueueManagerOnIDB");async function mt(){let e=window.localStorage.getItem("pendingSwaps"),t=await tn();if(!e||Pe()||t)return!0;let n=JSON.parse(e),r=[];n.forEach(u=>{if(u.status==="running"){let i=en(),c={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:ne.RUNNING,storage:{swapDetails:u},state:{status:ne.RUNNING,activeTaskIndex:0,tasks:{[i]:{blockedFor:null,status:ne.RUNNING}}},tasks:[{id:i,action:"SCHEDULE_NEXT_STEP"}]};r.push(c)}else{let i=u.status==="success"?ne.SUCCESS:ne.FAILED,c={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:i,storage:{swapDetails:u},state:{status:i,activeTaskIndex:0,tasks:{}},tasks:[]};r.push(c)}});let a=new Zt,o=r.map(async u=>a.insertQueue(u));return await Promise.all(o),window.localStorage.setItem(ft,"1"),!0}l(mt,"migration");var wt=0;function an(){let e=Pe(),[t,n]=rn(e);return De(()=>{(async()=>wt||(wt=1,mt().finally(()=>{n(!0)})))()},[]),{status:t}}l(an,"useMigration");function on(e){let{manager:t}=nn();De(()=>{e.lastConnectedWallet&&(st({evmChains:e.evmChains,wallet_network:e.lastConnectedWallet,manager:t}),Oe(e.lastConnectedWallet,t,e.canSwitchNetworkTo))},[e.lastConnectedWallet]),De(()=>{e.disconnectedWallet&&(Ie(t),e.clearDisconnectedWallet())},[e.disconnectedWallet])}l(on,"useQueueManager");function ta(e){return We(e),Tt}l(ta,"makeQueueDefinition");export{Ae as EventSeverity,le as MessageSeverity,O as PrettyError,we as RouteEventType,Q as StepEventType,ae as StepExecutionBlockedEventStatus,z as StepExecutionEventStatus,me as WidgetEvents,It as calculatePendingSwap,Kt as cancelSwap,Ie as checkWaitingForNetworkChange,M as getCurrentNamespaceOfOrNull,y as getCurrentStep,J as getLastSuccessfulStep,$ as getRelatedWallet,xe as getRelatedWalletOrNull,W as getRequiredWallet,Gt as getRunningSwaps,qe as getUsdPrice,$t as isApprovalTX,ta as makeQueueDefinition,H as prettifyErrorMessage,qt as resetRunningSwapNotifsOnPageLoad,D as updateSwapStatus,an as useMigration,on as useQueueManager};
1
+ var At=Object.defineProperty;var l=(e,t)=>At(e,"name",{value:t,configurable:!0});var yt="c6381a79-2817-4602-83bf-6a641a409e32",fe={API_KEY:yt,BASE_URL:""};function Y(e){return fe[e]}l(Y,"getConfig");function We(e){return fe=e,fe}l(We,"initConfig");var me=(n=>(n.RouteEvent="routeEvent",n.StepEvent="stepEvent",n))(me||{}),we=(r=>(r.STARTED="started",r.FAILED="failed",r.SUCCEEDED="succeeded",r))(we||{}),z=(r=>(r.CREATE_TX="create_tx",r.SEND_TX="send_tx",r.TX_SENT="tx_sent",r))(z||{}),ae=(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))(ae||{}),Q=(c=>(c.STARTED="started",c.FAILED="failed",c.SUCCEEDED="succeeded",c.TX_EXECUTION="tx_execution",c.TX_EXECUTION_BLOCKED="tx_execution_blocked",c.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",c.CHECK_STATUS="check_status",c.OUTPUT_REVEALED="output_revealed",c))(Q||{}),Ae=(a=>(a.ERROR="error",a.SUCCESS="success",a.WARNING="warning",a.INFO="info",a))(Ae||{});var ye="Waiting for other swaps to complete",be="Waiting for connecting wallet",Me=l((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),oe=l(e=>`Please connect your ${e??""} wallet.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),se=l(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),k="CLIENT_UNEXPECTED_BEHAVIOUR";import{warn as Dt}from"@rango-dev/logging-core";import{Status as Re}from"@rango-dev/queue-manager-core";import{legacyReadAccountAddress as Ut}from"@rango-dev/wallets-core/legacy";import{getBlockChainNameFromId as Wt,getEvmProvider as bt}from"@rango-dev/wallets-shared";import Mt from"bignumber.js";import{PendingSwapNetworkStatus as te,SignerError as Lt,TransactionType as P}from"rango-types";import{RangoClient as Ct}from"rango-sdk";var ie,X=l(()=>ie||(ie=new Ct(Y("API_KEY"),Y("BASE_URL")),ie),"httpService");import Xe from"bignumber.js";import Le from"bignumber.js";var Fe=l((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new Le(e),a=1,o=1e3;for(let u=0;u<60;u++)if(new Le(r.toFixed(u,a)).eq(r)){o=u;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 u=t||4;u<17;u++)if(r.gte(Math.pow(10,-u)))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,u))),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 K,SignerError as xt,isSignerErrorCode as _t,isAPIErrorCode as kt}from"rango-types";var Rt="Assertion failed (Unexpected behaviour)",vt="Create transaction failed in Rango Server",Be="Input wallet not found",O=class e extends Error{constructor(n,r,a,o){super(r);this._isPrettyError=!0;Object.setPrototypeOf(this,e.prototype),e.prototype._isPrettyError=!0,this.code=n,this.detail=o,this.root=a}static{l(this,"PrettyError")}static isPrettyError(n){return n instanceof e||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 e("CLIENT_UNEXPECTED_BEHAVIOUR",Rt,null,n)}static BadStatusCode(n,r){return new e("TX_FAIL",n,null,`status code = ${r}`)}static CreateTransaction(n){return new e("FETCH_TX_FAILED",vt,null,n)}static WalletMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",Be,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",Be,null,"Server requested for a blockchain or address not selected by user")}};function Qe(e){try{return e?kt(e)?e:_t(e)?{[K.REJECTED_BY_USER]:"USER_REJECT",[K.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[K.SEND_TX_ERROR]:"SEND_TX_FAILED",[K.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[K.NOT_IMPLEMENTED]:k,[K.OPERATION_UNSUPPORTED]:k,[K.UNEXPECTED_BEHAVIOUR]:k}[e]:k:k}catch{return k}}l(Qe,"mapAppErrorCodesToAPIErrorCode");var H=l(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(O.isPrettyError(e))return e.getErrorDetail();if(xt.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 le=(a=>(a.error="error",a.warning="warning",a.info="info",a.success="success",a))(le||{}),M=l((e,t)=>{try{return L(e,t)}catch{return null}},"getCurrentNamespaceOfOrNull"),L=l((e,t)=>{let n=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain,r=t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain,a=t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain,o=t.cosmosTransaction?.blockChain,u=t.solanaTransaction?.blockChain,i=t.tonTransaction?.blockChain,c=t.suiTransaction?.blockChain;if(n)return{namespace:"EVM",network:n};if(r)return{namespace:"Starknet",network:r};if(a)return{namespace:"Tron",network:a};if(o)return{namespace:"Cosmos",network:o};if(u)return{namespace:"Solana",network:u};if(i)return{namespace:"Ton",network:i};if(c)return{namespace:"Sui",network:c};if(t.transferTransaction){let s=t.transferTransaction.fromWalletAddress;if(!s)throw O.BlockchainMissing();let d=Object.keys(e.wallets).find(p=>e.wallets[p]?.address===s);if(!d)throw O.BlockchainMissing();return{namespace:"UTXO",network:d}}throw new Error("Unsupported transaction type has been included in your swap.",{cause:t})},"getCurrentNamespaceOf"),Z=l((e,t,n)=>{let a=n[t].info?.transactionUrl;if(a)return a.indexOf("/{txHash}")!==-1?a.replace("{txHash}",e):`${a}/${e}`},"getScannerUrl");function Ge(e,t){return e.steps.find(n=>n.status!=="failed"&&n.status!=="success"&&n.id!==t.id)||null}l(Ge,"getNextStep");var Ce=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||""]||e.wallets[t.suiTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw O.WalletMissing();return n.address},"getCurrentAddressOf");function $(e,t){let n=Ce(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,u=o?.walletType;if(o===null)throw O.AssertionFailed(`Wallet for source ${a} not passed: walletType: ${u}`);return o}l($,"getRelatedWallet");function xe(e,t){if(!t)return null;try{return $(e,t)}catch{return null}}l(xe,"getRelatedWalletOrNull");var qe=l((e,t,n,r)=>r?.find(o=>o.blockchain===e&&o.symbol?.toUpperCase()===t?.toUpperCase()&&o.address===n)?.usdPrice||null,"getUsdPrice");function Nt(e,t){let n=new Xe(0);for(let r=0;r<e.fee.length;r++){let a=e.fee[r];if(a.expenseType==="DECREASE_FROM_OUTPUT")continue;let o=qe(a.asset.blockchain,a.asset.symbol,a.asset.address,t);n=n.plus(new Xe(a.amount).multipliedBy(o||0))}return n}l(Nt,"getUsdFeeOfStep");function He(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?Fe(Nt(e,t?.tokens),null,8):null,estimatedTimeInSeconds:e.estimatedTimeInSeconds||null,internalSteps:null}}l(He,"mapSwapStepToPendingSwapStep");function ht(e,t,n,r,a,o){let u=t.result;if(!u)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:u,validateBalanceOrFee:a,steps:t.result?.swaps?.map((i,c)=>{let s=He(i,o);return{id:c+1,...s,internalSwaps:i?.internalSwaps?.map(d=>He(d,o))||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,suiTransaction:null,hasAlreadyProceededToSign:!1}})||[]}}l(ht,"calculatePendingSwap");function Ke(e){return e.map(t=>{let{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:c,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:E,fromSymbolAddress:S,toSymbolAddress:m,swapperType:x,swapperId:g,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:_,status:v}=t;return{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:c,fromBlockchain:s,toBlockchain:d,fromSymbol:p,toSymbol:E,fromSymbolAddress:S,toSymbolAddress:m,swapperName:g,swapperType:x,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:_,status:v,transaction:F(t)}})}l(Ke,"createSteps");function It(e,t,n){let{creationTime:r,finishTime:a,requestId:o,inputAmount:u,status:i,wallets:c,steps:s,settings:d}=e,p=Ke(s),S={route:{creationTime:r,finishTime:a,requestId:o,inputAmount:u,status:i,wallets:c,steps:p,slippage:d.slippage,infiniteApproval:d.infiniteApprove},step:p[p.length-1]};if(n)S.step=Ke([n])[0];else if(t==="failed"){let m=$e(p);m&&(S.step=m)}else{let m=J(p);m&&(S.step=m)}return S}l(It,"getEventPayload");function Ot(e,t,n){let r,{type:a}=e;switch(a){case"started":r={...e,type:"started"};break;case"failed":r={...e,type:"failed",inputAmount:n.inputAmount,inputAmountUsd:_e(n)};break;case"succeeded":{r={...e,type:"succeeded",inputAmount:n.inputAmount,inputAmountUsd:_e(n),outputAmount:n.steps[n.steps.length-1].outputAmount??"",outputAmountUsd:Ve(n)};break}default:break}r&&Y("emitter")?.emit("routeEvent",{event:r,route:t})}l(Ot,"emitRouteEvent");function Pt(e,t,n){Y("emitter")?.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}=It(e.swap,n,e.step??void 0),o=`${a.fromBlockchain}.${a.fromSymbol}`,u=`${a.toBlockchain}.${a.toSymbol}`,i=a.outputAmount??"",c=e.step?M(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} ${u}, 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&&ee(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&&ee(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 ${c?.network}.`,d="warning");break;default:break}e.step&&Pt({...t,message:s,messageSeverity:d},r,a),(e.event.type==="failed"||!e.step)&&Ot({...t,message:s,messageSeverity:d},r,e.swap)}l(f,"notifier");var ke=null;function ue(){return{claimedBy:()=>ke?.id,setClaimer:e=>{ke={id:e}},reset:()=>{ke=null}}}l(ue,"claimQueue");var V={};function ce(){return{getTransactionDataByHash:e=>V[e]||{},setTransactionDataByHash:(e,t)=>{V[e]||(V[e]={}),V[e].response=t.response||V[e].response,V[e].receiptReceived=t.receiptReceived||V[e].receiptReceived||!1}}}l(ce,"inMemoryTransactionsData");var y=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:u,starknetTransaction:i,tronApprovalTransaction:c,tronTransaction:s,tonTransaction:d,suiTransaction:p}=e;return t||n||r||a||o||u||i||c||s||d||p},"getCurrentStepTx"),pe=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,e.suiTransaction=null;let n=t.type;switch(n){case P.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case P.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case P.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case P.COSMOS:e.cosmosTransaction=t;break;case P.SOLANA:e.solanaTransaction=t;break;case P.TRANSFER:e.transferTransaction=t;break;case P.TON:e.tonTransaction=t;break;case P.SUI:e.suiTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),ve=l(e=>F(e)?.type,"getCurrentStepTxType"),ee=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:u=null,hasAlreadyProceededToSign:i,trace:c=null}){let s=e().swapDetails,d=y(s),p={swap:s,step:d};if(r&&d&&(d.status=r),n&&(s.status=n),s.hasAlreadyProceededToSign=i,n&&["failed","success"].includes(n)&&(s.finishTime=new Date().getTime().toString()),(a||o)&&(s.extraMessage=a||"",s.extraMessageDetail=o||""),r&&["failed"].includes(r)){let E=o&&o.includes("Warning")?"Swap canceled by user.":o,S=xe(s,d)?.walletType;s.extraMessageSeverity="error";let m=Qe(u);p.failureType=m;let x=u!=="REJECTED_BY_USER"&&c?.message&&typeof c.message=="string"?c.message:E||"";X().reportFailure({requestId:s.requestId,step:d?.id||1,eventType:m,reason:x,tags:S?{wallet:S}:void 0}).then().catch()}else r&&["running"].includes(r)?s.extraMessageSeverity="info":r&&["success","approved"].includes(r)?s.extraMessageSeverity="success":r&&["waitingForApproval"].includes(r)&&(s.extraMessageSeverity="warning");return r==="running"&&d&&(d.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:s}),p}l(D,"updateSwapStatus");function Ft({getStorage:e,setStorage:t},n,r){let a=e().swapDetails;a.hasAlreadyProceededToSign=null;let o=y(a);o.executedTransactionId=n,o.executedTransactionTime=new Date().getTime().toString(),r?.url&&(o.explorerUrl=[...o.explorerUrl||[],{url:r.url,description:r.description||null}]),ee(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(Ft,"setStepTransactionIds");function Bt({getStorage:e,setStorage:t},n,r){let a=e().swapDetails,o=y(a);if(!o)return;let u=new Date;a.lastNotificationTime=u.getTime().toString(),!(o.networkStatus===te.WaitingForConnectingWallet&&a.networkStatusExtraMessage===n&&a.networkStatusExtraMessageDetail===r)&&(o.networkStatus=te.WaitingForConnectingWallet,a.networkStatusExtraMessage=n,a.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:a}))}l(Bt,"markRunningSwapAsWaitingForConnectingWallet");function Je({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(!r)return;let{type:a}=W(n),o=L(n,r),u=`Change ${a} wallet network to ${o.network}`,i=`Please change your ${a} wallet network to ${o.network}.`,c=new Date;return n.lastNotificationTime=c.getTime().toString(),r.networkStatus=te.WaitingForNetworkChange,n.networkStatusExtraMessage=u,n.networkStatusExtraMessageDetail=i,t({...e(),swapDetails:n}),{swap:n,step:r}}l(Je,"markRunningSwapAsSwitchingNetwork");function je({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(r)return n.networkStatusExtraMessage="",n.networkStatusExtraMessageDetail="",r.networkStatus=te.WaitingForQueue,f({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:n,step:r}),t({...e(),swapDetails:n}),{swap:n,step:r}}l(je,"markRunningSwapAsDependsOnOtherQueues");async function de(e){return new Promise(t=>setTimeout(t,e))}l(de,"delay");var Qt=l((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function Ne(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}l(Ne,"isWalletNull");function W(e){let t=y(e),n=M(e,t);if(!n)return{type:null,namespace:null,address:null};let r=Qt(e,n.network),a=e.wallets[n.network];return{type:r||null,namespace:n,address:a?a.address:null}}l(W,"getRequiredWallet");async function Xt(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}l(Xt,"getChainId");async function ze(e,t,n,r,a){if(Ne(n))return!1;let o=M(e,t);if(!o)return!1;if(r.evmBasedChains.find(u=>u.name===o.network)){try{let u=e.wallets[o.network];if(u){let i=bt(a,u.walletType),c=await Xt(i);if(c){let s=Wt(c,Object.entries(r.blockchains).map(([,d])=>d));if(s&&s.toLowerCase()===o.network.toLowerCase())return!0;if(s&&s.toLowerCase()!==o.network.toLowerCase())return!1}}}catch(u){console.log(u)}return!1}return!0}l(ze,"isNetworkMatchedForTransaction");var Ze=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||""]||e.wallets[t.suiTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function Se(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,a=y(r);a?.networkStatus&&(a.networkStatus=null,n({...t(),swapDetails:r}))}l(Se,"resetNetworkStatus");function et(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:a}=t,{getStorage:o,setStorage:u}=e,i=o().swapDetails,c=y(i);c?.networkStatus&&(i.networkStatusExtraMessage=n,i.networkStatusExtraMessageDetail=r,c.networkStatus=a,u({...o(),swapDetails:i}))}l(et,"updateNetworkStatus");function tt(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,{ok:o,reason:u}=he(a,n.state);if(!o){let i=y(a),{type:c,address:s}=W(a);f({event:{type:"tx_execution_blocked",...u==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:s??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:c??void 0,requiredAccount:s??void 0}},swap:a,step:i}),Bt({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},be,e.reason.description);return}r.unblock()}l(tt,"onBlockForConnectWallet");function nt(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,o=y(a);if(!o||a.status!=="running")return;let u=Je({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)}),i=M(a,o)?.network,c=W(a).type,s=c?n.state(c).network:void 0;u&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:i??void 0,currentNetwork:s??void 0},swap:u.swap,step:u.step});let{type:d,namespace:p}=W(a);if(d&&p?.network&&n.canSwitchNetworkTo(d,p.network)){let E=n.switchNetwork(d,p);E&&E.then(()=>{r.unblock()}).catch(S=>{console.log({error:S})})}}l(nt,"onBlockForChangeNetwork");function rt(e,t){let{getBlockedTasks:n,forceExecute:r,queue:a,manager:o,context:u}=t,{setClaimer:i,claimedBy:c,reset:s}=ue(),d=n().filter(w=>w.reason.reason==="depends_on_other_queues");if(d.length===0)return;let p=c(),E=!!p;if(p===a.id)return;if(E){je({getStorage:a.getStorage.bind(a),setStorage:a.setStorage.bind(a)});return}let S=d.find(w=>w.queue_id===t.queue_id);S||(S=d[0]),i(S.queue_id);let m=S.storage.get(),{type:x,namespace:g,address:T}=W(m.swapDetails);r(S.queue_id,{claimedBy:c(),resetClaimedBy:()=>{s(),x&&Oe({walletType:x,network:g?.network,accounts:T?[T]:[]},o,u.canSwitchNetworkTo)}})}l(rt,"onDependsOnOtherQueues");function he(e,t){let{type:n,address:r}=W(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let a=t(n),{accounts:o,connected:u}=a,i=o||[];return u?{ok:i.some(s=>{let{address:d}=Ut(s);return r.toLocaleLowerCase()===d.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}l(he,"isRequiredWalletConnected");async function at(e){let{setTransactionDataByHash:t}=ce(),{getStorage:n,setStorage:r,failed:a,next:o,schedule:u,context:i}=e,{meta:c,getSigners:s,isMobileWallet:d}=i,p=n().swapDetails,E=y(p),S=$(p,E),m=d(S?.walletType),x=Ce(p,E),g=L(p,E),T=l(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),w=F(E),C=w?.type,A=ee(E);if(!w||!C){let h="Unexpected Error: tx is null!",b=D({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:h,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return f({event:{type:"failed",reason:h,reasonCode:"CLIENT_UNEXPECTED_BEHAVIOUR",inputAmount:N(p),inputAmountUsd:U(p)},...b}),a(),T()}let R=c.blockchains?.[w.blockChain]?.chainId,_=typeof p.hasAlreadyProceededToSign=="boolean",v,I,G,B,q;A?(G=`Waiting for approval of ${E?.fromSymbol} coin ${m?"on your mobile phone!":""}`,B="Waiting for approve transaction to be mined and confirmed successfully",I="waitingForApproval",v=void 0,q="tx_execution"):_?(G="Transaction is expired. Please try again.",I="failed",v="failed",B="",q="failed"):(G="Executing transaction ...",I="running",v="running",B=`${m?"Check your mobile phone!":""}`,q="tx_execution");let Te=D({getStorage:n,setStorage:r,nextStepStatus:I,nextStatus:v,message:G,details:B,hasAlreadyProceededToSign:A?void 0:_,errorCode:_?"TX_EXPIRED":void 0});if(q==="failed"?f({event:{type:q,reason:G,reasonCode:Te.failureType??k,inputAmount:N(p),inputAmountUsd:U(p)},...Te}):f({event:{type:q,status:"send_tx"},...Te}),_){a(),T();return}(await s(S.walletType)).getSigner(C).signAndSendTx(w,x,R).then(({hash:h,response:b})=>{let re=Z(h,g.network,c.blockchains);Ft(e,h,re&&(!b||b&&!b.hashRequiringUpdate)?{url:re,description:A?"Approve":"Swap"}:void 0),b&&t(h,{response:b}),u("CHECK_TRANSACTION_STATUS"),o(),T()},h=>{if(p.status==="failed")return;let{extraMessage:b,extraMessageDetail:re,extraMessageErrorCode:wt}=H(h);Dt(h,{tags:{requestId:p.requestId,rpc:!0,swapper:E?.swapperId||"",walletType:S?.walletType||""},context:Lt.isSignerError(h)?h.getErrorContext():{}});let Ue=D({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:b,details:re,errorCode:wt,trace:h?.cause});f({event:{type:"failed",reason:b,reasonCode:Ue.failureType??k,inputAmount:N(p),inputAmountUsd:U(p)},...Ue}),a(),T()})}l(at,"signTransaction");function ot(e){let{lastConnectedWallet:t,evmChains:n,manager:r}=e,{walletType:a,network:o}=t;n.some(u=>u.name==o)&&r?.getAll().forEach(u=>{let i=u.list.getStorage(),c=i?.swapDetails;if(c&&c.status==="running"){let s=y(c);if(s){let d=i?.swapDetails.wallets[s.fromBlockchain]?.walletType,p=Object.keys(u.list.state.tasks).some(S=>{let m=u.list.state.tasks[S];return m.status===Re.BLOCKED&&["waiting_for_connecting_wallet"].includes(m.blockedFor?.reason)}),E=M(c,s)?.network;if(!n.some(S=>S.name==E))return;if(d===a&&p&&E!=o){let S=u.list,{type:m}=W(c),x=se(m);u.list.block({reason:{reason:"waiting_for_network_change",description:x},silent:!0});let g=Je({getStorage:S.getStorage.bind(S),setStorage:S.setStorage.bind(S)});g&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:o,requiredNetwork:E??void 0},swap:g.swap,step:g.step})}}}})}l(ot,"checkWaitingForConnectWalletChange");function Ie(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let a=t.list.state.tasks[r];return a.status===Re.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}=W(r),o=oe(a);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:o}})}}})}l(Ie,"checkWaitingForNetworkChange");function Ht(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(Ht,"getRunningSwaps");function Gt(e){e.forEach(t=>{let n=y(t),r="tx_execution_blocked",a;n?.networkStatus===te.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 Oe(e,t,n,r={fallbackToOnlyWallet:!0}){let{walletType:a,network:o}=e;if(!a)return;let u=[],i=[];t?.getAll().forEach(s=>{if(s.status===Re.BLOCKED){let d=s.list.getStorage(),p=d?.swapDetails;if(p&&p.status==="running"){let E=y(p);E&&(o&&M(p,E)?.network==o&&d?.swapDetails.wallets[o]?.walletType===a?u.push(s.list):d?.swapDetails.wallets[E.fromBlockchain]?.walletType===a&&i.push(s.list))}}});let c;if(u.length>0){if(c=u[0],u.length>1)for(let s=1;s<u.length;s++){let d=u[s];je({getStorage:d.getStorage.bind(d),setStorage:d.setStorage.bind(d)})}}else i.length>0&&r.fallbackToOnlyWallet&&(c=i[0]);!o||!n?.(a,o)?c?.unblock():c?.checkBlock()}l(Oe,"retryOn");function st(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}l(st,"isNeedBlockQueueForParallel");async function it(e){let t=await e;if(!t.ok||!t.transaction)throw O.CreateTransaction(t.error||"bad response from create tx endpoint");return t}l(it,"throwOnOK");function qt(e,t){let{reset:n}=ue();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,inputAmount:N(r.swap),inputAmountUsd:U(r.swap)},swap:r.swap,step:r.step}),n(),t&&t?.retry(),r}l(qt,"cancelSwap");function J(e){return e.slice().reverse().find(t=>t.status==="success")}l(J,"getLastSuccessfulStep");function $e(e){return e.slice().reverse().find(t=>t.status==="failed")}l($e,"getFailedStep");function Kt(e){let{transaction:t}=e;return t?.type===P.EVM&&t.isApprovalTx||t?.type===P.STARKNET&&t.isApprovalTx||t?.type===P.TRON&&t.isApprovalTx}l(Kt,"isApprovalTX");function ge(e,t){let n=new Mt(e).multipliedBy(t);return isNaN(n.toNumber())?"":n.toString()}l(ge,"getTokenAmountInUsd");function _e(e){return ge(e.inputAmount,e.steps[0].fromUsdPrice??"")}l(_e,"getSwapInputUsd");function Ve(e){let t=e.steps[e.steps.length-1];return ge(t.outputAmount??"",t.toUsdPrice??"")}l(Ve,"getSwapOutputUsd");function lt(e){let t=["success","failed"],n=e.steps.findLastIndex(r=>t.includes(r.status));return n<0?void 0:{step:e.steps[n],index:n}}l(lt,"getLastFinishedStep");function N(e){let t=lt(e);return t?t.index===0?e.inputAmount:e.steps[t.index-1].outputAmount??"":""}l(N,"getLastFinishedStepInput");function U(e){let t=lt(e);return ge(N(e),t?.step?.fromUsdPrice??"")}l(U,"getLastFinishedStepInputUsd");function Ee(e){let t=J(e.steps);return ge(t?.outputAmount??"",t?.toUsdPrice??"")}l(Ee,"getLastSuccessfulStepOutputUsd");var ut=5e3,$t=5e3;async function Vt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:u}){let i=e().swapDetails,{meta:c}=u,s=y(i);if(!s?.executedTransactionId)return;let d=F(s),p=s.executedTransactionId,E=!1,S=null,m=null,{getTransactionDataByHash:x,setTransactionDataByHash:g}=ce();try{let A=ve(s),R=$(i,s);A&&R&&(m=(await u.getSigners(R.walletType)).getSigner(A))}catch{}try{let{response:A,receiptReceived:R}=x(p);if(m?.wait&&!R){let _=d?.blockChain&&c.blockchains?.[d?.blockChain]?.chainId||void 0,{hash:v,response:I}=await m.wait(p,_,A);if(v!==p){s.executedTransactionId=v||s.executedTransactionId;let G=L(i,s),B;!!Object.keys(c.blockchains).length&&(B=Z(s.executedTransactionId,G.network,c.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:R,extraMessageDetail:_,extraMessageErrorCode:v}=H(A),I=D({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:R,details:_,errorCode:v});f({event:{type:"failed",reason:R,reasonCode:I.failureType??k,inputAmount:N(i),inputAmountUsd:U(i)},...I}),E=!0}try{S=await X().checkStatus({requestId:i.requestId,txId:p,step:s.id})}catch{await de(ut),a();return}if(E)return o();if(s?.status==="failed")return;let T=S?.outputAmount||(s.outputAmount?s.outputAmount:null),w=s.outputAmount||null;i.extraMessage=S?.extraMessage||i.extraMessage,i.extraMessageSeverity="info",i.extraMessageDetail="",s.status=S?.status||s.status,s.diagnosisUrl=S?.diagnosisUrl||s.diagnosisUrl||null,s.outputAmount=T||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,pe(s,C)),w===null&&T!==null?f({event:{type:"output_revealed",outputAmount:T},swap:i,step:s}):w===null&&T===null&&f({event:{type:"check_status"},swap:i,step:s}),s.status==="success"){let A=Ge(i,s);i.extraMessageDetail="",i.extraMessage=A?`starting next step: ${A.swapperId}: ${A.fromBlockchain} -> ${A.toBlockchain}`:"",f({event:{type:"succeeded",inputAmount:N(i),inputAmountUsd:U(i),outputAmount:s.outputAmount??"",outputAmountUsd:Ee(i)},swap:i,step:s})}else s.status==="failed"&&(i.extraMessage="Transaction failed in blockchain",i.extraMessageSeverity="error",i.extraMessageDetail=S?.extraMessage||"",i.status="failed",i.finishTime=new Date().getTime().toString());t({...e(),swapDetails:i}),S?.status==="failed"?o():S?.status==="success"||S?.status==="running"&&S.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await de(ut),a())}l(Vt,"checkTransactionStatus");async function Yt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:u}){let i=e().swapDetails,{meta:c}=u,{getTransactionDataByHash:s,setTransactionDataByHash:d}=ce(),p=y(i);if(!p){console.log("ignore check status, current step is null");return}let E=F(p);if(!p?.executedTransactionId)return;let S=p.executedTransactionId,m=null;try{let g=ve(p),T=$(i,p);g&&T&&(m=(await u.getSigners(T.walletType)).getSigner(g))}catch{}try{let{response:g,receiptReceived:T}=s(S);if(m?.wait&&!T){let w=E?.blockChain&&c.blockchains?.[E?.blockChain]?.chainId||void 0,{hash:C,response:A}=await m.wait(S,w,g);if(C!==S){p.executedTransactionId=C||p.executedTransactionId;let R=L(i,p),_;!!Object.keys(c.blockchains).length&&(_=Z(p.executedTransactionId,R.network,c.blockchains)),_&&p.explorerUrl&&p.explorerUrl?.length>=1&&(p.explorerUrl[p.explorerUrl.length-1]={url:_,description:"Replaced Approve"}),S=p.executedTransactionId,C&&A&&d(C,{response:A})}else d(C,{receiptReceived:!0})}}catch(g){let{extraMessage:T,extraMessageDetail:w,extraMessageErrorCode:C}=H(g),A=D({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:T,details:w,errorCode:C});return f({event:{type:"failed",reason:T,reasonCode:A.failureType??k,inputAmount:N(i),inputAmountUsd:U(i)},...A}),o()}let x=!1;try{let g=await X().checkApproval(i.requestId,p.executedTransactionId);if(p?.status==="failed")return;if(x=g.isApproved,!x&&(g.txStatus==="failed"||g.txStatus==="success")){let T,w;g.txStatus==="failed"?(T="Approve transaction failed",w="Smart contract approval tx failed in blockchain."):(T="Not enough approval",g.requiredApprovedAmount&&g.currentApprovedAmount?w=`Required approval: ${g.requiredApprovedAmount}, current approval: ${g.currentApprovedAmount}`:w="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:T,details:w});f({event:{type:"failed",reason:T,reasonCode:C.failureType??k,inputAmount:N(i),inputAmountUsd:U(i)},...C}),o()}else x||f({event:{type:"check_status"},swap:i,step:p})}catch{x=!1}x?(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 de($t),a())}l(Yt,"checkApprovalStatus");async function ct(e){let t=e.getStorage().swapDetails,n=y(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}Se(e),n.status==="running"?await Vt(e):n.status==="waitingForApproval"&&await Yt(e)}l(ct,"checkStatus");async function pt(e){let{setStorage:t,getStorage:n,next:r,schedule:a}=e,o=n().swapDetails,u=y(o);if(!F(u)){f({event:{type:"tx_execution",status:"create_tx"},swap:o,step:u});let c={requestId:o.requestId,step:u.id,userSettings:{slippage:o.settings.slippage,infiniteApprove:o.settings.infiniteApprove},validations:{balance:o.validateBalanceOrFee,fee:o.validateBalanceOrFee,approve:!0}};try{let{transaction:s}=await it(X().createTransaction(c));s&&pe(u,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}=H(s),E=D({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:d,details:p,errorCode:"FETCH_TX_FAILED"});f({event:{type:"failed",reason:d,reasonCode:E.failureType??k,inputAmount:N(o),inputAmountUsd:N(o)},...E}),e.failed()}}}l(pt,"createTransaction");import{PendingSwapNetworkStatus as Jt}from"rango-types";async function dt(e){let{getStorage:t,context:n}=e,{meta:r,wallets:a,providers:o}=n,{claimedBy:u}=ue(),i=n.claimedBy===n._queue?.id,c=l(g=>{e.block(g),i&&e.context.resetClaimedBy&&e.context.resetClaimedBy()},"requestBlock"),s=t().swapDetails,d=y(s);if(Se(e),!he(s,n.state).ok){let{type:g,address:T}=W(s),w=a?.blockchains?.find(R=>!R.accounts?.find(_=>_.walletType===g)),C=Ne(a)||w?oe(g):Me(g,T),A={reason:"waiting_for_connecting_wallet",description:C};c(A);return}let E=await ze(s,d,a,r,o);if(!!u()&&!i&&!E){let g=ye,T={reason:"depends_on_other_queues",details:g};c(T);return}else if(!E){let g=L(s,d),T=se(g.network),w={reason:"waiting_for_network_change",details:T};c(w);return}if(et(e,{message:"",details:"Wallet network changed successfully",status:Jt.NetworkChanged}),st(d)&&!i){let g={reason:"depends_on_other_queues",description:ye,details:{}};c(g);return}await at(e)}l(dt,"executeTransaction");function St({schedule:e,next:t,failed:n,setStorage:r,getStorage:a}){let o=a().swapDetails,u=y(o),i=o.steps.find(c=>c.status==="failed");if(u&&!i){if(Ze(o,u))return e("EXECUTE_TRANSACTION"),t();if(u?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();o.status="running",r({...a(),swapDetails:o}),f({event:{type:"started"},swap:o,step:u}),e("CREATE_TRANSACTION"),t()}else{o.status=i?"failed":"success",o.finishTime=new Date().getTime().toString(),r({...a(),swapDetails:o});let c=N(o),s=U(o);f({...i?{event:{type:"failed",reason:o.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED",inputAmount:c,inputAmountUsd:s}}:{event:{type:"succeeded",inputAmount:c,inputAmountUsd:s,outputAmount:J(o.steps)?.outputAmount??"",outputAmountUsd:Ee(o)}},swap:o,step:null}),i?n():t()}}l(St,"scheduleNextStep");function gt({schedule:e,next:t,getStorage:n}){let r=n().swapDetails;f({event:{type:"started"},swap:r,step:null}),e("SCHEDULE_NEXT_STEP"),t()}l(gt,"start");var Et={name:"swap",actions:{START:gt,SCHEDULE_NEXT_STEP:St,CREATE_TRANSACTION:pt,EXECUTE_TRANSACTION:dt,CHECK_TRANSACTION_STATUS:ct},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?tt(e,t):e.reason.reason==="waiting_for_network_change"?nt(e,t):e.reason.reason==="depends_on_other_queues"&&rt(e,t)}};import{useManager as tn}from"@rango-dev/queue-manager-react";import{useEffect as De,useState as nn}from"react";import{DB_NAME as jt,Persistor as zt,Status as ne}from"@rango-dev/queue-manager-core";import{v4 as Zt}from"uuid";var Tt="migratedToQueueManager";function Pe(){return!!window.localStorage.getItem(Tt)}l(Pe,"migrated");async function en(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(jt)}catch{return!1}}l(en,"hasQueueManagerOnIDB");async function ft(){let e=window.localStorage.getItem("pendingSwaps"),t=await en();if(!e||Pe()||t)return!0;let n=JSON.parse(e),r=[];n.forEach(u=>{if(u.status==="running"){let i=Zt(),c={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:ne.RUNNING,storage:{swapDetails:u},state:{status:ne.RUNNING,activeTaskIndex:0,tasks:{[i]:{blockedFor:null,status:ne.RUNNING}}},tasks:[{id:i,action:"SCHEDULE_NEXT_STEP"}]};r.push(c)}else{let i=u.status==="success"?ne.SUCCESS:ne.FAILED,c={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:i,storage:{swapDetails:u},state:{status:i,activeTaskIndex:0,tasks:{}},tasks:[]};r.push(c)}});let a=new zt,o=r.map(async u=>a.insertQueue(u));return await Promise.all(o),window.localStorage.setItem(Tt,"1"),!0}l(ft,"migration");var mt=0;function rn(e){return`${e?.walletType}-${e?.network}-${e?.accounts?.toString()}`}l(rn,"getLastConnectedWalletHash");function an(){let e=Pe(),[t,n]=nn(e);return De(()=>{(async()=>mt||(mt=1,ft().finally(()=>{n(!0)})))()},[]),{status:t}}l(an,"useMigration");function on(e){let{manager:t}=tn(),{lastConnectedWallet:n,disconnectedWallet:r,evmChains:a,canSwitchNetworkTo:o,clearDisconnectedWallet:u}=e;De(()=>{n&&(ot({evmChains:a,lastConnectedWallet:n,manager:t}),Oe(n,t,o))},[rn(n)]),De(()=>{r&&(Ie(t),u())},[r])}l(on,"useQueueManager");function ta(e){return We(e),Et}l(ta,"makeQueueDefinition");export{Ae as EventSeverity,le as MessageSeverity,O as PrettyError,we as RouteEventType,Q as StepEventType,ae as StepExecutionBlockedEventStatus,z as StepExecutionEventStatus,me as WidgetEvents,ht as calculatePendingSwap,qt as cancelSwap,Ie as checkWaitingForNetworkChange,M as getCurrentNamespaceOfOrNull,y as getCurrentStep,J as getLastSuccessfulStep,$ as getRelatedWallet,xe as getRelatedWalletOrNull,W as getRequiredWallet,Ht as getRunningSwaps,qe as getUsdPrice,Kt as isApprovalTX,ta as makeQueueDefinition,H as prettifyErrorMessage,Gt as resetRunningSwapNotifsOnPageLoad,D as updateSwapStatus,an as useMigration,on as useQueueManager};
2
2
  //# sourceMappingURL=index.js.map