@rango-dev/queue-manager-rango-preset 0.62.1-next.0 → 0.62.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import type { ProxiedNamespace } from '@rango-dev/wallets-core';
1
+ import type { ProxiedNamespace } from '@hub3js/core';
2
2
  import type { StellarActions } from '@rango-dev/wallets-core/namespaces/stellar';
3
3
  export type StellarNamespace = ProxiedNamespace<StellarActions>;
4
4
  export type TargetToken = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/checkStellarTrustline/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/checkStellarTrustline/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ProxiedNamespace } from '@rango-dev/wallets-core';
1
+ import type { ProxiedNamespace } from '@hub3js/core';
2
2
  import type { XRPLActions } from '@rango-dev/wallets-core/namespaces/xrpl';
3
3
  export type XrplNamespace = ProxiedNamespace<XRPLActions>;
4
4
  export type TargetToken = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/checkXrplTrustline/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/checkXrplTrustline/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
package/dist/helpers.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import type { NotifierParams } from './services/eventEmitter';
2
2
  import type { SwapStatus, TargetNamespace, Wallet } from './shared';
3
3
  import type { ArrayElement, LastConnectedWallet, Step, SwapQueueContext, SwapQueueDef, SwapStorage, UseQueueManagerParams } from './types';
4
+ import type { Provider } from '@hub3js/core';
5
+ import type { DefaultNamespaces } from '@hub3js/namespaces';
4
6
  import type { ExecuterActions, Manager, QueueInfo } from '@rango-dev/queue-manager-core';
5
- import type { Provider } from '@rango-dev/wallets-core';
6
7
  import type { Meta, Network, Providers, WalletState, WalletType } from '@rango-dev/wallets-shared';
7
8
  import type { CreateTransactionResponse, EvmBlockchainMeta, Transaction } from 'rango-sdk';
8
9
  import type { APIErrorCode, PendingSwap, PendingSwapStep, SignerErrorCode, StepStatus, SwapStepStatus } from 'rango-types';
@@ -139,12 +140,12 @@ export declare function getRequiredWallet(swap: PendingSwap): {
139
140
  namespace: TargetNamespace | null;
140
141
  address: string | null;
141
142
  };
142
- export declare function getProviderChainId(providers: Providers, hubProvider: (type: WalletType) => Provider, walletType: string): Promise<string | number | null>;
143
+ export declare function getProviderChainId(providers: Providers, hubProvider: (type: WalletType) => Provider<DefaultNamespaces>, walletType: string): Promise<string | number | null>;
143
144
  /**
144
145
  * For running a swap safely, we need to make sure about the state of wallet
145
146
  * which means the netowrk/chain of wallet should be exactly on what a transaction needs.
146
147
  */
147
- export declare function isNetworkMatchedForTransaction(swap: PendingSwap, step: PendingSwapStep, wallet: Wallet | null, meta: Meta, providers: Providers, hubProvider: (type: WalletType) => Provider): Promise<boolean>;
148
+ export declare function isNetworkMatchedForTransaction(swap: PendingSwap, step: PendingSwapStep, wallet: Wallet | null, meta: Meta, providers: Providers, hubProvider: (type: WalletType) => Provider<DefaultNamespaces>): Promise<boolean>;
148
149
  export declare const isTxAlreadyCreated: (swap: PendingSwap, step: PendingSwapStep) => boolean;
149
150
  export declare function resetNetworkStatus(actions: ExecuterActions<SwapStorage, SwapActionTypes, SwapQueueContext>): void;
150
151
  export declare function updateNetworkStatus(actions: Pick<ExecuterActions<SwapStorage, SwapActionTypes, SwapQueueContext>, 'getStorage' | 'setStorage'>, data?: {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var _r=Object.defineProperty;var o=(e,t)=>_r(e,"name",{value:t,configurable:!0});function Nr(){return process.env.REACT_APP_RANGO_API_KEY}o(Nr,"getApiKeyFromEnv");function xt(){return Nr()||"NOT_SET"}o(xt,"getApiKeyFromEnvOrNotSet");var Xe={API_KEY:xt(),BASE_URL:""};function Z(e){return Xe[e]}o(Z,"getConfig");function yt(e){return Xe=e,Xe}o(yt,"initConfig");import{Networks as rn}from"@rango-dev/wallets-shared";import{STELLAR_CHANGE_TRUSTLINE_TYPE as nn,XRPL_CHANGE_TRUSTLINE_TYPE as an}from"rango-types";import{Err as ot,Ok as Jt}from"ts-results";import{warn as Mr}from"@rango-dev/logging-core";import{Status as Ze}from"@rango-dev/queue-manager-core";import{legacyReadAccountAddress as Br}from"@rango-dev/wallets-core/legacy";import{getBlockChainNameFromId as Xr,getEvmProvider as Qr}from"@rango-dev/wallets-shared";import Hr from"bignumber.js";import{PendingSwapNetworkStatus as ae,SignerError as Gr,TransactionType as k}from"rango-types";import{STELLAR_CHANGE_TRUSTLINE_TYPE as hr,XRPL_CHANGE_TRUSTLINE_TYPE as kr}from"rango-types";import{Err as H,Ok as Ke}from"ts-results";var Qe=(r=>(r.RouteEvent="routeEvent",r.StepEvent="stepEvent",r))(Qe||{}),He=(n=>(n.STARTED="started",n.FAILED="failed",n.SUCCEEDED="succeeded",n))(He||{}),ee=(n=>(n.CREATE_TX="create_tx",n.SEND_TX="send_tx",n.TX_SENT="tx_sent",n))(ee||{}),ye=(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))(ye||{}),Q=(p=>(p.STARTED="started",p.FAILED="failed",p.SUCCEEDED="succeeded",p.TX_EXECUTION="tx_execution",p.TX_EXECUTION_BLOCKED="tx_execution_blocked",p.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",p.CHECK_STATUS="check_status",p.OUTPUT_REVEALED="output_revealed",p))(Q||{}),Ge=(a=>(a.ERROR="error",a.SUCCESS="success",a.WARNING="warning",a.INFO="info",a))(Ge||{});var At=o((e,t)=>{let r=Ve(t,e);return r?.status==="success"||r?.status==="skipped"},"checkIsPrerequisiteAlreadyMet");function Ve(e,t){return e.prerequisiteResults?.find(r=>$e(r,t))}o(Ve,"getPrerequisiteResult");var $e=o((e,t)=>e.prerequisiteIndex===t.prerequisiteIndex&&e.prerequisiteType===t.prerequisiteType,"matchesPrerequisiteKey");function Ct(e,t){let r=Ve(t,{prerequisiteType:kr,prerequisiteIndex:e});if(!r)return new Ke("CHECK_XRPL_TRUSTLINE");switch(r.status){case"pending":return new Ke("CHECK_XRPL_TRUSTLINE_TRANSACTION_STATUS");case"success":return new H("Unexpected Error: xrpl change trustline prerequisite is already met!");case"skipped":return new H("Unexpected Error: xrpl change trustline prerequisite is already met!");case"failed":return new H("Unexpected Error: xrpl change trustline prerequisite failed!");default:return new H("Unexpected Error: xrpl change trustline prerequisite has an invalid status!")}}o(Ct,"handleUnmetXrplChangeTrustLinePrerequisite");function Rt(e,t){let r=Ve(t,{prerequisiteType:hr,prerequisiteIndex:e});if(!r)return new Ke("CHECK_STELLAR_TRUSTLINE");switch(r.status){case"pending":return new H('Unexpected Error: stellar change trustline prerequisite has invalid "pending" status!');case"success":return new H("Unexpected Error: stellar change trustline prerequisite is already met!");case"skipped":return new H("Unexpected Error: stellar change trustline prerequisite is already met!");case"failed":return new H("Unexpected Error: stellar change trustline prerequisite failed!");default:return new H("Unexpected Error: stellar change trustline prerequisite has an invalid status!")}}o(Rt,"handleUnmetStellarChangeTrustLinePrerequisite");var Ye="Waiting for other swaps to complete",_t="Waiting for connecting wallet",te=o((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),$=o(e=>`Please connect your ${e??""} wallet.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),Ae=o(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),L="CLIENT_UNEXPECTED_BEHAVIOUR";import{RangoClient as Ir}from"rango-sdk";var Ce,Y=o(()=>Ce||(Ce=new Ir(Z("API_KEY"),Z("BASE_URL")),Ce),"httpService");import vt from"bignumber.js";import Nt from"bignumber.js";var ht=o((e,t=null,r=null)=>{if(e===null||e==="")return"";let n=new Nt(e),a=1,s=1e3;for(let u=0;u<60;u++)if(new Nt(n.toFixed(u,a)).eq(n)){s=u;break}if(n.gte(1e4))return n.toFormat(0,a);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,1))),a);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,2))),a);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,4))),a);for(let u=t||4;u<17;u++)if(n.gte(Math.pow(10,-u)))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,u))),a);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,8))),a)},"numberToString");import{SignerErrorCode as J,SignerError as vr,isSignerErrorCode as Pr,isAPIErrorCode as Lr}from"rango-types";var Or="Assertion failed (Unexpected behaviour)",Ur="Create transaction failed in Rango Server",kt="Input wallet not found",D=class e extends Error{constructor(r,n,a,s){super(n);this._isPrettyError=!0;Object.setPrototypeOf(this,e.prototype),e.prototype._isPrettyError=!0,this.code=r,this.detail=s,this.root=a}static{o(this,"PrettyError")}static isPrettyError(r){return r instanceof e||Object.prototype.hasOwnProperty.call(r,"_isPrettyError")}getErrorDetail(){let r=typeof this.root=="object"&&this.root&&this.root.error?this.root.error:JSON.stringify(this.root),n=typeof this.root=="string"?this.root:this.root instanceof Error?this.root.message:r;return{extraMessage:this.message,extraMessageDetail:this.detail||n,extraMessageErrorCode:this.code||null}}static AssertionFailed(r){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",Or,null,r)}static BadStatusCode(r,n){return new e("TX_FAIL",r,null,`status code = ${n}`)}static CreateTransaction(r){return new e("FETCH_TX_FAILED",Ur,null,r)}static WalletMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",kt,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",kt,null,"Server requested for a blockchain or address not selected by user")}};function It(e){try{return e?Lr(e)?e:Pr(e)?{[J.REJECTED_BY_USER]:"USER_REJECT",[J.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[J.SEND_TX_ERROR]:"SEND_TX_FAILED",[J.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[J.NOT_IMPLEMENTED]:L,[J.OPERATION_UNSUPPORTED]:L,[J.UNEXPECTED_BEHAVIOUR]:L}[e]:L:L}catch{return L}}o(It,"mapAppErrorCodesToAPIErrorCode");var j=o(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(D.isPrettyError(e))return e.getErrorDetail();if(vr.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 Re=(a=>(a.error="error",a.warning="warning",a.info="info",a.success="success",a))(Re||{}),F=o((e,t)=>{try{return G(e,t)}catch{return null}},"getCurrentNamespaceOfOrNull"),G=o((e,t)=>{let r=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain,n=t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain,a=t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain,s=t.solanaTransaction?.blockChain,u=t.tonTransaction?.blockChain,i=t.suiTransaction?.blockChain,p=t.xrplTransaction?.blockChain,c=t.stellarTransaction?.blockChain;if(r)return{namespace:"EVM",network:r};if(n)return{namespace:"Starknet",network:n};if(a)return{namespace:"Tron",network:a};if(s)return{namespace:"Solana",network:s};if(u)return{namespace:"Ton",network:u};if(i)return{namespace:"Sui",network:i};if(p)return{namespace:"XRPL",network:p};if(c)return{namespace:"Stellar",network:c};if(t.transferTransaction){let l=t.transferTransaction.fromWalletAddress;if(!l)throw D.BlockchainMissing();let T=Object.keys(e.wallets).find(d=>e.wallets[d]?.address===l);if(!T)throw D.BlockchainMissing();return{namespace:"UTXO",network:T}}throw new Error("Unsupported transaction type has been included in your swap.",{cause:t})},"getCurrentNamespaceOf"),ce=o((e,t,r)=>{let a=r[t].info?.transactionUrl;if(a)return a.indexOf("/{txHash}")!==-1?a.replace("{txHash}",e):`${a}/${e}`},"getScannerUrl");function Lt(e,t){return e.steps.find(r=>r.status!=="failed"&&r.status!=="success"&&r.id!==t.id)||null}o(Lt,"getNextStep");var Ot=o((e,t)=>{let r=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.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||e.wallets[t.suiTransaction?.blockChain||""]||e.wallets[t.xrplTransaction?.blockChain||""]||e.wallets[t.stellarTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction.fromWalletAddress,walletType:Object.values(e.wallets).find(n=>n.address===t.transferTransaction?.fromWalletAddress)?.walletType}:null)||null;if(r==null)throw D.WalletMissing();return r},"getCurrentWalletTypeAndAddress"),re=o((e,t)=>Ot(e,t).address,"getCurrentAddressOf");function W(e,t){let{address:r,walletType:n}=Ot(e,t),a=Object.keys(e.wallets).map(p=>({k:p,v:e.wallets[p]})).find(({v:p})=>p.address===r&&p.walletType===n)||null,s=a?.k||null,u=a?.v||null,i=u?.walletType;if(u===null)throw D.AssertionFailed(`Wallet for source ${s} not passed: walletType: ${i}`);return u}o(W,"getRelatedWallet");function je(e,t){if(!t)return null;try{return W(e,t)}catch(r){return console.log({e:r}),null}}o(je,"getRelatedWalletOrNull");var Ut=o((e,t,r,n)=>n?.find(s=>s.blockchain===e&&s.symbol?.toUpperCase()===t?.toUpperCase()&&s.address===r)?.usdPrice||null,"getUsdPrice");function Dr(e,t){let r=new vt(0);for(let n=0;n<e.fee.length;n++){let a=e.fee[n];if(a.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=Ut(a.asset.blockchain,a.asset.symbol,a.asset.address,t);r=r.plus(new vt(a.amount).multipliedBy(s||0))}return r}o(Dr,"getUsdFeeOfStep");function Pt(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?ht(Dr(e,t?.tokens),null,8):null,estimatedTimeInSeconds:e.estimatedTimeInSeconds||null,internalSteps:null}}o(Pt,"mapSwapStepToPendingSwapStep");function Wr(e){let{inputAmount:t,bestRoute:r,wallets:n,settings:a,validateBalanceOrFee:s,meta:u,swapMode:i="swap"}=e,p=r.result;if(!p)throw Error("Simulation result should not be null");return{creationTime:new Date().getTime().toString(),finishTime:null,requestId:r.requestId||"",inputAmount:t,wallets:n,status:"running",mode:i,isPaused:!1,extraMessage:null,extraMessageSeverity:null,extraMessageDetail:null,extraMessageErrorCode:null,networkStatusExtraMessage:null,networkStatusExtraMessageDetail:null,lastNotificationTime:null,settings:a,simulationResult:p,validateBalanceOrFee:s,steps:r.result?.swaps?.map((c,l)=>{let T=Pt(c,u);return{id:l+1,...T,internalSwaps:c?.internalSwaps?.map(d=>Pt(d,u))||null,outputAmount:"",prerequisiteResults:[],status:"created",networkStatus:null,startTransactionTime:new Date().getTime(),externalTransactionId:null,executedTransactionId:null,executedTransactionTime:null,explorerUrl:null,diagnosisUrl:null,trackingCode:null,internalSteps:null,evmTransaction:null,evmApprovalTransaction:null,starknetTransaction:null,starknetApprovalTransaction:null,tronTransaction:null,tronApprovalTransaction:null,cosmosTransaction:null,solanaTransaction:null,transferTransaction:null,tonTransaction:null,suiTransaction:null,xrplTransaction:null,stellarTransaction:null,hyperliquidTransaction:null,hasAlreadyProceededToSign:!1}})||[]}}o(Wr,"calculatePendingSwap");function Dt(e){return e.map(t=>{let{diagnosisUrl:r,estimatedTimeInSeconds:n,explorerUrl:a,feeInUsd:s,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:p,fromBlockchain:c,toBlockchain:l,fromSymbol:T,toSymbol:d,fromSymbolAddress:m,toSymbolAddress:S,swapperType:w,swapperId:y,outputAmount:N,fromAmountMaxValue:E,fromAmountMinValue:x,fromAmountPrecision:f,fromAmountRestrictionType:R,fromDecimals:C,status:_}=t;return{diagnosisUrl:r,estimatedTimeInSeconds:n,explorerUrl:a,feeInUsd:s,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:p,fromBlockchain:c,toBlockchain:l,fromSymbol:T,toSymbol:d,fromSymbolAddress:m,toSymbolAddress:S,swapperName:y,swapperType:w,outputAmount:N,fromAmountMaxValue:E,fromAmountMinValue:x,fromAmountPrecision:f,fromAmountRestrictionType:R,fromDecimals:C,status:_,transaction:h(t)}})}o(Dt,"createSteps");function br(e,t,r){let{creationTime:n,finishTime:a,requestId:s,inputAmount:u,status:i,wallets:p,steps:c,settings:l}=e,T=Dt(c),m={route:{creationTime:n,finishTime:a,requestId:s,inputAmount:u,status:i,wallets:p,steps:T,slippage:l.slippage,infiniteApproval:l.infiniteApprove},step:T[T.length-1]};if(r)m.step=Dt([r])[0];else if(t==="failed"){let S=Wt(T);S&&(m.step=S)}else{let S=ne(T);S&&(m.step=S)}return m}o(br,"getEventPayload");function qr(e,t,r){let n,{type:a}=e;switch(a){case"started":n={...e,type:"started"};break;case"failed":n={...e,type:"failed",inputAmount:r.inputAmount,inputAmountUsd:Je(r),swapMode:r.mode||"swap"};break;case"succeeded":{n={...e,type:"succeeded",inputAmount:r.inputAmount,inputAmountUsd:Je(r),outputAmount:r.steps[r.steps.length-1].outputAmount??"",outputAmountUsd:bt(r),swapMode:r.mode||"swap"};break}default:break}n&&Z("emitter")?.emit("routeEvent",{event:n,route:t})}o(qr,"emitRouteEvent");function Fr(e,t,r){Z("emitter")?.emit("stepEvent",{event:e,route:t,step:r})}o(Fr,"emitStepEvent");function A(e){let{event:t}=e,{type:r}=t,{route:n,step:a}=br(e.swap,r,e.step??void 0),s=`${a.fromBlockchain}.${a.fromSymbol}`,u=`${a.toBlockchain}.${a.toSymbol}`,i=a.outputAmount??"",p=e.step?F(e.swap,e.step):null,c="",l="info";switch(r){case"started":c="Swap process started",l="success";break;case"succeeded":c=`You received ${i} ${u}, hooray!`,l="success";break;case"failed":c=`Swap failed: ${e.swap?.extraMessage??"Reason is unknown"}`,l="error";break;case"tx_execution":t.status==="create_tx"?(c="Please wait while the transaction is created ...",l="info"):t.status==="send_tx"?(e.step&&M(e.step)?c=`Please confirm '${a.swapperName}' smart contract access to ${s}`:c="Please confirm transaction request in your wallet",l="warning"):t.status==="tx_sent"&&(c="Transaction sent successfully",l="info");break;case"check_status":e.step&&M(e.step)?c="Checking approve transaction status ...":c="Checking transaction status ...",l="info";break;case"approval_tx_succeeded":c="Smart contract called successfully",l="success";break;case"output_revealed":c="Transaction output amount revealed",l="success";break;case"tx_execution_blocked":t.status==="waiting_for_wallet_connect"?(c="Please connect your wallet.",l="warning"):t.status==="waiting_for_queue"?(c="Waiting for other swaps to complete",l="warning"):t.status==="waiting_for_change_wallet_account"?(c="Please change your wallet account.",l="warning"):t.status==="waiting_for_network_change"&&(c=`Please change your wallet network to ${p?.network}.`,l="warning");break;default:break}e.step&&Fr({...t,message:c,messageSeverity:l},n,a),(e.event.type==="failed"||!e.step)&&qr({...t,message:c,messageSeverity:l},n,e.swap)}o(A,"notifier");var ze=null;function Ne(){return{claimedBy:()=>ze?.id,setClaimer:e=>{ze={id:e}},reset:()=>{ze=null}}}o(Ne,"claimQueue");var z={};function he(){return{getTransactionDataByHash:e=>z[e]||{},setTransactionDataByHash:(e,t)=>{z[e]||(z[e]={}),z[e].response=t.response||z[e].response,z[e].receiptReceived=t.receiptReceived||z[e].receiptReceived||!1}}}o(he,"inMemoryTransactionsData");var g=o(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),h=o(e=>{let{evmTransaction:t,evmApprovalTransaction:r,solanaTransaction:n,transferTransaction:a,starknetApprovalTransaction:s,starknetTransaction:u,stellarTransaction:i,tronApprovalTransaction:p,tronTransaction:c,tonTransaction:l,suiTransaction:T,xrplTransaction:d}=e;return t||r||n||a||s||u||i||p||c||l||T||d},"getCurrentStepTx"),ke=o((e,t)=>{e.transferTransaction=null,e.cosmosTransaction=null,e.evmTransaction=null,e.solanaTransaction=null,e.evmApprovalTransaction=null,e.starknetApprovalTransaction=null,e.starknetTransaction=null,e.tronApprovalTransaction=null,e.tronTransaction=null,e.tonTransaction=null,e.suiTransaction=null,e.xrplTransaction=null,e.stellarTransaction=null;let r=t.type;switch(r){case k.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case k.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case k.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case k.COSMOS:throw new Error("Cosmos transactions are no longer supported.");case k.SOLANA:e.solanaTransaction=t;break;case k.TRANSFER:e.transferTransaction=t;break;case k.TON:e.tonTransaction=t;break;case k.SUI:e.suiTransaction=t;break;case k.XRPL:e.xrplTransaction=t;break;case k.STELLAR:e.stellarTransaction=t;break;case k.HYPERLIQUID:e.hyperliquidTransaction=t;break;default:(n=>{throw new Error(`${n} was unhandled!`)})(r)}return e},"setCurrentStepTx"),et=o(e=>h(e)?.type,"getCurrentStepTxType"),M=o(e=>{let{evmApprovalTransaction:t,starknetApprovalTransaction:r,tronApprovalTransaction:n}=e;return!!(t||r||n)},"isApprovalCurrentStepTx");function O({getStorage:e,setStorage:t,nextStatus:r,nextStepStatus:n,message:a,details:s,errorCode:u=null,hasAlreadyProceededToSign:i,trace:p=null}){let c=e().swapDetails,l=g(c),T={swap:c,step:l};if(n&&l&&(l.status=n),r&&(c.status=r),c.hasAlreadyProceededToSign=i,r&&["failed","success"].includes(r)&&(c.finishTime=new Date().getTime().toString()),(a||s)&&(c.extraMessage=a||"",c.extraMessageDetail=s||""),n&&["failed"].includes(n)){let d=s&&s.includes("Warning")?"Swap canceled by user.":s,m=je(c,l)?.walletType;c.extraMessageSeverity="error";let S=It(u);T.failureType=S;let w=u!=="REJECTED_BY_USER"&&p?.message&&typeof p.message=="string"?p.message:d||"";Y().reportFailure({requestId:c.requestId,step:l?.id||1,eventType:S,reason:w,tags:m?{wallet:m}:void 0}).then().catch()}else n&&["running"].includes(n)?c.extraMessageSeverity="info":n&&["success","approved"].includes(n)?c.extraMessageSeverity="success":n&&["waitingForApproval"].includes(n)&&(c.extraMessageSeverity="warning");return n==="running"&&l&&(l.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:c}),T}o(O,"updateSwapStatus");function Kr({getStorage:e,setStorage:t},r,n){let a=e().swapDetails;a.hasAlreadyProceededToSign=null;let s=g(a);s.executedTransactionId=r,s.executedTransactionTime=new Date().getTime().toString(),n?.url&&(s.explorerUrl=[...s.explorerUrl||[],{url:n.url,description:n.description||null}]),M(s)?a.extraMessage="Checking approve transaction status ...":a.extraMessage="Checking transaction status ...",a.extraMessageDetail="",a.extraMessageSeverity="info",t({...e(),swapDetails:a}),A({event:{type:"tx_execution",status:"tx_sent"},swap:a,step:s}),A({event:{type:"check_status"},swap:a,step:s})}o(Kr,"setStepTransactionIds");function Vr({getStorage:e,setStorage:t},r,n){let a=e().swapDetails,s=g(a);if(!s)return;let u=new Date;a.lastNotificationTime=u.getTime().toString(),!(s.networkStatus===ae.WaitingForConnectingWallet&&a.networkStatusExtraMessage===r&&a.networkStatusExtraMessageDetail===n)&&(s.networkStatus=ae.WaitingForConnectingWallet,a.networkStatusExtraMessage=r,a.networkStatusExtraMessageDetail=n,t({...e(),swapDetails:a}))}o(Vr,"markRunningSwapAsWaitingForConnectingWallet");function qt({getStorage:e,setStorage:t}){let r=e().swapDetails,n=g(r);if(!n)return;let{type:a}=b(r),s=G(r,n),u=`Change ${a} wallet network to ${s.network}`,i=`We\u2019re switching the connected network to ${s.network}. Please check your wallet.`,p=new Date;return r.lastNotificationTime=p.getTime().toString(),n.networkStatus=ae.WaitingForNetworkChange,r.networkStatusExtraMessage=u,r.networkStatusExtraMessageDetail=i,t({...e(),swapDetails:r}),{swap:r,step:n}}o(qt,"markRunningSwapAsSwitchingNetwork");function Ft({getStorage:e,setStorage:t}){let r=e().swapDetails,n=g(r);if(n)return r.networkStatusExtraMessage="",r.networkStatusExtraMessageDetail="",n.networkStatus=ae.WaitingForQueue,A({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:r,step:n}),t({...e(),swapDetails:r}),{swap:r,step:n}}o(Ft,"markRunningSwapAsDependsOnOtherQueues");async function se(e){return new Promise(t=>setTimeout(t,e))}o(se,"delay");var $r=o((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function tt(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}o(tt,"isWalletNull");function b(e){let t=g(e),r=F(e,t);if(!r)return{type:null,namespace:null,address:null};let n=$r(e,r.network),a=e.wallets[r.network];return{type:n||null,namespace:r,address:a?a.address:null}}o(b,"getRequiredWallet");async function Yr(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}o(Yr,"getChainId");async function jr(e,t,r){let n=Qr(e,r);if(n)return await Yr(n);let s=t(r).get("evm");if(!s)throw new Error("EVM namespace not found for wallet type: "+r);return s.getChainId()}o(jr,"getProviderChainId");async function Mt(e,t,r,n,a,s){if(tt(r))return!1;let u=F(e,t);if(!u)return!1;if(n.evmBasedChains.find(i=>i.name===u.network)){try{let i=e.wallets[u.network];if(i){let p=await jr(a,s,i.walletType);if(p){let c=Xr(p,Object.entries(n.blockchains).map(([,l])=>l));if(c&&c.toLowerCase()===u.network.toLowerCase())return!0;if(c&&c.toLowerCase()!==u.network.toLowerCase())return!1}}}catch(i){console.log(i)}return!1}return!0}o(Mt,"isNetworkMatchedForTransaction");var Bt=o((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.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||e.wallets[t.suiTransaction?.blockChain||""]||e.wallets[t.stellarTransaction?.blockChain||""]||e.wallets[t.xrplTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function Ie(e){let{getStorage:t,setStorage:r}=e,n=t().swapDetails,a=g(n);a?.networkStatus&&(a.networkStatus=null,r({...t(),swapDetails:n}))}o(Ie,"resetNetworkStatus");function rt(e,t={message:"",details:"",status:null}){let{message:r,details:n,status:a}=t,{getStorage:s,setStorage:u}=e,i=s().swapDetails,p=g(i);p?.networkStatus&&(i.networkStatusExtraMessage=r,i.networkStatusExtraMessageDetail=n,p.networkStatus=a,u({...s(),swapDetails:i}))}o(rt,"updateNetworkStatus");function Xt(e,t){let{context:r,queue:n}=t,a=n.getStorage().swapDetails,{ok:s,reason:u}=nt(a,r.state);if(!s){let i=g(a),{type:p,address:c}=b(a);A({event:{type:"tx_execution_blocked",...u==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:c??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:p??void 0,requiredAccount:c??void 0}},swap:a,step:i}),Vr({getStorage:n.getStorage.bind(n),setStorage:n.setStorage.bind(n)},_t,e.reason.description);return}n.unblock()}o(Xt,"onBlockForConnectWallet");function Qt(e,t){let{context:r,queue:n}=t,a=n.getStorage().swapDetails,s=g(a);if(!s||a.status!=="running")return;let u=qt({getStorage:n.getStorage.bind(n),setStorage:n.setStorage.bind(n)}),i=F(a,s)?.network,p=b(a).type,c=p?r.state(p).network:void 0;u&&A({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:i??void 0,currentNetwork:c??void 0},swap:u.swap,step:u.step});let{type:l,namespace:T}=b(a);if(l&&T?.network&&r.canSwitchNetworkTo(l,T.network,T)){let d=r.switchNetwork(l,T);d&&d.then(()=>{n.unblock()}).catch(m=>{rt({getStorage:n.getStorage.bind(n),setStorage:n.setStorage.bind(n)},{message:m.message,details:m.message,status:ae.NetworkChangeFailed})})}}o(Qt,"onBlockForChangeNetwork");function Ht(e,t){let{getBlockedTasks:r,forceExecute:n,queue:a,manager:s,context:u}=t,{setClaimer:i,claimedBy:p,reset:c}=Ne(),l=r().filter(E=>E.reason.reason==="depends_on_other_queues");if(l.length===0)return;let T=p(),d=!!T;if(T===a.id)return;if(d){Ft({getStorage:a.getStorage.bind(a),setStorage:a.setStorage.bind(a)});return}let m=l.find(E=>E.queue_id===t.queue_id);m||(m=l[0]),i(m.queue_id);let S=m.storage.get(),{type:w,namespace:y,address:N}=b(S.swapDetails);n(m.queue_id,{claimedBy:p(),resetClaimedBy:()=>{c(),w&&st({walletType:w,network:y?.network,accounts:N?[N]:[]},s,u.canSwitchNetworkTo)}})}o(Ht,"onDependsOnOtherQueues");function nt(e,t){let{type:r,address:n}=b(e);if(!r||!n)return{ok:!1,reason:"not_connected"};let a=t(r),{accounts:s,connected:u}=a,i=s||[];return u?{ok:i.some(c=>{let{address:l}=Br(c);return n.toLocaleLowerCase()===l.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}o(nt,"isRequiredWalletConnected");function K(e,t){let{getStorage:r,setStorage:n}=e,a=r().swapDetails,s=g(a),u=s.prerequisiteResults.findIndex(i=>$e(i,t));u>=0?s.prerequisiteResults[u]=t:s.prerequisiteResults.push(t),n({...r(),swapDetails:a})}o(K,"updateStorageWithPrerequisiteResult");function Jr(e,t,r){let{setTransactionDataByHash:n}=he(),{getStorage:a,context:s}=e,{meta:u}=s,i=a().swapDetails,p=g(i),c=G(i,p),l=ce(t.hash,c.network,u.blockchains);Kr(e,t.hash,l&&(!t.response||t.response&&!t.response.hashRequiringUpdate)?{url:l,description:r.isApproval?"Approve":"Swap"}:void 0),t.response&&n(t.hash,{response:t.response})}o(Jr,"updateStorageOnSuccessfulSign");function oe(e,t){return({hash:r,response:n})=>{let{schedule:a,next:s}=e;Jr(e,{hash:r,response:n},t),a("CHECK_TRANSACTION_STATUS"),s()}}o(oe,"handleSuccessfulSign");function q(e){return t=>{let{getStorage:r,setStorage:n,failed:a}=e,s=r().swapDetails,u=g(s);if(s.status==="failed")return;let i=W(s,u),{extraMessage:p,extraMessageDetail:c,extraMessageErrorCode:l}=j(t);Mr(t,{tags:{requestId:s.requestId,rpc:!0,swapper:u?.swapperId||"",walletType:i?.walletType||""},context:Gr.isSignerError(t)?t.getErrorContext():{}});let T=O({getStorage:r,setStorage:n,nextStatus:"failed",nextStepStatus:"failed",message:p,details:c,errorCode:l,trace:t?.cause});A({event:{type:"failed",reason:p,reasonCode:T.failureType??L,inputAmount:B(s),inputAmountUsd:V(s)},...T}),a()}}o(q,"handleRejectedSign");function Gt(e){let{lastConnectedWallet:t,evmChains:r,manager:n}=e,{walletType:a,network:s}=t;r.some(u=>u.name==s)&&n?.getAll().forEach(u=>{let i=u.list.getStorage(),p=i?.swapDetails;if(p&&p.status==="running"){let c=g(p);if(c){let l=i?.swapDetails.wallets[c.fromBlockchain]?.walletType,T=Object.keys(u.list.state.tasks).some(m=>{let S=u.list.state.tasks[m];return S.status===Ze.BLOCKED&&["waiting_for_connecting_wallet"].includes(S.blockedFor?.reason)}),d=F(p,c)?.network;if(!r.some(m=>m.name==d))return;if(l===a&&T&&d!=s){let m=u.list,{type:S}=b(p),w=Ae(S);u.list.block({reason:{reason:"waiting_for_network_change",description:w},silent:!0});let y=qt({getStorage:m.getStorage.bind(m),setStorage:m.setStorage.bind(m)});y&&A({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:s,requiredNetwork:d??void 0},swap:y.swap,step:y.step})}}}})}o(Gt,"checkWaitingForConnectWalletChange");function at(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(n=>{let a=t.list.state.tasks[n];return a.status===Ze.BLOCKED&&["waiting_for_network_change","depends_on_other_queues"].includes(a.blockedFor?.reason)})){let n=t.list.getStorage()?.swapDetails;if(n.status==="running"){let{type:a}=b(n),s=$(a);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:s}})}}})}o(at,"checkWaitingForNetworkChange");function zr(e){let t=e?.getAll()||new Map,r=[];return t.forEach(n=>{let s=n.list.getStorage()?.swapDetails;!s||s.status!=="running"||r.push(s)}),r}o(zr,"getRunningSwaps");function Zr(e){e.forEach(t=>{let r=g(t),n="tx_execution_blocked",a;r?.networkStatus===ae.WaitingForQueue?a="waiting_for_queue":t?.status==="running"&&(a="waiting_for_wallet_connect"),n&&A&&A({event:{type:n,status:a??"waiting_for_queue"},swap:t,step:r})})}o(Zr,"resetRunningSwapNotifsOnPageLoad");function st(e,t,r,n={fallbackToOnlyWallet:!0}){let{walletType:a,network:s}=e;if(!a)return;let u=[],i=[];t?.getAll().forEach(c=>{if(c.status===Ze.BLOCKED){let l=c.list.getStorage(),T=l?.swapDetails;if(T&&T.status==="running"){let d=g(T);d&&(s&&F(T,d)?.network==s&&l?.swapDetails.wallets[s]?.walletType===a?u.push(c.list):l?.swapDetails.wallets[d.fromBlockchain]?.walletType===a&&i.push(c.list))}}});let p;if(u.length>0){if(p=u[0],u.length>1)for(let c=1;c<u.length;c++){let l=u[c];Ft({getStorage:l.getStorage.bind(l),setStorage:l.setStorage.bind(l)})}}else i.length>0&&n.fallbackToOnlyWallet&&(p=i[0]);if(p){let c=p.getStorage(),l=g(c?.swapDetails),T=l?F(c.swapDetails,l):null;!s||!T||!r?.(a,s,T)?p.unblock():p.checkBlock()}}o(st,"retryOn");function Kt(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}o(Kt,"isNeedBlockQueueForParallel");async function Vt(e){let t=await e;if(!t.ok||!t.transaction)throw D.CreateTransaction(t.error||"bad response from create tx endpoint");return t}o(Vt,"throwOnOK");function en(e,t){let{reset:r}=Ne();e.actions.cancel();let n=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 A({event:{type:"failed",reasonCode:"USER_CANCEL",reason:n.swap.extraMessage??void 0,inputAmount:B(n.swap),inputAmountUsd:V(n.swap)},swap:n.swap,step:n.step}),r(),t&&t?.retry(),n}o(en,"cancelSwap");function ne(e){return e.slice().reverse().find(t=>t.status==="success")}o(ne,"getLastSuccessfulStep");function Wt(e){return e.slice().reverse().find(t=>t.status==="failed")}o(Wt,"getFailedStep");function tn(e){let{transaction:t}=e;return t?.type===k.EVM&&t.isApprovalTx||t?.type===k.STARKNET&&t.isApprovalTx||t?.type===k.TRON&&t.isApprovalTx}o(tn,"isApprovalTX");function ve(e,t){let r=new Hr(e).multipliedBy(t);return isNaN(r.toNumber())?"":r.toString()}o(ve,"getTokenAmountInUsd");function Je(e){return ve(e.inputAmount,e.steps[0].fromUsdPrice??"")}o(Je,"getSwapInputUsd");function bt(e){let t=e.steps[e.steps.length-1];return ve(t.outputAmount??"",t.toUsdPrice??"")}o(bt,"getSwapOutputUsd");function $t(e){let t=["success","failed"],r=e.steps.findLastIndex(n=>t.includes(n.status));return r<0?void 0:{step:e.steps[r],index:r}}o($t,"getLastFinishedStep");function B(e){let t=$t(e);return t?t.index===0?e.inputAmount:e.steps[t.index-1].outputAmount??"":""}o(B,"getLastFinishedStepInput");function V(e){let t=$t(e);return ve(B(e),t?.step?.fromUsdPrice??"")}o(V,"getLastFinishedStepInputUsd");function Pe(e){let t=ne(e.steps);return ve(t?.outputAmount??"",t?.toUsdPrice??"")}o(Pe,"getLastSuccessfulStepOutputUsd");function ie(e,t,r){return{type:"failed",reason:t,reasonCode:r??L,inputAmount:B(e),inputAmountUsd:V(e)}}o(ie,"createStepFailedEvent");import{Err as Yt,Ok as jt}from"ts-results";function ue(e){let{getStorage:t,context:r}=e,{isMobileWallet:n}=r,a=t().swapDetails,s=g(a),u=W(a,s),i=n(u?.walletType),p=h(s),c=M(s);if(!p||!p.type)return new Yt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});let l=!!a.hasAlreadyProceededToSign;return c?new jt({nextStatus:void 0,nextStepStatus:"waitingForApproval",details:"Waiting for approve transaction to be mined and confirmed successfully",message:`Waiting for approval of ${s?.fromSymbol} coin ${i?"on your mobile phone!":""}`}):l?new Yt({message:"Transaction is expired. Please try again.",nextStepStatus:"failed",nextStatus:"failed",details:"",errorCode:"TX_EXPIRED"}):new jt({message:"Executing transaction ...",nextStepStatus:"running",nextStatus:"running",details:`${i?"Check your mobile phone!":""}`})}o(ue,"produceNextStateForTransaction");function I(e,t){let{getStorage:r,setStorage:n}=e,a=r().swapDetails,s=g(a),u=M(s),i=typeof a.hasAlreadyProceededToSign=="boolean",p=O({getStorage:r,setStorage:n,nextStepStatus:t.nextStepStatus,nextStatus:t.nextStatus,message:t.message,details:t.details,errorCode:t.errorCode,hasAlreadyProceededToSign:u?void 0:i});A({event:{type:"failed",reason:t.message,reasonCode:p.failureType??L,inputAmount:B(a),inputAmountUsd:V(a)},...p})}o(I,"onNextStateError");function le(e,t){let{getStorage:r,setStorage:n}=e,a=r().swapDetails,s=g(a),u=M(s),i=typeof a.hasAlreadyProceededToSign=="boolean",p=O({getStorage:r,setStorage:n,nextStepStatus:t.nextStepStatus,nextStatus:t.nextStatus,message:t.message,details:t.details,hasAlreadyProceededToSign:u?void 0:i});A({event:{type:"tx_execution",status:"send_tx"},...p})}o(le,"onNextStateOk");async function it(e){let{failed:t,schedule:r,getStorage:n,next:a}=e,s=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),u=o(S=>{I(e,S.val),t(),s()},"handleErr"),i=o(S=>{r(S),a(),s()},"scheduleAction"),p=n().swapDetails,c=g(p),l=h(c);if(!l){u(new ot({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let T=l.prerequisites,d=T.findIndex((S,w)=>!At({prerequisiteType:S.type,prerequisiteIndex:w},c)),m=null;if(d!==-1)switch(T[d].type){case an:m=Ct(d,c);break;case nn:m=Rt(d,c);break;default:m=new ot("Unexpected Error: unknown prerequisite type!");break}else c.fromBlockchain===rn.XRPL?m=new Jt("EXECUTE_XRPL_TRANSACTION"):m=new Jt("EXECUTE_TRANSACTION");m?.err?u(new ot({nextStatus:"failed",nextStepStatus:"failed",message:m.val,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})):i(m.val)}o(it,"checkPrerequisites");import{warn as pe}from"@rango-dev/logging-core";import{SignerError as Zt}from"rango-types";var zt=5e3,sn=5e3;async function on({getStorage:e,setStorage:t,next:r,schedule:n,retry:a,failed:s,context:u}){let i=e().swapDetails,{meta:p}=u,c=new Error("check status Error"),l=g(i);if(!l?.executedTransactionId)return;let T=h(l),d=l.executedTransactionId,m=!1,S=null,w=null,{getTransactionDataByHash:y,setTransactionDataByHash:N}=he();try{let C=et(l),_=W(i,l);C&&_&&(w=(await u.getSigners(_.walletType)).getSigner(C))}catch{}try{let{response:C,receiptReceived:_}=y(d);if(w?.wait&&!_){let v=T?.blockChain&&p.blockchains?.[T?.blockChain]?.chainId||void 0,{hash:P,response:we}=await w.wait(d,v,C);if(P!==d){l.executedTransactionId=P||l.executedTransactionId;let xe=G(i,l),Be;!!Object.keys(p.blockchains).length&&(Be=ce(l.executedTransactionId,xe.network,p.blockchains)),Be&&l.explorerUrl&&l.explorerUrl?.length>=1&&(l.explorerUrl[l.explorerUrl.length-1]={url:Be,description:"Replaced Swap"}),d=l.executedTransactionId,P&&we&&N(P,{response:we})}else N(P,{receiptReceived:!0})}}catch(C){let{extraMessage:_,extraMessageDetail:v,extraMessageErrorCode:P}=j(C),we=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:_,details:v,errorCode:P}),xe=ie(i,_,we.failureType);pe(c,{tags:{type:"singer-error",reason:xe.reason,reasonCode:xe.reasonCode,message:_,messageDetail:v,pendingSwap:i},context:Zt.isSignerError(C)?C.getErrorContext():{}}),m=!0}let E={requestId:i.requestId,txId:d,step:l.id};try{S=await Y().checkStatus(E)}catch{await se(zt),a(),pe(c,{tags:{type:"request-error",requestBody:E,pendingSwap:i}});return}if(m)return s();if(l?.status==="failed")return;let x=S?.outputAmount||(l.outputAmount?l.outputAmount:null),f=l.outputAmount||null;i.extraMessage=S?.extraMessage||i.extraMessage,i.extraMessageSeverity="info",i.extraMessageDetail="",l.status=S?.status||l.status,l.diagnosisUrl=S?.diagnosisUrl||l.diagnosisUrl||null,l.outputAmount=x||l.outputAmount,l.explorerUrl=S?.explorerUrl||l.explorerUrl,l.internalSteps=S?.steps||null;let R=S?.newTx;if(R&&(l.status="created",l.executedTransactionId=null,l.executedTransactionTime=null,ke(l,R)),f===null&&x!==null?A({event:{type:"output_revealed",outputAmount:x},swap:i,step:l}):f===null&&x===null&&A({event:{type:"check_status"},swap:i,step:l}),l.status==="success"){let C=Lt(i,l);i.extraMessageDetail="",i.extraMessage=C?`starting next step: ${C.swapperId}: ${C.fromBlockchain} -> ${C.toBlockchain}`:"",A({event:{type:"succeeded",inputAmount:B(i),inputAmountUsd:V(i),outputAmount:l.outputAmount??"",outputAmountUsd:Pe(i)},swap:i,step:l})}else l.status==="failed"&&(i.extraMessage="Transaction failed in blockchain",i.extraMessageSeverity="error",i.extraMessageDetail=S?.extraMessage||"",i.status="failed",i.finishTime=new Date().getTime().toString(),pe(c,{tags:{type:"transaction-failed",message:i.extraMessage,messageDetails:i.extraMessageDetail,pendingSwap:i}}));t({...e(),swapDetails:i}),S?.status==="failed"?s():S?.status==="success"||S?.status==="running"&&S.newTx?(n("SCHEDULE_NEXT_STEP"),r()):(await se(zt),a())}o(on,"checkTransactionStatus");async function un({getStorage:e,setStorage:t,next:r,schedule:n,retry:a,failed:s,context:u}){let i=e().swapDetails,{meta:p}=u,{getTransactionDataByHash:c,setTransactionDataByHash:l}=he(),T=new Error("check approval status error"),d=g(i);if(!d){console.log("ignore check status, current step is null");return}let m=h(d);if(!d?.executedTransactionId)return;let S=d.executedTransactionId,w=null;try{let E=et(d),x=W(i,d);E&&x&&(w=(await u.getSigners(x.walletType)).getSigner(E))}catch{}try{let{response:E,receiptReceived:x}=c(S);if(w?.wait&&!x){let f=m?.blockChain&&p.blockchains?.[m?.blockChain]?.chainId||void 0,{hash:R,response:C}=await w.wait(S,f,E);if(R!==S){d.executedTransactionId=R||d.executedTransactionId;let _=G(i,d),v;!!Object.keys(p.blockchains).length&&(v=ce(d.executedTransactionId,_.network,p.blockchains)),v&&d.explorerUrl&&d.explorerUrl?.length>=1&&(d.explorerUrl[d.explorerUrl.length-1]={url:v,description:"Replaced Approve"}),S=d.executedTransactionId,R&&C&&l(R,{response:C})}else l(R,{receiptReceived:!0})}}catch(E){let{extraMessage:x,extraMessageDetail:f,extraMessageErrorCode:R}=j(E),C=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:x,details:f,errorCode:R}),_=ie(i,x,C.failureType);return A({event:_,...C}),pe(T,{tags:{type:"singer-error",reason:_.reason,reasonCode:_.reasonCode,message:x,messageDetail:f,pendingSwap:i},context:Zt.isSignerError(E)?E.getErrorContext():{}}),s()}let y=!1,N={requestId:i.requestId,txId:d.executedTransactionId};try{let E=await Y().checkApproval(N.requestId,N.txId);if(d?.status==="failed")return;if(y=E.isApproved,!y&&(E.txStatus==="failed"||E.txStatus==="success")){let x,f;E.txStatus==="failed"?(x="Approve transaction failed",f="Smart contract approval tx failed in blockchain."):(x="Not enough approval",E.requiredApprovedAmount&&E.currentApprovedAmount?f=`Required approval: ${E.requiredApprovedAmount}, current approval: ${E.currentApprovedAmount}`:f="You still don't have enough approval for this swap.");let R=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:x,details:f}),C=ie(i,x,R.failureType);A({event:C,...R}),pe(T,{tags:{type:"approval-failed",message:i.extraMessage,messageDetails:i.extraMessageDetail,pendingSwap:i}}),s()}else y||A({event:{type:"check_status"},swap:i,step:d})}catch{y=!1,pe(T,{tags:{type:"request-error",requestBody:N,pendingSwap:i}})}y?(d.status="approved",i.extraMessage=`Spending ${d.fromSymbol} approved successfully.`,i.extraMessageDetail=null,i.extraMessageSeverity="success",d.evmApprovalTransaction=null,d.executedTransactionId=null,d.executedTransactionTime=null,d.starknetApprovalTransaction=null,d.tronApprovalTransaction=null,t({...e(),swapDetails:i}),A({event:{type:"approval_tx_succeeded"},swap:i,step:d}),n("SCHEDULE_NEXT_STEP"),r()):(await se(sn),a())}o(un,"checkApprovalStatus");async function er(e){let t=e.getStorage().swapDetails,r=g(t);if(!r){console.log("ignore check status, current step is null",t.requestId);return}Ie(e),r.status==="running"?await on(e):r.status==="waitingForApproval"&&await un(e)}o(er,"checkStatus");import{STELLAR_CHANGE_TRUSTLINE_TYPE as We,TransactionType as cn}from"rango-types";import{Err as ar}from"ts-results";function Le(e){return e.claimedBy===e._queue?.id}o(Le,"isClaimedByCurrentQueue");function X(e,t){e.block(t),Le(e.context)&&e.context.resetClaimedBy&&e.context.resetClaimedBy()}o(X,"requestBlockQueue");import{legacyReadAccountAddress as ln}from"@rango-dev/wallets-core/legacy";import*as De from"@stellar/stellar-sdk";import tr from"bignumber.js";import{TransactionType as pn}from"rango-types";import{Err as Oe,Ok as Ue}from"ts-results";var ut="922337203685.4775807";async function de(e,t){let n=e.hubProvider(t).get("stellar");return n?Ue(n):new Oe({nextStatus:"failed",nextStepStatus:"failed",message:"Stellar is not available on your wallet.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(de,"ensureStellarNamespaceExists");async function rr(e,t,r){try{let a=(await r.namespace.balanceLines(e)).filter(i=>i.asset_type!=="native"&&i.asset_type!=="liquidity_pool_shares").find(i=>i.asset_code===t.code&&i.asset_issuer===t.issuer);if(!a)return new Ue({trustLineIsAlreadyOpened:!1});let s=new tr(a.limit),u=new tr(ut);return new Ue({trustLineIsAlreadyOpened:s.gte(u)})}catch{return new Oe({nextStatus:"failed",nextStepStatus:"failed",message:"Could not get account lines from Stellar.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}}o(rr,"checkIfTrustLineIsAlreadyOpened");function nr(e,t){let r=new De.Asset(t.code,t.issuer),n="100",a=30,s=Math.floor(Date.now()/1e3),u=De.Operation.changeTrust({asset:r,limit:ut});return{type:pn.STELLAR,blockChain:"Stellar",prerequisites:[],data:{baseFee:n,memoXdrBase64:null,preconditions:{timeBounds:{minTime:0,maxTime:s+a},ledgerBounds:{minLedger:0,maxLedger:0},minSeqNumber:null,minSeqAge:null,minSeqLedgerGap:null,extraSigners:null},operationsXdrBase64:[u.toXDR("base64")]}}}o(nr,"createTrustLineTransaction");function Se(e){let t=e.wallets.STELLAR;return t?{type:t.walletType,namespace:{namespace:"Stellar",network:"Stellar"},address:t.address}:null}o(Se,"getStellarWalletFromSwap");async function me(e,t){let{context:r}=e,n=r.state(t.type),{accounts:a,connected:s}=n;return s?a?.find(u=>ln(u).address===t.address)?new Ue(!0):new Oe({reason:"waiting_for_connecting_wallet",description:te(t.type,t.address)}):new Oe({reason:"waiting_for_connecting_wallet",description:$(t.type)})}o(me,"ensureRequiredStellarWalletIsConnected");async function lt(e){let{failed:t,context:r,schedule:n,getStorage:a,next:s}=e,{meta:u,getSigners:i}=r,p=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),c=o(()=>{n("CHECK_PREREQUISITES"),s(),p()},"scheduleCheckPrerequisites"),l=o(f=>{I(e,f.val),t(),p()},"handleErr"),T=a().swapDetails,d=g(T),m=h(d);if(!m){l(new ar({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let S=null;for(let f=0;f<m.prerequisites.length;f++){let R=m.prerequisites[f];if(R.type===We&&!d.prerequisiteResults.find(_=>_.prerequisiteIndex===f&&_.prerequisiteType===We)){S={prerequisite:R,prerequisiteIndex:f};break}}if(!S){c();return}let w=Se(T);if(!w){l(new ar({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Stellar wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let y=await de(r,w.type);if(y.err){l(y);return}let N=await me(e,w);if(N.err){X(e,N.val);return}let E={code:S.prerequisite.code,issuer:S.prerequisite.issuer,value:S.prerequisite.value},x=await rr(S.prerequisite.wallet,E,{namespace:y.val});if(x.err){l(x);return}if(x.val.trustLineIsAlreadyOpened){let f={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:We,status:"skipped",data:null};K(e,f),c();return}try{let f=await nr(S.prerequisite.wallet,E),R=u.blockchains.Stellar?.chainId,v=await(await i(w.type)).getSigner(cn.STELLAR).signAndSendTx(f,w.address,R),P={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:We,status:"success",data:{executedTransactionHash:v.hash}};K(e,P),c()}catch(f){q(e)(f),p()}}o(lt,"checkStellarTrustline");import{TransactionType as mn,XRPL_CHANGE_TRUSTLINE_TYPE as Fe}from"rango-types";import{Err as ur}from"ts-results";import{legacyReadAccountAddress as dn}from"@rango-dev/wallets-core/legacy";import sr from"bignumber.js";import{TransactionType as Sn}from"rango-types";import{Err as be,Ok as qe}from"ts-results";var pt="10000000000000";async function Te(e,t){let n=e.hubProvider(t).get("xrpl");return n?qe(n):new be({nextStatus:"failed",nextStepStatus:"failed",message:"XRPL is not available on your wallet.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(Te,"ensureXrplNamespaceExists");async function or(e,t,r){try{let a=(await r.namespace.accountLines(e,{peer:t.account})).find(i=>i.currency===t.currency&&i.account===t.account);if(!a)return new qe({trustLineIsAlreadyOpened:!1});let s=new sr(a.limit),u=new sr(pt);return new qe({trustLineIsAlreadyOpened:s.gte(u)})}catch{return new be({nextStatus:"failed",nextStepStatus:"failed",message:"Could not get account lines from XRPL.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}}o(or,"checkIfTrustLineIsAlreadyOpened");function ir(e,t){return{type:Sn.XRPL,blockChain:"XRPL",prerequisites:[],data:{TransactionType:"TrustSet",Account:e,LimitAmount:{currency:t.currency,issuer:t.account,value:pt}}}}o(ir,"createTrustLineTransaction");function ge(e){let t=e.wallets.XRPL;return t?{type:t.walletType,namespace:{namespace:"XRPL",network:"XRPL"},address:t.address}:null}o(ge,"getXrplWalletFromSwap");async function Ee(e,t){let{context:r}=e,n=r.state(t.type),{accounts:a,connected:s}=n;return s?a?.find(u=>dn(u).address===t.address)?new qe(!0):new be({reason:"waiting_for_connecting_wallet",description:te(t.type,t.address)}):new be({reason:"waiting_for_connecting_wallet",description:$(t.type)})}o(Ee,"ensureRequiredXrplWalletIsConnected");async function ct(e){let{failed:t,context:r,schedule:n,getStorage:a,next:s}=e,{meta:u,getSigners:i}=r,p=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),c=o(()=>{n("CHECK_PREREQUISITES"),s(),p()},"scheduleCheckPrerequisites"),l=o(f=>{I(e,f.val),t(),p()},"handleErr"),T=a().swapDetails,d=g(T),m=h(d);if(!m){l(new ur({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let S=null;for(let f=0;f<m.prerequisites.length;f++){let R=m.prerequisites[f];R.type===Fe&&(d.prerequisiteResults?.find(_=>_.prerequisiteIndex===f&&_.prerequisiteType===Fe)||(S={prerequisite:R,prerequisiteIndex:f}))}if(!S){c();return}let w=ge(T);if(!w){l(new ur({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: XRPL wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let y=await Te(r,w.type);if(y.err){l(y);return}let N=await Ee(e,w);if(N.err){X(e,N.val);return}let E={currency:S.prerequisite.currency,account:S.prerequisite.issuer,amount:S.prerequisite.value},x=await or(S.prerequisite.wallet,E,{namespace:y.val});if(x.err){l(x);return}if(x.val.trustLineIsAlreadyOpened){let f={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:Fe,status:"skipped",data:null};K(e,f),c();return}try{let f=ir(S.prerequisite.wallet,E),R=u.blockchains.XRPL?.chainId,v=await(await i(w.type)).getSigner(mn.XRPL).signAndSendTx(f,w.address,R),P={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:Fe,status:"pending",data:{executedTransactionHash:v.hash}};K(e,P),c()}catch(f){q(e)(f),p()}}o(ct,"checkXrplTrustline");import{isXrplChangeTrustLinePrerequisiteResult as gn,XRPL_CHANGE_TRUSTLINE_TYPE as pr}from"rango-types";import{Err as En}from"ts-results";import{Client as fn}from"xrpl";var lr="wss://xrplcluster.com/";async function dt(e){let{failed:t,getStorage:r,retry:n,next:a,schedule:s}=e,u=r().swapDetails,i=g(u),p=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),c=o(()=>{s("CHECK_PREREQUISITES"),a(),p()},"onSuccessfulFinish"),l=o(m=>{I(e,m.val),t(),p()},"handleErr"),T=o(async()=>{await se(5e3),n()},"retryAfterDelay"),d=null;for(let m of i.prerequisiteResults)if(gn(m)&&m.status==="pending"){d=m;break}if(!d){c();return}try{let m=new fn(lr);await m.connect();let S=await m.request({command:"tx",transaction:d.data.executedTransactionHash});if(!S.result.validated){await T();return}if(typeof S.result.meta!="string"&&S.result.meta?.TransactionResult==="tesSUCCESS"){let w={prerequisiteIndex:d.prerequisiteIndex,prerequisiteType:pr,status:"success",data:{executedTransactionHash:d.data.executedTransactionHash}};K(e,w),c()}else{let w={prerequisiteIndex:d.prerequisiteIndex,prerequisiteType:pr,status:"failed",data:{executedTransactionHash:d.data.executedTransactionHash}};K(e,w),l(new En({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: xrpl change trustline transaction failed!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}))}}catch{await T()}}o(dt,"checkXrplTrustLineTransactionStatus");import{warn as wn}from"@rango-dev/logging-core";async function cr(e){let{setStorage:t,getStorage:r,next:n,schedule:a}=e,s=r().swapDetails,u=g(s);if(!h(u)){A({event:{type:"tx_execution",status:"create_tx"},swap:s,step:u});let p={requestId:s.requestId,step:u.id,userSettings:{slippage:s.settings.slippage,infiniteApprove:s.settings.infiniteApprove},validations:{balance:s.validateBalanceOrFee,fee:s.validateBalanceOrFee,approve:!0}};try{let{transaction:c}=await Vt(Y().createTransaction(p));c&&ke(u,c),t({...r(),swapDetails:s}),a("SCHEDULE_NEXT_STEP"),n()}catch(c){s.status="failed",s.finishTime=new Date().getTime().toString();let{extraMessage:l,extraMessageDetail:T}=j(c),d=O({getStorage:r,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:l,details:T,errorCode:"FETCH_TX_FAILED"}),m=ie(s,l,d.failureType);A({event:m,...d}),c instanceof Error&&wn(new Error("create transaction error"),{tags:{message:c.message,requestBody:p,reason:m.reason,reasonCode:m.reasonCode,pendingSwap:s}}),e.failed()}}}o(cr,"createTransaction");import{TransactionType as An}from"rango-types";import{Err as mr}from"ts-results";import{isStellarTransaction as xn}from"rango-types";import{Err as dr,Ok as yn}from"ts-results";async function Sr(e){return e?xn(e)?yn(e):new dr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Expected Stellar transaction but it doesn't match with the structure.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}):new dr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(Sr,"ensureStellarTransactionIsValid");async function St(e){let{failed:t,getStorage:r,context:n}=e,{meta:a,getSigners:s}=n,u=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),i=o(x=>{I(e,x.val),t(),u()},"handleErr"),p=r().swapDetails,c=g(p),l=h(c),T=await Sr(l);if(T.err){i(T);return}let d=Se(p);if(!d){i(new mr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Stellar wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let m=await de(n,d.type);if(m.err){i(m);return}let S=await me(e,d);if(S.err){X(e,S.val);return}let w=re(p,c),y=ue(e);if(y.err){i(y);return}le(e,y.val);let N=a.blockchains.Stellar?.chainId,E;try{E=(await s(d.type)).getSigner(An.STELLAR)}catch{i(new mr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Failed to load the signer. Please refresh the page and try again.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}try{let x=await E.signAndSendTx(T.val,w,N);oe(e,{isApproval:!1})(x)}catch(x){q(e)(x)}u()}o(St,"executeStellarTransaction");import{PendingSwapNetworkStatus as Tr}from"rango-types";import{Err as Me,Ok as mt}from"ts-results";async function gr(e){let{getStorage:t,context:r}=e,n=t().swapDetails,a=g(n),s=Cn(e);if(s.err)return s;let u=await Rn(e);if(u.err)return u;a.networkStatus===Tr.NetworkChanged&&rt(e,{message:"",details:"The network has been successfully changed.",status:Tr.NetworkChanged});let i=Kt(a),p=Le(r);if(i&&!p){let c={reason:"depends_on_other_queues",description:Ye,details:{}};return new Me(c)}return new mt(!0)}o(gr,"checkEnvironmentBeforeExecuteTransaction");function Cn(e){let{getStorage:t,context:r}=e,{wallets:n}=r,a=t().swapDetails;if(!nt(a,r.state).ok){let{type:u,address:i}=b(a),p=n?.blockchains?.find(T=>!T.accounts?.find(d=>d.walletType===u)),c=tt(n)||p?$(u):te(u,i),l={reason:"waiting_for_connecting_wallet",description:c};return new Me(l)}return new mt(!0)}o(Cn,"ensureRequiredWalletIsConnected");async function Rn(e){let{getStorage:t,context:r}=e,{meta:n,wallets:a,providers:s,hubProvider:u}=r,i=t().swapDetails,p=g(i),c=await Mt(i,p,a,n,s,u),{claimedBy:l}=Ne();if(!!l()&&!Le(r)&&!c){let m=Ye,S={reason:"depends_on_other_queues",details:m};return new Me(S)}else if(!c){let m=G(i,p),S=Ae(m.network),w={reason:"waiting_for_network_change",details:S};return new Me(w)}return new mt(!0)}o(Rn,"ensureWalletIsOnCorrectNetwork");async function Tt(e){let t=await gr(e);if(t.err){X(e,t.val);return}Ie(e);let{failed:r,getStorage:n,context:a}=e,{meta:s,getSigners:u}=a,i=n().swapDetails,p=g(i),c=M(p),l=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),T=ue(e);if(T.err){I(e,T.val),r(),l();return}le(e,T.val);let d=h(p),m=W(i,p),S=re(i,p),w=s.blockchains?.[d.blockChain]?.chainId,y;try{y=await u(m.walletType)}catch(E){q(e)(E),l();return}await y.getSigner(d.type).signAndSendTx(d,S,w).then(oe(e,{isApproval:c}),q(e)).finally(()=>{l()})}o(Tt,"executeTransaction");import{TransactionType as hn}from"rango-types";import{Err as fr}from"ts-results";import{isXrplTransaction as _n}from"rango-types";import{Err as gt,Ok as Nn}from"ts-results";async function Er(e){return e?_n(e)?e.data.TransactionType!=="Payment"?new gt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Only XRPL transactions with payment type are supported",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}):Nn(e):new gt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Expected XRPL transaction but it doesn't match with the structure.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}):new gt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(Er,"ensureXrplTransactionIsValid");async function Et(e){let{failed:t,getStorage:r,context:n}=e,{meta:a,getSigners:s}=n,u=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),i=o(x=>{I(e,x.val),t(),u()},"handleErr"),p=r().swapDetails,c=g(p),l=h(c),T=await Er(l);if(T.err){i(T);return}let d=ge(p);if(!d){i(new fr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Stellar wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let m=await Te(n,d.type);if(m.err){i(m);return}let S=await Ee(e,d);if(S.err){X(e,S.val);return}let w=re(p,c),y=ue(e);if(y.err){i(y);return}le(e,y.val);let N=a.blockchains.XRPL?.chainId,E;try{E=(await s(d.type)).getSigner(hn.XRPL)}catch{i(new fr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Failed to load the signer. Please refresh the page and try again.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}try{let x=await E.signAndSendTx(T.val,w,N);oe(e,{isApproval:T.val.data.TransactionType==="TrustSet"})(x)}catch(x){q(e)(x)}u()}o(Et,"executeXrplTransaction");function wr({schedule:e,next:t,failed:r,setStorage:n,getStorage:a}){let s=a().swapDetails,u=g(s),i=s.steps.find(p=>p.status==="failed");if(u&&!i){if(Bt(s,u))return e("CHECK_PREREQUISITES"),t();if(u?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();s.status="running",n({...a(),swapDetails:s}),A({event:{type:"started"},swap:s,step:u}),e("CREATE_TRANSACTION"),t()}else{s.status=i?"failed":"success",s.finishTime=new Date().getTime().toString(),n({...a(),swapDetails:s});let p=B(s),c=V(s);A({...i?{event:{type:"failed",reason:s.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED",inputAmount:p,inputAmountUsd:c}}:{event:{type:"succeeded",inputAmount:p,inputAmountUsd:c,outputAmount:ne(s.steps)?.outputAmount??"",outputAmountUsd:Pe(s)}},swap:s,step:null}),i?r():t()}}o(wr,"scheduleNextStep");function xr({schedule:e,next:t,getStorage:r}){let n=r().swapDetails;A({event:{type:"started"},swap:n,step:null}),e("SCHEDULE_NEXT_STEP"),t()}o(xr,"start");var yr={name:"swap",actions:{START:xr,SCHEDULE_NEXT_STEP:wr,CREATE_TRANSACTION:cr,CHECK_PREREQUISITES:it,CHECK_XRPL_TRUSTLINE:ct,CHECK_XRPL_TRUSTLINE_TRANSACTION_STATUS:dt,CHECK_STELLAR_TRUSTLINE:lt,EXECUTE_TRANSACTION:Tt,EXECUTE_XRPL_TRANSACTION:Et,EXECUTE_STELLAR_TRANSACTION:St,CHECK_TRANSACTION_STATUS:er},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?Xt(e,t):e.reason.reason==="waiting_for_network_change"?Qt(e,t):e.reason.reason==="depends_on_other_queues"&&Ht(e,t)}};import{useManager as Ln}from"@rango-dev/queue-manager-react";import{useEffect as wt,useState as On}from"react";import{DB_NAME as kn,Persistor as In,Status as fe}from"@rango-dev/queue-manager-core";import{v4 as vn}from"uuid";var Ar="migratedToQueueManager";function ft(){return!!window.localStorage.getItem(Ar)}o(ft,"migrated");async function Pn(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(kn)}catch{return!1}}o(Pn,"hasQueueManagerOnIDB");async function Cr(){let e=window.localStorage.getItem("pendingSwaps"),t=await Pn();if(!e||ft()||t)return!0;let r=JSON.parse(e),n=[];r.forEach(u=>{if(u.status==="running"){let i=vn(),p={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:fe.RUNNING,storage:{swapDetails:u},state:{status:fe.RUNNING,activeTaskIndex:0,tasks:{[i]:{blockedFor:null,status:fe.RUNNING}}},tasks:[{id:i,action:"SCHEDULE_NEXT_STEP"}]};n.push(p)}else{let i=u.status==="success"?fe.SUCCESS:fe.FAILED,p={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:i,storage:{swapDetails:u},state:{status:i,activeTaskIndex:0,tasks:{}},tasks:[]};n.push(p)}});let a=new In,s=n.map(async u=>a.insertQueue(u));return await Promise.all(s),window.localStorage.setItem(Ar,"1"),!0}o(Cr,"migration");var Rr=0;function Un(e){return`${e?.walletType}-${e?.network}-${e?.accounts?.toString()}`}o(Un,"getLastConnectedWalletHash");function Dn(){let e=ft(),[t,r]=On(e);return wt(()=>{(async()=>Rr||(Rr=1,Cr().finally(()=>{r(!0)})))()},[]),{status:t}}o(Dn,"useMigration");function Wn(e){let{manager:t}=Ln(),{lastConnectedWallet:r,disconnectedWallet:n,evmChains:a,canSwitchNetworkTo:s,clearDisconnectedWallet:u}=e;wt(()=>{r&&(Gt({evmChains:a,lastConnectedWallet:r,manager:t}),st(r,t,s))},[Un(r)]),wt(()=>{n&&(at(t),u())},[n])}o(Wn,"useQueueManager");function au(e){return yt(e),yr}o(au,"makeQueueDefinition");export{Ge as EventSeverity,Re as MessageSeverity,D as PrettyError,He as RouteEventType,Q as StepEventType,ye as StepExecutionBlockedEventStatus,ee as StepExecutionEventStatus,Qe as WidgetEvents,Wr as calculatePendingSwap,en as cancelSwap,at as checkWaitingForNetworkChange,F as getCurrentNamespaceOfOrNull,g as getCurrentStep,ne as getLastSuccessfulStep,W as getRelatedWallet,je as getRelatedWalletOrNull,b as getRequiredWallet,zr as getRunningSwaps,Ut as getUsdPrice,tn as isApprovalTX,au as makeQueueDefinition,j as prettifyErrorMessage,Zr as resetRunningSwapNotifsOnPageLoad,O as updateSwapStatus,Dn as useMigration,Wn as useQueueManager};
1
+ var _r=Object.defineProperty;var o=(e,t)=>_r(e,"name",{value:t,configurable:!0});function Nr(){return process.env.REACT_APP_RANGO_API_KEY}o(Nr,"getApiKeyFromEnv");function xt(){return Nr()||"NOT_SET"}o(xt,"getApiKeyFromEnvOrNotSet");var Xe={API_KEY:xt(),BASE_URL:""};function Z(e){return Xe[e]}o(Z,"getConfig");function yt(e){return Xe=e,Xe}o(yt,"initConfig");import{Networks as nn}from"@rango-dev/wallets-shared";import{STELLAR_CHANGE_TRUSTLINE_TYPE as an,XRPL_CHANGE_TRUSTLINE_TYPE as sn}from"rango-types";import{Err as ot,Ok as Jt}from"ts-results";import{warn as Br}from"@rango-dev/logging-core";import{Status as Ze}from"@rango-dev/queue-manager-core";import{legacyReadAccountAddress as Xr}from"@rango-dev/wallets-core/legacy";import{getBlockChainNameFromId as Qr,getEvmProvider as Hr}from"@rango-dev/wallets-shared";import Gr from"bignumber.js";import{PendingSwapNetworkStatus as ae,SignerError as Kr,TransactionType as k}from"rango-types";import{STELLAR_CHANGE_TRUSTLINE_TYPE as hr,XRPL_CHANGE_TRUSTLINE_TYPE as kr}from"rango-types";import{Err as H,Ok as Ke}from"ts-results";var Qe=(r=>(r.RouteEvent="routeEvent",r.StepEvent="stepEvent",r))(Qe||{}),He=(n=>(n.STARTED="started",n.FAILED="failed",n.SUCCEEDED="succeeded",n))(He||{}),ee=(n=>(n.CREATE_TX="create_tx",n.SEND_TX="send_tx",n.TX_SENT="tx_sent",n))(ee||{}),ye=(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))(ye||{}),Q=(p=>(p.STARTED="started",p.FAILED="failed",p.SUCCEEDED="succeeded",p.TX_EXECUTION="tx_execution",p.TX_EXECUTION_BLOCKED="tx_execution_blocked",p.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",p.CHECK_STATUS="check_status",p.OUTPUT_REVEALED="output_revealed",p))(Q||{}),Ge=(a=>(a.ERROR="error",a.SUCCESS="success",a.WARNING="warning",a.INFO="info",a))(Ge||{});var At=o((e,t)=>{let r=Ve(t,e);return r?.status==="success"||r?.status==="skipped"},"checkIsPrerequisiteAlreadyMet");function Ve(e,t){return e.prerequisiteResults?.find(r=>$e(r,t))}o(Ve,"getPrerequisiteResult");var $e=o((e,t)=>e.prerequisiteIndex===t.prerequisiteIndex&&e.prerequisiteType===t.prerequisiteType,"matchesPrerequisiteKey");function Ct(e,t){let r=Ve(t,{prerequisiteType:kr,prerequisiteIndex:e});if(!r)return new Ke("CHECK_XRPL_TRUSTLINE");switch(r.status){case"pending":return new Ke("CHECK_XRPL_TRUSTLINE_TRANSACTION_STATUS");case"success":return new H("Unexpected Error: xrpl change trustline prerequisite is already met!");case"skipped":return new H("Unexpected Error: xrpl change trustline prerequisite is already met!");case"failed":return new H("Unexpected Error: xrpl change trustline prerequisite failed!");default:return new H("Unexpected Error: xrpl change trustline prerequisite has an invalid status!")}}o(Ct,"handleUnmetXrplChangeTrustLinePrerequisite");function Rt(e,t){let r=Ve(t,{prerequisiteType:hr,prerequisiteIndex:e});if(!r)return new Ke("CHECK_STELLAR_TRUSTLINE");switch(r.status){case"pending":return new H('Unexpected Error: stellar change trustline prerequisite has invalid "pending" status!');case"success":return new H("Unexpected Error: stellar change trustline prerequisite is already met!");case"skipped":return new H("Unexpected Error: stellar change trustline prerequisite is already met!");case"failed":return new H("Unexpected Error: stellar change trustline prerequisite failed!");default:return new H("Unexpected Error: stellar change trustline prerequisite has an invalid status!")}}o(Rt,"handleUnmetStellarChangeTrustLinePrerequisite");var Ye="Waiting for other swaps to complete",_t="Waiting for connecting wallet",te=o((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),$=o(e=>`Please connect your ${e??""} wallet.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),Ae=o(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),L="CLIENT_UNEXPECTED_BEHAVIOUR";import{RangoClient as Ir}from"rango-sdk";var Ce,Y=o(()=>Ce||(Ce=new Ir(Z("API_KEY"),Z("BASE_URL")),Ce),"httpService");import vt from"bignumber.js";import Nt from"bignumber.js";var ht=o((e,t=null,r=null)=>{if(e===null||e==="")return"";let n=new Nt(e),a=1,s=1e3;for(let u=0;u<60;u++)if(new Nt(n.toFixed(u,a)).eq(n)){s=u;break}if(n.gte(1e4))return n.toFormat(0,a);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,1))),a);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,2))),a);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,4))),a);for(let u=t||4;u<17;u++)if(n.gte(Math.pow(10,-u)))return n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,u))),a);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(r||100,Math.max(t||0,8))),a)},"numberToString");import{isAPIErrorCode as vr,isSignerErrorCode as Pr,SignerError as Lr,SignerErrorCode as J}from"rango-types";var Or="Assertion failed (Unexpected behaviour)",Ur="Create transaction failed in Rango Server",kt="Input wallet not found",D=class e extends Error{constructor(r,n,a,s){super(n);this._isPrettyError=!0;Object.setPrototypeOf(this,e.prototype),e.prototype._isPrettyError=!0,this.code=r,this.detail=s,this.root=a}static{o(this,"PrettyError")}static isPrettyError(r){return r instanceof e||Object.prototype.hasOwnProperty.call(r,"_isPrettyError")}static AssertionFailed(r){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",Or,null,r)}static BadStatusCode(r,n){return new e("TX_FAIL",r,null,`status code = ${n}`)}static CreateTransaction(r){return new e("FETCH_TX_FAILED",Ur,null,r)}static WalletMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",kt,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",kt,null,"Server requested for a blockchain or address not selected by user")}getErrorDetail(){let r=typeof this.root=="object"&&this.root&&this.root.error?this.root.error:JSON.stringify(this.root),n=typeof this.root=="string"?this.root:this.root instanceof Error?this.root.message:r;return{extraMessage:this.message,extraMessageDetail:this.detail||n,extraMessageErrorCode:this.code||null}}};function It(e){try{return e?vr(e)?e:Pr(e)?{[J.REJECTED_BY_USER]:"USER_REJECT",[J.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[J.SEND_TX_ERROR]:"SEND_TX_FAILED",[J.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[J.NOT_IMPLEMENTED]:L,[J.OPERATION_UNSUPPORTED]:L,[J.UNEXPECTED_BEHAVIOUR]:L}[e]:L:L}catch{return L}}o(It,"mapAppErrorCodesToAPIErrorCode");function Dr(e){return!!e&&typeof e=="object"&&"isAxiosError"in e&&e.isAxiosError===!0}o(Dr,"isAxiosError");var j=o(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(Dr(e))return{extraMessage:e.response?.data?.error||"Unknown error",extraMessageErrorCode:null};if(D.isPrettyError(e))return e.getErrorDetail();if(Lr.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 Re=(a=>(a.error="error",a.warning="warning",a.info="info",a.success="success",a))(Re||{}),F=o((e,t)=>{try{return G(e,t)}catch{return null}},"getCurrentNamespaceOfOrNull"),G=o((e,t)=>{let r=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain,n=t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain,a=t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain,s=t.solanaTransaction?.blockChain,u=t.tonTransaction?.blockChain,i=t.suiTransaction?.blockChain,p=t.xrplTransaction?.blockChain,c=t.stellarTransaction?.blockChain;if(r)return{namespace:"EVM",network:r};if(n)return{namespace:"Starknet",network:n};if(a)return{namespace:"Tron",network:a};if(s)return{namespace:"Solana",network:s};if(u)return{namespace:"Ton",network:u};if(i)return{namespace:"Sui",network:i};if(p)return{namespace:"XRPL",network:p};if(c)return{namespace:"Stellar",network:c};if(t.transferTransaction){let l=t.transferTransaction.fromWalletAddress;if(!l)throw D.BlockchainMissing();let T=Object.keys(e.wallets).find(d=>e.wallets[d]?.address===l);if(!T)throw D.BlockchainMissing();return{namespace:"UTXO",network:T}}throw new Error("Unsupported transaction type has been included in your swap.",{cause:t})},"getCurrentNamespaceOf"),ce=o((e,t,r)=>{let a=r[t].info?.transactionUrl;if(a)return a.indexOf("/{txHash}")!==-1?a.replace("{txHash}",e):`${a}/${e}`},"getScannerUrl");function Lt(e,t){return e.steps.find(r=>r.status!=="failed"&&r.status!=="success"&&r.id!==t.id)||null}o(Lt,"getNextStep");var Ot=o((e,t)=>{let r=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.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||e.wallets[t.suiTransaction?.blockChain||""]||e.wallets[t.xrplTransaction?.blockChain||""]||e.wallets[t.stellarTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction.fromWalletAddress,walletType:Object.values(e.wallets).find(n=>n.address===t.transferTransaction?.fromWalletAddress)?.walletType}:null)||null;if(r==null)throw D.WalletMissing();return r},"getCurrentWalletTypeAndAddress"),re=o((e,t)=>Ot(e,t).address,"getCurrentAddressOf");function W(e,t){let{address:r,walletType:n}=Ot(e,t),a=Object.keys(e.wallets).map(p=>({k:p,v:e.wallets[p]})).find(({v:p})=>p.address===r&&p.walletType===n)||null,s=a?.k||null,u=a?.v||null,i=u?.walletType;if(u===null)throw D.AssertionFailed(`Wallet for source ${s} not passed: walletType: ${i}`);return u}o(W,"getRelatedWallet");function je(e,t){if(!t)return null;try{return W(e,t)}catch(r){return console.log({e:r}),null}}o(je,"getRelatedWalletOrNull");var Ut=o((e,t,r,n)=>n?.find(s=>s.blockchain===e&&s.symbol?.toUpperCase()===t?.toUpperCase()&&s.address===r)?.usdPrice||null,"getUsdPrice");function Wr(e,t){let r=new vt(0);for(let n=0;n<e.fee.length;n++){let a=e.fee[n];if(a.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=Ut(a.asset.blockchain,a.asset.symbol,a.asset.address,t);r=r.plus(new vt(a.amount).multipliedBy(s||0))}return r}o(Wr,"getUsdFeeOfStep");function Pt(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?ht(Wr(e,t?.tokens),null,8):null,estimatedTimeInSeconds:e.estimatedTimeInSeconds||null,internalSteps:null}}o(Pt,"mapSwapStepToPendingSwapStep");function br(e){let{inputAmount:t,bestRoute:r,wallets:n,settings:a,validateBalanceOrFee:s,meta:u,swapMode:i="swap"}=e,p=r.result;if(!p)throw Error("Simulation result should not be null");return{creationTime:new Date().getTime().toString(),finishTime:null,requestId:r.requestId||"",inputAmount:t,wallets:n,status:"running",mode:i,isPaused:!1,extraMessage:null,extraMessageSeverity:null,extraMessageDetail:null,extraMessageErrorCode:null,networkStatusExtraMessage:null,networkStatusExtraMessageDetail:null,lastNotificationTime:null,settings:a,simulationResult:p,validateBalanceOrFee:s,steps:r.result?.swaps?.map((c,l)=>{let T=Pt(c,u);return{id:l+1,...T,internalSwaps:c?.internalSwaps?.map(d=>Pt(d,u))||null,outputAmount:"",prerequisiteResults:[],status:"created",networkStatus:null,startTransactionTime:new Date().getTime(),externalTransactionId:null,executedTransactionId:null,executedTransactionTime:null,explorerUrl:null,diagnosisUrl:null,trackingCode:null,internalSteps:null,evmTransaction:null,evmApprovalTransaction:null,starknetTransaction:null,starknetApprovalTransaction:null,tronTransaction:null,tronApprovalTransaction:null,cosmosTransaction:null,solanaTransaction:null,transferTransaction:null,tonTransaction:null,suiTransaction:null,xrplTransaction:null,stellarTransaction:null,hyperliquidTransaction:null,hasAlreadyProceededToSign:!1}})||[]}}o(br,"calculatePendingSwap");function Dt(e){return e.map(t=>{let{diagnosisUrl:r,estimatedTimeInSeconds:n,explorerUrl:a,feeInUsd:s,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:p,fromBlockchain:c,toBlockchain:l,fromSymbol:T,toSymbol:d,fromSymbolAddress:m,toSymbolAddress:S,swapperType:w,swapperId:y,outputAmount:N,fromAmountMaxValue:E,fromAmountMinValue:x,fromAmountPrecision:f,fromAmountRestrictionType:R,fromDecimals:C,status:_}=t;return{diagnosisUrl:r,estimatedTimeInSeconds:n,explorerUrl:a,feeInUsd:s,executedTransactionId:u,executedTransactionTime:i,expectedOutputAmountHumanReadable:p,fromBlockchain:c,toBlockchain:l,fromSymbol:T,toSymbol:d,fromSymbolAddress:m,toSymbolAddress:S,swapperName:y,swapperType:w,outputAmount:N,fromAmountMaxValue:E,fromAmountMinValue:x,fromAmountPrecision:f,fromAmountRestrictionType:R,fromDecimals:C,status:_,transaction:h(t)}})}o(Dt,"createSteps");function qr(e,t,r){let{creationTime:n,finishTime:a,requestId:s,inputAmount:u,status:i,wallets:p,steps:c,settings:l}=e,T=Dt(c),m={route:{creationTime:n,finishTime:a,requestId:s,inputAmount:u,status:i,wallets:p,steps:T,slippage:l.slippage,infiniteApproval:l.infiniteApprove},step:T[T.length-1]};if(r)m.step=Dt([r])[0];else if(t==="failed"){let S=Wt(T);S&&(m.step=S)}else{let S=ne(T);S&&(m.step=S)}return m}o(qr,"getEventPayload");function Fr(e,t,r){let n,{type:a}=e;switch(a){case"started":n={...e,type:"started"};break;case"failed":n={...e,type:"failed",inputAmount:r.inputAmount,inputAmountUsd:Je(r),swapMode:r.mode||"swap"};break;case"succeeded":{n={...e,type:"succeeded",inputAmount:r.inputAmount,inputAmountUsd:Je(r),outputAmount:r.steps[r.steps.length-1].outputAmount??"",outputAmountUsd:bt(r),swapMode:r.mode||"swap"};break}default:break}n&&Z("emitter")?.emit("routeEvent",{event:n,route:t})}o(Fr,"emitRouteEvent");function Mr(e,t,r){Z("emitter")?.emit("stepEvent",{event:e,route:t,step:r})}o(Mr,"emitStepEvent");function A(e){let{event:t}=e,{type:r}=t,{route:n,step:a}=qr(e.swap,r,e.step??void 0),s=`${a.fromBlockchain}.${a.fromSymbol}`,u=`${a.toBlockchain}.${a.toSymbol}`,i=a.outputAmount??"",p=e.step?F(e.swap,e.step):null,c="",l="info";switch(r){case"started":c="Swap process started",l="success";break;case"succeeded":c=`You received ${i} ${u}, hooray!`,l="success";break;case"failed":c=`Swap failed: ${e.swap?.extraMessage??"Reason is unknown"}`,l="error";break;case"tx_execution":t.status==="create_tx"?(c="Please wait while the transaction is created ...",l="info"):t.status==="send_tx"?(e.step&&M(e.step)?c=`Please confirm '${a.swapperName}' smart contract access to ${s}`:c="Please confirm transaction request in your wallet",l="warning"):t.status==="tx_sent"&&(c="Transaction sent successfully",l="info");break;case"check_status":e.step&&M(e.step)?c="Checking approve transaction status ...":c="Checking transaction status ...",l="info";break;case"approval_tx_succeeded":c="Smart contract called successfully",l="success";break;case"output_revealed":c="Transaction output amount revealed",l="success";break;case"tx_execution_blocked":t.status==="waiting_for_wallet_connect"?(c="Please connect your wallet.",l="warning"):t.status==="waiting_for_queue"?(c="Waiting for other swaps to complete",l="warning"):t.status==="waiting_for_change_wallet_account"?(c="Please change your wallet account.",l="warning"):t.status==="waiting_for_network_change"&&(c=`Please change your wallet network to ${p?.network}.`,l="warning");break;default:break}e.step&&Mr({...t,message:c,messageSeverity:l},n,a),(e.event.type==="failed"||!e.step)&&Fr({...t,message:c,messageSeverity:l},n,e.swap)}o(A,"notifier");var ze=null;function Ne(){return{claimedBy:()=>ze?.id,setClaimer:e=>{ze={id:e}},reset:()=>{ze=null}}}o(Ne,"claimQueue");var z={};function he(){return{getTransactionDataByHash:e=>z[e]||{},setTransactionDataByHash:(e,t)=>{z[e]||(z[e]={}),z[e].response=t.response||z[e].response,z[e].receiptReceived=t.receiptReceived||z[e].receiptReceived||!1}}}o(he,"inMemoryTransactionsData");var g=o(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),h=o(e=>{let{evmTransaction:t,evmApprovalTransaction:r,solanaTransaction:n,transferTransaction:a,starknetApprovalTransaction:s,starknetTransaction:u,stellarTransaction:i,tronApprovalTransaction:p,tronTransaction:c,tonTransaction:l,suiTransaction:T,xrplTransaction:d}=e;return t||r||n||a||s||u||i||p||c||l||T||d},"getCurrentStepTx"),ke=o((e,t)=>{e.transferTransaction=null,e.cosmosTransaction=null,e.evmTransaction=null,e.solanaTransaction=null,e.evmApprovalTransaction=null,e.starknetApprovalTransaction=null,e.starknetTransaction=null,e.tronApprovalTransaction=null,e.tronTransaction=null,e.tonTransaction=null,e.suiTransaction=null,e.xrplTransaction=null,e.stellarTransaction=null;let r=t.type;switch(r){case k.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case k.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case k.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case k.COSMOS:throw new Error("Cosmos transactions are no longer supported.");case k.SOLANA:e.solanaTransaction=t;break;case k.TRANSFER:e.transferTransaction=t;break;case k.TON:e.tonTransaction=t;break;case k.SUI:e.suiTransaction=t;break;case k.XRPL:e.xrplTransaction=t;break;case k.STELLAR:e.stellarTransaction=t;break;case k.HYPERLIQUID:e.hyperliquidTransaction=t;break;default:(n=>{throw new Error(`${n} was unhandled!`)})(r)}return e},"setCurrentStepTx"),et=o(e=>h(e)?.type,"getCurrentStepTxType"),M=o(e=>{let{evmApprovalTransaction:t,starknetApprovalTransaction:r,tronApprovalTransaction:n}=e;return!!(t||r||n)},"isApprovalCurrentStepTx");function O({getStorage:e,setStorage:t,nextStatus:r,nextStepStatus:n,message:a,details:s,errorCode:u=null,hasAlreadyProceededToSign:i,trace:p=null}){let c=e().swapDetails,l=g(c),T={swap:c,step:l};if(n&&l&&(l.status=n),r&&(c.status=r),c.hasAlreadyProceededToSign=i,r&&["failed","success"].includes(r)&&(c.finishTime=new Date().getTime().toString()),(a||s)&&(c.extraMessage=a||"",c.extraMessageDetail=s||""),n&&["failed"].includes(n)){let d=s&&s.includes("Warning")?"Swap canceled by user.":s,m=je(c,l)?.walletType;c.extraMessageSeverity="error";let S=It(u);T.failureType=S;let w=u!=="REJECTED_BY_USER"&&p?.message&&typeof p.message=="string"?p.message:d||"";Y().reportFailure({requestId:c.requestId,step:l?.id||1,eventType:S,reason:w,tags:m?{wallet:m}:void 0}).then().catch()}else n&&["running"].includes(n)?c.extraMessageSeverity="info":n&&["success","approved"].includes(n)?c.extraMessageSeverity="success":n&&["waitingForApproval"].includes(n)&&(c.extraMessageSeverity="warning");return n==="running"&&l&&(l.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:c}),T}o(O,"updateSwapStatus");function Vr({getStorage:e,setStorage:t},r,n){let a=e().swapDetails;a.hasAlreadyProceededToSign=null;let s=g(a);s.executedTransactionId=r,s.executedTransactionTime=new Date().getTime().toString(),n?.url&&(s.explorerUrl=[...s.explorerUrl||[],{url:n.url,description:n.description||null}]),M(s)?a.extraMessage="Checking approve transaction status ...":a.extraMessage="Checking transaction status ...",a.extraMessageDetail="",a.extraMessageSeverity="info",t({...e(),swapDetails:a}),A({event:{type:"tx_execution",status:"tx_sent"},swap:a,step:s}),A({event:{type:"check_status"},swap:a,step:s})}o(Vr,"setStepTransactionIds");function $r({getStorage:e,setStorage:t},r,n){let a=e().swapDetails,s=g(a);if(!s)return;let u=new Date;a.lastNotificationTime=u.getTime().toString(),!(s.networkStatus===ae.WaitingForConnectingWallet&&a.networkStatusExtraMessage===r&&a.networkStatusExtraMessageDetail===n)&&(s.networkStatus=ae.WaitingForConnectingWallet,a.networkStatusExtraMessage=r,a.networkStatusExtraMessageDetail=n,t({...e(),swapDetails:a}))}o($r,"markRunningSwapAsWaitingForConnectingWallet");function qt({getStorage:e,setStorage:t}){let r=e().swapDetails,n=g(r);if(!n)return;let{type:a}=b(r),s=G(r,n),u=`Change ${a} wallet network to ${s.network}`,i=`We\u2019re switching the connected network to ${s.network}. Please check your wallet.`,p=new Date;return r.lastNotificationTime=p.getTime().toString(),n.networkStatus=ae.WaitingForNetworkChange,r.networkStatusExtraMessage=u,r.networkStatusExtraMessageDetail=i,t({...e(),swapDetails:r}),{swap:r,step:n}}o(qt,"markRunningSwapAsSwitchingNetwork");function Ft({getStorage:e,setStorage:t}){let r=e().swapDetails,n=g(r);if(n)return r.networkStatusExtraMessage="",r.networkStatusExtraMessageDetail="",n.networkStatus=ae.WaitingForQueue,A({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:r,step:n}),t({...e(),swapDetails:r}),{swap:r,step:n}}o(Ft,"markRunningSwapAsDependsOnOtherQueues");async function se(e){return new Promise(t=>setTimeout(t,e))}o(se,"delay");var Yr=o((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function tt(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}o(tt,"isWalletNull");function b(e){let t=g(e),r=F(e,t);if(!r)return{type:null,namespace:null,address:null};let n=Yr(e,r.network),a=e.wallets[r.network];return{type:n||null,namespace:r,address:a?a.address:null}}o(b,"getRequiredWallet");async function jr(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}o(jr,"getChainId");async function Jr(e,t,r){let n=Hr(e,r);if(n)return await jr(n);let s=t(r).get("evm");if(!s)throw new Error("EVM namespace not found for wallet type: "+r);return s.getChainId()}o(Jr,"getProviderChainId");async function Mt(e,t,r,n,a,s){if(tt(r))return!1;let u=F(e,t);if(!u)return!1;if(n.evmBasedChains.find(i=>i.name===u.network)){try{let i=e.wallets[u.network];if(i){let p=await Jr(a,s,i.walletType);if(p){let c=Qr(p,Object.entries(n.blockchains).map(([,l])=>l));if(c&&c.toLowerCase()===u.network.toLowerCase())return!0;if(c&&c.toLowerCase()!==u.network.toLowerCase())return!1}}}catch(i){console.log(i)}return!1}return!0}o(Mt,"isNetworkMatchedForTransaction");var Bt=o((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.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||e.wallets[t.suiTransaction?.blockChain||""]||e.wallets[t.stellarTransaction?.blockChain||""]||e.wallets[t.xrplTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function Ie(e){let{getStorage:t,setStorage:r}=e,n=t().swapDetails,a=g(n);a?.networkStatus&&(a.networkStatus=null,r({...t(),swapDetails:n}))}o(Ie,"resetNetworkStatus");function rt(e,t={message:"",details:"",status:null}){let{message:r,details:n,status:a}=t,{getStorage:s,setStorage:u}=e,i=s().swapDetails,p=g(i);p?.networkStatus&&(i.networkStatusExtraMessage=r,i.networkStatusExtraMessageDetail=n,p.networkStatus=a,u({...s(),swapDetails:i}))}o(rt,"updateNetworkStatus");function Xt(e,t){let{context:r,queue:n}=t,a=n.getStorage().swapDetails,{ok:s,reason:u}=nt(a,r.state);if(!s){let i=g(a),{type:p,address:c}=b(a);A({event:{type:"tx_execution_blocked",...u==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:c??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:p??void 0,requiredAccount:c??void 0}},swap:a,step:i}),$r({getStorage:n.getStorage.bind(n),setStorage:n.setStorage.bind(n)},_t,e.reason.description);return}n.unblock()}o(Xt,"onBlockForConnectWallet");function Qt(e,t){let{context:r,queue:n}=t,a=n.getStorage().swapDetails,s=g(a);if(!s||a.status!=="running")return;let u=qt({getStorage:n.getStorage.bind(n),setStorage:n.setStorage.bind(n)}),i=F(a,s)?.network,p=b(a).type,c=p?r.state(p).network:void 0;u&&A({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:i??void 0,currentNetwork:c??void 0},swap:u.swap,step:u.step});let{type:l,namespace:T}=b(a);if(l&&T?.network&&r.canSwitchNetworkTo(l,T.network,T)){let d=r.switchNetwork(l,T);d&&d.then(()=>{n.unblock()}).catch(m=>{rt({getStorage:n.getStorage.bind(n),setStorage:n.setStorage.bind(n)},{message:m.message,details:m.message,status:ae.NetworkChangeFailed})})}}o(Qt,"onBlockForChangeNetwork");function Ht(e,t){let{getBlockedTasks:r,forceExecute:n,queue:a,manager:s,context:u}=t,{setClaimer:i,claimedBy:p,reset:c}=Ne(),l=r().filter(E=>E.reason.reason==="depends_on_other_queues");if(l.length===0)return;let T=p(),d=!!T;if(T===a.id)return;if(d){Ft({getStorage:a.getStorage.bind(a),setStorage:a.setStorage.bind(a)});return}let m=l.find(E=>E.queue_id===t.queue_id);m||(m=l[0]),i(m.queue_id);let S=m.storage.get(),{type:w,namespace:y,address:N}=b(S.swapDetails);n(m.queue_id,{claimedBy:p(),resetClaimedBy:()=>{c(),w&&st({walletType:w,network:y?.network,accounts:N?[N]:[]},s,u.canSwitchNetworkTo)}})}o(Ht,"onDependsOnOtherQueues");function nt(e,t){let{type:r,address:n}=b(e);if(!r||!n)return{ok:!1,reason:"not_connected"};let a=t(r),{accounts:s,connected:u}=a,i=s||[];return u?{ok:i.some(c=>{let{address:l}=Xr(c);return n.toLocaleLowerCase()===l.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}o(nt,"isRequiredWalletConnected");function K(e,t){let{getStorage:r,setStorage:n}=e,a=r().swapDetails,s=g(a),u=s.prerequisiteResults.findIndex(i=>$e(i,t));u>=0?s.prerequisiteResults[u]=t:s.prerequisiteResults.push(t),n({...r(),swapDetails:a})}o(K,"updateStorageWithPrerequisiteResult");function zr(e,t,r){let{setTransactionDataByHash:n}=he(),{getStorage:a,context:s}=e,{meta:u}=s,i=a().swapDetails,p=g(i),c=G(i,p),l=ce(t.hash,c.network,u.blockchains);Vr(e,t.hash,l&&(!t.response||t.response&&!t.response.hashRequiringUpdate)?{url:l,description:r.isApproval?"Approve":"Swap"}:void 0),t.response&&n(t.hash,{response:t.response})}o(zr,"updateStorageOnSuccessfulSign");function oe(e,t){return({hash:r,response:n})=>{let{schedule:a,next:s}=e;zr(e,{hash:r,response:n},t),a("CHECK_TRANSACTION_STATUS"),s()}}o(oe,"handleSuccessfulSign");function q(e){return t=>{let{getStorage:r,setStorage:n,failed:a}=e,s=r().swapDetails,u=g(s);if(s.status==="failed")return;let i=W(s,u),{extraMessage:p,extraMessageDetail:c,extraMessageErrorCode:l}=j(t);Br(t,{tags:{requestId:s.requestId,rpc:!0,swapper:u?.swapperId||"",walletType:i?.walletType||""},context:Kr.isSignerError(t)?t.getErrorContext():{}});let T=O({getStorage:r,setStorage:n,nextStatus:"failed",nextStepStatus:"failed",message:p,details:c,errorCode:l,trace:t?.cause});A({event:{type:"failed",reason:p,reasonCode:T.failureType??L,inputAmount:B(s),inputAmountUsd:V(s)},...T}),a()}}o(q,"handleRejectedSign");function Gt(e){let{lastConnectedWallet:t,evmChains:r,manager:n}=e,{walletType:a,network:s}=t;r.some(u=>u.name==s)&&n?.getAll().forEach(u=>{let i=u.list.getStorage(),p=i?.swapDetails;if(p&&p.status==="running"){let c=g(p);if(c){let l=i?.swapDetails.wallets[c.fromBlockchain]?.walletType,T=Object.keys(u.list.state.tasks).some(m=>{let S=u.list.state.tasks[m];return S.status===Ze.BLOCKED&&["waiting_for_connecting_wallet"].includes(S.blockedFor?.reason)}),d=F(p,c)?.network;if(!r.some(m=>m.name==d))return;if(l===a&&T&&d!=s){let m=u.list,{type:S}=b(p),w=Ae(S);u.list.block({reason:{reason:"waiting_for_network_change",description:w},silent:!0});let y=qt({getStorage:m.getStorage.bind(m),setStorage:m.setStorage.bind(m)});y&&A({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:s,requiredNetwork:d??void 0},swap:y.swap,step:y.step})}}}})}o(Gt,"checkWaitingForConnectWalletChange");function at(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(n=>{let a=t.list.state.tasks[n];return a.status===Ze.BLOCKED&&["waiting_for_network_change","depends_on_other_queues"].includes(a.blockedFor?.reason)})){let n=t.list.getStorage()?.swapDetails;if(n.status==="running"){let{type:a}=b(n),s=$(a);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:s}})}}})}o(at,"checkWaitingForNetworkChange");function Zr(e){let t=e?.getAll()||new Map,r=[];return t.forEach(n=>{let s=n.list.getStorage()?.swapDetails;!s||s.status!=="running"||r.push(s)}),r}o(Zr,"getRunningSwaps");function en(e){e.forEach(t=>{let r=g(t),n="tx_execution_blocked",a;r?.networkStatus===ae.WaitingForQueue?a="waiting_for_queue":t?.status==="running"&&(a="waiting_for_wallet_connect"),n&&A&&A({event:{type:n,status:a??"waiting_for_queue"},swap:t,step:r})})}o(en,"resetRunningSwapNotifsOnPageLoad");function st(e,t,r,n={fallbackToOnlyWallet:!0}){let{walletType:a,network:s}=e;if(!a)return;let u=[],i=[];t?.getAll().forEach(c=>{if(c.status===Ze.BLOCKED){let l=c.list.getStorage(),T=l?.swapDetails;if(T&&T.status==="running"){let d=g(T);d&&(s&&F(T,d)?.network==s&&l?.swapDetails.wallets[s]?.walletType===a?u.push(c.list):l?.swapDetails.wallets[d.fromBlockchain]?.walletType===a&&i.push(c.list))}}});let p;if(u.length>0){if(p=u[0],u.length>1)for(let c=1;c<u.length;c++){let l=u[c];Ft({getStorage:l.getStorage.bind(l),setStorage:l.setStorage.bind(l)})}}else i.length>0&&n.fallbackToOnlyWallet&&(p=i[0]);if(p){let c=p.getStorage(),l=g(c?.swapDetails),T=l?F(c.swapDetails,l):null;!s||!T||!r?.(a,s,T)?p.unblock():p.checkBlock()}}o(st,"retryOn");function Kt(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}o(Kt,"isNeedBlockQueueForParallel");async function Vt(e){let t=await e;if(!t.ok||!t.transaction)throw D.CreateTransaction(t.error||"bad response from create tx endpoint");return t}o(Vt,"throwOnOK");function tn(e,t){let{reset:r}=Ne();e.actions.cancel();let n=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 A({event:{type:"failed",reasonCode:"USER_CANCEL",reason:n.swap.extraMessage??void 0,inputAmount:B(n.swap),inputAmountUsd:V(n.swap)},swap:n.swap,step:n.step}),r(),t&&t?.retry(),n}o(tn,"cancelSwap");function ne(e){return e.slice().reverse().find(t=>t.status==="success")}o(ne,"getLastSuccessfulStep");function Wt(e){return e.slice().reverse().find(t=>t.status==="failed")}o(Wt,"getFailedStep");function rn(e){let{transaction:t}=e;return t?.type===k.EVM&&t.isApprovalTx||t?.type===k.STARKNET&&t.isApprovalTx||t?.type===k.TRON&&t.isApprovalTx}o(rn,"isApprovalTX");function ve(e,t){let r=new Gr(e).multipliedBy(t);return isNaN(r.toNumber())?"":r.toString()}o(ve,"getTokenAmountInUsd");function Je(e){return ve(e.inputAmount,e.steps[0].fromUsdPrice??"")}o(Je,"getSwapInputUsd");function bt(e){let t=e.steps[e.steps.length-1];return ve(t.outputAmount??"",t.toUsdPrice??"")}o(bt,"getSwapOutputUsd");function $t(e){let t=["success","failed"],r=e.steps.findLastIndex(n=>t.includes(n.status));return r<0?void 0:{step:e.steps[r],index:r}}o($t,"getLastFinishedStep");function B(e){let t=$t(e);return t?t.index===0?e.inputAmount:e.steps[t.index-1].outputAmount??"":""}o(B,"getLastFinishedStepInput");function V(e){let t=$t(e);return ve(B(e),t?.step?.fromUsdPrice??"")}o(V,"getLastFinishedStepInputUsd");function Pe(e){let t=ne(e.steps);return ve(t?.outputAmount??"",t?.toUsdPrice??"")}o(Pe,"getLastSuccessfulStepOutputUsd");function ie(e,t,r){return{type:"failed",reason:t,reasonCode:r??L,inputAmount:B(e),inputAmountUsd:V(e)}}o(ie,"createStepFailedEvent");import{Err as Yt,Ok as jt}from"ts-results";function ue(e){let{getStorage:t,context:r}=e,{isMobileWallet:n}=r,a=t().swapDetails,s=g(a),u=W(a,s),i=n(u?.walletType),p=h(s),c=M(s);if(!p||!p.type)return new Yt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});let l=!!a.hasAlreadyProceededToSign;return c?new jt({nextStatus:void 0,nextStepStatus:"waitingForApproval",details:"Waiting for approve transaction to be mined and confirmed successfully",message:`Waiting for approval of ${s?.fromSymbol} coin ${i?"on your mobile phone!":""}`}):l?new Yt({message:"Transaction is expired. Please try again.",nextStepStatus:"failed",nextStatus:"failed",details:"",errorCode:"TX_EXPIRED"}):new jt({message:"Executing transaction ...",nextStepStatus:"running",nextStatus:"running",details:`${i?"Check your mobile phone!":""}`})}o(ue,"produceNextStateForTransaction");function I(e,t){let{getStorage:r,setStorage:n}=e,a=r().swapDetails,s=g(a),u=M(s),i=typeof a.hasAlreadyProceededToSign=="boolean",p=O({getStorage:r,setStorage:n,nextStepStatus:t.nextStepStatus,nextStatus:t.nextStatus,message:t.message,details:t.details,errorCode:t.errorCode,hasAlreadyProceededToSign:u?void 0:i});A({event:{type:"failed",reason:t.message,reasonCode:p.failureType??L,inputAmount:B(a),inputAmountUsd:V(a)},...p})}o(I,"onNextStateError");function le(e,t){let{getStorage:r,setStorage:n}=e,a=r().swapDetails,s=g(a),u=M(s),i=typeof a.hasAlreadyProceededToSign=="boolean",p=O({getStorage:r,setStorage:n,nextStepStatus:t.nextStepStatus,nextStatus:t.nextStatus,message:t.message,details:t.details,hasAlreadyProceededToSign:u?void 0:i});A({event:{type:"tx_execution",status:"send_tx"},...p})}o(le,"onNextStateOk");async function it(e){let{failed:t,schedule:r,getStorage:n,next:a}=e,s=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),u=o(S=>{I(e,S.val),t(),s()},"handleErr"),i=o(S=>{r(S),a(),s()},"scheduleAction"),p=n().swapDetails,c=g(p),l=h(c);if(!l){u(new ot({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let T=l.prerequisites,d=T.findIndex((S,w)=>!At({prerequisiteType:S.type,prerequisiteIndex:w},c)),m=null;if(d!==-1)switch(T[d].type){case sn:m=Ct(d,c);break;case an:m=Rt(d,c);break;default:m=new ot("Unexpected Error: unknown prerequisite type!");break}else c.fromBlockchain===nn.XRPL?m=new Jt("EXECUTE_XRPL_TRANSACTION"):m=new Jt("EXECUTE_TRANSACTION");m?.err?u(new ot({nextStatus:"failed",nextStepStatus:"failed",message:m.val,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})):i(m.val)}o(it,"checkPrerequisites");import{warn as pe}from"@rango-dev/logging-core";import{SignerError as Zt}from"rango-types";var zt=5e3,on=5e3;async function un({getStorage:e,setStorage:t,next:r,schedule:n,retry:a,failed:s,context:u}){let i=e().swapDetails,{meta:p}=u,c=new Error("check status Error"),l=g(i);if(!l?.executedTransactionId)return;let T=h(l),d=l.executedTransactionId,m=!1,S=null,w=null,{getTransactionDataByHash:y,setTransactionDataByHash:N}=he();try{let C=et(l),_=W(i,l);C&&_&&(w=(await u.getSigners(_.walletType)).getSigner(C))}catch{}try{let{response:C,receiptReceived:_}=y(d);if(w?.wait&&!_){let v=T?.blockChain&&p.blockchains?.[T?.blockChain]?.chainId||void 0,{hash:P,response:we}=await w.wait(d,v,C);if(P!==d){l.executedTransactionId=P||l.executedTransactionId;let xe=G(i,l),Be;!!Object.keys(p.blockchains).length&&(Be=ce(l.executedTransactionId,xe.network,p.blockchains)),Be&&l.explorerUrl&&l.explorerUrl?.length>=1&&(l.explorerUrl[l.explorerUrl.length-1]={url:Be,description:"Replaced Swap"}),d=l.executedTransactionId,P&&we&&N(P,{response:we})}else N(P,{receiptReceived:!0})}}catch(C){let{extraMessage:_,extraMessageDetail:v,extraMessageErrorCode:P}=j(C),we=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:_,details:v,errorCode:P}),xe=ie(i,_,we.failureType);pe(c,{tags:{type:"singer-error",reason:xe.reason,reasonCode:xe.reasonCode,message:_,messageDetail:v,pendingSwap:i},context:Zt.isSignerError(C)?C.getErrorContext():{}}),m=!0}let E={requestId:i.requestId,txId:d,step:l.id};try{S=await Y().checkStatus(E)}catch{await se(zt),a(),pe(c,{tags:{type:"request-error",requestBody:E,pendingSwap:i}});return}if(m)return s();if(l?.status==="failed")return;let x=S?.outputAmount||(l.outputAmount?l.outputAmount:null),f=l.outputAmount||null;i.extraMessage=S?.extraMessage||i.extraMessage,i.extraMessageSeverity="info",i.extraMessageDetail="",l.status=S?.status||l.status,l.diagnosisUrl=S?.diagnosisUrl||l.diagnosisUrl||null,l.outputAmount=x||l.outputAmount,l.explorerUrl=S?.explorerUrl||l.explorerUrl,l.internalSteps=S?.steps||null;let R=S?.newTx;if(R&&(l.status="created",l.executedTransactionId=null,l.executedTransactionTime=null,ke(l,R)),f===null&&x!==null?A({event:{type:"output_revealed",outputAmount:x},swap:i,step:l}):f===null&&x===null&&A({event:{type:"check_status"},swap:i,step:l}),l.status==="success"){let C=Lt(i,l);i.extraMessageDetail="",i.extraMessage=C?`starting next step: ${C.swapperId}: ${C.fromBlockchain} -> ${C.toBlockchain}`:"",A({event:{type:"succeeded",inputAmount:B(i),inputAmountUsd:V(i),outputAmount:l.outputAmount??"",outputAmountUsd:Pe(i)},swap:i,step:l})}else l.status==="failed"&&(i.extraMessage="Transaction failed in blockchain",i.extraMessageSeverity="error",i.extraMessageDetail=S?.extraMessage||"",i.status="failed",i.finishTime=new Date().getTime().toString(),pe(c,{tags:{type:"transaction-failed",message:i.extraMessage,messageDetails:i.extraMessageDetail,pendingSwap:i}}));t({...e(),swapDetails:i}),S?.status==="failed"?s():S?.status==="success"||S?.status==="running"&&S.newTx?(n("SCHEDULE_NEXT_STEP"),r()):(await se(zt),a())}o(un,"checkTransactionStatus");async function ln({getStorage:e,setStorage:t,next:r,schedule:n,retry:a,failed:s,context:u}){let i=e().swapDetails,{meta:p}=u,{getTransactionDataByHash:c,setTransactionDataByHash:l}=he(),T=new Error("check approval status error"),d=g(i);if(!d){console.log("ignore check status, current step is null");return}let m=h(d);if(!d?.executedTransactionId)return;let S=d.executedTransactionId,w=null;try{let E=et(d),x=W(i,d);E&&x&&(w=(await u.getSigners(x.walletType)).getSigner(E))}catch{}try{let{response:E,receiptReceived:x}=c(S);if(w?.wait&&!x){let f=m?.blockChain&&p.blockchains?.[m?.blockChain]?.chainId||void 0,{hash:R,response:C}=await w.wait(S,f,E);if(R!==S){d.executedTransactionId=R||d.executedTransactionId;let _=G(i,d),v;!!Object.keys(p.blockchains).length&&(v=ce(d.executedTransactionId,_.network,p.blockchains)),v&&d.explorerUrl&&d.explorerUrl?.length>=1&&(d.explorerUrl[d.explorerUrl.length-1]={url:v,description:"Replaced Approve"}),S=d.executedTransactionId,R&&C&&l(R,{response:C})}else l(R,{receiptReceived:!0})}}catch(E){let{extraMessage:x,extraMessageDetail:f,extraMessageErrorCode:R}=j(E),C=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:x,details:f,errorCode:R}),_=ie(i,x,C.failureType);return A({event:_,...C}),pe(T,{tags:{type:"singer-error",reason:_.reason,reasonCode:_.reasonCode,message:x,messageDetail:f,pendingSwap:i},context:Zt.isSignerError(E)?E.getErrorContext():{}}),s()}let y=!1,N={requestId:i.requestId,txId:d.executedTransactionId};try{let E=await Y().checkApproval(N.requestId,N.txId);if(d?.status==="failed")return;if(y=E.isApproved,!y&&(E.txStatus==="failed"||E.txStatus==="success")){let x,f;E.txStatus==="failed"?(x="Approve transaction failed",f="Smart contract approval tx failed in blockchain."):(x="Not enough approval",E.requiredApprovedAmount&&E.currentApprovedAmount?f=`Required approval: ${E.requiredApprovedAmount}, current approval: ${E.currentApprovedAmount}`:f="You still don't have enough approval for this swap.");let R=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:x,details:f}),C=ie(i,x,R.failureType);A({event:C,...R}),pe(T,{tags:{type:"approval-failed",message:i.extraMessage,messageDetails:i.extraMessageDetail,pendingSwap:i}}),s()}else y||A({event:{type:"check_status"},swap:i,step:d})}catch{y=!1,pe(T,{tags:{type:"request-error",requestBody:N,pendingSwap:i}})}y?(d.status="approved",i.extraMessage=`Spending ${d.fromSymbol} approved successfully.`,i.extraMessageDetail=null,i.extraMessageSeverity="success",d.evmApprovalTransaction=null,d.executedTransactionId=null,d.executedTransactionTime=null,d.starknetApprovalTransaction=null,d.tronApprovalTransaction=null,t({...e(),swapDetails:i}),A({event:{type:"approval_tx_succeeded"},swap:i,step:d}),n("SCHEDULE_NEXT_STEP"),r()):(await se(on),a())}o(ln,"checkApprovalStatus");async function er(e){let t=e.getStorage().swapDetails,r=g(t);if(!r){console.log("ignore check status, current step is null",t.requestId);return}Ie(e),r.status==="running"?await un(e):r.status==="waitingForApproval"&&await ln(e)}o(er,"checkStatus");import{STELLAR_CHANGE_TRUSTLINE_TYPE as We,TransactionType as dn}from"rango-types";import{Err as ar}from"ts-results";function Le(e){return e.claimedBy===e._queue?.id}o(Le,"isClaimedByCurrentQueue");function X(e,t){e.block(t),Le(e.context)&&e.context.resetClaimedBy&&e.context.resetClaimedBy()}o(X,"requestBlockQueue");import{legacyReadAccountAddress as pn}from"@rango-dev/wallets-core/legacy";import*as De from"@stellar/stellar-sdk";import tr from"bignumber.js";import{TransactionType as cn}from"rango-types";import{Err as Oe,Ok as Ue}from"ts-results";var ut="922337203685.4775807";async function de(e,t){let n=e.hubProvider(t).get("stellar");return n?Ue(n):new Oe({nextStatus:"failed",nextStepStatus:"failed",message:"Stellar is not available on your wallet.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(de,"ensureStellarNamespaceExists");async function rr(e,t,r){try{let a=(await r.namespace.balanceLines(e)).filter(i=>i.asset_type!=="native"&&i.asset_type!=="liquidity_pool_shares").find(i=>i.asset_code===t.code&&i.asset_issuer===t.issuer);if(!a)return new Ue({trustLineIsAlreadyOpened:!1});let s=new tr(a.limit),u=new tr(ut);return new Ue({trustLineIsAlreadyOpened:s.gte(u)})}catch{return new Oe({nextStatus:"failed",nextStepStatus:"failed",message:"Could not get account lines from Stellar.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}}o(rr,"checkIfTrustLineIsAlreadyOpened");function nr(e,t){let r=new De.Asset(t.code,t.issuer),n="100",a=30,s=Math.floor(Date.now()/1e3),u=De.Operation.changeTrust({asset:r,limit:ut});return{type:cn.STELLAR,blockChain:"Stellar",prerequisites:[],data:{baseFee:n,memoXdrBase64:null,preconditions:{timeBounds:{minTime:0,maxTime:s+a},ledgerBounds:{minLedger:0,maxLedger:0},minSeqNumber:null,minSeqAge:null,minSeqLedgerGap:null,extraSigners:null},operationsXdrBase64:[u.toXDR("base64")]}}}o(nr,"createTrustLineTransaction");function Se(e){let t=e.wallets.STELLAR;return t?{type:t.walletType,namespace:{namespace:"Stellar",network:"Stellar"},address:t.address}:null}o(Se,"getStellarWalletFromSwap");async function me(e,t){let{context:r}=e,n=r.state(t.type),{accounts:a,connected:s}=n;return s?a?.find(u=>pn(u).address===t.address)?new Ue(!0):new Oe({reason:"waiting_for_connecting_wallet",description:te(t.type,t.address)}):new Oe({reason:"waiting_for_connecting_wallet",description:$(t.type)})}o(me,"ensureRequiredStellarWalletIsConnected");async function lt(e){let{failed:t,context:r,schedule:n,getStorage:a,next:s}=e,{meta:u,getSigners:i}=r,p=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),c=o(()=>{n("CHECK_PREREQUISITES"),s(),p()},"scheduleCheckPrerequisites"),l=o(f=>{I(e,f.val),t(),p()},"handleErr"),T=a().swapDetails,d=g(T),m=h(d);if(!m){l(new ar({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let S=null;for(let f=0;f<m.prerequisites.length;f++){let R=m.prerequisites[f];if(R.type===We&&!d.prerequisiteResults.find(_=>_.prerequisiteIndex===f&&_.prerequisiteType===We)){S={prerequisite:R,prerequisiteIndex:f};break}}if(!S){c();return}let w=Se(T);if(!w){l(new ar({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Stellar wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let y=await de(r,w.type);if(y.err){l(y);return}let N=await me(e,w);if(N.err){X(e,N.val);return}let E={code:S.prerequisite.code,issuer:S.prerequisite.issuer,value:S.prerequisite.value},x=await rr(S.prerequisite.wallet,E,{namespace:y.val});if(x.err){l(x);return}if(x.val.trustLineIsAlreadyOpened){let f={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:We,status:"skipped",data:null};K(e,f),c();return}try{let f=await nr(S.prerequisite.wallet,E),R=u.blockchains.Stellar?.chainId,v=await(await i(w.type)).getSigner(dn.STELLAR).signAndSendTx(f,w.address,R),P={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:We,status:"success",data:{executedTransactionHash:v.hash}};K(e,P),c()}catch(f){q(e)(f),p()}}o(lt,"checkStellarTrustline");import{TransactionType as Tn,XRPL_CHANGE_TRUSTLINE_TYPE as Fe}from"rango-types";import{Err as ur}from"ts-results";import{legacyReadAccountAddress as Sn}from"@rango-dev/wallets-core/legacy";import sr from"bignumber.js";import{TransactionType as mn}from"rango-types";import{Err as be,Ok as qe}from"ts-results";var pt="10000000000000";async function Te(e,t){let n=e.hubProvider(t).get("xrpl");return n?qe(n):new be({nextStatus:"failed",nextStepStatus:"failed",message:"XRPL is not available on your wallet.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(Te,"ensureXrplNamespaceExists");async function or(e,t,r){try{let a=(await r.namespace.accountLines(e,{peer:t.account})).find(i=>i.currency===t.currency&&i.account===t.account);if(!a)return new qe({trustLineIsAlreadyOpened:!1});let s=new sr(a.limit),u=new sr(pt);return new qe({trustLineIsAlreadyOpened:s.gte(u)})}catch{return new be({nextStatus:"failed",nextStepStatus:"failed",message:"Could not get account lines from XRPL.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}}o(or,"checkIfTrustLineIsAlreadyOpened");function ir(e,t){return{type:mn.XRPL,blockChain:"XRPL",prerequisites:[],data:{TransactionType:"TrustSet",Account:e,LimitAmount:{currency:t.currency,issuer:t.account,value:pt}}}}o(ir,"createTrustLineTransaction");function ge(e){let t=e.wallets.XRPL;return t?{type:t.walletType,namespace:{namespace:"XRPL",network:"XRPL"},address:t.address}:null}o(ge,"getXrplWalletFromSwap");async function Ee(e,t){let{context:r}=e,n=r.state(t.type),{accounts:a,connected:s}=n;return s?a?.find(u=>Sn(u).address===t.address)?new qe(!0):new be({reason:"waiting_for_connecting_wallet",description:te(t.type,t.address)}):new be({reason:"waiting_for_connecting_wallet",description:$(t.type)})}o(Ee,"ensureRequiredXrplWalletIsConnected");async function ct(e){let{failed:t,context:r,schedule:n,getStorage:a,next:s}=e,{meta:u,getSigners:i}=r,p=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),c=o(()=>{n("CHECK_PREREQUISITES"),s(),p()},"scheduleCheckPrerequisites"),l=o(f=>{I(e,f.val),t(),p()},"handleErr"),T=a().swapDetails,d=g(T),m=h(d);if(!m){l(new ur({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let S=null;for(let f=0;f<m.prerequisites.length;f++){let R=m.prerequisites[f];R.type===Fe&&(d.prerequisiteResults?.find(_=>_.prerequisiteIndex===f&&_.prerequisiteType===Fe)||(S={prerequisite:R,prerequisiteIndex:f}))}if(!S){c();return}let w=ge(T);if(!w){l(new ur({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: XRPL wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let y=await Te(r,w.type);if(y.err){l(y);return}let N=await Ee(e,w);if(N.err){X(e,N.val);return}let E={currency:S.prerequisite.currency,account:S.prerequisite.issuer,amount:S.prerequisite.value},x=await or(S.prerequisite.wallet,E,{namespace:y.val});if(x.err){l(x);return}if(x.val.trustLineIsAlreadyOpened){let f={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:Fe,status:"skipped",data:null};K(e,f),c();return}try{let f=ir(S.prerequisite.wallet,E),R=u.blockchains.XRPL?.chainId,v=await(await i(w.type)).getSigner(Tn.XRPL).signAndSendTx(f,w.address,R),P={prerequisiteIndex:S.prerequisiteIndex,prerequisiteType:Fe,status:"pending",data:{executedTransactionHash:v.hash}};K(e,P),c()}catch(f){q(e)(f),p()}}o(ct,"checkXrplTrustline");import{isXrplChangeTrustLinePrerequisiteResult as En,XRPL_CHANGE_TRUSTLINE_TYPE as pr}from"rango-types";import{Err as fn}from"ts-results";import{Client as wn}from"xrpl";var lr="wss://xrplcluster.com/";async function dt(e){let{failed:t,getStorage:r,retry:n,next:a,schedule:s}=e,u=r().swapDetails,i=g(u),p=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),c=o(()=>{s("CHECK_PREREQUISITES"),a(),p()},"onSuccessfulFinish"),l=o(m=>{I(e,m.val),t(),p()},"handleErr"),T=o(async()=>{await se(5e3),n()},"retryAfterDelay"),d=null;for(let m of i.prerequisiteResults)if(En(m)&&m.status==="pending"){d=m;break}if(!d){c();return}try{let m=new wn(lr);await m.connect();let S=await m.request({command:"tx",transaction:d.data.executedTransactionHash});if(!S.result.validated){await T();return}if(typeof S.result.meta!="string"&&S.result.meta?.TransactionResult==="tesSUCCESS"){let w={prerequisiteIndex:d.prerequisiteIndex,prerequisiteType:pr,status:"success",data:{executedTransactionHash:d.data.executedTransactionHash}};K(e,w),c()}else{let w={prerequisiteIndex:d.prerequisiteIndex,prerequisiteType:pr,status:"failed",data:{executedTransactionHash:d.data.executedTransactionHash}};K(e,w),l(new fn({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: xrpl change trustline transaction failed!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}))}}catch{await T()}}o(dt,"checkXrplTrustLineTransactionStatus");import{warn as xn}from"@rango-dev/logging-core";async function cr(e){let{setStorage:t,getStorage:r,next:n,schedule:a}=e,s=r().swapDetails,u=g(s);if(!h(u)){A({event:{type:"tx_execution",status:"create_tx"},swap:s,step:u});let p={requestId:s.requestId,step:u.id,userSettings:{slippage:s.settings.slippage,infiniteApprove:s.settings.infiniteApprove},validations:{balance:s.validateBalanceOrFee,fee:s.validateBalanceOrFee,approve:!0}};try{let{transaction:c}=await Vt(Y().createTransaction(p));c&&ke(u,c),t({...r(),swapDetails:s}),a("SCHEDULE_NEXT_STEP"),n()}catch(c){s.status="failed",s.finishTime=new Date().getTime().toString();let{extraMessage:l,extraMessageDetail:T}=j(c),d=O({getStorage:r,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:l,details:T,errorCode:"FETCH_TX_FAILED"}),m=ie(s,l,d.failureType);A({event:m,...d}),c instanceof Error&&xn(new Error("create transaction error"),{tags:{message:c.message,requestBody:p,reason:m.reason,reasonCode:m.reasonCode,pendingSwap:s}}),e.failed()}}}o(cr,"createTransaction");import{TransactionType as Cn}from"rango-types";import{Err as mr}from"ts-results";import{isStellarTransaction as yn}from"rango-types";import{Err as dr,Ok as An}from"ts-results";async function Sr(e){return e?yn(e)?An(e):new dr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Expected Stellar transaction but it doesn't match with the structure.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}):new dr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(Sr,"ensureStellarTransactionIsValid");async function St(e){let{failed:t,getStorage:r,context:n}=e,{meta:a,getSigners:s}=n,u=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),i=o(x=>{I(e,x.val),t(),u()},"handleErr"),p=r().swapDetails,c=g(p),l=h(c),T=await Sr(l);if(T.err){i(T);return}let d=Se(p);if(!d){i(new mr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Stellar wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let m=await de(n,d.type);if(m.err){i(m);return}let S=await me(e,d);if(S.err){X(e,S.val);return}let w=re(p,c),y=ue(e);if(y.err){i(y);return}le(e,y.val);let N=a.blockchains.Stellar?.chainId,E;try{E=(await s(d.type)).getSigner(Cn.STELLAR)}catch{i(new mr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Failed to load the signer. Please refresh the page and try again.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}try{let x=await E.signAndSendTx(T.val,w,N);oe(e,{isApproval:!1})(x)}catch(x){q(e)(x)}u()}o(St,"executeStellarTransaction");import{PendingSwapNetworkStatus as Tr}from"rango-types";import{Err as Me,Ok as mt}from"ts-results";async function gr(e){let{getStorage:t,context:r}=e,n=t().swapDetails,a=g(n),s=Rn(e);if(s.err)return s;let u=await _n(e);if(u.err)return u;a.networkStatus===Tr.NetworkChanged&&rt(e,{message:"",details:"The network has been successfully changed.",status:Tr.NetworkChanged});let i=Kt(a),p=Le(r);if(i&&!p){let c={reason:"depends_on_other_queues",description:Ye,details:{}};return new Me(c)}return new mt(!0)}o(gr,"checkEnvironmentBeforeExecuteTransaction");function Rn(e){let{getStorage:t,context:r}=e,{wallets:n}=r,a=t().swapDetails;if(!nt(a,r.state).ok){let{type:u,address:i}=b(a),p=n?.blockchains?.find(T=>!T.accounts?.find(d=>d.walletType===u)),c=tt(n)||p?$(u):te(u,i),l={reason:"waiting_for_connecting_wallet",description:c};return new Me(l)}return new mt(!0)}o(Rn,"ensureRequiredWalletIsConnected");async function _n(e){let{getStorage:t,context:r}=e,{meta:n,wallets:a,providers:s,hubProvider:u}=r,i=t().swapDetails,p=g(i),c=await Mt(i,p,a,n,s,u),{claimedBy:l}=Ne();if(!!l()&&!Le(r)&&!c){let m=Ye,S={reason:"depends_on_other_queues",details:m};return new Me(S)}else if(!c){let m=G(i,p),S=Ae(m.network),w={reason:"waiting_for_network_change",details:S};return new Me(w)}return new mt(!0)}o(_n,"ensureWalletIsOnCorrectNetwork");async function Tt(e){let t=await gr(e);if(t.err){X(e,t.val);return}Ie(e);let{failed:r,getStorage:n,context:a}=e,{meta:s,getSigners:u}=a,i=n().swapDetails,p=g(i),c=M(p),l=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),T=ue(e);if(T.err){I(e,T.val),r(),l();return}le(e,T.val);let d=h(p),m=W(i,p),S=re(i,p),w=s.blockchains?.[d.blockChain]?.chainId,y;try{y=await u(m.walletType)}catch(E){q(e)(E),l();return}await y.getSigner(d.type).signAndSendTx(d,S,w).then(oe(e,{isApproval:c}),q(e)).finally(()=>{l()})}o(Tt,"executeTransaction");import{TransactionType as kn}from"rango-types";import{Err as fr}from"ts-results";import{isXrplTransaction as Nn}from"rango-types";import{Err as gt,Ok as hn}from"ts-results";async function Er(e){return e?Nn(e)?e.data.TransactionType!=="Payment"?new gt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Only XRPL transactions with payment type are supported",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}):hn(e):new gt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Expected XRPL transaction but it doesn't match with the structure.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}):new gt({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: tx is null!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"})}o(Er,"ensureXrplTransactionIsValid");async function Et(e){let{failed:t,getStorage:r,context:n}=e,{meta:a,getSigners:s}=n,u=o(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),i=o(x=>{I(e,x.val),t(),u()},"handleErr"),p=r().swapDetails,c=g(p),l=h(c),T=await Er(l);if(T.err){i(T);return}let d=ge(p);if(!d){i(new fr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Stellar wallet was not found in the swap!",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}let m=await Te(n,d.type);if(m.err){i(m);return}let S=await Ee(e,d);if(S.err){X(e,S.val);return}let w=re(p,c),y=ue(e);if(y.err){i(y);return}le(e,y.val);let N=a.blockchains.XRPL?.chainId,E;try{E=(await s(d.type)).getSigner(kn.XRPL)}catch{i(new fr({nextStatus:"failed",nextStepStatus:"failed",message:"Unexpected Error: Failed to load the signer. Please refresh the page and try again.",details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"}));return}try{let x=await E.signAndSendTx(T.val,w,N);oe(e,{isApproval:T.val.data.TransactionType==="TrustSet"})(x)}catch(x){q(e)(x)}u()}o(Et,"executeXrplTransaction");function wr({schedule:e,next:t,failed:r,setStorage:n,getStorage:a}){let s=a().swapDetails,u=g(s),i=s.steps.find(p=>p.status==="failed");if(u&&!i){if(Bt(s,u))return e("CHECK_PREREQUISITES"),t();if(u?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();s.status="running",n({...a(),swapDetails:s}),A({event:{type:"started"},swap:s,step:u}),e("CREATE_TRANSACTION"),t()}else{s.status=i?"failed":"success",s.finishTime=new Date().getTime().toString(),n({...a(),swapDetails:s});let p=B(s),c=V(s);A({...i?{event:{type:"failed",reason:s.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED",inputAmount:p,inputAmountUsd:c}}:{event:{type:"succeeded",inputAmount:p,inputAmountUsd:c,outputAmount:ne(s.steps)?.outputAmount??"",outputAmountUsd:Pe(s)}},swap:s,step:null}),i?r():t()}}o(wr,"scheduleNextStep");function xr({schedule:e,next:t,getStorage:r}){let n=r().swapDetails;A({event:{type:"started"},swap:n,step:null}),e("SCHEDULE_NEXT_STEP"),t()}o(xr,"start");var yr={name:"swap",actions:{START:xr,SCHEDULE_NEXT_STEP:wr,CREATE_TRANSACTION:cr,CHECK_PREREQUISITES:it,CHECK_XRPL_TRUSTLINE:ct,CHECK_XRPL_TRUSTLINE_TRANSACTION_STATUS:dt,CHECK_STELLAR_TRUSTLINE:lt,EXECUTE_TRANSACTION:Tt,EXECUTE_XRPL_TRANSACTION:Et,EXECUTE_STELLAR_TRANSACTION:St,CHECK_TRANSACTION_STATUS:er},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?Xt(e,t):e.reason.reason==="waiting_for_network_change"?Qt(e,t):e.reason.reason==="depends_on_other_queues"&&Ht(e,t)}};import{useManager as On}from"@rango-dev/queue-manager-react";import{useEffect as wt,useState as Un}from"react";import{DB_NAME as In,Persistor as vn,Status as fe}from"@rango-dev/queue-manager-core";import{v4 as Pn}from"uuid";var Ar="migratedToQueueManager";function ft(){return!!window.localStorage.getItem(Ar)}o(ft,"migrated");async function Ln(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(In)}catch{return!1}}o(Ln,"hasQueueManagerOnIDB");async function Cr(){let e=window.localStorage.getItem("pendingSwaps"),t=await Ln();if(!e||ft()||t)return!0;let r=JSON.parse(e),n=[];r.forEach(u=>{if(u.status==="running"){let i=Pn(),p={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:fe.RUNNING,storage:{swapDetails:u},state:{status:fe.RUNNING,activeTaskIndex:0,tasks:{[i]:{blockedFor:null,status:fe.RUNNING}}},tasks:[{id:i,action:"SCHEDULE_NEXT_STEP"}]};n.push(p)}else{let i=u.status==="success"?fe.SUCCESS:fe.FAILED,p={id:u.requestId,createdAt:Number(u.creationTime),name:"swap",status:i,storage:{swapDetails:u},state:{status:i,activeTaskIndex:0,tasks:{}},tasks:[]};n.push(p)}});let a=new vn,s=n.map(async u=>a.insertQueue(u));return await Promise.all(s),window.localStorage.setItem(Ar,"1"),!0}o(Cr,"migration");var Rr=0;function Dn(e){return`${e?.walletType}-${e?.network}-${e?.accounts?.toString()}`}o(Dn,"getLastConnectedWalletHash");function Wn(){let e=ft(),[t,r]=Un(e);return wt(()=>{(async()=>Rr||(Rr=1,Cr().finally(()=>{r(!0)})))()},[]),{status:t}}o(Wn,"useMigration");function bn(e){let{manager:t}=On(),{lastConnectedWallet:r,disconnectedWallet:n,evmChains:a,canSwitchNetworkTo:s,clearDisconnectedWallet:u}=e;wt(()=>{r&&(Gt({evmChains:a,lastConnectedWallet:r,manager:t}),st(r,t,s))},[Dn(r)]),wt(()=>{n&&(at(t),u())},[n])}o(bn,"useQueueManager");function su(e){return yt(e),yr}o(su,"makeQueueDefinition");export{Ge as EventSeverity,Re as MessageSeverity,D as PrettyError,He as RouteEventType,Q as StepEventType,ye as StepExecutionBlockedEventStatus,ee as StepExecutionEventStatus,Qe as WidgetEvents,br as calculatePendingSwap,tn as cancelSwap,at as checkWaitingForNetworkChange,F as getCurrentNamespaceOfOrNull,g as getCurrentStep,ne as getLastSuccessfulStep,W as getRelatedWallet,je as getRelatedWalletOrNull,b as getRequiredWallet,Zr as getRunningSwaps,Ut as getUsdPrice,rn as isApprovalTX,su as makeQueueDefinition,j as prettifyErrorMessage,en as resetRunningSwapNotifsOnPageLoad,O as updateSwapStatus,Wn as useMigration,bn as useQueueManager};
2
2
  //# sourceMappingURL=index.js.map