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