@rango-dev/queue-manager-rango-preset 0.37.1-next.3 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
- import { ExecuterActions } from '@rango-dev/queue-manager-core';
2
- import { SwapActionTypes, SwapQueueContext, SwapStorage } from '../types';
1
+ import type { SwapQueueContext, SwapStorage } from '../types';
2
+ import type { ExecuterActions } from '@rango-dev/queue-manager-core';
3
+ import { SwapActionTypes } from '../types';
3
4
  /**
4
5
  *
5
6
  * When a user asks for a swap, We first create the transaction by sending a request to server
@@ -1 +1 @@
1
- {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../../src/actions/createTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,WAAW,EAEZ,MAAM,UAAU,CAAC;AAclB;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAmEf"}
1
+ {"version":3,"file":"createTransaction.d.ts","sourceRoot":"","sources":["../../src/actions/createTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAcrE,OAAO,EAGL,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAsEf"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var Et=Object.defineProperty;var l=(e,t)=>Et(e,"name",{value:t,configurable:!0});var gt="c6381a79-2817-4602-83bf-6a641a409e32",Se={API_KEY:gt,BASE_URL:""};function $(e){return Se[e]}l($,"getConfig");function Ie(e){return Se=e,Se}l(Ie,"initConfig");var Ee=(n=>(n.RouteEvent="routeEvent",n.StepEvent="stepEvent",n))(Ee||{}),ge=(r=>(r.STARTED="started",r.FAILED="failed",r.SUCCEEDED="succeeded",r))(ge||{}),Y=(r=>(r.CREATE_TX="create_tx",r.SEND_TX="send_tx",r.TX_SENT="tx_sent",r))(Y||{}),ne=(o=>(o.WAITING_FOR_QUEUE="waiting_for_queue",o.WAITING_FOR_WALLET_CONNECT="waiting_for_wallet_connect",o.WAITING_FOR_NETWORK_CHANGE="waiting_for_network_change",o.WAITING_FOR_CHANGE_WALLET_ACCOUNT="waiting_for_change_wallet_account",o))(ne||{}),F=(u=>(u.STARTED="started",u.FAILED="failed",u.SUCCEEDED="succeeded",u.TX_EXECUTION="tx_execution",u.TX_EXECUTION_BLOCKED="tx_execution_blocked",u.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",u.CHECK_STATUS="check_status",u.OUTPUT_REVEALED="output_revealed",u))(F||{}),Te=(o=>(o.ERROR="error",o.SUCCESS="success",o.WARNING="warning",o.INFO="info",o))(Te||{});var fe="Waiting for other swaps to complete",Oe="Waiting for connecting wallet",Pe=l((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),re=l(e=>`Please connect your ${e??""} wallet.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),oe=l(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),k="CLIENT_UNEXPECTED_BEHAVIOUR";import{warn as Dt}from"@rango-dev/logging-core";import{Status as ye}from"@rango-dev/queue-manager-core";import{legacyReadAccountAddress as Wt}from"@rango-dev/wallets-core/legacy";import{getBlockChainNameFromId as bt,getEvmProvider as Ut,splitWalletNetwork as Ge}from"@rango-dev/wallets-shared";import{TransactionType as W}from"rango-sdk";import{PendingSwapNetworkStatus as Z,SignerError as Mt}from"rango-types";import{RangoClient as Tt}from"rango-sdk";var ae,B=l(()=>ae||(ae=new Tt($("API_KEY"),$("BASE_URL")),ae),"httpService");import Me from"bignumber.js";import{isCosmosBlockchain as Ct,isEvmBlockchain as _t,isSolanaBlockchain as xt,isStarknetBlockchain as kt,isTronBlockchain as Rt}from"rango-types";import De from"bignumber.js";var We=l((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new De(e),o=1,a=1e3;for(let i=0;i<60;i++)if(new De(r.toFixed(i,o)).eq(r)){a=i;break}if(r.gte(1e4))return r.toFormat(0,o);if(r.gte(1e3)||r.gte(100))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,1))),o);if(r.gte(1))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,2))),o);if(r.gte(.01))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,4))),o);for(let i=t||4;i<17;i++)if(r.gte(Math.pow(10,-i)))return r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,i))),o);return r.isEqualTo(0)?"0":r.toFormat(Math.min(a,Math.min(n||100,Math.max(t||0,8))),o)},"numberToString");import{SignerErrorCode as G,SignerError as ft,isSignerErrorCode as mt,isAPIErrorCode as wt}from"rango-types";var At="Assertion failed (Unexpected behaviour)",yt="Create transaction failed in Rango Server",be="Input wallet not found",I=class e extends Error{constructor(n,r,o,a){super(r);this._isPrettyError=!0;Object.setPrototypeOf(this,e.prototype),e.prototype._isPrettyError=!0,this.code=n,this.detail=a,this.root=o}static{l(this,"PrettyError")}static isPrettyError(n){return n instanceof e||Object.prototype.hasOwnProperty.call(n,"_isPrettyError")}getErrorDetail(){let n=typeof this.root=="object"&&this.root&&this.root.error?this.root.error:JSON.stringify(this.root),r=typeof this.root=="string"?this.root:this.root instanceof Error?this.root.message:n;return{extraMessage:this.message,extraMessageDetail:this.detail||r,extraMessageErrorCode:this.code||null}}static AssertionFailed(n){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",At,null,n)}static BadStatusCode(n,r){return new e("TX_FAIL",n,null,`status code = ${r}`)}static CreateTransaction(n){return new e("FETCH_TX_FAILED",yt,null,n)}static WalletMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}};function Ue(e){try{return e?wt(e)?e:mt(e)?{[G.REJECTED_BY_USER]:"USER_REJECT",[G.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[G.SEND_TX_ERROR]:"SEND_TX_FAILED",[G.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[G.NOT_IMPLEMENTED]:k,[G.OPERATION_UNSUPPORTED]:k,[G.UNEXPECTED_BEHAVIOUR]:k}[e]:k:k}catch{return k}}l(Ue,"mapAppErrorCodesToAPIErrorCode");var Q=l(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(I.isPrettyError(e))return e.getErrorDetail();if(ft.isSignerError(e)){let t=e.getErrorDetail();return{extraMessage:t.message,extraMessageDetail:t.detail,extraMessageErrorCode:t.code}}return e instanceof Error?{extraMessage:e.toString(),extraMessageErrorCode:null}:typeof e!="string"?{extraMessage:JSON.stringify(e),extraMessageErrorCode:null}:{extraMessage:e,extraMessageErrorCode:null}},"prettifyErrorMessage");var se=(o=>(o.error="error",o.warning="warning",o.info="info",o.success="success",o))(se||{}),b=l((e,t)=>{try{return U(e,t)}catch{return null}},"getCurrentBlockchainOfOrNull"),U=l((e,t)=>{let n=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain||t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain||t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain||t.cosmosTransaction?.blockChain||t.solanaTransaction?.blockChain||t.tonTransaction?.blockChain;if(n)return n;let r=t.transferTransaction?.fromWalletAddress;if(!r)throw I.BlockchainMissing();let o=Object.keys(e.wallets).find(a=>e.wallets[a]?.address===r)||null;if(o==null)throw I.BlockchainMissing();return o},"getCurrentBlockchainOf"),vt=l(e=>{if(Ct(e))return e.info?.explorerUrlToTx;if(_t(e)||kt(e)||Rt(e))return e.info.transactionUrl;if(xt(e))return"https://solscan.io/tx/{txHash}"},"getBlockchainMetaExplorerBaseUrl"),J=l((e,t,n)=>{let r=n[t],o=vt(r);if(o)return o.indexOf("/{txHash}")!==-1?o.replace("{txHash}",e):`${o}/${e}`},"getScannerUrl");function Fe(e,t){return e.steps.find(n=>n.status!=="failed"&&n.status!=="success"&&n.id!==t.id)||null}l(Fe,"getNextStep");var me=l((e,t)=>{let n=e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw I.WalletMissing();return n.address},"getCurrentAddressOf");function q(e,t){let n=me(e,t),r=Object.keys(e.wallets).map(c=>({k:c,v:e.wallets[c]})).find(({v:c})=>c.address===n)||null,o=r?.k||null,a=r?.v||null,i=a?.walletType;if(a===null)throw I.AssertionFailed(`Wallet for source ${o} not passed: walletType: ${i}`);return a}l(q,"getRelatedWallet");function we(e,t){if(!t)return null;try{return q(e,t)}catch{return null}}l(we,"getRelatedWalletOrNull");var Be=l((e,t,n,r)=>r?.find(a=>a.blockchain===e&&a.symbol?.toUpperCase()===t?.toUpperCase()&&a.address===n)?.usdPrice||null,"getUsdPrice");function ht(e,t){let n=new Me(0);for(let r=0;r<e.fee.length;r++){let o=e.fee[r];if(o.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=Be(o.asset.blockchain,o.asset.symbol,o.asset.address,t);n=n.plus(new Me(o.amount).multipliedBy(a||0))}return n}l(ht,"getUsdFeeOfStep");function Le(e,t){return{fromBlockchain:e.from.blockchain,fromBlockchainLogo:e.from.blockchainLogo,fromLogo:e.from.logo,fromSymbol:e.from.symbol,fromSymbolAddress:e.from.address,fromDecimals:e.from.decimals,fromAmountPrecision:e.fromAmountPrecision,fromAmountMinValue:e.fromAmountMinValue,fromAmountMaxValue:e.fromAmountMaxValue,fromAmountRestrictionType:e.fromAmountRestrictionType,fromUsdPrice:e.from.usdPrice,toBlockchain:e.to.blockchain,toBlockchainLogo:e.to.blockchainLogo,toSymbol:e.to.symbol,toSymbolAddress:e.to.address,toDecimals:e.to.decimals,toLogo:e.to.logo,toUsdPrice:e.to.usdPrice,swapperId:e.swapperId,swapperLogo:e.swapperLogo,swapperType:e.swapperType,expectedOutputAmountHumanReadable:e.toAmount,feeInUsd:t?We(ht(e,t?.tokens),null,8):null,estimatedTimeInSeconds:e.estimatedTimeInSeconds||null,internalSteps:null}}l(Le,"mapSwapStepToPendingSwapStep");function Nt(e,t,n,r,o,a){let i=t.result;if(!i)throw Error("Simulation result should not be null");return{creationTime:new Date().getTime().toString(),finishTime:null,requestId:t.requestId||"",inputAmount:e,wallets:n,status:"running",isPaused:!1,extraMessage:null,extraMessageSeverity:null,extraMessageDetail:null,extraMessageErrorCode:null,networkStatusExtraMessage:null,networkStatusExtraMessageDetail:null,lastNotificationTime:null,settings:r,simulationResult:i,validateBalanceOrFee:o,steps:t.result?.swaps?.map((c,u)=>{let s=Le(c,a);return{id:u+1,...s,internalSwaps:c?.internalSwaps?.map(p=>Le(p,a))||null,outputAmount:"",status:"created",networkStatus:null,startTransactionTime:new Date().getTime(),externalTransactionId:null,executedTransactionId:null,executedTransactionTime:null,explorerUrl:null,diagnosisUrl:null,trackingCode:null,internalSteps:null,evmTransaction:null,evmApprovalTransaction:null,starknetTransaction:null,starknetApprovalTransaction:null,tronTransaction:null,tronApprovalTransaction:null,cosmosTransaction:null,solanaTransaction:null,transferTransaction:null,tonTransaction:null,hasAlreadyProceededToSign:!1}})||[]}}l(Nt,"calculatePendingSwap");function Qe(e){return e.map(t=>{let{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:o,feeInUsd:a,executedTransactionId:i,executedTransactionTime:c,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:p,fromSymbol:d,toSymbol:g,fromSymbolAddress:S,toSymbolAddress:m,swapperType:_,swapperId:E,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:x,status:v}=t;return{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:o,feeInUsd:a,executedTransactionId:i,executedTransactionTime:c,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:p,fromSymbol:d,toSymbol:g,fromSymbolAddress:S,toSymbolAddress:m,swapperName:E,swapperType:_,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:x,status:v,transaction:M(t)}})}l(Qe,"createSteps");function It(e,t,n){let{creationTime:r,finishTime:o,requestId:a,inputAmount:i,status:c,wallets:u,steps:s,settings:p}=e,d=Qe(s),S={route:{creationTime:r,finishTime:o,requestId:a,inputAmount:i,status:c,wallets:u,steps:d,slippage:p.slippage,infiniteApproval:p.infiniteApprove},step:d[d.length-1]};if(n)S.step=Qe([n])[0];else if(t==="failed"){let m=Xe(d);m&&(S.step=m)}else{let m=z(d);m&&(S.step=m)}return S}l(It,"getEventPayload");function Ot(e,t){let n,{type:r}=e;switch(r){case"started":n={...e,type:"started"};break;case"failed":n={...e,type:"failed"};break;case"succeeded":n={...e,type:"succeeded"};break;default:break}n&&$("emitter")?.emit("routeEvent",{event:n,route:t})}l(Ot,"emitRouteEvent");function Pt(e,t,n){$("emitter")?.emit("stepEvent",{event:e,route:t,step:n})}l(Pt,"emitStepEvent");function f(e){let{event:t}=e,{type:n}=t,{route:r,step:o}=It(e.swap,n,e.step??void 0),a=`${o.fromBlockchain}.${o.fromSymbol}`,i=`${o.toBlockchain}.${o.toSymbol}`,c=o.outputAmount??"",u=e.step?b(e.swap,e.step):null,s="",p="info";switch(n){case"started":s="Swap process started",p="success";break;case"succeeded":s=`You received ${c} ${i}, hooray!`,p="success";break;case"failed":s=`Swap failed: ${e.swap?.extraMessage??"Reason is unknown"}`,p="error";break;case"tx_execution":t.status==="create_tx"?(s="Please wait while the transaction is created ...",p="info"):t.status==="send_tx"?(e.step&&j(e.step)?s=`Please confirm '${o.swapperName}' smart contract access to ${a}`:s="Please confirm transaction request in your wallet",p="warning"):t.status==="tx_sent"&&(s="Transaction sent successfully",p="info");break;case"check_status":e.step&&j(e.step)?s="Checking approve transaction status ...":s="Checking transaction status ...",p="info";break;case"approval_tx_succeeded":s="Smart contract called successfully",p="success";break;case"output_revealed":s="Transaction output amount revealed",p="success";break;case"tx_execution_blocked":t.status==="waiting_for_wallet_connect"?(s="Please connect your wallet.",p="warning"):t.status==="waiting_for_queue"?(s="Waiting for other swaps to complete",p="warning"):t.status==="waiting_for_change_wallet_account"?(s="Please change your wallet account.",p="warning"):t.status==="waiting_for_network_change"&&(s=`Please change your wallet network to ${u}.`,p="warning");break;default:break}e.step&&Pt({...t,message:s,messageSeverity:p},r,o),(e.event.type==="failed"||!e.step)&&Ot({...t,message:s,messageSeverity:p},r)}l(f,"notifier");var Ae=null;function ie(){return{claimedBy:()=>Ae?.id,setClaimer:e=>{Ae={id:e}},reset:()=>{Ae=null}}}l(ie,"claimQueue");var K={};function le(){return{getTransactionDataByHash:e=>K[e]||{},setTransactionDataByHash:(e,t)=>{K[e]||(K[e]={}),K[e].response=t.response||K[e].response,K[e].receiptReceived=t.receiptReceived||K[e].receiptReceived||!1}}}l(le,"inMemoryTransactionsData");var y=l(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),M=l(e=>{let{evmTransaction:t,evmApprovalTransaction:n,cosmosTransaction:r,solanaTransaction:o,transferTransaction:a,starknetApprovalTransaction:i,starknetTransaction:c,tronApprovalTransaction:u,tronTransaction:s,tonTransaction:p}=e;return t||n||r||o||a||i||c||u||s||p},"getCurrentStepTx"),ce=l((e,t)=>{e.transferTransaction=null,e.cosmosTransaction=null,e.evmTransaction=null,e.solanaTransaction=null,e.evmApprovalTransaction=null,e.starknetApprovalTransaction=null,e.starknetTransaction=null,e.tronApprovalTransaction=null,e.tronTransaction=null,e.tonTransaction=null;let n=t.type;switch(n){case W.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case W.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case W.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case W.COSMOS:e.cosmosTransaction=t;break;case W.SOLANA:e.solanaTransaction=t;break;case W.TRANSFER:e.transferTransaction=t;break;case W.TON:e.tonTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),Ce=l(e=>M(e)?.type,"getCurrentStepTxType"),j=l(e=>{let{evmApprovalTransaction:t,starknetApprovalTransaction:n,tronApprovalTransaction:r}=e;return!!(t||n||r)},"isApprovalCurrentStepTx");function O({getStorage:e,setStorage:t,nextStatus:n,nextStepStatus:r,message:o,details:a,errorCode:i=null,hasAlreadyProceededToSign:c,trace:u=null}){let s=e().swapDetails,p=y(s),d={swap:s,step:p};if(r&&p&&(p.status=r),n&&(s.status=n),s.hasAlreadyProceededToSign=c,n&&["failed","success"].includes(n)&&(s.finishTime=new Date().getTime().toString()),(o||a)&&(s.extraMessage=o||"",s.extraMessageDetail=a||""),r&&["failed"].includes(r)){let g=a&&a.includes("Warning")?"Swap canceled by user.":a,S=we(s,p)?.walletType;s.extraMessageSeverity="error";let m=Ue(i);d.failureType=m;let _=i!=="REJECTED_BY_USER"&&u?.message&&typeof u.message=="string"?u.message:g||"";B().reportFailure({requestId:s.requestId,step:p?.id||1,eventType:m,reason:_,tags:S?{wallet:S}:void 0}).then().catch()}else r&&["running"].includes(r)?s.extraMessageSeverity="info":r&&["success","approved"].includes(r)?s.extraMessageSeverity="success":r&&["waitingForApproval"].includes(r)&&(s.extraMessageSeverity="warning");return r==="running"&&p&&(p.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:s}),d}l(O,"updateSwapStatus");function Lt({getStorage:e,setStorage:t},n,r){let o=e().swapDetails;o.hasAlreadyProceededToSign=null;let a=y(o);a.executedTransactionId=n,a.executedTransactionTime=new Date().getTime().toString(),r?.url&&(a.explorerUrl=[...a.explorerUrl||[],{url:r.url,description:r.description||null}]),j(a)?o.extraMessage="Checking approve transaction status ...":o.extraMessage="Checking transaction status ...",o.extraMessageDetail="",o.extraMessageSeverity="info",t({...e(),swapDetails:o}),f({event:{type:"tx_execution",status:"tx_sent"},swap:o,step:a}),f({event:{type:"check_status"},swap:o,step:a})}l(Lt,"setStepTransactionIds");function Ft({getStorage:e,setStorage:t},n,r){let o=e().swapDetails,a=y(o);if(!a)return;let i=new Date;o.lastNotificationTime=i.getTime().toString(),!(a.networkStatus===Z.WaitingForConnectingWallet&&o.networkStatusExtraMessage===n&&o.networkStatusExtraMessageDetail===r)&&(a.networkStatus=Z.WaitingForConnectingWallet,o.networkStatusExtraMessage=n,o.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:o}))}l(Ft,"markRunningSwapAsWaitingForConnectingWallet");function qe({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(!r)return;let{type:o}=P(n),a=U(n,r),i=`Change ${o} wallet network to ${a}`,c=`Please change your ${o} wallet network to ${a}.`,u=new Date;return n.lastNotificationTime=u.getTime().toString(),r.networkStatus=Z.WaitingForNetworkChange,n.networkStatusExtraMessage=i,n.networkStatusExtraMessageDetail=c,t({...e(),swapDetails:n}),{swap:n,step:r}}l(qe,"markRunningSwapAsSwitchingNetwork");function Ke({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(r)return n.networkStatusExtraMessage="",n.networkStatusExtraMessageDetail="",r.networkStatus=Z.WaitingForQueue,f({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:n,step:r}),t({...e(),swapDetails:n}),{swap:n,step:r}}l(Ke,"markRunningSwapAsDependsOnOtherQueues");async function ue(e){return new Promise(t=>setTimeout(t,e))}l(ue,"delay");var Bt=l((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function _e(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}l(_e,"isWalletNull");function P(e){let t=y(e),n=b(e,t);if(!n)return{type:null,network:null,address:null};let r=Bt(e,n),o=e.wallets[n];return{type:r||null,network:n,address:o?o.address:null}}l(P,"getRequiredWallet");async function Qt(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}l(Qt,"getChainId");async function $e(e,t,n,r,o){if(_e(n))return!1;let a=b(e,t);if(!a)return!1;if(r.evmBasedChains.find(i=>i.name===a)){try{let i=e.wallets[a];if(i){let c=Ut(o,i.walletType),u=await Qt(c);if(u){let s=bt(u,Object.entries(r.blockchains).map(([,p])=>p));if(s&&s.toLowerCase()===a.toLowerCase())return!0;if(s&&s.toLowerCase()!==a.toLowerCase())return!1}}}catch(i){console.log(i)}return!1}return!0}l($e,"isNetworkMatchedForTransaction");var Ve=l((e,t)=>(e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function pe(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,o=y(r);o?.networkStatus&&(o.networkStatus=null,n({...t(),swapDetails:r}))}l(pe,"resetNetworkStatus");function Ye(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:o}=t,{getStorage:a,setStorage:i}=e,c=a().swapDetails,u=y(c);u?.networkStatus&&(c.networkStatusExtraMessage=n,c.networkStatusExtraMessageDetail=r,u.networkStatus=o,i({...a(),swapDetails:c}))}l(Ye,"updateNetworkStatus");function Je(e,t){let{context:n,queue:r}=t,o=r.getStorage().swapDetails,{ok:a,reason:i}=xe(o,n.state);if(!a){let c=y(o),{type:u,address:s}=P(o);f({event:{type:"tx_execution_blocked",...i==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:s??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:u??void 0,requiredAccount:s??void 0}},swap:o,step:c}),Ft({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},Oe,e.reason.description);return}r.unblock()}l(Je,"onBlockForConnectWallet");function je(e,t){let{context:n,queue:r}=t,o=r.getStorage().swapDetails,a=y(o);if(!a||o.status!=="running")return;let i=qe({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)}),c=b(o,a),u=P(o).type,s=u?n.state(u).network:void 0;i&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:c??void 0,currentNetwork:s??void 0},swap:i.swap,step:i.step});let{type:p,network:d}=P(o);if(p&&d&&n.canSwitchNetworkTo(p,d)){let g=n.switchNetwork(p,d);g&&g.then(()=>{r.unblock()}).catch(S=>{console.log({error:S})})}}l(je,"onBlockForChangeNetwork");function ze(e,t){let{getBlockedTasks:n,forceExecute:r,queue:o,manager:a,context:i}=t,{setClaimer:c,claimedBy:u,reset:s}=ie(),p=n().filter(w=>w.reason.reason==="depends_on_other_queues");if(p.length===0)return;let d=u(),g=!!d;if(d===o.id)return;if(g){Ke({getStorage:o.getStorage.bind(o),setStorage:o.setStorage.bind(o)});return}let S=p.find(w=>w.queue_id===t.queue_id);S||(S=p[0]),c(S.queue_id);let m=S.storage.get(),{type:_,network:E,address:T}=P(m.swapDetails);r(S.queue_id,{claimedBy:u(),resetClaimedBy:()=>{s(),Re(`${_}-${E}:${T}`,a,i.canSwitchNetworkTo)}})}l(ze,"onDependsOnOtherQueues");function xe(e,t){let{type:n,address:r}=P(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let o=t(n),{accounts:a,connected:i}=o,c=a||[];return i?{ok:c.some(s=>{let{address:p}=Wt(s);return r.toLocaleLowerCase()===p.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}l(xe,"isRequiredWalletConnected");async function Ze(e){let{setTransactionDataByHash:t}=le(),{getStorage:n,setStorage:r,failed:o,next:a,schedule:i,context:c}=e,{meta:u,getSigners:s,isMobileWallet:p}=c,d=n().swapDetails,g=y(d),S=q(d,g),m=p(S?.walletType),_=me(d,g),E=U(d,g),T=l(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),w=M(g),C=w?.type,A=j(g);if(!w||!C){let h="Unexpected Error: tx is null!",D=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:h,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return f({event:{type:"failed",reason:h,reasonCode:"CLIENT_UNEXPECTED_BEHAVIOUR"},...D}),o(),T()}let R=u.blockchains?.[w.blockChain]?.chainId,x=typeof d.hasAlreadyProceededToSign=="boolean",v,N,X,L,H;A?(X=`Waiting for approval of ${g?.fromSymbol} coin ${m?"on your mobile phone!":""}`,L="Waiting for approve transaction to be mined and confirmed successfully",N="waitingForApproval",v=void 0,H="tx_execution"):x?(X="Transaction is expired. Please try again.",N="failed",v="failed",L="",H="failed"):(X="Executing transaction ...",N="running",v="running",L=`${m?"Check your mobile phone!":""}`,H="tx_execution");let de=O({getStorage:n,setStorage:r,nextStepStatus:N,nextStatus:v,message:X,details:L,hasAlreadyProceededToSign:A?void 0:x,errorCode:x?"TX_EXPIRED":void 0});if(H==="failed"?f({event:{type:H,reason:X,reasonCode:de.failureType??k},...de}):f({event:{type:H,status:"send_tx"},...de}),x){o(),T();return}(await s(S.walletType)).getSigner(C).signAndSendTx(w,_,R).then(({hash:h,response:D})=>{let te=J(h,E,u.blockchains);Lt(e,h,te&&(!D||D&&!D.hashRequiringUpdate)?{url:te,description:A?"Approve":"Swap"}:void 0),D&&t(h,{response:D}),i("CHECK_TRANSACTION_STATUS"),a(),T()},h=>{if(d.status==="failed")return;let{extraMessage:D,extraMessageDetail:te,extraMessageErrorCode:St}=Q(h);Dt(h,{tags:{requestId:d.requestId,rpc:!0,swapper:g?.swapperId||"",walletType:S?.walletType||""},context:Mt.isSignerError(h)?h.getErrorContext():{}});let Ne=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:D,details:te,errorCode:St,trace:h?.cause});f({event:{type:"failed",reason:D,reasonCode:Ne.failureType??k},...Ne}),o(),T()})}l(Ze,"signTransaction");function et(e){let{wallet_network:t,evmChains:n,manager:r}=e,[o,a]=Ge(t);n.some(i=>i.name==a)&&r?.getAll().forEach(i=>{let c=i.list.getStorage(),u=c?.swapDetails;if(u&&u.status==="running"){let s=y(u);if(s){let p=c?.swapDetails.wallets[s.fromBlockchain]?.walletType,d=Object.keys(i.list.state.tasks).some(S=>{let m=i.list.state.tasks[S];return m.status===ye.BLOCKED&&["waiting_for_connecting_wallet"].includes(m.blockedFor?.reason)}),g=b(u,s);if(p===o&&d&&g!=a){let S=i.list,{type:m}=P(u),_=oe(m);i.list.block({reason:{reason:"waiting_for_network_change",description:_},silent:!0});let E=qe({getStorage:S.getStorage.bind(S),setStorage:S.setStorage.bind(S)});E&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:a,requiredNetwork:g??void 0},swap:E.swap,step:E.step})}}}})}l(et,"checkWaitingForConnectWalletChange");function ke(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let o=t.list.state.tasks[r];return o.status===ye.BLOCKED&&["waiting_for_network_change","depends_on_other_queues"].includes(o.blockedFor?.reason)})){let r=t.list.getStorage()?.swapDetails;if(r.status==="running"){let{type:o}=P(r),a=re(o);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:a}})}}})}l(ke,"checkWaitingForNetworkChange");function Xt(e){let t=e?.getAll()||new Map,n=[];return t.forEach(r=>{let a=r.list.getStorage()?.swapDetails;!a||a.status!=="running"||n.push(a)}),n}l(Xt,"getRunningSwaps");function Ht(e){e.forEach(t=>{let n=y(t),r="tx_execution_blocked",o;n?.networkStatus===Z.WaitingForQueue?o="waiting_for_queue":t?.status==="running"&&(o="waiting_for_wallet_connect"),r&&f&&f({event:{type:r,status:o??"waiting_for_queue"},swap:t,step:n})})}l(Ht,"resetRunningSwapNotifsOnPageLoad");function Re(e,t,n,r={fallbackToOnlyWallet:!0}){let[o,a]=Ge(e);if(!o||!a)return;let i=[],c=[];t?.getAll().forEach(s=>{if(s.status===ye.BLOCKED){let p=s.list.getStorage(),d=p?.swapDetails;if(d&&d.status==="running"){let g=y(d);g&&(b(d,g)==a&&p?.swapDetails.wallets[a]?.walletType===o?i.push(s.list):p?.swapDetails.wallets[g.fromBlockchain]?.walletType===o&&c.push(s.list))}}});let u;if(i.length>0){if(u=i[0],i.length>1)for(let s=1;s<i.length;s++){let p=i[s];Ke({getStorage:p.getStorage.bind(p),setStorage:p.setStorage.bind(p)})}}else c.length>0&&r.fallbackToOnlyWallet&&(u=c[0]);n?.(o,a)?u?.checkBlock():u?.unblock()}l(Re,"retryOn");function tt(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}l(tt,"isNeedBlockQueueForParallel");async function nt(e){let t=await e;if(!t.ok||!t.transaction)throw I.CreateTransaction(t.error||"bad response from create tx endpoint");return t}l(nt,"throwOnOK");function Gt(e,t){let{reset:n}=ie();e.actions.cancel();let r=O({getStorage:e.actions.getStorage,setStorage:e.actions.setStorage,message:"Swap canceled by user.",details:"Warning: If you've already signed and sent a transaction, it won't be affected, but next swap steps will not be executed.",nextStatus:"failed",nextStepStatus:"failed",errorCode:"USER_CANCEL"});return f({event:{type:"failed",reasonCode:"USER_CANCEL",reason:r.swap.extraMessage??void 0},swap:r.swap,step:r.step}),n(),t&&t?.retry(),r}l(Gt,"cancelSwap");function z(e){return e.slice().reverse().find(t=>t.status==="success")}l(z,"getLastSuccessfulStep");function Xe(e){return e.slice().reverse().find(t=>t.status==="failed")}l(Xe,"getFailedStep");function qt(e){let{transaction:t}=e;return t?.type===W.EVM&&t.isApprovalTx||t?.type===W.STARKNET&&t.isApprovalTx||t?.type===W.TRON&&t.isApprovalTx}l(qt,"isApprovalTX");var rt=5e3,Kt=5e3;async function $t({getStorage:e,setStorage:t,next:n,schedule:r,retry:o,failed:a,context:i}){let c=e().swapDetails,{meta:u}=i,s=y(c);if(!s?.executedTransactionId)return;let p=M(s),d=s.executedTransactionId,g=!1,S=null,m=null,{getTransactionDataByHash:_,setTransactionDataByHash:E}=le();try{let A=Ce(s),R=q(c,s);A&&R&&(m=(await i.getSigners(R.walletType)).getSigner(A))}catch{}try{let{response:A,receiptReceived:R}=_(d);if(m?.wait&&!R){let x=p?.blockChain&&u.blockchains?.[p?.blockChain]?.chainId||void 0,{hash:v,response:N}=await m.wait(d,x,A);if(v!==d){s.executedTransactionId=v||s.executedTransactionId;let X=U(c,s),L;!!Object.keys(u.blockchains).length&&(L=J(s.executedTransactionId,X,u.blockchains)),L&&s.explorerUrl&&s.explorerUrl?.length>=1&&(s.explorerUrl[s.explorerUrl.length-1]={url:L,description:"Replaced Swap"}),d=s.executedTransactionId,v&&N&&E(v,{response:N})}else E(v,{receiptReceived:!0})}}catch(A){let{extraMessage:R,extraMessageDetail:x,extraMessageErrorCode:v}=Q(A),N=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:R,details:x,errorCode:v});f({event:{type:"failed",reason:R,reasonCode:N.failureType??k},...N}),g=!0}try{S=await B().checkStatus({requestId:c.requestId,txId:d,step:s.id})}catch{await ue(rt),o();return}if(g)return a();if(s?.status==="failed")return;let T=S?.outputAmount||(s.outputAmount?s.outputAmount:null),w=s.outputAmount||null;c.extraMessage=S?.extraMessage||c.extraMessage,c.extraMessageSeverity="info",c.extraMessageDetail="",s.status=S?.status||s.status,s.diagnosisUrl=S?.diagnosisUrl||s.diagnosisUrl||null,s.outputAmount=T||s.outputAmount,s.explorerUrl=S?.explorerUrl||s.explorerUrl,s.internalSteps=S?.steps||null;let C=S?.newTx;if(C&&(s.status="created",s.executedTransactionId=null,s.executedTransactionTime=null,ce(s,C)),w===null&&T!==null?f({event:{type:"output_revealed",outputAmount:T},swap:c,step:s}):w===null&&T===null&&f({event:{type:"check_status"},swap:c,step:s}),s.status==="success"){let A=Fe(c,s);c.extraMessageDetail="",c.extraMessage=A?`starting next step: ${A.swapperId}: ${A.fromBlockchain} -> ${A.toBlockchain}`:"",f({event:{type:"succeeded",outputAmount:s.outputAmount??""},swap:c,step:s})}else s.status==="failed"&&(c.extraMessage="Transaction failed in blockchain",c.extraMessageSeverity="error",c.extraMessageDetail=S?.extraMessage||"",c.status="failed",c.finishTime=new Date().getTime().toString());t({...e(),swapDetails:c}),S?.status==="failed"?a():S?.status==="success"||S?.status==="running"&&S.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await ue(rt),o())}l($t,"checkTransactionStatus");async function Vt({getStorage:e,setStorage:t,next:n,schedule:r,retry:o,failed:a,context:i}){let c=e().swapDetails,{meta:u}=i,{getTransactionDataByHash:s,setTransactionDataByHash:p}=le(),d=y(c);if(!d){console.log("ignore check status, current step is null");return}let g=M(d);if(!d?.executedTransactionId)return;let S=d.executedTransactionId,m=null;try{let E=Ce(d),T=q(c,d);E&&T&&(m=(await i.getSigners(T.walletType)).getSigner(E))}catch{}try{let{response:E,receiptReceived:T}=s(S);if(m?.wait&&!T){let w=g?.blockChain&&u.blockchains?.[g?.blockChain]?.chainId||void 0,{hash:C,response:A}=await m.wait(S,w,E);if(C!==S){d.executedTransactionId=C||d.executedTransactionId;let R=U(c,d),x;!!Object.keys(u.blockchains).length&&(x=J(d.executedTransactionId,R,u.blockchains)),x&&d.explorerUrl&&d.explorerUrl?.length>=1&&(d.explorerUrl[d.explorerUrl.length-1]={url:x,description:"Replaced Approve"}),S=d.executedTransactionId,C&&A&&p(C,{response:A})}else p(C,{receiptReceived:!0})}}catch(E){let{extraMessage:T,extraMessageDetail:w,extraMessageErrorCode:C}=Q(E),A=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:T,details:w,errorCode:C});return f({event:{type:"failed",reason:T,reasonCode:A.failureType??k},...A}),a()}let _=!1;try{let E=await B().checkApproval(c.requestId,d.executedTransactionId);if(d?.status==="failed")return;if(_=E.isApproved,!_&&(E.txStatus==="failed"||E.txStatus==="success")){let T,w;E.txStatus==="failed"?(T="Approve transaction failed",w="Smart contract approval tx failed in blockchain."):(T="Not enough approval",E.requiredApprovedAmount&&E.currentApprovedAmount?w=`Required approval: ${E.requiredApprovedAmount}, current approval: ${E.currentApprovedAmount}`:w="You still don't have enough approval for this swap.");let C=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:T,details:w});f({event:{type:"failed",reason:T,reasonCode:C.failureType??k},...C}),a()}else _||f({event:{type:"check_status"},swap:c,step:d})}catch{_=!1}_?(d.status="approved",c.extraMessage=`Spending ${d.fromSymbol} approved successfully.`,c.extraMessageDetail=null,c.extraMessageSeverity="success",d.evmApprovalTransaction=null,d.executedTransactionId=null,d.executedTransactionTime=null,d.starknetApprovalTransaction=null,d.tronApprovalTransaction=null,t({...e(),swapDetails:c}),f({event:{type:"approval_tx_succeeded"},swap:c,step:d}),r("SCHEDULE_NEXT_STEP"),n()):(await ue(Kt),o())}l(Vt,"checkApprovalStatus");async function ot(e){let t=e.getStorage().swapDetails,n=y(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}pe(e),n.status==="running"?await $t(e):n.status==="waitingForApproval"&&await Vt(e)}l(ot,"checkStatus");async function at(e){let{setStorage:t,getStorage:n,next:r,schedule:o}=e,a=n().swapDetails,i=y(a);if(!M(i)){f({event:{type:"tx_execution",status:"create_tx"},swap:a,step:i});let u={requestId:a.requestId,step:i.id,userSettings:{slippage:a.settings.slippage,infiniteApprove:a.settings.infiniteApprove},validations:{balance:a.validateBalanceOrFee,fee:a.validateBalanceOrFee}};try{let{transaction:s}=await nt(B().createTransaction(u));s&&ce(i,s),t({...n(),swapDetails:a}),o("EXECUTE_TRANSACTION"),r()}catch(s){a.status="failed",a.finishTime=new Date().getTime().toString();let{extraMessage:p,extraMessageDetail:d}=Q(s),g=O({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:p,details:d,errorCode:"FETCH_TX_FAILED"});f({event:{type:"failed",reason:p,reasonCode:g.failureType??k},...g}),e.failed()}}}l(at,"createTransaction");import{PendingSwapNetworkStatus as Yt}from"rango-types";async function st(e){let{getStorage:t,context:n}=e,{meta:r,wallets:o,providers:a}=n,{claimedBy:i}=ie(),c=n.claimedBy===n._queue?.id,u=l(E=>{e.block(E),c&&e.context.resetClaimedBy&&e.context.resetClaimedBy()},"requestBlock"),s=t().swapDetails,p=y(s);if(pe(e),!xe(s,n.state).ok){let{type:E,address:T}=P(s),w=o?.blockchains?.find(R=>!R.accounts?.find(x=>x.walletType===E)),C=_e(o)||w?re(E):Pe(E,T),A={reason:"waiting_for_connecting_wallet",description:C};u(A);return}let g=await $e(s,p,o,r,a);if(!!i()&&!c&&!g){let E=fe,T={reason:"depends_on_other_queues",details:E};u(T);return}else if(!g){let E=U(s,p),T=oe(E),w={reason:"waiting_for_network_change",details:T};u(w);return}if(Ye(e,{message:"",details:"Wallet network changed successfully",status:Yt.NetworkChanged}),tt(p)&&!c){let E={reason:"depends_on_other_queues",description:fe,details:{}};u(E);return}await Ze(e)}l(st,"executeTransaction");function it({schedule:e,next:t,failed:n,setStorage:r,getStorage:o}){let a=o().swapDetails,i=y(a),c=a.steps.find(u=>u.status==="failed");if(i&&!c){if(Ve(a,i))return e("EXECUTE_TRANSACTION"),t();if(i?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();a.status="running",r({...o(),swapDetails:a}),f({event:{type:"started"},swap:a,step:i}),e("CREATE_TRANSACTION"),t()}else a.status=c?"failed":"success",a.finishTime=new Date().getTime().toString(),r({...o(),swapDetails:a}),f({...c?{event:{type:"failed",reason:a.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED"}}:{event:{type:"succeeded",outputAmount:z(a.steps)?.outputAmount??""}},swap:a,step:null}),c?n():t()}l(it,"scheduleNextStep");function lt({schedule:e,next:t,getStorage:n}){let r=n().swapDetails;f({event:{type:"started"},swap:r,step:null}),e("SCHEDULE_NEXT_STEP"),t()}l(lt,"start");var ct={name:"swap",actions:{START:lt,SCHEDULE_NEXT_STEP:it,CREATE_TRANSACTION:at,EXECUTE_TRANSACTION:st,CHECK_TRANSACTION_STATUS:ot},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?Je(e,t):e.reason.reason==="waiting_for_network_change"?je(e,t):e.reason.reason==="depends_on_other_queues"&&ze(e,t)}};import{useManager as en}from"@rango-dev/queue-manager-react";import{useEffect as he,useState as tn}from"react";import{DB_NAME as Jt,Persistor as jt,Status as ee}from"@rango-dev/queue-manager-core";import{v4 as zt}from"uuid";var ut="migratedToQueueManager";function ve(){return!!window.localStorage.getItem(ut)}l(ve,"migrated");async function Zt(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(Jt)}catch{return!1}}l(Zt,"hasQueueManagerOnIDB");async function pt(){let e=window.localStorage.getItem("pendingSwaps"),t=await Zt();if(!e||ve()||t)return!0;let n=JSON.parse(e),r=[];n.forEach(i=>{if(i.status==="running"){let c=zt(),u={id:i.requestId,createdAt:Number(i.creationTime),name:"swap",status:ee.RUNNING,storage:{swapDetails:i},state:{status:ee.RUNNING,activeTaskIndex:0,tasks:{[c]:{blockedFor:null,status:ee.RUNNING}}},tasks:[{id:c,action:"SCHEDULE_NEXT_STEP"}]};r.push(u)}else{let c=i.status==="success"?ee.SUCCESS:ee.FAILED,u={id:i.requestId,createdAt:Number(i.creationTime),name:"swap",status:c,storage:{swapDetails:i},state:{status:c,activeTaskIndex:0,tasks:{}},tasks:[]};r.push(u)}});let o=new jt,a=r.map(async i=>o.insertQueue(i));return await Promise.all(a),window.localStorage.setItem(ut,"1"),!0}l(pt,"migration");var dt=0;function nn(){let e=ve(),[t,n]=tn(e);return he(()=>{(async()=>dt||(dt=1,pt().finally(()=>{n(!0)})))()},[]),{status:t}}l(nn,"useMigration");function rn(e){let{manager:t}=en();he(()=>{e.lastConnectedWallet&&(et({evmChains:e.evmChains,wallet_network:e.lastConnectedWallet,manager:t}),Re(e.lastConnectedWallet,t,e.canSwitchNetworkTo))},[e.lastConnectedWallet]),he(()=>{e.disconnectedWallet&&(ke(t),e.clearDisconnectedWallet())},[e.disconnectedWallet])}l(rn,"useQueueManager");function no(e){return Ie(e),ct}l(no,"makeQueueDefinition");export{Te as EventSeverity,se as MessageSeverity,I as PrettyError,ge as RouteEventType,F as StepEventType,ne as StepExecutionBlockedEventStatus,Y as StepExecutionEventStatus,Ee as WidgetEvents,Nt as calculatePendingSwap,Gt as cancelSwap,ke as checkWaitingForNetworkChange,b as getCurrentBlockchainOfOrNull,y as getCurrentStep,z as getLastSuccessfulStep,q as getRelatedWallet,we as getRelatedWalletOrNull,P as getRequiredWallet,Xt as getRunningSwaps,Be as getUsdPrice,qt as isApprovalTX,no as makeQueueDefinition,Q as prettifyErrorMessage,Ht as resetRunningSwapNotifsOnPageLoad,O as updateSwapStatus,nn as useMigration,rn as useQueueManager};
1
+ var Et=Object.defineProperty;var l=(e,t)=>Et(e,"name",{value:t,configurable:!0});var gt="c6381a79-2817-4602-83bf-6a641a409e32",Se={API_KEY:gt,BASE_URL:""};function $(e){return Se[e]}l($,"getConfig");function Ie(e){return Se=e,Se}l(Ie,"initConfig");var Ee=(n=>(n.RouteEvent="routeEvent",n.StepEvent="stepEvent",n))(Ee||{}),ge=(r=>(r.STARTED="started",r.FAILED="failed",r.SUCCEEDED="succeeded",r))(ge||{}),Y=(r=>(r.CREATE_TX="create_tx",r.SEND_TX="send_tx",r.TX_SENT="tx_sent",r))(Y||{}),ne=(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))(ne||{}),L=(u=>(u.STARTED="started",u.FAILED="failed",u.SUCCEEDED="succeeded",u.TX_EXECUTION="tx_execution",u.TX_EXECUTION_BLOCKED="tx_execution_blocked",u.APPROVAL_TX_SUCCEEDED="approval_tx_succeeded",u.CHECK_STATUS="check_status",u.OUTPUT_REVEALED="output_revealed",u))(L||{}),Te=(a=>(a.ERROR="error",a.SUCCESS="success",a.WARNING="warning",a.INFO="info",a))(Te||{});var fe="Waiting for other swaps to complete",Oe="Waiting for connecting wallet",Pe=l((e,t)=>`Please change your ${e||"wallet"} account to ${t||"proper address"}`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET"),re=l(e=>`Please connect your ${e??""} wallet.`,"ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION"),ae=l(e=>`Please change your network to ${e}.`,"ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK"),k="CLIENT_UNEXPECTED_BEHAVIOUR";import{warn as vt}from"@rango-dev/logging-core";import{Status as ye}from"@rango-dev/queue-manager-core";import{legacyReadAccountAddress as ht}from"@rango-dev/wallets-core/legacy";import{getBlockChainNameFromId as Nt,getEvmProvider as It,splitWalletNetwork as He}from"@rango-dev/wallets-shared";import{TransactionType as W}from"rango-sdk";import{PendingSwapNetworkStatus as Z,SignerError as Ot}from"rango-types";import{RangoClient as Tt}from"rango-sdk";var oe,B=l(()=>oe||(oe=new Tt($("API_KEY"),$("BASE_URL")),oe),"httpService");import Me from"bignumber.js";import De from"bignumber.js";var We=l((e,t=null,n=null)=>{if(e===null||e==="")return"";let r=new De(e),a=1,o=1e3;for(let i=0;i<60;i++)if(new De(r.toFixed(i,a)).eq(r)){o=i;break}if(r.gte(1e4))return r.toFormat(0,a);if(r.gte(1e3)||r.gte(100))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,1))),a);if(r.gte(1))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,2))),a);if(r.gte(.01))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,4))),a);for(let i=t||4;i<17;i++)if(r.gte(Math.pow(10,-i)))return r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,i))),a);return r.isEqualTo(0)?"0":r.toFormat(Math.min(o,Math.min(n||100,Math.max(t||0,8))),a)},"numberToString");import{SignerErrorCode as H,SignerError as ft,isSignerErrorCode as mt,isAPIErrorCode as wt}from"rango-types";var At="Assertion failed (Unexpected behaviour)",yt="Create transaction failed in Rango Server",be="Input wallet not found",I=class e extends Error{constructor(n,r,a,o){super(r);this._isPrettyError=!0;Object.setPrototypeOf(this,e.prototype),e.prototype._isPrettyError=!0,this.code=n,this.detail=o,this.root=a}static{l(this,"PrettyError")}static isPrettyError(n){return n instanceof e||Object.prototype.hasOwnProperty.call(n,"_isPrettyError")}getErrorDetail(){let n=typeof this.root=="object"&&this.root&&this.root.error?this.root.error:JSON.stringify(this.root),r=typeof this.root=="string"?this.root:this.root instanceof Error?this.root.message:n;return{extraMessage:this.message,extraMessageDetail:this.detail||r,extraMessageErrorCode:this.code||null}}static AssertionFailed(n){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",At,null,n)}static BadStatusCode(n,r){return new e("TX_FAIL",n,null,`status code = ${r}`)}static CreateTransaction(n){return new e("FETCH_TX_FAILED",yt,null,n)}static WalletMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}static BlockchainMissing(){return new e("CLIENT_UNEXPECTED_BEHAVIOUR",be,null,"Server requested for a blockchain or address not selected by user")}};function Ue(e){try{return e?wt(e)?e:mt(e)?{[H.REJECTED_BY_USER]:"USER_REJECT",[H.SIGN_TX_ERROR]:"CALL_WALLET_FAILED",[H.SEND_TX_ERROR]:"SEND_TX_FAILED",[H.TX_FAILED_IN_BLOCKCHAIN]:"TX_FAILED_IN_BLOCKCHAIN",[H.NOT_IMPLEMENTED]:k,[H.OPERATION_UNSUPPORTED]:k,[H.UNEXPECTED_BEHAVIOUR]:k}[e]:k:k}catch{return k}}l(Ue,"mapAppErrorCodesToAPIErrorCode");var Q=l(e=>{if(!e)return{extraMessage:"",extraMessageErrorCode:null};if(I.isPrettyError(e))return e.getErrorDetail();if(ft.isSignerError(e)){let t=e.getErrorDetail();return{extraMessage:t.message,extraMessageDetail:t.detail,extraMessageErrorCode:t.code}}return e instanceof Error?{extraMessage:e.toString(),extraMessageErrorCode:null}:typeof e!="string"?{extraMessage:JSON.stringify(e),extraMessageErrorCode:null}:{extraMessage:e,extraMessageErrorCode:null}},"prettifyErrorMessage");var se=(a=>(a.error="error",a.warning="warning",a.info="info",a.success="success",a))(se||{}),b=l((e,t)=>{try{return U(e,t)}catch{return null}},"getCurrentBlockchainOfOrNull"),U=l((e,t)=>{let n=t.evmTransaction?.blockChain||t.evmApprovalTransaction?.blockChain||t.starknetTransaction?.blockChain||t.starknetApprovalTransaction?.blockChain||t.tronTransaction?.blockChain||t.tronApprovalTransaction?.blockChain||t.cosmosTransaction?.blockChain||t.solanaTransaction?.blockChain||t.tonTransaction?.blockChain;if(n)return n;let r=t.transferTransaction?.fromWalletAddress;if(!r)throw I.BlockchainMissing();let a=Object.keys(e.wallets).find(o=>e.wallets[o]?.address===r)||null;if(a==null)throw I.BlockchainMissing();return a},"getCurrentBlockchainOf"),J=l((e,t,n)=>{let a=n[t].info?.transactionUrl;if(a)return a.indexOf("/{txHash}")!==-1?a.replace("{txHash}",e):`${a}/${e}`},"getScannerUrl");function Le(e,t){return e.steps.find(n=>n.status!=="failed"&&n.status!=="success"&&n.id!==t.id)||null}l(Le,"getNextStep");var me=l((e,t)=>{let n=e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||(t.transferTransaction?.fromWalletAddress?{address:t.transferTransaction?.fromWalletAddress}:null)||null;if(n==null)throw I.WalletMissing();return n.address},"getCurrentAddressOf");function q(e,t){let n=me(e,t),r=Object.keys(e.wallets).map(c=>({k:c,v:e.wallets[c]})).find(({v:c})=>c.address===n)||null,a=r?.k||null,o=r?.v||null,i=o?.walletType;if(o===null)throw I.AssertionFailed(`Wallet for source ${a} not passed: walletType: ${i}`);return o}l(q,"getRelatedWallet");function we(e,t){if(!t)return null;try{return q(e,t)}catch{return null}}l(we,"getRelatedWalletOrNull");var Be=l((e,t,n,r)=>r?.find(o=>o.blockchain===e&&o.symbol?.toUpperCase()===t?.toUpperCase()&&o.address===n)?.usdPrice||null,"getUsdPrice");function Ct(e,t){let n=new Me(0);for(let r=0;r<e.fee.length;r++){let a=e.fee[r];if(a.expenseType==="DECREASE_FROM_OUTPUT")continue;let o=Be(a.asset.blockchain,a.asset.symbol,a.asset.address,t);n=n.plus(new Me(a.amount).multipliedBy(o||0))}return n}l(Ct,"getUsdFeeOfStep");function Fe(e,t){return{fromBlockchain:e.from.blockchain,fromBlockchainLogo:e.from.blockchainLogo,fromLogo:e.from.logo,fromSymbol:e.from.symbol,fromSymbolAddress:e.from.address,fromDecimals:e.from.decimals,fromAmountPrecision:e.fromAmountPrecision,fromAmountMinValue:e.fromAmountMinValue,fromAmountMaxValue:e.fromAmountMaxValue,fromAmountRestrictionType:e.fromAmountRestrictionType,fromUsdPrice:e.from.usdPrice,toBlockchain:e.to.blockchain,toBlockchainLogo:e.to.blockchainLogo,toSymbol:e.to.symbol,toSymbolAddress:e.to.address,toDecimals:e.to.decimals,toLogo:e.to.logo,toUsdPrice:e.to.usdPrice,swapperId:e.swapperId,swapperLogo:e.swapperLogo,swapperType:e.swapperType,expectedOutputAmountHumanReadable:e.toAmount,feeInUsd:t?We(Ct(e,t?.tokens),null,8):null,estimatedTimeInSeconds:e.estimatedTimeInSeconds||null,internalSteps:null}}l(Fe,"mapSwapStepToPendingSwapStep");function _t(e,t,n,r,a,o){let i=t.result;if(!i)throw Error("Simulation result should not be null");return{creationTime:new Date().getTime().toString(),finishTime:null,requestId:t.requestId||"",inputAmount:e,wallets:n,status:"running",isPaused:!1,extraMessage:null,extraMessageSeverity:null,extraMessageDetail:null,extraMessageErrorCode:null,networkStatusExtraMessage:null,networkStatusExtraMessageDetail:null,lastNotificationTime:null,settings:r,simulationResult:i,validateBalanceOrFee:a,steps:t.result?.swaps?.map((c,u)=>{let s=Fe(c,o);return{id:u+1,...s,internalSwaps:c?.internalSwaps?.map(p=>Fe(p,o))||null,outputAmount:"",status:"created",networkStatus:null,startTransactionTime:new Date().getTime(),externalTransactionId:null,executedTransactionId:null,executedTransactionTime:null,explorerUrl:null,diagnosisUrl:null,trackingCode:null,internalSteps:null,evmTransaction:null,evmApprovalTransaction:null,starknetTransaction:null,starknetApprovalTransaction:null,tronTransaction:null,tronApprovalTransaction:null,cosmosTransaction:null,solanaTransaction:null,transferTransaction:null,tonTransaction:null,hasAlreadyProceededToSign:!1}})||[]}}l(_t,"calculatePendingSwap");function Qe(e){return e.map(t=>{let{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:i,executedTransactionTime:c,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:p,fromSymbol:d,toSymbol:g,fromSymbolAddress:S,toSymbolAddress:m,swapperType:_,swapperId:E,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:x,status:v}=t;return{diagnosisUrl:n,estimatedTimeInSeconds:r,explorerUrl:a,feeInUsd:o,executedTransactionId:i,executedTransactionTime:c,expectedOutputAmountHumanReadable:u,fromBlockchain:s,toBlockchain:p,fromSymbol:d,toSymbol:g,fromSymbolAddress:S,toSymbolAddress:m,swapperName:E,swapperType:_,outputAmount:T,fromAmountMaxValue:w,fromAmountMinValue:C,fromAmountPrecision:A,fromAmountRestrictionType:R,fromDecimals:x,status:v,transaction:M(t)}})}l(Qe,"createSteps");function xt(e,t,n){let{creationTime:r,finishTime:a,requestId:o,inputAmount:i,status:c,wallets:u,steps:s,settings:p}=e,d=Qe(s),S={route:{creationTime:r,finishTime:a,requestId:o,inputAmount:i,status:c,wallets:u,steps:d,slippage:p.slippage,infiniteApproval:p.infiniteApprove},step:d[d.length-1]};if(n)S.step=Qe([n])[0];else if(t==="failed"){let m=Xe(d);m&&(S.step=m)}else{let m=z(d);m&&(S.step=m)}return S}l(xt,"getEventPayload");function kt(e,t){let n,{type:r}=e;switch(r){case"started":n={...e,type:"started"};break;case"failed":n={...e,type:"failed"};break;case"succeeded":n={...e,type:"succeeded"};break;default:break}n&&$("emitter")?.emit("routeEvent",{event:n,route:t})}l(kt,"emitRouteEvent");function Rt(e,t,n){$("emitter")?.emit("stepEvent",{event:e,route:t,step:n})}l(Rt,"emitStepEvent");function f(e){let{event:t}=e,{type:n}=t,{route:r,step:a}=xt(e.swap,n,e.step??void 0),o=`${a.fromBlockchain}.${a.fromSymbol}`,i=`${a.toBlockchain}.${a.toSymbol}`,c=a.outputAmount??"",u=e.step?b(e.swap,e.step):null,s="",p="info";switch(n){case"started":s="Swap process started",p="success";break;case"succeeded":s=`You received ${c} ${i}, hooray!`,p="success";break;case"failed":s=`Swap failed: ${e.swap?.extraMessage??"Reason is unknown"}`,p="error";break;case"tx_execution":t.status==="create_tx"?(s="Please wait while the transaction is created ...",p="info"):t.status==="send_tx"?(e.step&&j(e.step)?s=`Please confirm '${a.swapperName}' smart contract access to ${o}`:s="Please confirm transaction request in your wallet",p="warning"):t.status==="tx_sent"&&(s="Transaction sent successfully",p="info");break;case"check_status":e.step&&j(e.step)?s="Checking approve transaction status ...":s="Checking transaction status ...",p="info";break;case"approval_tx_succeeded":s="Smart contract called successfully",p="success";break;case"output_revealed":s="Transaction output amount revealed",p="success";break;case"tx_execution_blocked":t.status==="waiting_for_wallet_connect"?(s="Please connect your wallet.",p="warning"):t.status==="waiting_for_queue"?(s="Waiting for other swaps to complete",p="warning"):t.status==="waiting_for_change_wallet_account"?(s="Please change your wallet account.",p="warning"):t.status==="waiting_for_network_change"&&(s=`Please change your wallet network to ${u}.`,p="warning");break;default:break}e.step&&Rt({...t,message:s,messageSeverity:p},r,a),(e.event.type==="failed"||!e.step)&&kt({...t,message:s,messageSeverity:p},r)}l(f,"notifier");var Ae=null;function ie(){return{claimedBy:()=>Ae?.id,setClaimer:e=>{Ae={id:e}},reset:()=>{Ae=null}}}l(ie,"claimQueue");var K={};function le(){return{getTransactionDataByHash:e=>K[e]||{},setTransactionDataByHash:(e,t)=>{K[e]||(K[e]={}),K[e].response=t.response||K[e].response,K[e].receiptReceived=t.receiptReceived||K[e].receiptReceived||!1}}}l(le,"inMemoryTransactionsData");var y=l(e=>e.steps.find(t=>t.status!=="failed"&&t.status!=="success")||null,"getCurrentStep"),M=l(e=>{let{evmTransaction:t,evmApprovalTransaction:n,cosmosTransaction:r,solanaTransaction:a,transferTransaction:o,starknetApprovalTransaction:i,starknetTransaction:c,tronApprovalTransaction:u,tronTransaction:s,tonTransaction:p}=e;return t||n||r||a||o||i||c||u||s||p},"getCurrentStepTx"),ce=l((e,t)=>{e.transferTransaction=null,e.cosmosTransaction=null,e.evmTransaction=null,e.solanaTransaction=null,e.evmApprovalTransaction=null,e.starknetApprovalTransaction=null,e.starknetTransaction=null,e.tronApprovalTransaction=null,e.tronTransaction=null,e.tonTransaction=null;let n=t.type;switch(n){case W.EVM:t.isApprovalTx?e.evmApprovalTransaction=t:e.evmTransaction=t;break;case W.TRON:t.isApprovalTx?e.tronApprovalTransaction=t:e.tronTransaction=t;break;case W.STARKNET:t.isApprovalTx?e.starknetApprovalTransaction=t:e.starknetTransaction=t;break;case W.COSMOS:e.cosmosTransaction=t;break;case W.SOLANA:e.solanaTransaction=t;break;case W.TRANSFER:e.transferTransaction=t;break;case W.TON:e.tonTransaction=t;break;default:(r=>{throw new Error(`${r} was unhandled!`)})(n)}return e},"setCurrentStepTx"),Ce=l(e=>M(e)?.type,"getCurrentStepTxType"),j=l(e=>{let{evmApprovalTransaction:t,starknetApprovalTransaction:n,tronApprovalTransaction:r}=e;return!!(t||n||r)},"isApprovalCurrentStepTx");function O({getStorage:e,setStorage:t,nextStatus:n,nextStepStatus:r,message:a,details:o,errorCode:i=null,hasAlreadyProceededToSign:c,trace:u=null}){let s=e().swapDetails,p=y(s),d={swap:s,step:p};if(r&&p&&(p.status=r),n&&(s.status=n),s.hasAlreadyProceededToSign=c,n&&["failed","success"].includes(n)&&(s.finishTime=new Date().getTime().toString()),(a||o)&&(s.extraMessage=a||"",s.extraMessageDetail=o||""),r&&["failed"].includes(r)){let g=o&&o.includes("Warning")?"Swap canceled by user.":o,S=we(s,p)?.walletType;s.extraMessageSeverity="error";let m=Ue(i);d.failureType=m;let _=i!=="REJECTED_BY_USER"&&u?.message&&typeof u.message=="string"?u.message:g||"";B().reportFailure({requestId:s.requestId,step:p?.id||1,eventType:m,reason:_,tags:S?{wallet:S}:void 0}).then().catch()}else r&&["running"].includes(r)?s.extraMessageSeverity="info":r&&["success","approved"].includes(r)?s.extraMessageSeverity="success":r&&["waitingForApproval"].includes(r)&&(s.extraMessageSeverity="warning");return r==="running"&&p&&(p.startTransactionTime=new Date().getTime()),t({...e(),swapDetails:s}),d}l(O,"updateSwapStatus");function Pt({getStorage:e,setStorage:t},n,r){let a=e().swapDetails;a.hasAlreadyProceededToSign=null;let o=y(a);o.executedTransactionId=n,o.executedTransactionTime=new Date().getTime().toString(),r?.url&&(o.explorerUrl=[...o.explorerUrl||[],{url:r.url,description:r.description||null}]),j(o)?a.extraMessage="Checking approve transaction status ...":a.extraMessage="Checking transaction status ...",a.extraMessageDetail="",a.extraMessageSeverity="info",t({...e(),swapDetails:a}),f({event:{type:"tx_execution",status:"tx_sent"},swap:a,step:o}),f({event:{type:"check_status"},swap:a,step:o})}l(Pt,"setStepTransactionIds");function Dt({getStorage:e,setStorage:t},n,r){let a=e().swapDetails,o=y(a);if(!o)return;let i=new Date;a.lastNotificationTime=i.getTime().toString(),!(o.networkStatus===Z.WaitingForConnectingWallet&&a.networkStatusExtraMessage===n&&a.networkStatusExtraMessageDetail===r)&&(o.networkStatus=Z.WaitingForConnectingWallet,a.networkStatusExtraMessage=n,a.networkStatusExtraMessageDetail=r,t({...e(),swapDetails:a}))}l(Dt,"markRunningSwapAsWaitingForConnectingWallet");function qe({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(!r)return;let{type:a}=P(n),o=U(n,r),i=`Change ${a} wallet network to ${o}`,c=`Please change your ${a} wallet network to ${o}.`,u=new Date;return n.lastNotificationTime=u.getTime().toString(),r.networkStatus=Z.WaitingForNetworkChange,n.networkStatusExtraMessage=i,n.networkStatusExtraMessageDetail=c,t({...e(),swapDetails:n}),{swap:n,step:r}}l(qe,"markRunningSwapAsSwitchingNetwork");function Ke({getStorage:e,setStorage:t}){let n=e().swapDetails,r=y(n);if(r)return n.networkStatusExtraMessage="",n.networkStatusExtraMessageDetail="",r.networkStatus=Z.WaitingForQueue,f({event:{type:"tx_execution_blocked",status:"waiting_for_queue"},swap:n,step:r}),t({...e(),swapDetails:n}),{swap:n,step:r}}l(Ke,"markRunningSwapAsDependsOnOtherQueues");async function ue(e){return new Promise(t=>setTimeout(t,e))}l(ue,"delay");var Wt=l((e,t)=>e.wallets[t]?.walletType,"getSwapWalletType");function _e(e){return e===null||e?.blockchains===null||e?.blockchains.length===0}l(_e,"isWalletNull");function P(e){let t=y(e),n=b(e,t);if(!n)return{type:null,network:null,address:null};let r=Wt(e,n),a=e.wallets[n];return{type:r||null,network:n,address:a?a.address:null}}l(P,"getRequiredWallet");async function bt(e){try{return await e.request({method:"eth_chainId"})||e?.chainId}catch{return e?.chainId}}l(bt,"getChainId");async function $e(e,t,n,r,a){if(_e(n))return!1;let o=b(e,t);if(!o)return!1;if(r.evmBasedChains.find(i=>i.name===o)){try{let i=e.wallets[o];if(i){let c=It(a,i.walletType),u=await bt(c);if(u){let s=Nt(u,Object.entries(r.blockchains).map(([,p])=>p));if(s&&s.toLowerCase()===o.toLowerCase())return!0;if(s&&s.toLowerCase()!==o.toLowerCase())return!1}}}catch(i){console.log(i)}return!1}return!0}l($e,"isNetworkMatchedForTransaction");var Ve=l((e,t)=>(e.wallets[t.evmTransaction?.blockChain||""]||e.wallets[t.evmApprovalTransaction?.blockChain||""]||e.wallets[t.tronTransaction?.blockChain||""]||e.wallets[t.tronApprovalTransaction?.blockChain||""]||e.wallets[t.starknetTransaction?.blockChain||""]||e.wallets[t.starknetApprovalTransaction?.blockChain||""]||e.wallets[t.cosmosTransaction?.blockChain||""]||e.wallets[t.solanaTransaction?.blockChain||""]||e.wallets[t.tonTransaction?.blockChain||""]||t.transferTransaction?.fromWalletAddress||null)!==null,"isTxAlreadyCreated");function pe(e){let{getStorage:t,setStorage:n}=e,r=t().swapDetails,a=y(r);a?.networkStatus&&(a.networkStatus=null,n({...t(),swapDetails:r}))}l(pe,"resetNetworkStatus");function Ye(e,t={message:"",details:"",status:null}){let{message:n,details:r,status:a}=t,{getStorage:o,setStorage:i}=e,c=o().swapDetails,u=y(c);u?.networkStatus&&(c.networkStatusExtraMessage=n,c.networkStatusExtraMessageDetail=r,u.networkStatus=a,i({...o(),swapDetails:c}))}l(Ye,"updateNetworkStatus");function Je(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,{ok:o,reason:i}=xe(a,n.state);if(!o){let c=y(a),{type:u,address:s}=P(a);f({event:{type:"tx_execution_blocked",...i==="account_miss_match"?{status:"waiting_for_change_wallet_account",requiredAccount:s??void 0}:{status:"waiting_for_wallet_connect",requiredWallet:u??void 0,requiredAccount:s??void 0}},swap:a,step:c}),Dt({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)},Oe,e.reason.description);return}r.unblock()}l(Je,"onBlockForConnectWallet");function je(e,t){let{context:n,queue:r}=t,a=r.getStorage().swapDetails,o=y(a);if(!o||a.status!=="running")return;let i=qe({getStorage:r.getStorage.bind(r),setStorage:r.setStorage.bind(r)}),c=b(a,o),u=P(a).type,s=u?n.state(u).network:void 0;i&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",requiredNetwork:c??void 0,currentNetwork:s??void 0},swap:i.swap,step:i.step});let{type:p,network:d}=P(a);if(p&&d&&n.canSwitchNetworkTo(p,d)){let g=n.switchNetwork(p,d);g&&g.then(()=>{r.unblock()}).catch(S=>{console.log({error:S})})}}l(je,"onBlockForChangeNetwork");function ze(e,t){let{getBlockedTasks:n,forceExecute:r,queue:a,manager:o,context:i}=t,{setClaimer:c,claimedBy:u,reset:s}=ie(),p=n().filter(w=>w.reason.reason==="depends_on_other_queues");if(p.length===0)return;let d=u(),g=!!d;if(d===a.id)return;if(g){Ke({getStorage:a.getStorage.bind(a),setStorage:a.setStorage.bind(a)});return}let S=p.find(w=>w.queue_id===t.queue_id);S||(S=p[0]),c(S.queue_id);let m=S.storage.get(),{type:_,network:E,address:T}=P(m.swapDetails);r(S.queue_id,{claimedBy:u(),resetClaimedBy:()=>{s(),Re(`${_}-${E}:${T}`,o,i.canSwitchNetworkTo)}})}l(ze,"onDependsOnOtherQueues");function xe(e,t){let{type:n,address:r}=P(e);if(!n||!r)return{ok:!1,reason:"not_connected"};let a=t(n),{accounts:o,connected:i}=a,c=o||[];return i?{ok:c.some(s=>{let{address:p}=ht(s);return r.toLocaleLowerCase()===p.toLocaleLowerCase()}),reason:"account_miss_match"}:{ok:!1,reason:"not_connected"}}l(xe,"isRequiredWalletConnected");async function Ze(e){let{setTransactionDataByHash:t}=le(),{getStorage:n,setStorage:r,failed:a,next:o,schedule:i,context:c}=e,{meta:u,getSigners:s,isMobileWallet:p}=c,d=n().swapDetails,g=y(d),S=q(d,g),m=p(S?.walletType),_=me(d,g),E=U(d,g),T=l(()=>{e.context.resetClaimedBy&&e.context.resetClaimedBy()},"onFinish"),w=M(g),C=w?.type,A=j(g);if(!w||!C){let h="Unexpected Error: tx is null!",D=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:h,details:void 0,errorCode:"CLIENT_UNEXPECTED_BEHAVIOUR"});return f({event:{type:"failed",reason:h,reasonCode:"CLIENT_UNEXPECTED_BEHAVIOUR"},...D}),a(),T()}let R=u.blockchains?.[w.blockChain]?.chainId,x=typeof d.hasAlreadyProceededToSign=="boolean",v,N,X,F,G;A?(X=`Waiting for approval of ${g?.fromSymbol} coin ${m?"on your mobile phone!":""}`,F="Waiting for approve transaction to be mined and confirmed successfully",N="waitingForApproval",v=void 0,G="tx_execution"):x?(X="Transaction is expired. Please try again.",N="failed",v="failed",F="",G="failed"):(X="Executing transaction ...",N="running",v="running",F=`${m?"Check your mobile phone!":""}`,G="tx_execution");let de=O({getStorage:n,setStorage:r,nextStepStatus:N,nextStatus:v,message:X,details:F,hasAlreadyProceededToSign:A?void 0:x,errorCode:x?"TX_EXPIRED":void 0});if(G==="failed"?f({event:{type:G,reason:X,reasonCode:de.failureType??k},...de}):f({event:{type:G,status:"send_tx"},...de}),x){a(),T();return}(await s(S.walletType)).getSigner(C).signAndSendTx(w,_,R).then(({hash:h,response:D})=>{let te=J(h,E,u.blockchains);Pt(e,h,te&&(!D||D&&!D.hashRequiringUpdate)?{url:te,description:A?"Approve":"Swap"}:void 0),D&&t(h,{response:D}),i("CHECK_TRANSACTION_STATUS"),o(),T()},h=>{if(d.status==="failed")return;let{extraMessage:D,extraMessageDetail:te,extraMessageErrorCode:St}=Q(h);vt(h,{tags:{requestId:d.requestId,rpc:!0,swapper:g?.swapperId||"",walletType:S?.walletType||""},context:Ot.isSignerError(h)?h.getErrorContext():{}});let Ne=O({getStorage:n,setStorage:r,nextStatus:"failed",nextStepStatus:"failed",message:D,details:te,errorCode:St,trace:h?.cause});f({event:{type:"failed",reason:D,reasonCode:Ne.failureType??k},...Ne}),a(),T()})}l(Ze,"signTransaction");function et(e){let{wallet_network:t,evmChains:n,manager:r}=e,[a,o]=He(t);n.some(i=>i.name==o)&&r?.getAll().forEach(i=>{let c=i.list.getStorage(),u=c?.swapDetails;if(u&&u.status==="running"){let s=y(u);if(s){let p=c?.swapDetails.wallets[s.fromBlockchain]?.walletType,d=Object.keys(i.list.state.tasks).some(S=>{let m=i.list.state.tasks[S];return m.status===ye.BLOCKED&&["waiting_for_connecting_wallet"].includes(m.blockedFor?.reason)}),g=b(u,s);if(p===a&&d&&g!=o){let S=i.list,{type:m}=P(u),_=ae(m);i.list.block({reason:{reason:"waiting_for_network_change",description:_},silent:!0});let E=qe({getStorage:S.getStorage.bind(S),setStorage:S.setStorage.bind(S)});E&&f({event:{type:"tx_execution_blocked",status:"waiting_for_network_change",currentNetwork:o,requiredNetwork:g??void 0},swap:E.swap,step:E.step})}}}})}l(et,"checkWaitingForConnectWalletChange");function ke(e){e?.getAll().forEach(t=>{if(Object.keys(t.list.state.tasks).some(r=>{let a=t.list.state.tasks[r];return a.status===ye.BLOCKED&&["waiting_for_network_change","depends_on_other_queues"].includes(a.blockedFor?.reason)})){let r=t.list.getStorage()?.swapDetails;if(r.status==="running"){let{type:a}=P(r),o=re(a);t.list.block({reason:{reason:"waiting_for_connecting_wallet",description:o}})}}})}l(ke,"checkWaitingForNetworkChange");function Ut(e){let t=e?.getAll()||new Map,n=[];return t.forEach(r=>{let o=r.list.getStorage()?.swapDetails;!o||o.status!=="running"||n.push(o)}),n}l(Ut,"getRunningSwaps");function Mt(e){e.forEach(t=>{let n=y(t),r="tx_execution_blocked",a;n?.networkStatus===Z.WaitingForQueue?a="waiting_for_queue":t?.status==="running"&&(a="waiting_for_wallet_connect"),r&&f&&f({event:{type:r,status:a??"waiting_for_queue"},swap:t,step:n})})}l(Mt,"resetRunningSwapNotifsOnPageLoad");function Re(e,t,n,r={fallbackToOnlyWallet:!0}){let[a,o]=He(e);if(!a||!o)return;let i=[],c=[];t?.getAll().forEach(s=>{if(s.status===ye.BLOCKED){let p=s.list.getStorage(),d=p?.swapDetails;if(d&&d.status==="running"){let g=y(d);g&&(b(d,g)==o&&p?.swapDetails.wallets[o]?.walletType===a?i.push(s.list):p?.swapDetails.wallets[g.fromBlockchain]?.walletType===a&&c.push(s.list))}}});let u;if(i.length>0){if(u=i[0],i.length>1)for(let s=1;s<i.length;s++){let p=i[s];Ke({getStorage:p.getStorage.bind(p),setStorage:p.setStorage.bind(p)})}}else c.length>0&&r.fallbackToOnlyWallet&&(u=c[0]);n?.(a,o)?u?.checkBlock():u?.unblock()}l(Re,"retryOn");function tt(e){return!!e.evmTransaction||!!e.evmApprovalTransaction}l(tt,"isNeedBlockQueueForParallel");async function nt(e){let t=await e;if(!t.ok||!t.transaction)throw I.CreateTransaction(t.error||"bad response from create tx endpoint");return t}l(nt,"throwOnOK");function Ft(e,t){let{reset:n}=ie();e.actions.cancel();let r=O({getStorage:e.actions.getStorage,setStorage:e.actions.setStorage,message:"Swap canceled by user.",details:"Warning: If you've already signed and sent a transaction, it won't be affected, but next swap steps will not be executed.",nextStatus:"failed",nextStepStatus:"failed",errorCode:"USER_CANCEL"});return f({event:{type:"failed",reasonCode:"USER_CANCEL",reason:r.swap.extraMessage??void 0},swap:r.swap,step:r.step}),n(),t&&t?.retry(),r}l(Ft,"cancelSwap");function z(e){return e.slice().reverse().find(t=>t.status==="success")}l(z,"getLastSuccessfulStep");function Xe(e){return e.slice().reverse().find(t=>t.status==="failed")}l(Xe,"getFailedStep");function Lt(e){let{transaction:t}=e;return t?.type===W.EVM&&t.isApprovalTx||t?.type===W.STARKNET&&t.isApprovalTx||t?.type===W.TRON&&t.isApprovalTx}l(Lt,"isApprovalTX");var rt=5e3,Bt=5e3;async function Qt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:i}){let c=e().swapDetails,{meta:u}=i,s=y(c);if(!s?.executedTransactionId)return;let p=M(s),d=s.executedTransactionId,g=!1,S=null,m=null,{getTransactionDataByHash:_,setTransactionDataByHash:E}=le();try{let A=Ce(s),R=q(c,s);A&&R&&(m=(await i.getSigners(R.walletType)).getSigner(A))}catch{}try{let{response:A,receiptReceived:R}=_(d);if(m?.wait&&!R){let x=p?.blockChain&&u.blockchains?.[p?.blockChain]?.chainId||void 0,{hash:v,response:N}=await m.wait(d,x,A);if(v!==d){s.executedTransactionId=v||s.executedTransactionId;let X=U(c,s),F;!!Object.keys(u.blockchains).length&&(F=J(s.executedTransactionId,X,u.blockchains)),F&&s.explorerUrl&&s.explorerUrl?.length>=1&&(s.explorerUrl[s.explorerUrl.length-1]={url:F,description:"Replaced Swap"}),d=s.executedTransactionId,v&&N&&E(v,{response:N})}else E(v,{receiptReceived:!0})}}catch(A){let{extraMessage:R,extraMessageDetail:x,extraMessageErrorCode:v}=Q(A),N=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:R,details:x,errorCode:v});f({event:{type:"failed",reason:R,reasonCode:N.failureType??k},...N}),g=!0}try{S=await B().checkStatus({requestId:c.requestId,txId:d,step:s.id})}catch{await ue(rt),a();return}if(g)return o();if(s?.status==="failed")return;let T=S?.outputAmount||(s.outputAmount?s.outputAmount:null),w=s.outputAmount||null;c.extraMessage=S?.extraMessage||c.extraMessage,c.extraMessageSeverity="info",c.extraMessageDetail="",s.status=S?.status||s.status,s.diagnosisUrl=S?.diagnosisUrl||s.diagnosisUrl||null,s.outputAmount=T||s.outputAmount,s.explorerUrl=S?.explorerUrl||s.explorerUrl,s.internalSteps=S?.steps||null;let C=S?.newTx;if(C&&(s.status="created",s.executedTransactionId=null,s.executedTransactionTime=null,ce(s,C)),w===null&&T!==null?f({event:{type:"output_revealed",outputAmount:T},swap:c,step:s}):w===null&&T===null&&f({event:{type:"check_status"},swap:c,step:s}),s.status==="success"){let A=Le(c,s);c.extraMessageDetail="",c.extraMessage=A?`starting next step: ${A.swapperId}: ${A.fromBlockchain} -> ${A.toBlockchain}`:"",f({event:{type:"succeeded",outputAmount:s.outputAmount??""},swap:c,step:s})}else s.status==="failed"&&(c.extraMessage="Transaction failed in blockchain",c.extraMessageSeverity="error",c.extraMessageDetail=S?.extraMessage||"",c.status="failed",c.finishTime=new Date().getTime().toString());t({...e(),swapDetails:c}),S?.status==="failed"?o():S?.status==="success"||S?.status==="running"&&S.newTx?(r("SCHEDULE_NEXT_STEP"),n()):(await ue(rt),a())}l(Qt,"checkTransactionStatus");async function Xt({getStorage:e,setStorage:t,next:n,schedule:r,retry:a,failed:o,context:i}){let c=e().swapDetails,{meta:u}=i,{getTransactionDataByHash:s,setTransactionDataByHash:p}=le(),d=y(c);if(!d){console.log("ignore check status, current step is null");return}let g=M(d);if(!d?.executedTransactionId)return;let S=d.executedTransactionId,m=null;try{let E=Ce(d),T=q(c,d);E&&T&&(m=(await i.getSigners(T.walletType)).getSigner(E))}catch{}try{let{response:E,receiptReceived:T}=s(S);if(m?.wait&&!T){let w=g?.blockChain&&u.blockchains?.[g?.blockChain]?.chainId||void 0,{hash:C,response:A}=await m.wait(S,w,E);if(C!==S){d.executedTransactionId=C||d.executedTransactionId;let R=U(c,d),x;!!Object.keys(u.blockchains).length&&(x=J(d.executedTransactionId,R,u.blockchains)),x&&d.explorerUrl&&d.explorerUrl?.length>=1&&(d.explorerUrl[d.explorerUrl.length-1]={url:x,description:"Replaced Approve"}),S=d.executedTransactionId,C&&A&&p(C,{response:A})}else p(C,{receiptReceived:!0})}}catch(E){let{extraMessage:T,extraMessageDetail:w,extraMessageErrorCode:C}=Q(E),A=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:T,details:w,errorCode:C});return f({event:{type:"failed",reason:T,reasonCode:A.failureType??k},...A}),o()}let _=!1;try{let E=await B().checkApproval(c.requestId,d.executedTransactionId);if(d?.status==="failed")return;if(_=E.isApproved,!_&&(E.txStatus==="failed"||E.txStatus==="success")){let T,w;E.txStatus==="failed"?(T="Approve transaction failed",w="Smart contract approval tx failed in blockchain."):(T="Not enough approval",E.requiredApprovedAmount&&E.currentApprovedAmount?w=`Required approval: ${E.requiredApprovedAmount}, current approval: ${E.currentApprovedAmount}`:w="You still don't have enough approval for this swap.");let C=O({getStorage:e,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",errorCode:"INSUFFICIENT_APPROVE",message:T,details:w});f({event:{type:"failed",reason:T,reasonCode:C.failureType??k},...C}),o()}else _||f({event:{type:"check_status"},swap:c,step:d})}catch{_=!1}_?(d.status="approved",c.extraMessage=`Spending ${d.fromSymbol} approved successfully.`,c.extraMessageDetail=null,c.extraMessageSeverity="success",d.evmApprovalTransaction=null,d.executedTransactionId=null,d.executedTransactionTime=null,d.starknetApprovalTransaction=null,d.tronApprovalTransaction=null,t({...e(),swapDetails:c}),f({event:{type:"approval_tx_succeeded"},swap:c,step:d}),r("SCHEDULE_NEXT_STEP"),n()):(await ue(Bt),a())}l(Xt,"checkApprovalStatus");async function at(e){let t=e.getStorage().swapDetails,n=y(t);if(!n){console.log("ignore check status, current step is null",t.requestId);return}pe(e),n.status==="running"?await Qt(e):n.status==="waitingForApproval"&&await Xt(e)}l(at,"checkStatus");async function ot(e){let{setStorage:t,getStorage:n,next:r,schedule:a}=e,o=n().swapDetails,i=y(o);if(!M(i)){f({event:{type:"tx_execution",status:"create_tx"},swap:o,step:i});let u={requestId:o.requestId,step:i.id,userSettings:{slippage:o.settings.slippage,infiniteApprove:o.settings.infiniteApprove},validations:{balance:o.validateBalanceOrFee,fee:o.validateBalanceOrFee,approve:!0}};try{let{transaction:s}=await nt(B().createTransaction(u));s&&ce(i,s),t({...n(),swapDetails:o}),a("EXECUTE_TRANSACTION"),r()}catch(s){o.status="failed",o.finishTime=new Date().getTime().toString();let{extraMessage:p,extraMessageDetail:d}=Q(s),g=O({getStorage:n,setStorage:t,nextStatus:"failed",nextStepStatus:"failed",message:p,details:d,errorCode:"FETCH_TX_FAILED"});f({event:{type:"failed",reason:p,reasonCode:g.failureType??k},...g}),e.failed()}}}l(ot,"createTransaction");import{PendingSwapNetworkStatus as Gt}from"rango-types";async function st(e){let{getStorage:t,context:n}=e,{meta:r,wallets:a,providers:o}=n,{claimedBy:i}=ie(),c=n.claimedBy===n._queue?.id,u=l(E=>{e.block(E),c&&e.context.resetClaimedBy&&e.context.resetClaimedBy()},"requestBlock"),s=t().swapDetails,p=y(s);if(pe(e),!xe(s,n.state).ok){let{type:E,address:T}=P(s),w=a?.blockchains?.find(R=>!R.accounts?.find(x=>x.walletType===E)),C=_e(a)||w?re(E):Pe(E,T),A={reason:"waiting_for_connecting_wallet",description:C};u(A);return}let g=await $e(s,p,a,r,o);if(!!i()&&!c&&!g){let E=fe,T={reason:"depends_on_other_queues",details:E};u(T);return}else if(!g){let E=U(s,p),T=ae(E),w={reason:"waiting_for_network_change",details:T};u(w);return}if(Ye(e,{message:"",details:"Wallet network changed successfully",status:Gt.NetworkChanged}),tt(p)&&!c){let E={reason:"depends_on_other_queues",description:fe,details:{}};u(E);return}await Ze(e)}l(st,"executeTransaction");function it({schedule:e,next:t,failed:n,setStorage:r,getStorage:a}){let o=a().swapDetails,i=y(o),c=o.steps.find(u=>u.status==="failed");if(i&&!c){if(Ve(o,i))return e("EXECUTE_TRANSACTION"),t();if(i?.executedTransactionId)return e("CHECK_TRANSACTION_STATUS"),t();o.status="running",r({...a(),swapDetails:o}),f({event:{type:"started"},swap:o,step:i}),e("CREATE_TRANSACTION"),t()}else o.status=c?"failed":"success",o.finishTime=new Date().getTime().toString(),r({...a(),swapDetails:o}),f({...c?{event:{type:"failed",reason:o.extraMessage??void 0,reasonCode:"CALL_OR_SEND_FAILED"}}:{event:{type:"succeeded",outputAmount:z(o.steps)?.outputAmount??""}},swap:o,step:null}),c?n():t()}l(it,"scheduleNextStep");function lt({schedule:e,next:t,getStorage:n}){let r=n().swapDetails;f({event:{type:"started"},swap:r,step:null}),e("SCHEDULE_NEXT_STEP"),t()}l(lt,"start");var ct={name:"swap",actions:{START:lt,SCHEDULE_NEXT_STEP:it,CREATE_TRANSACTION:ot,EXECUTE_TRANSACTION:st,CHECK_TRANSACTION_STATUS:at},run:["START"],whenTaskBlocked:(e,t)=>{e.reason.reason==="waiting_for_connecting_wallet"?Je(e,t):e.reason.reason==="waiting_for_network_change"?je(e,t):e.reason.reason==="depends_on_other_queues"&&ze(e,t)}};import{useManager as Vt}from"@rango-dev/queue-manager-react";import{useEffect as he,useState as Yt}from"react";import{DB_NAME as Ht,Persistor as qt,Status as ee}from"@rango-dev/queue-manager-core";import{v4 as Kt}from"uuid";var ut="migratedToQueueManager";function ve(){return!!window.localStorage.getItem(ut)}l(ve,"migrated");async function $t(){try{return(await window.indexedDB.databases()).map(e=>e.name).includes(Ht)}catch{return!1}}l($t,"hasQueueManagerOnIDB");async function pt(){let e=window.localStorage.getItem("pendingSwaps"),t=await $t();if(!e||ve()||t)return!0;let n=JSON.parse(e),r=[];n.forEach(i=>{if(i.status==="running"){let c=Kt(),u={id:i.requestId,createdAt:Number(i.creationTime),name:"swap",status:ee.RUNNING,storage:{swapDetails:i},state:{status:ee.RUNNING,activeTaskIndex:0,tasks:{[c]:{blockedFor:null,status:ee.RUNNING}}},tasks:[{id:c,action:"SCHEDULE_NEXT_STEP"}]};r.push(u)}else{let c=i.status==="success"?ee.SUCCESS:ee.FAILED,u={id:i.requestId,createdAt:Number(i.creationTime),name:"swap",status:c,storage:{swapDetails:i},state:{status:c,activeTaskIndex:0,tasks:{}},tasks:[]};r.push(u)}});let a=new qt,o=r.map(async i=>a.insertQueue(i));return await Promise.all(o),window.localStorage.setItem(ut,"1"),!0}l(pt,"migration");var dt=0;function Jt(){let e=ve(),[t,n]=Yt(e);return he(()=>{(async()=>dt||(dt=1,pt().finally(()=>{n(!0)})))()},[]),{status:t}}l(Jt,"useMigration");function jt(e){let{manager:t}=Vt();he(()=>{e.lastConnectedWallet&&(et({evmChains:e.evmChains,wallet_network:e.lastConnectedWallet,manager:t}),Re(e.lastConnectedWallet,t,e.canSwitchNetworkTo))},[e.lastConnectedWallet]),he(()=>{e.disconnectedWallet&&(ke(t),e.clearDisconnectedWallet())},[e.disconnectedWallet])}l(jt,"useQueueManager");function $r(e){return Ie(e),ct}l($r,"makeQueueDefinition");export{Te as EventSeverity,se as MessageSeverity,I as PrettyError,ge as RouteEventType,L as StepEventType,ne as StepExecutionBlockedEventStatus,Y as StepExecutionEventStatus,Ee as WidgetEvents,_t as calculatePendingSwap,Ft as cancelSwap,ke as checkWaitingForNetworkChange,b as getCurrentBlockchainOfOrNull,y as getCurrentStep,z as getLastSuccessfulStep,q as getRelatedWallet,we as getRelatedWalletOrNull,P as getRequiredWallet,Ut as getRunningSwaps,Be as getUsdPrice,Lt as isApprovalTX,$r as makeQueueDefinition,Q as prettifyErrorMessage,Mt as resetRunningSwapNotifsOnPageLoad,O as updateSwapStatus,Jt as useMigration,jt as useQueueManager};
2
2
  //# sourceMappingURL=index.js.map