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