@rango-dev/widget-embedded 0.12.1-next.0 → 0.12.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 +1 @@
1
- {"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../src/Widget.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAevC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,qBA0CzD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,qBAa3D"}
1
+ {"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../src/Widget.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAgBvC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,qBA2CzD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,qBAa3D"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var Vo=Object.defineProperty;var a=(t,e)=>Vo(t,"name",{value:e,configurable:!0});import{SwapContainer as Cs,styled as Ws,I18nManager as ys}from"@rango-dev/ui";import z,{useContext as bs,useEffect as As,useMemo as Es,useState as Lo}from"react";import xe,{Fragment as An}from"react";import{MemoryRouter as En,useInRouterContext as Rn}from"react-router";import{useQueueManager as Bn}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Ye,useRef as Je}from"react";import{createSearchParams as Wn,useLocation as yn,useSearchParams as bn}from"react-router-dom";import{create as hn}from"zustand";import Z from"bignumber.js";import Ko from"bignumber.js";var F=new Ko(0);import Ds from"bignumber.js";function q(t){return Array.from(new Set(t))}a(q,"removeDuplicateFrom");function De(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}a(De,"areEqual");function mt(t,e){let o;return n;function n(...s){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...s)},e)}}a(mt,"debounce");import{BigNumber as pt}from"bignumber.js";var ft=a(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),y=a((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new pt(t),s=1,r=1e3;for(let i=0;i<60;i++)if(new pt(n.toFixed(i,s)).eq(n)){r=i;break}if(n.gte(1e4))return n.toFormat(0,s);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,1))),s);if(n.gte(1))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,2))),s);if(n.gte(.01))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,4))),s);for(let i=e||4;i<17;i++)if(n.gte(Math.pow(10,-i)))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,i))),s);return n.isEqualTo(0)?"0":n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,8))),s)},"numberToString");var dt=a(t=>t?.result?.swaps?.reduce((e,o)=>e+o.estimatedTimeInSeconds,0)||0,"totalArrivalTime");var ge=a(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Le(t,e,o){return o&&t.find(n=>{let s=e?.split("--");return s?.length===1?n.symbol===s[0]&&n.address===null&&n.blockchain===o.name:n.symbol===s?.[0]&&n.address===s?.[1]&&n.blockchain===o.name})||null}a(Le,"searchParamsToToken");function gt(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}a(gt,"getBestRouteToTokenUsdPrice");function _e(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}a(_e,"isNumberOfSwapsChanged");function qe(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!De(o,n)}a(qe,"isRouteSwappersUpdated");function $e(t,e){let o=t.result?.swaps.map(s=>s.to.symbol)||[],n=e.result?.swaps.map(s=>s.to.symbol)||[];return!De(o,n)}a($e,"isRouteInternalCoinsUpdated");function St(t,e){return _e(t,e)||qe(t,e)||$e(t,e)}a(St,"isRouteChanged");function ht(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}a(ht,"getRequiredBalanceOfWallet");function He(t){if(t.store==="bestRoute"){let{prevState:e,currentState:o}=t;return!!o.fromToken&&!!o.toToken&&(e.fromChain?.name!==o.fromChain?.name||e.toChain?.name!==o.toChain?.name||e.fromToken?.symbol!==o.fromToken?.symbol||e.toToken?.symbol!==o.toToken?.symbol||e.fromToken?.blockchain!==e.fromToken?.blockchain||e.toToken?.blockchain!==o.toToken?.blockchain||e.fromToken?.address!==o.fromToken?.address||e.toToken?.address!==o.toToken?.address||e.inputAmount!==o.inputAmount)}else if(t.store==="settings"){let{prevState:e,currentState:o}=t;return e.slippage!==o.slippage||e.customSlippage!==o.customSlippage||e.disabledLiquiditySources?.length!==o.disabledLiquiditySources?.length||e.infiniteApprove||o.infiniteApprove}return!1}a(He,"isRouteParametersChanged");function Tt(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:y(o.fromAmount,6,6),toAmount:y(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}a(Tt,"getFormatedBestRoute");function wt(t){let e=t.steps.map(o=>({...o,feeInUsd:y(o.feeInUsd,4,4),outputAmount:y(o.outputAmount,6,6),expectedOutputAmountHumanReadable:y(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:y(t.inputAmount,6,6),steps:e}}a(wt,"getFormatedPendingSwap");var kt=a((t,e)=>t?"loading":e?"failed":"success","getBestRouteStatus");var jo=a(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Q=jo;import{subscribeWithSelector as Tn}from"zustand/middleware";import{RangoClient as Xo}from"rango-sdk";var Qo="c6381a79-2817-4602-83bf-6a641a409e32",Ge={API_KEY:Qo};function Se(t){return Ge[t]}a(Se,"getConfig");function Ct(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ge=e,Ge}a(Ct,"initConfig");var he,oe=a(()=>he||(he=new Xo(Se("API_KEY")),he),"httpService");import{create as Jo}from"zustand";import{persist as zo,subscribeWithSelector as Zo}from"zustand/middleware";var Wt=[.5,1,3,5,8,13,20],yt=1,bt=5,At=100,Et=0;import{create as Yo}from"zustand";var w=Q(Yo()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await oe().getAllMetadata(),o=q(e.tokens.map(s=>s.blockchain)),n=e.blockchains.filter(s=>s.enabled&&o.includes(s.name));e.blockchains=n.sort((s,r)=>s.sort-r.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));var E=Q(Jo()(zo(Zo(t=>({slippage:yt,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),setAffiliatePercent:e=>t(()=>({affiliatePercent:e})),setAffiliateWallets:e=>t(()=>({affiliateWallets:e})),toggleAllLiquiditySources:()=>t(e=>{let{swappers:o}=w.getState().meta,n=q(o.map(s=>s.swapperGroup));return n.length===e.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:n}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings"})));import L from"bignumber.js";import{i18n as Y}from"@lingui/core";import{getCosmosExperimentalChainInfo as en,isEvmAddress as tn,KEPLR_COMPATIBLE_WALLETS as on,detectInstallLink as nn,WalletTypes as rn,Networks as Rt}from"@rango-dev/wallets-shared";import{WalletState as X}from"@rango-dev/ui";import{isCosmosBlockchain as sn}from"rango-types";import{readAccountAddress as an}from"@rango-dev/wallets-react";import Te from"bignumber.js";function ln(t){switch(!0){case t.connected:return X.CONNECTED;case t.connecting:return X.CONNECTING;case!t.installed:return X.NOT_INSTALLED;default:return X.DISCONNECTED}}a(ln,"getStateWallet");var un=[rn.LEAP];function Bt(t,e,o){return o.filter(n=>!un.includes(n)).map(n=>{let{name:s,img:r,installLink:i,showOnMobile:l}=e(n),u=ln(t(n));return{name:s,image:r,installLink:nn(i),state:u,type:n,showOnMobile:!(typeof l>"u")}})}a(Bt,"getlistWallet");function we(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}a(we,"walletAndSupportedChainsNames");function xt(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(f=>f.chain===l)){let f={address:u,chain:l,walletType:t};s.push(f)}}a(r,"addAccount");let i=n||[];return e.forEach(l=>{let{address:u,network:c}=an(l),f=i.length>0,T=i.includes(c),k=c===Rt.Unknown;if(f&&!T&&!k)return;let S=c===Rt.Unknown&&tn(u);if(k&&!S)return;o.includes(c)||S?i.filter(p=>o.includes(p)).forEach(p=>{r(p,u.toLowerCase())}):r(c,u)}),s}a(xt,"prepareAccountsForWalletStore");function ae(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain;e.includes(n)||e.push(n),e.includes(s)||e.push(s),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(r=>{let i=r.from.blockchain,l=r.to.blockchain;e.includes(i)||e.push(i),e.includes(l)||e.push(l)})}),e}a(ae,"getRequiredChains");function ke(t,e,o,n){return t.map(r=>({address:r.address,walletType:r.walletType,chain:r.chain,image:o(r.walletType).img,name:o(r.walletType).name,selected:n===r.chain?!1:!!e.find(i=>i.chain===r.chain&&i.walletType===r.walletType)}))}a(ke,"getSelectableWallets");function se(t,e,o,n){if(t.length===0)return null;let s=t.filter(r=>r.chain===e);return s.length===0?null:s.map(r=>r.balances?.find(i=>n!==null&&i.address===n||n===null&&i.address===n&&i.symbol===o)||null).filter(r=>r!==null).sort((r,i)=>parseFloat(i?.amount||"0")-parseFloat(r?.amount||"1")).find(()=>!0)||null}a(se,"getBalanceFromWallet");function Ce(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}a(Ce,"isAccountAndWalletMatched");function vt(t,e,o){let{address:n,blockChain:s,explorerUrl:r,balances:i=[]}=e;return{address:n,chain:s,loading:!1,error:!1,explorerUrl:r,walletType:t.walletType,balances:i?.map(l=>({chain:s,symbol:l.asset.symbol,ticker:l.asset.symbol,address:l.asset.address||null,rawAmount:l.amount.amount,decimal:l.amount.decimals,amount:new Te(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:mn(s,l.asset.symbol,l.asset.address,o)||null}))||[]}}a(vt,"makeBalanceFor");function Pt(t){return{...t,loading:!1,error:!0}}a(Pt,"resetConnectedWalletState");var It=a(t=>{let e=new Set,n=t?.reduce((r,i)=>r.findIndex(l=>l.address===i.address&&l.chain===i.chain)===-1?[...r,i]:r,[])?.map(r=>{let i={name:r.chain,accounts:[]};return e.has(r.address)||e.add(r.address),e.forEach(l=>{r.address===l&&i.accounts.push(r)}),i}),s=y(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new Te(r?.amount||F).multipliedBy(r?.usdPrice||0))?.reduce((r,i)=>r.plus(i),F)||F).toString();return cn(s)},"calculateWalletUsdValue");function cn(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}a(cn,"numberWithThousandSeperator");var We=a(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),mn=a((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice"),Nt=a((t,e)=>{let o=en(Object.entries(t).map(([,n])=>n).filter(sn));return o&&!!o[e]},"isExperimentalChain"),Ve=a(t=>{let e=new Set(t.map(o=>o.walletType));return on.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function ye(t,e){return t.map(({balance:o,...n})=>{let s=y(new Te(se(e,n.blockchain,n.symbol,n.address)?.amount||F)),r="";return n.usdPrice&&(r=y(new Te(se(e,n.blockchain,n.symbol,n.address)?.amount||F).multipliedBy(n.usdPrice))),{...n,...s!=="0"&&{balance:{amount:s,usdValue:r}}}})}a(ye,"getTokensWithBalance");function le(t,e,o,n){if(t?.name===n[0]?.name)return n;let r=e.filter(i=>i.blockchain===t?.name);return We(ye(r,o))}a(le,"getSortedTokens");function V(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}a(V,"tokensAreEqual");function Ke(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:V(n,e)?o=s:o=n,o}a(Ke,"getDefaultToken");function Mt(t){return t.sort((e,o)=>+(o.state===X.CONNECTED)-+(e.state===X.CONNECTED)||+(o.state===X.DISCONNECTED||o.state===X.CONNECTING)-+(e.state===X.DISCONNECTED||e.state===X.CONNECTING))}a(Mt,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as be}from"@rango-dev/queue-manager-rango-preset";function Ae(t,e){return!t||!e||t.lte(F)||e.lte(F)?0:e.div(t).minus(1).multipliedBy(100)}a(Ae,"getOutputRatio");function Ee(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new L(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new L(1e3)))??!1}a(Ee,"outputRatioHasWarning");function je(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new L(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new L(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}a(je,"hasLimitError");function Ot(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(l=>{let u=l.fromAmountMinValue?new L(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new L(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?u?.gte(l.fromAmount)||c?.lte(l.fromAmount):u?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new L(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new L(e.fromAmountMaxValue):null,s=e.fromAmountRestrictionType==="EXCLUSIVE",r="",i="";return!s&&o&&o.gt(e.fromAmount)?(r=`Required: >= ${y(o)} ${e.from.symbol}`,i="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${y(o)} ${e.from.symbol}`,i="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${y(n)} ${e.from.symbol}`,i="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${y(n)} ${e.from.symbol}`,i="Decrease your swap amount"),{swap:e,fromAmountRangeError:r,recommendation:i}}a(Ot,"LimitErrorMessage");function Ut(t,e,o,n,s,r,i,l,u){return t!=="success"?{title:`${Y.t("Connect Wallet")}`,disabled:!0}:e.length==0?{title:`${Y.t("Connect Wallet")}`,disabled:!1}:o?{title:`${Y.t("Finding Best Route...")}`,disabled:!0}:!u||u==="0"?{title:`${Y.t("Enter an amount")}`,disabled:!0}:!n||!n.result?{title:`${Y.t("Swap")}`,disabled:!0}:s?{title:`${Y.t("Limit Error")}`,disabled:!0}:r?{title:`${Y.t("Price impact is too high!")}`,disabled:!0}:i?{title:`${Y.t("USD price is unknown, price impact might be high!")}`,disabled:!1,hasWarning:!0}:l?{title:`${Y.t("The route goes through Ethereum. Continue?")}`,disabled:!1,hasWarning:!0}:{title:`${Y.t("Swap")}`,disabled:!1}}a(Ut,"getSwapButtonState");function Dt(t,e,o,n){return!((!o||!n||o.lte(F)||n.lte(F))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}a(Dt,"canComputePriceImpact");function Ft(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}a(Ft,"requiredWallets");var pn=a((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function fn(t,e){let o=F;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=pn(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new L(s.amount).multipliedBy(r||0))}return o}a(fn,"getUsdFeeOfStep");function Re(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(fn(n,e)),F)||null}a(Re,"getTotalFeeInUsd");function Lt(t){return t?!t.lt(new L(30)):!1}a(Lt,"hasHighFee");function _t(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}a(_t,"getMinRequiredSlippage");function qt(t,e){return e?parseFloat(t)>=parseFloat(e):!0}a(qt,"hasProperSlippage");function Be(t,e,o,n,s,r,i,l,u,c,f,T){let k=s.reduce((p,m)=>(p[m.chain]=m.address,p),{}),h=[];n.forEach(p=>{let m=h.find(W=>W.blockchain===p.chain);m?m.addresses.push(p.address):h.push({blockchain:p.chain,addresses:[p.address]})});let S=!!f,C=q((f?.result?.swaps||[]).reduce((p,m)=>(p.push(m.from.blockchain,m.to.blockchain),m.internalSwaps&&Array.isArray(m.internalSwaps)&&m.internalSwaps.map(W=>{p.push(W.from.blockchain,W.to.blockchain)}),p),[]));return{amount:o.toString(),affiliateRef:l??void 0,affiliatePercent:u??void 0,affiliateWallets:c??void 0,checkPrerequisites:S,from:{address:t.address,blockchain:t.blockchain,symbol:t.symbol},to:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},connectedWallets:h,destination:T||void 0,selectedWallets:k,swapperGroups:r,swappersGroupsExclude:!0,slippage:i.toString(),...S&&{blockchains:C}}}a(Be,"createBestRouteRequestBody");function Qe(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}a(Qe,"getWalletsForNewSwap");function ie(t){return t?.result?.outputAmount||null}a(ie,"getRouteOutputAmount");function ne(t,e){return!t||!e?null:new L(e).div(new L(t)).minus(1).multipliedBy(100)}a(ne,"getPercentageChange");function $t(t,e){let o=ie(t),n=ie(e);if(!o||!n)return!1;let s=ne(o,n);return s?s.toNumber()<=-1:!0}a($t,"isOutputAmountChangedALot");function Ht(t,e){let o=t.validationStatus,n=ae(t);return e.sort((r,i)=>n.indexOf(r.chain)-n.indexOf(i.chain)).flatMap(r=>ht(r,o)||[]).filter(r=>!r.ok).map(r=>{let i=r.asset.symbol,l=y(new L(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=y(new L(r.requiredAmount.amount).shiftedBy(-r.requiredAmount.decimals),8),c="";return r.reason==="FEE"&&(c=" for network fee"),r.reason==="INPUT_ASSET"&&(c=" for swap"),r.reason==="FEE_AND_INPUT_ASSET"&&(c=" for input and network fee"),`Needs \u2248 ${u} ${i}${c}, but you have ${l} ${i} in your ${r.asset.blockchain} wallet.`})}a(Ht,"getBalanceWarnings");function Gt(t,e){return(t?new L(t):F).multipliedBy(e||0)}a(Gt,"calcOutputUsdValue");function Xe(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==be.NetworkChanged}a(Xe,"isNetworkStatusInWarningState");function Vt(t,e){let o="bellow button or",n=t.extraMessage,s=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Xe(e))switch(n=t.networkStatusExtraMessage||"",s=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case be.WaitingForConnectingWallet:n=n||"Waiting for connecting wallet";break;case be.WaitingForQueue:n=n||"Waiting for other running tasks to be finished";break;case be.WaitingForNetworkChange:n=n||"Waiting for changing wallet network";break}s=s||"",n=n||"";let i=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:s,long:i}}}a(Vt,"getSwapMessages");function Kt(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}a(Kt,"getLastConvertedTokenInFailedSwap");function jt(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}a(jt,"shouldRetrySwap");function Qt(t,e){return(w.getState().meta.blockchains.find(s=>s.name===t)?.addressPatterns||[]).filter(s=>new RegExp(s).test(e)).length>0}a(Qt,"isValidCustomDestination");function Xt(t,e,o,n,s){return t||!e&&!Ft(n).every(r=>s.map(i=>i.chain).includes(r))||!!e&&!o||!!e&&!!o&&!Ft(n).filter(r=>r!==e).every(r=>s.map(i=>i.chain).includes(r))}a(Xt,"confirmSwapDisabled");import{create as dn}from"zustand";import{subscribeWithSelector as gn}from"zustand/middleware";import{shallow as Sn}from"zustand/shallow";var R=Q(dn()(gn((t,e)=>({connectedWallets:[],selectedWallets:[],customDestination:"",connectWallet:o=>{let n=e().getWalletsDetails;t(s=>({connectedWallets:s.connectedWallets.filter(r=>r.walletType!==o[0].walletType).concat(o.map(r=>({balances:[],address:r.address,chain:r.chain,loading:!0,walletType:r.walletType,error:!1,explorerUrl:null})))})),n(o)},disconnectWallet:o=>{t(n=>({connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o),selectedWallets:n.selectedWallets.filter(s=>s.walletType!=o)}))},initSelectedWallets:()=>t(o=>{let n=ae(d.getState().bestRoute),s=o.connectedWallets,r=[];return n.forEach(i=>{if(!!!o.selectedWallets.find(u=>u.chain===i)){let u=s.find(c=>c.chain===i);u&&r.push({address:u.address,chain:u.chain,walletType:u.walletType})}}),{selectedWallets:o.selectedWallets.concat(r)}}),setSelectedWallet:o=>t(n=>({selectedWallets:n.selectedWallets.filter(s=>s.chain!==o.chain).concat({chain:o.chain,address:o.address,walletType:o.walletType})})),setCustomDestination:o=>t(()=>({customDestination:o})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n=!0)=>{let s=e().getWalletsDetails,{tokens:r}=w.getState().meta;t(i=>({connectedWallets:i.connectedWallets.map(l=>o.find(u=>Ce(u,l))?{...l,loading:!0}:l)}));try{let i=o.map(({address:c,chain:f})=>({address:c,blockchain:f})),u=(await oe().getWalletsDetails(i)).wallets;if(u)t(c=>({connectedWallets:c.connectedWallets.map(f=>{let T=o.find(h=>Ce(h,f)),k=u.find(h=>h.address===f.address&&h.blockChain===f.chain);return k?.failed&&T&&n&&s([T],!1),T&&k?vt(T,k,r):f})}));else throw new Error("Wallet not found")}catch{t(l=>({connectedWallets:l.connectedWallets.map(u=>o.find(c=>Ce(c,u))?Pt(u):u)}))}}}))));R.subscribe(t=>t.connectedWallets,t=>{d.setState(({sourceTokens:e,destinationTokens:o})=>{let n=ye(e,t),s=ye(o,t);return{sourceTokens:We(n),destinationTokens:We(s)}})},{equalityFn:Sn});var Yt=a(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ue=a((t,e)=>t?.usdPrice?new Z(e||F).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),d=Q(hn()(Tn(t=>({fromChain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Z(0),outputUsdValue:new Z(0),toChain:null,toToken:null,bestRoute:null,loading:!1,error:"",sourceTokens:[],destinationTokens:[],setBestRoute:e=>t(o=>{let n=null,s=F;return ge(o.inputAmount)?(e&&(n=e.result?.outputAmount?new Z(e.result?.outputAmount):null,s=Gt(e.result?.outputAmount,gt(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:s}}):{}}),resetRoute:()=>t(()=>({loading:!0,error:"",bestRoute:null,outputAmount:null,outputUsdValue:new Z(0)})),setFromChain:(e,o)=>{t(n=>{if(n.fromChain?.name===e?.name)return{};let s=w.getState().meta.tokens,r=R.getState().connectedWallets,i=le(e,s,r,n.destinationTokens),l=Ke(i,n.toToken);return{fromChain:e,sourceTokens:i,...o&&{fromToken:l},...!!n.inputAmount&&{inputUsdValue:ue(l,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:ue(e,o.inputAmount)}})),setToChain:(e,o)=>{t(n=>{if(n.toChain?.name===e?.name)return{};let s=w.getState().meta.tokens,r=R.getState().connectedWallets,i=le(e,s,r,n.destinationTokens);return{toChain:e,destinationTokens:i,...o&&{toToken:Ke(i,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Z(0),outputUsdValue:new Z(0),bestRoute:null,error:""},...!!o.fromToken&&{inputUsdValue:ue(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=w.getState().meta,s=R.getState().connectedWallets,r=e.status==="failed"?e.steps.findIndex(C=>C.status==="failed"):null;if(r===null||r<0)return;let i=e.steps[0],l=e.steps[e.steps.length-1],u=n.find(C=>C.name===i.fromBlockchain)||null,c=n.find(C=>C.name===l.toBlockchain)||null,f=o.find(C=>V(C,{blockchain:i.fromBlockchain,symbol:i.fromSymbol,address:i.fromSymbolAddress})),T=o.find(C=>V(C,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),k=le(u,o,s,[]),h=le(c,o,s,[]),S=e.inputAmount;t({fromChain:u,fromToken:f,inputAmount:S,outputAmount:null,inputUsdValue:ue(f||null,S),outputUsdValue:new Z(0),toChain:c,toToken:T,bestRoute:null,loading:!1,error:"",sourceTokens:k,destinationTokens:h})},switchFromAndTo:()=>t(e=>({fromChain:e.toChain,fromToken:e.toToken,toChain:e.fromChain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:ue(e.toToken,e.outputAmount?.toString()||"")}))})))),wn=a((t,e)=>{let o=null,n=a(()=>{let{fromToken:i,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:f,customSlippage:T,disabledLiquiditySources:k,affiliateRef:h,affiliatePercent:S,affiliateWallets:C}=e.getState();if(!i||!l||!ge(u))return;o?.abort(),o=new AbortController;let p=Be(i,l,u,[],[],k,T||f,h,S,C);t.getState().loading||c(),oe().getBestRoute(p,{signal:o.signal}).then(m=>{let{setBestRoute:W}=t.getState();W(m),t.setState({loading:!1}),o=null}).catch(m=>{m.code!=="ERR_CANCELED"&&t.setState({error:m.message,loading:!1})})},"fetchBestRoute"),s=mt(n,600),r=a(()=>{let{fromToken:i,toToken:l,inputAmount:u,inputUsdValue:c,resetRoute:f}=d.getState();if(!ge(u)||c?.eq(0))return t.setState({loading:!1});if(V(i,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new Z(u),outputUsdValue:c});t.getState().loading||f(),s()},"bestRouteParamsListener");return d.subscribe(i=>({fromChain:i.fromChain,fromToken:i.fromToken,toChain:i.toChain,toToken:i.toToken,inputAmount:i.inputAmount}),r,{equalityFn:(i,l)=>!He({store:"bestRoute",prevState:i,currentState:l})}),E.subscribe(i=>({slippage:i.slippage,customSlippage:i.customSlippage,disabledLiquiditySources:i.disabledLiquiditySources,infiniteApprove:i.infiniteApprove}),r,{equalityFn:(i,l)=>!He({store:"settings",prevState:i,currentState:l})}),{fetchBestRoute:n}},"bestRoute"),{fetchBestRoute:Jt}=wn(d,E);var g={home:"/",fromChain:"from-chain",fromToken:"from-token",toChain:"to-chain",toToken:"to-token",settings:"settings",liquiditySources:"/settings/liquidity-sources",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{create as kn}from"zustand";var O=Q(kn()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",toggleConnectWalletsButton:()=>t(e=>({connectWalletsButtonDisabled:!e.connectWalletsButtonDisabled})),setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function zt(){let t=Je(!0),[e,o]=bn(),n=yn(),s=Je(n.search),r=Je({}),i=d.use.fromChain(),l=d.use.toChain(),u=d.use.fromToken(),c=d.use.toToken(),f=d.use.setFromChain(),T=d.use.setFromToken(),k=d.use.setToChain(),h=d.use.setToToken(),S=d.use.inputAmount(),C=d.use.setInputAmount(),A=w.use.loadingStatus(),{blockchains:p,tokens:m}=w.use.meta(),W=O.use.setSelectedSwap();return Ye(()=>{let B={};Wn(s.current).forEach((v,I)=>{B[I]=v}),r.current=B;let x=n.pathname.split(g.swaps+"/")[1]||null;x&&W(x)},[]),Ye(()=>{if(!t.current){let B="",x="",v="",I="",N="";if(A!=="success")B=r.current["fromChain"],x=r.current["fromToken"],v=r.current["toChain"],I=r.current["toToken"],N=r.current["fromAmount"]||S;else{if(n.state==="redirect")return;B=i?.name||"",x=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),v=l?.name||"",I=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),N=S}o({...B&&{["fromChain"]:B},...x&&{["fromToken"]:x},...v&&{["toChain"]:v},...I&&{["toToken"]:I},...N&&{["fromAmount"]:N.toString()}},{replace:!0})}t.current=!1},[n.pathname,S,i,u,l,c]),Ye(()=>{if(A==="success"){let B=e.get("fromChain"),x=e.get("fromToken"),v=e.get("toChain"),I=e.get("toToken"),N=e.get("fromAmount"),$=p.find(P=>P.name===B),H=Le(m,x,$||null),D=p.find(P=>P.name===v),b=Le(m,I,D||null);$&&(f($),H&&T(H)),D&&(k(D),b&&h(b)),N&&C(N)}},[A]),null}a(zt,"UpdateUrl");import{useWallets as xn}from"@rango-dev/wallets-react";import{isEvmBlockchain as vn}from"rango-types";function Zt({children:t,...e}){let o=Rn(),n=o?An:En,{blockchains:s}=w.use.meta(),{canSwitchNetworkTo:r}=xn(),i=s.filter(vn);return Bn({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:i,canSwitchNetworkTo:r}),xe.createElement(xe.Fragment,null,xe.createElement(n,null,t),o&&xe.createElement(zt,null))}a(Zt,"AppRouter");import Me,{useEffect as Fe}from"react";import{useNavigate as Qr}from"react-router-dom";import{HeaderLayout as Xr}from"@rango-dev/ui";import{useWallets as Yr}from"@rango-dev/wallets-react";import K from"react";import{useRoutes as Kr}from"react-router-dom";import _,{useEffect as Dn,useState as so}from"react";import{useNavigate as Ln}from"react-router-dom";import{useWallets as _n}from"@rango-dev/wallets-react";import{i18n as ve}from"@lingui/core";import{useInRouterContext as Pn,useNavigate as In}from"react-router-dom";function U(){let t=Pn(),e=In();return g,{navigateBackFrom:a(n=>{if(n===g.swapDetails)return e("/"+g.swaps,{replace:!0});!t||window.history.state&&window.history.state.idx>0?e(-1):[g.fromChain,g.fromToken,g.toChain,g.toToken,g.settings,g.wallets,g.swaps,g.confirmSwap].includes(n)?e(g.home,{replace:!0}):n===g.liquiditySources&&e("/"+g.settings,{replace:!0})},"navigateBackFrom")}}a(U,"useNavigateBack");import{Divider as ao,ConfirmSwap as qn,LoadingFailedAlert as $n,HighSlippageWarning as Hn,PercentageChange as Gn,RoutesOverview as Vn,TokenPreview as io}from"@rango-dev/ui";import{useManager as Kn}from"@rango-dev/queue-manager-react";import{useEffect as Mn,useRef as ze,useState as Ze}from"react";import et from"bignumber.js";import{calculatePendingSwap as eo}from"@rango-dev/queue-manager-rango-preset";function oo(){let t=d.use.fromToken(),e=d.use.toToken(),o=d.use.inputAmount(),n=d.use.bestRoute(),s=d.use.setBestRoute(),r=d.use.inputUsdValue(),i=E.use.affiliateRef(),l=E.use.affiliatePercent(),u=E.use.affiliateWallets(),c=R.use.connectedWallets(),f=R.use.customDestination(),T=R.use.selectedWallets(),k=w.use.meta(),h=E.use.customSlippage(),S=E.use.slippage(),C=E.use.disabledLiquiditySources(),A=h||S,p=ze(!1),m=ze(null),W=ze(null),[B,x]=Ze(!1),[v,I]=Ze([]),[N,$]=Ze([]);return Mn(()=>()=>W.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:B,warnings:N,errors:v,confirmSwap:a(async()=>{if(p.current){let b={slippage:A.toString(),disabledSwappersGroups:C};return v.length>0&&I([]),N.length>0&&$([]),p.current=!1,m.current?eo(o.toString(),m.current,Qe(T),b,!1,k):void 0}W.current=new AbortController,x(!0);let D=Be(t,e,o,c,T,C,A,i,l,u,n,f);try{let b=await oe().getBestRoute(D,{signal:W.current?.signal});if(W.current=null,x(!1),!b.result||!new et(b.requestAmount).isEqualTo(new et(o||"-1"))){I(G=>G.concat({type:0}));return}let P={errors:[],warnings:[]};if(St(n,b)){s(b);let G=new et(b.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),fe=Ae(r,G);Ee(r,fe)?P.errors.push({type:1}):$t(n,b)?P.warnings.push({type:3,newOutputAmount:y(ie(b)),percentageChange:y(ne(ie(n),ie(b)),null,2)}):$e(n,b)?P.warnings.push({type:2}):_e(n,b)?P.warnings.push({type:0}):qe(n,b)&&P.warnings.push({type:1})}let ee=Ht(b,T);ee.length===0||P.errors.push({type:4,messages:ee});let me=_t(n);qt(A.toString(),me)||P.errors.push({type:3,minRequiredSlippage:me});let pe=P.errors.length===0,te=P.warnings.length===0;if((pe||!pe&&p.current)&&(te||!te&&p.current)){let G={slippage:A.toString(),disabledSwappersGroups:C};return eo(o.toString(),b,Qe(T),G,!1,k)}else p.current||(p.current=!0,I(P.errors),$(P.warnings),m.current=b);return}catch(b){if(b?.code==="ERR_CANCELED")return;let P=b?.response?.status;x(!1),I([{type:2,status:P}]);return}},"confirmSwap")}}a(oo,"useConfirmSwap");import no from"react";import{BalanceErrors as Fn,MinRequiredSlippage as On}from"@rango-dev/ui";import{useNavigate as Un}from"react-router-dom";function tt(t){let e=Un();return t.flatMap(o=>{switch(o.type){case 0:return"No routes found. Please try again later.";case 2:return`Failed to confirm swap ${o.status?`'status': ${o.status})`:""}, please try again.`;case 1:return"Route updated and price impact is too high, try again later!";case 3:return no.createElement(On,{minRequiredSlippage:o.minRequiredSlippage,changeSlippage:()=>e("/"+g.settings)});case 4:return no.createElement(Fn,{messages:o.messages});default:return[]}})}a(tt,"ConfirmSwapErrors");function ro(t){return t.flatMap(e=>{switch(e.type){case 0:return"Route has been updated.";case 3:return`Output amount changed to ${e.newOutputAmount} (${e.percentageChange}% change).`;case 1:return"Route swappers has been updated.";case 2:return"Route internal coins has been updated.";default:return[]}})}a(ro,"ConfirmSwapWarnings");function lo({customDestinationEnabled:t}){let e=Ln(),{navigateBackFrom:o}=U(),n=d.use.bestRoute(),s=d.use.loading(),r=d.use.error(),i=O.use.setSelectedSwap(),{blockchains:l,tokens:u}=w.use.meta(),c=w.use.loadingStatus(),f=R.use.connectedWallets(),T=R.use.selectedWallets(),k=R.use.customDestination(),h=R.use.setCustomDestination(),S=R.use.initSelectedWallets(),C=R.use.setSelectedWallet(),A=E.use.slippage(),p=E.use.customSlippage(),m=d.use.inputUsdValue(),W=d.use.outputUsdValue(),B=d.use.setInputAmount(),[x,v]=so(""),I=kt(s,!!r),[N,$]=so(""),{manager:H}=Kn(),{loading:D,errors:b,warnings:P,confirmSwap:ce}=oo(),ee=p||A,re=!b.find(M=>M.type===3),{getWalletInfo:me,connect:pe}=_n(),te=n?.result?.swaps[0],G=n?.result?.swaps[n?.result?.swaps.length-1],fe=y(te?.fromAmount,4,6),ut=y(G?.toAmount,4,6);Dn(()=>{S(),k&&h("")},[]);let qo=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,ct=!!n?.result?.swaps.find(M=>M.from.blockchain===qo),de=ke(f,T,me,ct?"":N),$o=a(M=>{let Ue=M;Ve(de).forEach(Go=>pe?.(Go,Ue))},"handleConnectChain"),Ho=Re(n,u),Oe=!m||!W||!W.gt(0)?null:ne(m.toNumber(),W.toNumber());return _.createElement(qn,{requiredWallets:ae(n),selectableWallets:de,setCustomDestination:h,customDestination:k,customDestinationEnabled:t,isValidCustomDestination:Qt,checkedDestination:!!N,setDestinationChain:$,onBack:o.bind(null,g.confirmSwap),onConfirm:async()=>{ce?.().then(async M=>{if(M)try{await H?.create("swap",{swapDetails:M},{id:M.requestId}),i(M.requestId),e("/"+g.swaps+`/${M.requestId}`,{replace:!0}),setTimeout(()=>{B("")},0)}catch(Ue){v("Error: "+Ue?.message)}})},isWalletRequired:ct,onChange:M=>C(M),confirmDisabled:c!=="success"||Xt(s,N,k,n,de),handleConnectChain:M=>$o(M),isExperimentalChain:M=>Ve(de).length>0?Nt(l,M):!1,previewInputs:_.createElement(_.Fragment,null,_.createElement(io,{chain:{displayName:te?.from.blockchain||"",logo:te?.from.blockchainLogo||""},token:{symbol:te?.from.symbol||"",image:te?.from.logo||""},usdValue:m?y(m):null,amount:fe,label:ve.t("From"),loadingStatus:c!=="success"?c:I}),_.createElement(ao,{size:12}),_.createElement(io,{chain:{displayName:G?.to.blockchain||"",logo:G?.to.blockchainLogo||""},token:{symbol:G?.to.symbol||"",image:G?.to.logo||""},usdValue:W?y(W):null,amount:ut,label:ve.t("To"),loadingStatus:c!=="success"?c:I,percentageChange:Oe?_.createElement(Gn,{percentageChange:y(Oe,0,2),showPercentageChange:!!Oe?.lt(0)}):null})),previewRoutes:_.createElement(Vn,{routes:n,totalFee:y(Ho,0,2)}),loading:D,errors:x?[x,...tt(b)]:tt(b),warnings:ro(P),extraMessages:_.createElement(_.Fragment,null,c==="failed"&&_.createElement($n,null),c==="failed"&&re&&_.createElement(ao,null),_.createElement(Hn,{selectedSlippage:ee,highSlippage:ee>=bt,changeSlippage:()=>e("/"+g.settings)})),confirmButtonTitle:P.length>0||b.length>0?`${ve.t("Proceed anyway!")}`:`${ve.t("Confirm swap!")}`})}a(lo,"ConfirmSwapPage");import{History as jn}from"@rango-dev/ui";import{useManager as Qn}from"@rango-dev/queue-manager-react";import Xn from"react";import{useNavigate as Yn}from"react-router-dom";var Pe=a(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let s=o.list.getStorage();s?.swapDetails&&e.push({id:n,swap:s?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import uo from"dayjs";var co=a(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=uo();return t.forEach(n=>{let s=uo(Number(n.creationTime));o.isSame(s,"day")?e.get("today")?.swaps.push(n):o.isSame(s,"week")?e.get("week")?.swaps.push(n):o.isSame(s,"month")?e.get("month")?.swaps.push(n):o.isSame(s,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");function mo(){let t=O.use.setSelectedSwap(),e=Yn(),{navigateBackFrom:o}=U(),{manager:n,state:s}=Qn(),r=Pe(n).map(({swap:l})=>l),i=!s.loadedFromPersistor;return Xn.createElement(jn,{list:r,groupBy:co,loading:i,onSwapClick:l=>{t(l),e(`${l}`,{replace:!0})},onBack:o.bind(null,g.swaps)})}a(mo,"HistoryPage");import go,{useEffect as ir}from"react";import{useNavigate as lr}from"react-router-dom";import{HomePanel as ur}from"@rango-dev/ui";import Ie,{useEffect as Jn,useRef as zn,useState as Zn}from"react";import{useInRouterContext as er,useSearchParams as tr}from"react-router-dom";import{styled as or,Button as nr,VerticalSwapIcon as rr}from"@rango-dev/ui";function sr({count:t}){let e=zn(!0),[o,n]=tr(),s=d.use.outputAmount();return Jn(()=>{if(e.current)e.current=!1;else{let r=o.get("fromChain"),i=o.get("fromToken"),l=o.get("toChain"),u=o.get("toToken");n({...l&&{["fromChain"]:l},...u&&{["fromToken"]:u},...r&&{["toChain"]:r},...i&&{["toToken"]:i},...s&&{["fromAmount"]:s.toString()}})}},[t]),null}a(sr,"SwithFromAndTo");var ar=or("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"});function po(){let t=d.use.switchFromAndTo(),e=er(),[o,n]=Zn(0);return Ie.createElement(ar,null,Ie.createElement(nr,{variant:"ghost",onClick:()=>{t(),n(s=>s+1)}},Ie.createElement(rr,{size:32}),e&&Ie.createElement(sr,{count:o})))}a(po,"SwithFromAndToButton");var fo={genericServerError:"Error connecting server, please reload the app and try again"};import So from"bignumber.js";function ho(){let t=lr(),e=d.use.fromChain(),o=d.use.fromToken(),n=d.use.toChain(),s=d.use.toToken(),r=d.use.setInputAmount(),i=d.use.inputUsdValue(),l=d.use.inputAmount(),u=d.use.outputAmount(),c=d.use.outputUsdValue(),f=d.use.bestRoute(),T=w.use.meta().tokens,k=d.use.loading(),h=d.use.error(),S=w.use.loadingStatus(),C=R.use.connectedWallets(),A=O.use.setCurrentPage(),p=S==="failed"?fo.genericServerError:h,m=!1,W=!!l&&(!!f||k||!!h),B=Ae(i,c),x=Ee(i,B),{fromAmountRangeError:v,recommendation:I,swap:N}=Ot(f),$=!Dt(f,l,i,c),H=Ut(S,C,k,f,je(f),x,$,m,l),D=Re(f,T),b=Lt(D),P=e&&o?y(se(C,e?.name,o?.symbol,o?.address)?.amount||"0",8):"0",ce=e&&o?y(se(C,e?.name,o?.symbol,o?.address)?.amount||"0",se(C,e?.name,o?.symbol,o?.address)?.decimal):"0";ir(()=>(A(g.home),A.bind(null,"")),[]);let ee=!i||!c||!c.gt(0)?null:ne(i.toNumber(),c.toNumber());return go.createElement(ur,{bestRoute:f,bestRouteError:h,fetchBestRoute:Jt,onClickHistory:()=>t(g.swaps),onClickSettings:()=>t(g.settings),setInputAmount:r,fromChain:e,toChain:n,fromToken:o,toToken:s,outputAmount:u?y(new So(u)):y(new So(0)),inputAmount:l,loadingStatus:S,showBestRoute:W,fetchingBestRoute:k,outputUsdValue:y(c),inputUsdValue:y(i),swapButtonTitle:H.title,swapButtonDisabled:H.disabled,swapButtonClick:()=>{H.title==="Connect Wallet"?t(g.wallets):t(g.confirmSwap,{replace:!0})},onChainClick:re=>{t(re)},onTokenClick:re=>{t(re)},highFee:b,errorMessage:p,hasLimitError:je,swap:N,fromAmountRangeError:v,recommendation:I,totalFeeInUsd:y(D,0,2),swithFromAndToComponent:go.createElement(po,null),connectedWallets:C,percentageChange:y(ee,0,2),showPercentageChange:!!ee?.lt(0),tokenBalanceReal:ce,tokenBalance:P,totalTime:ft(dt(f)),bestRouteData:Tt(f),swapFromAmount:y(N?.fromAmount||null)})}a(ho,"Home");import{LiquiditySourcesSelector as cr}from"@rango-dev/ui";import mr from"react";function To({supportedSwappers:t}){let e=w.use.meta().swappers,o=w.use.loadingStatus(),n=E.use.toggleLiquiditySource(),s=E.use.disabledLiquiditySources(),r=E.use.toggleAllLiquiditySources(),{navigateBackFrom:i}=U(),l=[];return q(e.map(u=>u.swapperGroup)).map(u=>e.find(c=>c.swapperGroup===u)).find(u=>{if(u)for(let c of u.types)l.push({title:u.swapperGroup,logo:u.logo,type:c,selected:!s.includes(u.swapperGroup)})}),mr.createElement(cr,{toggleAll:r,list:t?l.filter(u=>t.filter(c=>c===u.title).length>0):l,onChange:u=>n(u.title),onBack:i.bind(null,g.liquiditySources),loadingStatus:o})}a(To,"LiquiditySourcePage");import pr from"react";import{BlockchainSelector as fr}from"@rango-dev/ui";function ot(t){let{type:e,supportedChains:o}=t,n=o?w.use.meta().blockchains.filter(f=>o.includes(f.name)):w.use.meta().blockchains,s=w.use.loadingStatus(),r=d.use.fromChain(),i=d.use.toChain(),l=d.use.setFromChain(),u=d.use.setToChain(),{navigateBackFrom:c}=U();return pr.createElement(fr,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:i,loadingStatus:s,onChange:f=>{e==="from"?l(f,!0):u(f,!0),c(g.fromChain)},onBack:c.bind(null,g.fromChain)})}a(ot,"SelectChainPage");import dr from"react";import{TokenSelector as gr}from"@rango-dev/ui";function nt(t){let{navigateBackFrom:e}=U(),{type:o,supportedTokens:n}=t,s=d.use.sourceTokens(),r=d.use.destinationTokens(),i=n?s.filter(h=>n.some(S=>V(S,h))):s,l=n?r.filter(h=>n.some(S=>V(S,h))):r,u=d.use.fromToken(),c=d.use.toToken(),f=d.use.setFromToken(),T=d.use.setToToken(),k=w.use.loadingStatus();return dr.createElement(gr,{type:o==="from"?"Source":"Destination",list:o=="from"?i:l,selected:o==="from"?u:c,onChange:h=>{o==="from"?f(h):T(h),e(g.fromToken)},onBack:e.bind(null,g.fromToken),loadingStatus:k})}a(nt,"SelectTokenPage");import Sr from"react";import{Settings as hr}from"@rango-dev/ui";import{useNavigate as Tr}from"react-router-dom";function wo({supportedSwappers:t,singleTheme:e}){let o=E.use.slippage(),n=E.use.setSlippage(),s=E.use.disabledLiquiditySources(),r=E.use.customSlippage(),i=E.use.setCustomSlippage(),l=E.use.theme(),u=E.use.setTheme(),c=w.use.meta().swappers,f=Tr(),{navigateBackFrom:T}=U(),k=E.use.infiniteApprove(),h=E.use.toggleInfiniteApprove(),S=w.use.loadingStatus(),C=[];q(c.map(p=>p.swapperGroup)).map(p=>c.find(m=>m.swapperGroup===p)).find(p=>{if(p)for(let m of p.types)C.push({title:p.swapperGroup,logo:p.logo,type:m,selected:!s.includes(p.swapperGroup)})}),t&&C.filter(p=>t.filter(m=>m===p.title).length>0);let A=t?C.filter(p=>t.filter(m=>m===p.title).length>0):C;return Sr.createElement(hr,{slippages:Wt,selectedSlippage:o,onSlippageChange:p=>n(p),onLiquiditySourcesClick:()=>f(g.liquiditySources),onBack:T.bind(null,g.settings),liquiditySources:A,selectedLiquiditySources:A.filter(p=>p.selected),singleTheme:e,customSlippage:r,onCustomSlippageChange:i,minSlippage:Et,maxSlippage:At,selectedTheme:l,onThemeChange:u,infiniteApprove:k,toggleInfiniteApprove:h,loadingStatus:S})}a(wo,"SettingsPage");import{Alert as kr,SecondaryPage as Cr,styled as rt,Wallet as Wr,WalletState as Co}from"@rango-dev/ui";import J,{useEffect as Wo,useRef as yr,useState as br}from"react";import{WalletTypes as Ar,detectMobileScreens as Er}from"@rango-dev/wallets-shared";import{useWallets as Rr}from"@rango-dev/wallets-react";import{i18n as Br}from"@lingui/core";import{Spinner as xr}from"@rango-dev/ui";import{LoadingFailedAlert as vr}from"@rango-dev/ui";import{allProviders as wr}from"@rango-dev/provider-all";function Ne(t,e){let o=wr({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(s=>{if(typeof s=="string"){let r=o.find(i=>i.config.type===s);r?n.push(r):console.warn(`Couldn't find ${s} provider. Please make sure you are passing the correct name.`)}else n.push(s)}),n}return o}a(Ne,"matchAndGenerateProviders");function ko(t,e){return Ne(t,e).map(s=>s.config.type)}a(ko,"configWalletsToWalletName");var Pr=rt("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),Ir=rt("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),Nr=rt("div",{paddingBottom:"$16"}),Mr=Object.values(Ar);function yo({supportedWallets:t,multiWallets:e,config:o}){let{navigateBackFrom:n}=U(),{state:s,disconnect:r,getWalletInfo:i,connect:l}=Rr(),u=Bt(s,i,ko(t,{walletConnectProjectId:o?.walletConnectProjectId})||Mr),c=yr(),f=Er()?u.filter(p=>p.showOnMobile):u;f=Mt(f);let[T,k]=br(""),h=O.use.toggleConnectWalletsButton(),S=w.use.loadingStatus(),C=a(async p=>{let m=s(p);try{if(T&&k(""),m.connected)await r(p);else{if(!e&&u.find(W=>W.state===Co.CONNECTED))return;await l(p)}}catch(W){k("Error: "+W?.message)}},"onSelectWallet"),A=a(()=>{let p=c.current?.filter(m=>m.state===Co.CONNECTING)||[];for(let m of p)r(m.type)},"disconnectConnectingWallets");return Wo(()=>(h(),()=>{A(),h()}),[]),Wo(()=>{c.current=u},[u]),J.createElement(Cr,{title:Br.t("Select Wallet")||"",textField:!1,onBack:n.bind(null,g.wallets)},J.createElement(J.Fragment,null,T&&J.createElement(Nr,null,J.createElement(kr,{type:"error",title:T})),S==="loading"&&J.createElement(Ir,{className:"loader"},J.createElement(xr,{size:24})),S==="failed"&&J.createElement(vr,null),J.createElement(Pr,null,S==="success"&&f.map((p,m)=>J.createElement(Wr,{...p,key:`${m}-${p.type}`,onClick:C})))))}a(yo,"WalletsPage");import Eo from"react";import{useManager as Fr}from"@rango-dev/queue-manager-react";import{SwapHistory as Or,useCopyToClipboard as Ur,SwapDetailsPlaceholder as Dr}from"@rango-dev/ui";import{cancelSwap as Lr,PendingSwapNetworkStatus as _r}from"@rango-dev/queue-manager-rango-preset";import{useWallets as qr}from"@rango-dev/wallets-react";import{getCurrentBlockchainOfOrNull as $r,getCurrentStep as Hr,getRelatedWalletOrNull as Gr}from"@rango-dev/queue-manager-rango-preset";function bo(t){let e=Math.floor((new Date().getTime()-t)/1e3),o,n=Math.floor(e/31536e3);return n>=1?o="year":(n=Math.floor(e/2592e3),n>=1?o="month":(n=Math.floor(e/86400),n>=1?o="day":(n=Math.floor(e/3600),n>=1?o="hour":(n=Math.floor(e/60),n>=1?o="minute":(n=e,o="second"))))),(n>1||n===0)&&(o+="s"),n+" "+o}a(bo,"timeSince");function Ao(t){return t.finishTime?`${bo(parseInt(t.finishTime))} ago`:`${bo(parseInt(t.creationTime))} ago`}a(Ao,"getSwapDate");import{useNavigate as Vr}from"react-router-dom";function Ro(){let t=O.use.selectedSwapRequestId(),{canSwitchNetworkTo:e,connect:o,getWalletInfo:n}=qr(),s=d.use.retry(),r=Vr(),{navigateBackFrom:i}=U(),[l,u]=Ur(2e3),{manager:c,state:f}=Fr(),k=Pe(c).find(({swap:b})=>b.requestId===t),h=a(()=>{let b=c?.get(k?.id);b&&Lr(b)},"onCancel"),S=k?.swap,C=!f.loadedFromPersistor;if(!S)return Eo.createElement(Dr,{requestId:t||"",loading:C,onBack:i.bind(null,g.swapDetails)});let A=Hr(S),p=A?$r(S,A):null,m=A?Gr(S,A):null,W=A?.networkStatus,B=Vt(S,A),x=Xe(A),v=Ao(S),I=jt(S),N=a(b=>!!n(b)?.mobileWallet,"isMobileWallet"),H=W===_r.WaitingForNetworkChange&&!!p&&!!m?.walletType&&(N(m.walletType)||e(m.walletType,p))?o.bind(null,m.walletType,p):void 0,D=Kt(S);return Eo.createElement(Or,{onBack:i.bind(null,g.swapDetails),pendingSwap:wt(S),onCopy:u,isCopied:l,onCancel:h,shortMessage:B.shortMessage,detailedMessage:B.detailedMessage,currentStepBlockchain:p||"",switchNetwork:H,type:x?"warning":S.extraMessageSeverity||void 0,date:v,...I&&{onRetry:()=>{s(S),setTimeout(()=>{r(g.home)},0)}},...D&&{lastConvertedTokenInFailedSwap:{blockchain:D.blockchain,outputAmount:D.outputAmount||"",symbol:D.symbol}}})}a(Ro,"SwapDetailsPage");var jr=a(t=>t.replace("/",""),"getAbsolutePath");function Bo(t){let{config:e}=t;return Kr([{path:g.home,element:K.createElement(ho,null)},{path:g.fromChain,element:K.createElement(ot,{type:"from",supportedChains:e?.from?.blockchains})},{path:g.toChain,element:K.createElement(ot,{type:"to",supportedChains:e?.to?.blockchains})},{path:g.fromToken,element:K.createElement(nt,{type:"from",supportedTokens:e?.from?.tokens})},{path:g.toToken,element:K.createElement(nt,{type:"to",supportedTokens:e?.to?.tokens})},{path:g.settings,element:K.createElement(wo,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:g.liquiditySources,element:K.createElement(To,{supportedSwappers:e?.liquiditySources})},{path:g.swaps,element:K.createElement(mo,null)},{path:g.swapDetails,element:K.createElement(Ro,null)},{path:g.wallets,element:K.createElement(yo,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets,config:e})},{path:jr(g.confirmSwap),element:K.createElement(lo,{customDestinationEnabled:e?.customDestination})}])}a(Bo,"AppRoutes");function xo({config:t}){let e=Qr(),{connectedWallets:o,selectedWallets:n}=R(),{getWalletInfo:s}=Yr(),r=q(ke(o,n,s).map(B=>B.image)),{blockchains:i,tokens:l}=w.use.meta(),u=d.use.setFromChain(),c=d.use.setFromToken(),f=d.use.setToChain(),T=d.use.setToToken(),k=d.use.setInputAmount(),h=E.use.setAffiliateRef(),S=E.use.setAffiliatePercent(),C=E.use.setAffiliateWallets(),A=It(o),p=O.use.connectWalletsButtonDisabled(),m=w.use.loadingStatus(),W=R(Yt);return Fe(()=>{if(m==="success"){let B=i.find(v=>v.name===t?.to?.blockchain),x=l.find(v=>V(v,t?.to?.token||null));f(B||null),T(x||null)}},[t?.to?.token,t?.to?.blockchain,m]),Fe(()=>{k(t?.amount?.toString()||"")},[t?.amount]),Fe(()=>{if(m==="success"){let B=i.find(v=>v.name===t?.from?.blockchain),x=l.find(v=>V(v,t?.from?.token||null));u(B||null),c(x||null)}},[t?.from?.token,t?.from?.blockchain,m]),Fe(()=>{h(t?.affiliate?.ref??null),S(t?.affiliate?.percent??null),C(t?.affiliate?.wallets??null)},[t?.affiliate?.ref,t?.affiliate?.percent,t?.affiliate?.wallets]),Me.createElement(Me.Fragment,null,Me.createElement(Xr,{loadingStatus:m,connectedWalletsImages:r,connectedWallets:o,totalBalance:A,fetchingBalance:W,onClick:()=>{p||e(g.wallets)}},Me.createElement(Bo,{config:t})))}a(xo,"Layout");import{globalCss as Jr}from"@rango-dev/ui";var vo=a(t=>Jr({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"],body:{fontFamily:t}})(),"globalFont");import{createTheme as Po,generateRangeColors as j}from"@rango-dev/ui";import{useState as es,useEffect as Io,useLayoutEffect as ts}from"react";import{useEffect as zr,useRef as Zr}from"react";function st(t){let e=Zr();return zr(()=>{e.current=t},[t]),e.current}a(st,"usePrevious");function No({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=E.use.theme(),r=w.use.fetchMeta(),i=E.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",f=l?.background||"#fff",T=l?.foreground||"#000",k={...j("primary","dark",u?.primary),...j("error","dark",u?.error),...j("warning","dark",u?.warning),...j("success","dark",u?.success),...j("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},h={surface:l?.surface||"#fff",...j("primary","light",l?.primary||"#5FA425"),...j("error","light",l?.error||"#FF0000"),...j("warning","light",l?.warning||"#F5A623"),...j("success","light",l?.success||"#0070F3"),...j("neutral","light",c),background:f,foreground:T},S=Po({colors:h,radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${l?.neutral||"#f0f2f5"} ,0px 6px 10px 3px ${l?.neutral||"#f0f2f5"}, 0px 1px 18px 3px ${l?.neutral||"#f0f2f5"}`}}),C=Po({colors:{...h,...j("neutral","dark","#111111"),foreground:f,background:T,surface:"#000",...JSON.parse(JSON.stringify(k))},radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${u?.neutral||"#222"}, 0px 6px 10px 3px ${u?.neutral||"#222"}, 0px 1px 18px 3px ${u?.neutral||"#222"}`}}),[A,p]=es("light");Io(()=>{(async()=>await r())();let B=a(x=>{x.matches?p("dark"):p("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&p("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",B),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",B)}},[]),Io(()=>{n!=="auto"&&i(n)},[n]);let m=st(e);return ts(()=>{let{classList:B}=document.body;m&&B.remove(`font_${m.replace(/ /g,"")}`),B.add(`font_${e.replace(/ /g,"")}`)},[e]),{activeTheme:a(()=>s==="auto"?A==="dark"?C:S:s==="dark"?C:S,"getActiveTheme")()}}a(No,"useTheme");import os,{useMemo as ns}from"react";import{Provider as rs}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as ss,checkWaitingForNetworkChange as as}from"@rango-dev/queue-manager-rango-preset";import{useWallets as is}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ls}from"@rango-dev/wallets-shared";import{isEvmBlockchain as us}from"rango-types";function cs(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:i}=is(),l=ns(()=>ss({API_KEY:Se("API_KEY")}),[]),{blockchains:u}=w.use.meta(),f={blockchains:R.use.connectedWallets().map(m=>({accounts:[m],name:m.chain}))},T=a((m,W)=>{if(r(m,W))return s(m,W)},"switchNetwork"),k=a(m=>!!i(m).mobileWallet,"isMobileWallet"),h=u.filter(m=>m.enabled).reduce((m,W)=>(m[W.name]=W,m),{}),S=u.filter(us),C=a(m=>{let{supportedChains:W}=i(m);return we(W)},"getSupportedChainNames"),A=e(),p={meta:{blockchains:h,evmBasedChains:S,evmNetworkChainInfo:ls(S),getSupportedChainNames:C},getSigners:o,wallets:f,providers:A,switchNetwork:T,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:k};return os.createElement(rs,{queuesDefs:[l],context:p,onPersistedDataLoaded:m=>{as(m)},isPaused:!1},t.children)}a(cs,"QueueManager");var Mo=cs;import Oo from"react";import{Events as at,Provider as ps}from"@rango-dev/wallets-react";import{isEvmBlockchain as fs}from"rango-sdk";import{useEffect as ms}from"react";function Fo(t,e){let o=R.use.clearConnectedWallet(),n=Ne(void 0,e);return ms(()=>{o(),n=Ne(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t]),{providers:n}}a(Fo,"useWalletProviders");import{createContext as ds,useRef as gs}from"react";var it=ds({onConnectWallet:()=>{}});function lt(t){let{blockchains:e}=w.use.meta(),{providers:o}=Fo(t.providers,t?.options),n=R.use.disconnectWallet(),s=R.use.connectWallet(),r=gs(),i=e.filter(fs).map(u=>u.name),l=a((u,c,f,T,k)=>{if(c===at.ACCOUNTS)if(f){let h=we(k),S=xt(u,f,i,h);s(S)}else n(u);if(c===at.ACCOUNTS&&T.connected){let h=`${u}-${T.network}-${f}`;T.connected&&(r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===at.NETWORK&&T.network){let h=`${u}-${T.network}`;r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(u,c,f,T,k)},"onUpdateState");return Oo.createElement(it.Provider,{value:{onConnectWallet:u=>{r.current=u}}},Oo.createElement(ps,{allBlockChains:e,providers:o,onUpdateState:l,autoConnect:!0},t.children))}a(lt,"WidgetWallets");import{useEffect as Ss}from"react";import{useEvents as hs,MainEvents as Ts,StepEventType as Uo,StepExecutionEventStatus as ws,isApprovalTX as ks}from"@rango-dev/queue-manager-rango-preset";function Do(){let t=R.use.connectedWallets(),e=R.use.getWalletsDetails(),o=hs();return Ss(()=>(o.on(Ts.StepEvent,n=>{let{event:s,step:r}=n;if(s.type===Uo.TX_EXECUTION&&s.status===ws.TX_SENT&&!ks(r)||s.type===Uo.SUCCEEDED){let l=t.find(c=>c.chain===r?.fromBlockchain),u=r?.fromBlockchain!==r?.toBlockchain&&t.find(c=>c.chain===r?.toBlockchain);l&&e([l]),u&&e([u])}}),()=>o.all.clear()),[o,t.length]),null}a(Do,"WidgetEvents");var Rs=Ws("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function _o(t){let{config:e}=t;vo(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=No(e?.theme||{}),[n,s]=Lo(""),[r,i]=Lo(),l=O.use.currentPage(),u=bs(it);return Es(()=>{e?.apiKey&&Ct({API_KEY:e?.apiKey})},[e]),As(()=>{u.onConnectWallet(s)},[]),z.createElement(ys,{language:e?.language},z.createElement(Rs,{id:"swap-container",className:o},z.createElement(Mo,null,z.createElement(Do,null),z.createElement(Cs,{fixedHeight:l!==g.home},z.createElement(Zt,{lastConnectedWallet:n,disconnectedWallet:r,clearDisconnectedWallet:()=>{i(void 0)}},z.createElement(xo,{config:e}))))))}a(_o,"Main");function Bs(t){return t.config?.externalWallets?z.createElement(_o,{...t}):z.createElement(lt,{providers:t.config?.wallets,options:{walletConnectProjectId:t.config?.walletConnectProjectId}},z.createElement(_o,{...t}))}a(Bs,"Widget");import{useWallets as Vp}from"@rango-dev/wallets-react";import{useEvents as Xp,MainEvents as Yp,RouteEventType as rf,StepEventType as df,StepExecutionEventStatus as gf,StepExecutionBlockedEventStatus as Sf}from"@rango-dev/queue-manager-rango-preset";export{Yp as MainEvents,rf as RouteEventType,df as StepEventType,Sf as StepExecutionBlockedEventStatus,gf as StepExecutionEventStatus,Bs as Widget,lt as WidgetWallets,Vp as useWallets,Xp as useWidgetEvents};
1
+ var Vo=Object.defineProperty;var a=(t,e)=>Vo(t,"name",{value:e,configurable:!0});import{SwapContainer as Cs,styled as Ws,I18nManager as ys}from"@rango-dev/ui";import z,{useContext as bs,useEffect as As,useMemo as Es,useState as Lo}from"react";import xe,{Fragment as An}from"react";import{MemoryRouter as En,useInRouterContext as Rn}from"react-router";import{useQueueManager as Bn}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Ye,useRef as Je}from"react";import{createSearchParams as Wn,useLocation as yn,useSearchParams as bn}from"react-router-dom";import{create as hn}from"zustand";import Z from"bignumber.js";import Ko from"bignumber.js";var F=new Ko(0);import Ds from"bignumber.js";function q(t){return Array.from(new Set(t))}a(q,"removeDuplicateFrom");function De(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}a(De,"areEqual");function mt(t,e){let o;return n;function n(...s){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...s)},e)}}a(mt,"debounce");import{BigNumber as pt}from"bignumber.js";var ft=a(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),y=a((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new pt(t),s=1,r=1e3;for(let i=0;i<60;i++)if(new pt(n.toFixed(i,s)).eq(n)){r=i;break}if(n.gte(1e4))return n.toFormat(0,s);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,1))),s);if(n.gte(1))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,2))),s);if(n.gte(.01))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,4))),s);for(let i=e||4;i<17;i++)if(n.gte(Math.pow(10,-i)))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,i))),s);return n.isEqualTo(0)?"0":n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,8))),s)},"numberToString");var dt=a(t=>t?.result?.swaps?.reduce((e,o)=>e+o.estimatedTimeInSeconds,0)||0,"totalArrivalTime");var ge=a(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Le(t,e,o){return o&&t.find(n=>{let s=e?.split("--");return s?.length===1?n.symbol===s[0]&&n.address===null&&n.blockchain===o.name:n.symbol===s?.[0]&&n.address===s?.[1]&&n.blockchain===o.name})||null}a(Le,"searchParamsToToken");function gt(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}a(gt,"getBestRouteToTokenUsdPrice");function _e(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}a(_e,"isNumberOfSwapsChanged");function qe(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!De(o,n)}a(qe,"isRouteSwappersUpdated");function He(t,e){let o=t.result?.swaps.map(s=>s.to.symbol)||[],n=e.result?.swaps.map(s=>s.to.symbol)||[];return!De(o,n)}a(He,"isRouteInternalCoinsUpdated");function St(t,e){return _e(t,e)||qe(t,e)||He(t,e)}a(St,"isRouteChanged");function ht(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}a(ht,"getRequiredBalanceOfWallet");function $e(t){if(t.store==="bestRoute"){let{prevState:e,currentState:o}=t;return!!o.fromToken&&!!o.toToken&&(e.fromChain?.name!==o.fromChain?.name||e.toChain?.name!==o.toChain?.name||e.fromToken?.symbol!==o.fromToken?.symbol||e.toToken?.symbol!==o.toToken?.symbol||e.fromToken?.blockchain!==e.fromToken?.blockchain||e.toToken?.blockchain!==o.toToken?.blockchain||e.fromToken?.address!==o.fromToken?.address||e.toToken?.address!==o.toToken?.address||e.inputAmount!==o.inputAmount)}else if(t.store==="settings"){let{prevState:e,currentState:o}=t;return e.slippage!==o.slippage||e.customSlippage!==o.customSlippage||e.disabledLiquiditySources?.length!==o.disabledLiquiditySources?.length||e.infiniteApprove||o.infiniteApprove}return!1}a($e,"isRouteParametersChanged");function Tt(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:y(o.fromAmount,6,6),toAmount:y(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}a(Tt,"getFormatedBestRoute");function kt(t){let e=t.steps.map(o=>({...o,feeInUsd:y(o.feeInUsd,4,4),outputAmount:y(o.outputAmount,6,6),expectedOutputAmountHumanReadable:y(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:y(t.inputAmount,6,6),steps:e}}a(kt,"getFormatedPendingSwap");var wt=a((t,e)=>t?"loading":e?"failed":"success","getBestRouteStatus");var jo=a(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Q=jo;import{subscribeWithSelector as Tn}from"zustand/middleware";import{RangoClient as Xo}from"rango-sdk";var Qo="c6381a79-2817-4602-83bf-6a641a409e32",Ge={API_KEY:Qo};function Se(t){return Ge[t]}a(Se,"getConfig");function Ct(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ge=e,Ge}a(Ct,"initConfig");var he,oe=a(()=>he||(he=new Xo(Se("API_KEY")),he),"httpService");import{create as Jo}from"zustand";import{persist as zo,subscribeWithSelector as Zo}from"zustand/middleware";var Wt=[.5,1,3,5,8,13,20],yt=1,bt=5,At=100,Et=0;import{create as Yo}from"zustand";var k=Q(Yo()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await oe().getAllMetadata(),o=q(e.tokens.map(s=>s.blockchain)),n=e.blockchains.filter(s=>s.enabled&&o.includes(s.name));e.blockchains=n.sort((s,r)=>s.sort-r.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));var A=Q(Jo()(zo(Zo(t=>({slippage:yt,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),setAffiliatePercent:e=>t(()=>({affiliatePercent:e})),setAffiliateWallets:e=>t(()=>({affiliateWallets:e})),toggleAllLiquiditySources:()=>t(e=>{let{swappers:o}=k.getState().meta,n=q(o.map(s=>s.swapperGroup));return n.length===e.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:n}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings",skipHydration:!0})));import L from"bignumber.js";import{i18n as Y}from"@lingui/core";import{getCosmosExperimentalChainInfo as en,isEvmAddress as tn,KEPLR_COMPATIBLE_WALLETS as on,detectInstallLink as nn,WalletTypes as rn,Networks as Rt}from"@rango-dev/wallets-shared";import{WalletState as X}from"@rango-dev/ui";import{isCosmosBlockchain as sn}from"rango-types";import{readAccountAddress as an}from"@rango-dev/wallets-react";import Te from"bignumber.js";function ln(t){switch(!0){case t.connected:return X.CONNECTED;case t.connecting:return X.CONNECTING;case!t.installed:return X.NOT_INSTALLED;default:return X.DISCONNECTED}}a(ln,"getStateWallet");var un=[rn.LEAP];function Bt(t,e,o){return o.filter(n=>!un.includes(n)).map(n=>{let{name:s,img:r,installLink:i,showOnMobile:l}=e(n),u=ln(t(n));return{name:s,image:r,installLink:nn(i),state:u,type:n,showOnMobile:!(typeof l>"u")}})}a(Bt,"getlistWallet");function ke(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}a(ke,"walletAndSupportedChainsNames");function xt(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(f=>f.chain===l)){let f={address:u,chain:l,walletType:t};s.push(f)}}a(r,"addAccount");let i=n||[];return e.forEach(l=>{let{address:u,network:c}=an(l),f=i.length>0,T=i.includes(c),w=c===Rt.Unknown;if(f&&!T&&!w)return;let S=c===Rt.Unknown&&tn(u);if(w&&!S)return;o.includes(c)||S?i.filter(p=>o.includes(p)).forEach(p=>{r(p,u.toLowerCase())}):r(c,u)}),s}a(xt,"prepareAccountsForWalletStore");function ae(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain;e.includes(n)||e.push(n),e.includes(s)||e.push(s),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(r=>{let i=r.from.blockchain,l=r.to.blockchain;e.includes(i)||e.push(i),e.includes(l)||e.push(l)})}),e}a(ae,"getRequiredChains");function we(t,e,o,n){return t.map(r=>({address:r.address,walletType:r.walletType,chain:r.chain,image:o(r.walletType).img,name:o(r.walletType).name,selected:n===r.chain?!1:!!e.find(i=>i.chain===r.chain&&i.walletType===r.walletType)}))}a(we,"getSelectableWallets");function se(t,e,o,n){if(t.length===0)return null;let s=t.filter(r=>r.chain===e);return s.length===0?null:s.map(r=>r.balances?.find(i=>n!==null&&i.address===n||n===null&&i.address===n&&i.symbol===o)||null).filter(r=>r!==null).sort((r,i)=>parseFloat(i?.amount||"0")-parseFloat(r?.amount||"1")).find(()=>!0)||null}a(se,"getBalanceFromWallet");function Ce(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}a(Ce,"isAccountAndWalletMatched");function vt(t,e,o){let{address:n,blockChain:s,explorerUrl:r,balances:i=[]}=e;return{address:n,chain:s,loading:!1,error:!1,explorerUrl:r,walletType:t.walletType,balances:i?.map(l=>({chain:s,symbol:l.asset.symbol,ticker:l.asset.symbol,address:l.asset.address||null,rawAmount:l.amount.amount,decimal:l.amount.decimals,amount:new Te(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:mn(s,l.asset.symbol,l.asset.address,o)||null}))||[]}}a(vt,"makeBalanceFor");function Pt(t){return{...t,loading:!1,error:!0}}a(Pt,"resetConnectedWalletState");var It=a(t=>{let e=new Set,n=t?.reduce((r,i)=>r.findIndex(l=>l.address===i.address&&l.chain===i.chain)===-1?[...r,i]:r,[])?.map(r=>{let i={name:r.chain,accounts:[]};return e.has(r.address)||e.add(r.address),e.forEach(l=>{r.address===l&&i.accounts.push(r)}),i}),s=y(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new Te(r?.amount||F).multipliedBy(r?.usdPrice||0))?.reduce((r,i)=>r.plus(i),F)||F).toString();return cn(s)},"calculateWalletUsdValue");function cn(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}a(cn,"numberWithThousandSeperator");var We=a(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),mn=a((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice"),Nt=a((t,e)=>{let o=en(Object.entries(t).map(([,n])=>n).filter(sn));return o&&!!o[e]},"isExperimentalChain"),Ve=a(t=>{let e=new Set(t.map(o=>o.walletType));return on.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function ye(t,e){return t.map(({balance:o,...n})=>{let s=y(new Te(se(e,n.blockchain,n.symbol,n.address)?.amount||F)),r="";return n.usdPrice&&(r=y(new Te(se(e,n.blockchain,n.symbol,n.address)?.amount||F).multipliedBy(n.usdPrice))),{...n,...s!=="0"&&{balance:{amount:s,usdValue:r}}}})}a(ye,"getTokensWithBalance");function le(t,e,o,n){if(t?.name===n[0]?.name)return n;let r=e.filter(i=>i.blockchain===t?.name);return We(ye(r,o))}a(le,"getSortedTokens");function V(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}a(V,"tokensAreEqual");function Ke(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:V(n,e)?o=s:o=n,o}a(Ke,"getDefaultToken");function Mt(t){return t.sort((e,o)=>+(o.state===X.CONNECTED)-+(e.state===X.CONNECTED)||+(o.state===X.DISCONNECTED||o.state===X.CONNECTING)-+(e.state===X.DISCONNECTED||e.state===X.CONNECTING))}a(Mt,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as be}from"@rango-dev/queue-manager-rango-preset";function Ae(t,e){return!t||!e||t.lte(F)||e.lte(F)?0:e.div(t).minus(1).multipliedBy(100)}a(Ae,"getOutputRatio");function Ee(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new L(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new L(1e3)))??!1}a(Ee,"outputRatioHasWarning");function je(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new L(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new L(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}a(je,"hasLimitError");function Ot(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(l=>{let u=l.fromAmountMinValue?new L(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new L(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?u?.gte(l.fromAmount)||c?.lte(l.fromAmount):u?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new L(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new L(e.fromAmountMaxValue):null,s=e.fromAmountRestrictionType==="EXCLUSIVE",r="",i="";return!s&&o&&o.gt(e.fromAmount)?(r=`Required: >= ${y(o)} ${e.from.symbol}`,i="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${y(o)} ${e.from.symbol}`,i="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${y(n)} ${e.from.symbol}`,i="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${y(n)} ${e.from.symbol}`,i="Decrease your swap amount"),{swap:e,fromAmountRangeError:r,recommendation:i}}a(Ot,"LimitErrorMessage");function Ut(t,e,o,n,s,r,i,l,u){return t!=="success"?{title:`${Y.t("Connect Wallet")}`,disabled:!0}:e.length==0?{title:`${Y.t("Connect Wallet")}`,disabled:!1}:o?{title:`${Y.t("Finding Best Route...")}`,disabled:!0}:!u||u==="0"?{title:`${Y.t("Enter an amount")}`,disabled:!0}:!n||!n.result?{title:`${Y.t("Swap")}`,disabled:!0}:s?{title:`${Y.t("Limit Error")}`,disabled:!0}:r?{title:`${Y.t("Price impact is too high!")}`,disabled:!0}:i?{title:`${Y.t("USD price is unknown, price impact might be high!")}`,disabled:!1,hasWarning:!0}:l?{title:`${Y.t("The route goes through Ethereum. Continue?")}`,disabled:!1,hasWarning:!0}:{title:`${Y.t("Swap")}`,disabled:!1}}a(Ut,"getSwapButtonState");function Dt(t,e,o,n){return!((!o||!n||o.lte(F)||n.lte(F))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}a(Dt,"canComputePriceImpact");function Ft(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}a(Ft,"requiredWallets");var pn=a((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function fn(t,e){let o=F;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=pn(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new L(s.amount).multipliedBy(r||0))}return o}a(fn,"getUsdFeeOfStep");function Re(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(fn(n,e)),F)||null}a(Re,"getTotalFeeInUsd");function Lt(t){return t?!t.lt(new L(30)):!1}a(Lt,"hasHighFee");function _t(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}a(_t,"getMinRequiredSlippage");function qt(t,e){return e?parseFloat(t)>=parseFloat(e):!0}a(qt,"hasProperSlippage");function Be(t,e,o,n,s,r,i,l,u,c,f,T){let w=s.reduce((p,m)=>(p[m.chain]=m.address,p),{}),h=[];n.forEach(p=>{let m=h.find(W=>W.blockchain===p.chain);m?m.addresses.push(p.address):h.push({blockchain:p.chain,addresses:[p.address]})});let S=!!f,C=q((f?.result?.swaps||[]).reduce((p,m)=>(p.push(m.from.blockchain,m.to.blockchain),m.internalSwaps&&Array.isArray(m.internalSwaps)&&m.internalSwaps.map(W=>{p.push(W.from.blockchain,W.to.blockchain)}),p),[]));return{amount:o.toString(),affiliateRef:l??void 0,affiliatePercent:u??void 0,affiliateWallets:c??void 0,checkPrerequisites:S,from:{address:t.address,blockchain:t.blockchain,symbol:t.symbol},to:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},connectedWallets:h,destination:T||void 0,selectedWallets:w,swapperGroups:r,swappersGroupsExclude:!0,slippage:i.toString(),...S&&{blockchains:C}}}a(Be,"createBestRouteRequestBody");function Qe(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}a(Qe,"getWalletsForNewSwap");function ie(t){return t?.result?.outputAmount||null}a(ie,"getRouteOutputAmount");function ne(t,e){return!t||!e?null:new L(e).div(new L(t)).minus(1).multipliedBy(100)}a(ne,"getPercentageChange");function Ht(t,e){let o=ie(t),n=ie(e);if(!o||!n)return!1;let s=ne(o,n);return s?s.toNumber()<=-1:!0}a(Ht,"isOutputAmountChangedALot");function $t(t,e){let o=t.validationStatus,n=ae(t);return e.sort((r,i)=>n.indexOf(r.chain)-n.indexOf(i.chain)).flatMap(r=>ht(r,o)||[]).filter(r=>!r.ok).map(r=>{let i=r.asset.symbol,l=y(new L(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=y(new L(r.requiredAmount.amount).shiftedBy(-r.requiredAmount.decimals),8),c="";return r.reason==="FEE"&&(c=" for network fee"),r.reason==="INPUT_ASSET"&&(c=" for swap"),r.reason==="FEE_AND_INPUT_ASSET"&&(c=" for input and network fee"),`Needs \u2248 ${u} ${i}${c}, but you have ${l} ${i} in your ${r.asset.blockchain} wallet.`})}a($t,"getBalanceWarnings");function Gt(t,e){return(t?new L(t):F).multipliedBy(e||0)}a(Gt,"calcOutputUsdValue");function Xe(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==be.NetworkChanged}a(Xe,"isNetworkStatusInWarningState");function Vt(t,e){let o="bellow button or",n=t.extraMessage,s=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Xe(e))switch(n=t.networkStatusExtraMessage||"",s=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case be.WaitingForConnectingWallet:n=n||"Waiting for connecting wallet";break;case be.WaitingForQueue:n=n||"Waiting for other running tasks to be finished";break;case be.WaitingForNetworkChange:n=n||"Waiting for changing wallet network";break}s=s||"",n=n||"";let i=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:s,long:i}}}a(Vt,"getSwapMessages");function Kt(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}a(Kt,"getLastConvertedTokenInFailedSwap");function jt(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}a(jt,"shouldRetrySwap");function Qt(t,e){return(k.getState().meta.blockchains.find(s=>s.name===t)?.addressPatterns||[]).filter(s=>new RegExp(s).test(e)).length>0}a(Qt,"isValidCustomDestination");function Xt(t,e,o,n,s){return t||!e&&!Ft(n).every(r=>s.map(i=>i.chain).includes(r))||!!e&&!o||!!e&&!!o&&!Ft(n).filter(r=>r!==e).every(r=>s.map(i=>i.chain).includes(r))}a(Xt,"confirmSwapDisabled");import{create as dn}from"zustand";import{subscribeWithSelector as gn}from"zustand/middleware";import{shallow as Sn}from"zustand/shallow";var R=Q(dn()(gn((t,e)=>({connectedWallets:[],selectedWallets:[],customDestination:"",connectWallet:o=>{let n=e().getWalletsDetails;t(s=>({connectedWallets:s.connectedWallets.filter(r=>r.walletType!==o[0].walletType).concat(o.map(r=>({balances:[],address:r.address,chain:r.chain,loading:!0,walletType:r.walletType,error:!1,explorerUrl:null})))})),n(o)},disconnectWallet:o=>{t(n=>({connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o),selectedWallets:n.selectedWallets.filter(s=>s.walletType!=o)}))},initSelectedWallets:()=>t(o=>{let n=ae(d.getState().bestRoute),s=o.connectedWallets,r=[];return n.forEach(i=>{if(!!!o.selectedWallets.find(u=>u.chain===i)){let u=s.find(c=>c.chain===i);u&&r.push({address:u.address,chain:u.chain,walletType:u.walletType})}}),{selectedWallets:o.selectedWallets.concat(r)}}),setSelectedWallet:o=>t(n=>({selectedWallets:n.selectedWallets.filter(s=>s.chain!==o.chain).concat({chain:o.chain,address:o.address,walletType:o.walletType})})),setCustomDestination:o=>t(()=>({customDestination:o})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n=!0)=>{let s=e().getWalletsDetails,{tokens:r}=k.getState().meta;t(i=>({connectedWallets:i.connectedWallets.map(l=>o.find(u=>Ce(u,l))?{...l,loading:!0}:l)}));try{let i=o.map(({address:c,chain:f})=>({address:c,blockchain:f})),u=(await oe().getWalletsDetails(i)).wallets;if(u)t(c=>({connectedWallets:c.connectedWallets.map(f=>{let T=o.find(h=>Ce(h,f)),w=u.find(h=>h.address===f.address&&h.blockChain===f.chain);return w?.failed&&T&&n&&s([T],!1),T&&w?vt(T,w,r):f})}));else throw new Error("Wallet not found")}catch{t(l=>({connectedWallets:l.connectedWallets.map(u=>o.find(c=>Ce(c,u))?Pt(u):u)}))}}}))));R.subscribe(t=>t.connectedWallets,t=>{d.setState(({sourceTokens:e,destinationTokens:o})=>{let n=ye(e,t),s=ye(o,t);return{sourceTokens:We(n),destinationTokens:We(s)}})},{equalityFn:Sn});var Yt=a(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ue=a((t,e)=>t?.usdPrice?new Z(e||F).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),d=Q(hn()(Tn(t=>({fromChain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Z(0),outputUsdValue:new Z(0),toChain:null,toToken:null,bestRoute:null,loading:!1,error:"",sourceTokens:[],destinationTokens:[],setBestRoute:e=>t(o=>{let n=null,s=F;return ge(o.inputAmount)?(e&&(n=e.result?.outputAmount?new Z(e.result?.outputAmount):null,s=Gt(e.result?.outputAmount,gt(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:s}}):{}}),resetRoute:()=>t(()=>({loading:!0,error:"",bestRoute:null,outputAmount:null,outputUsdValue:new Z(0)})),setFromChain:(e,o)=>{t(n=>{if(n.fromChain?.name===e?.name)return{};let s=k.getState().meta.tokens,r=R.getState().connectedWallets,i=le(e,s,r,n.destinationTokens),l=Ke(i,n.toToken);return{fromChain:e,sourceTokens:i,...o&&{fromToken:l},...!!n.inputAmount&&{inputUsdValue:ue(l,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:ue(e,o.inputAmount)}})),setToChain:(e,o)=>{t(n=>{if(n.toChain?.name===e?.name)return{};let s=k.getState().meta.tokens,r=R.getState().connectedWallets,i=le(e,s,r,n.destinationTokens);return{toChain:e,destinationTokens:i,...o&&{toToken:Ke(i,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Z(0),outputUsdValue:new Z(0),bestRoute:null,error:""},...!!o.fromToken&&{inputUsdValue:ue(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=k.getState().meta,s=R.getState().connectedWallets,r=e.status==="failed"?e.steps.findIndex(C=>C.status==="failed"):null;if(r===null||r<0)return;let i=e.steps[0],l=e.steps[e.steps.length-1],u=n.find(C=>C.name===i.fromBlockchain)||null,c=n.find(C=>C.name===l.toBlockchain)||null,f=o.find(C=>V(C,{blockchain:i.fromBlockchain,symbol:i.fromSymbol,address:i.fromSymbolAddress})),T=o.find(C=>V(C,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),w=le(u,o,s,[]),h=le(c,o,s,[]),S=e.inputAmount;t({fromChain:u,fromToken:f,inputAmount:S,outputAmount:null,inputUsdValue:ue(f||null,S),outputUsdValue:new Z(0),toChain:c,toToken:T,bestRoute:null,loading:!1,error:"",sourceTokens:w,destinationTokens:h})},switchFromAndTo:()=>t(e=>({fromChain:e.toChain,fromToken:e.toToken,toChain:e.fromChain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:ue(e.toToken,e.outputAmount?.toString()||"")}))})))),kn=a((t,e)=>{let o=null,n=a(()=>{let{fromToken:i,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:f,customSlippage:T,disabledLiquiditySources:w,affiliateRef:h,affiliatePercent:S,affiliateWallets:C}=e.getState();if(!i||!l||!ge(u))return;o?.abort(),o=new AbortController;let p=Be(i,l,u,[],[],w,T||f,h,S,C);t.getState().loading||c(),oe().getBestRoute(p,{signal:o.signal}).then(m=>{let{setBestRoute:W}=t.getState();W(m),t.setState({loading:!1}),o=null}).catch(m=>{m.code!=="ERR_CANCELED"&&t.setState({error:m.message,loading:!1})})},"fetchBestRoute"),s=mt(n,600),r=a(()=>{let{fromToken:i,toToken:l,inputAmount:u,inputUsdValue:c,resetRoute:f}=d.getState();if(!ge(u)||c?.eq(0))return t.setState({loading:!1});if(V(i,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new Z(u),outputUsdValue:c});t.getState().loading||f(),s()},"bestRouteParamsListener");return d.subscribe(i=>({fromChain:i.fromChain,fromToken:i.fromToken,toChain:i.toChain,toToken:i.toToken,inputAmount:i.inputAmount}),r,{equalityFn:(i,l)=>!$e({store:"bestRoute",prevState:i,currentState:l})}),A.subscribe(i=>({slippage:i.slippage,customSlippage:i.customSlippage,disabledLiquiditySources:i.disabledLiquiditySources,infiniteApprove:i.infiniteApprove}),r,{equalityFn:(i,l)=>!$e({store:"settings",prevState:i,currentState:l})}),{fetchBestRoute:n}},"bestRoute"),{fetchBestRoute:Jt}=kn(d,A);var g={home:"/",fromChain:"from-chain",fromToken:"from-token",toChain:"to-chain",toToken:"to-token",settings:"settings",liquiditySources:"/settings/liquidity-sources",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{create as wn}from"zustand";var O=Q(wn()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",toggleConnectWalletsButton:()=>t(e=>({connectWalletsButtonDisabled:!e.connectWalletsButtonDisabled})),setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function zt(){let t=Je(!0),[e,o]=bn(),n=yn(),s=Je(n.search),r=Je({}),i=d.use.fromChain(),l=d.use.toChain(),u=d.use.fromToken(),c=d.use.toToken(),f=d.use.setFromChain(),T=d.use.setFromToken(),w=d.use.setToChain(),h=d.use.setToToken(),S=d.use.inputAmount(),C=d.use.setInputAmount(),E=k.use.loadingStatus(),{blockchains:p,tokens:m}=k.use.meta(),W=O.use.setSelectedSwap();return Ye(()=>{let B={};Wn(s.current).forEach((v,I)=>{B[I]=v}),r.current=B;let x=n.pathname.split(g.swaps+"/")[1]||null;x&&W(x)},[]),Ye(()=>{if(!t.current){let B="",x="",v="",I="",N="";if(E!=="success")B=r.current["fromChain"],x=r.current["fromToken"],v=r.current["toChain"],I=r.current["toToken"],N=r.current["fromAmount"]||S;else{if(n.state==="redirect")return;B=i?.name||"",x=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),v=l?.name||"",I=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),N=S}o({...B&&{["fromChain"]:B},...x&&{["fromToken"]:x},...v&&{["toChain"]:v},...I&&{["toToken"]:I},...N&&{["fromAmount"]:N.toString()}},{replace:!0})}t.current=!1},[n.pathname,S,i,u,l,c]),Ye(()=>{if(E==="success"){let B=e.get("fromChain"),x=e.get("fromToken"),v=e.get("toChain"),I=e.get("toToken"),N=e.get("fromAmount"),H=p.find(P=>P.name===B),$=Le(m,x,H||null),D=p.find(P=>P.name===v),b=Le(m,I,D||null);H&&(f(H),$&&T($)),D&&(w(D),b&&h(b)),N&&C(N)}},[E]),null}a(zt,"UpdateUrl");import{useWallets as xn}from"@rango-dev/wallets-react";import{isEvmBlockchain as vn}from"rango-types";function Zt({children:t,...e}){let o=Rn(),n=o?An:En,{blockchains:s}=k.use.meta(),{canSwitchNetworkTo:r}=xn(),i=s.filter(vn);return Bn({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:i,canSwitchNetworkTo:r}),xe.createElement(xe.Fragment,null,xe.createElement(n,null,t),o&&xe.createElement(zt,null))}a(Zt,"AppRouter");import Me,{useEffect as Fe}from"react";import{useNavigate as Qr}from"react-router-dom";import{HeaderLayout as Xr}from"@rango-dev/ui";import{useWallets as Yr}from"@rango-dev/wallets-react";import K from"react";import{useRoutes as Kr}from"react-router-dom";import _,{useEffect as Dn,useState as so}from"react";import{useNavigate as Ln}from"react-router-dom";import{useWallets as _n}from"@rango-dev/wallets-react";import{i18n as ve}from"@lingui/core";import{useInRouterContext as Pn,useNavigate as In}from"react-router-dom";function U(){let t=Pn(),e=In();return g,{navigateBackFrom:a(n=>{if(n===g.swapDetails)return e("/"+g.swaps,{replace:!0});!t||window.history.state&&window.history.state.idx>0?e(-1):[g.fromChain,g.fromToken,g.toChain,g.toToken,g.settings,g.wallets,g.swaps,g.confirmSwap].includes(n)?e(g.home,{replace:!0}):n===g.liquiditySources&&e("/"+g.settings,{replace:!0})},"navigateBackFrom")}}a(U,"useNavigateBack");import{Divider as ao,ConfirmSwap as qn,LoadingFailedAlert as Hn,HighSlippageWarning as $n,PercentageChange as Gn,RoutesOverview as Vn,TokenPreview as io}from"@rango-dev/ui";import{useManager as Kn}from"@rango-dev/queue-manager-react";import{useEffect as Mn,useRef as ze,useState as Ze}from"react";import et from"bignumber.js";import{calculatePendingSwap as eo}from"@rango-dev/queue-manager-rango-preset";function oo(){let t=d.use.fromToken(),e=d.use.toToken(),o=d.use.inputAmount(),n=d.use.bestRoute(),s=d.use.setBestRoute(),r=d.use.inputUsdValue(),i=A.use.affiliateRef(),l=A.use.affiliatePercent(),u=A.use.affiliateWallets(),c=R.use.connectedWallets(),f=R.use.customDestination(),T=R.use.selectedWallets(),w=k.use.meta(),h=A.use.customSlippage(),S=A.use.slippage(),C=A.use.disabledLiquiditySources(),E=h||S,p=ze(!1),m=ze(null),W=ze(null),[B,x]=Ze(!1),[v,I]=Ze([]),[N,H]=Ze([]);return Mn(()=>()=>W.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:B,warnings:N,errors:v,confirmSwap:a(async()=>{if(p.current){let b={slippage:E.toString(),disabledSwappersGroups:C};return v.length>0&&I([]),N.length>0&&H([]),p.current=!1,m.current?eo(o.toString(),m.current,Qe(T),b,!1,w):void 0}W.current=new AbortController,x(!0);let D=Be(t,e,o,c,T,C,E,i,l,u,n,f);try{let b=await oe().getBestRoute(D,{signal:W.current?.signal});if(W.current=null,x(!1),!b.result||!new et(b.requestAmount).isEqualTo(new et(o||"-1"))){I(G=>G.concat({type:0}));return}let P={errors:[],warnings:[]};if(St(n,b)){s(b);let G=new et(b.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),fe=Ae(r,G);Ee(r,fe)?P.errors.push({type:1}):Ht(n,b)?P.warnings.push({type:3,newOutputAmount:y(ie(b)),percentageChange:y(ne(ie(n),ie(b)),null,2)}):He(n,b)?P.warnings.push({type:2}):_e(n,b)?P.warnings.push({type:0}):qe(n,b)&&P.warnings.push({type:1})}let ee=$t(b,T);ee.length===0||P.errors.push({type:4,messages:ee});let me=_t(n);qt(E.toString(),me)||P.errors.push({type:3,minRequiredSlippage:me});let pe=P.errors.length===0,te=P.warnings.length===0;if((pe||!pe&&p.current)&&(te||!te&&p.current)){let G={slippage:E.toString(),disabledSwappersGroups:C};return eo(o.toString(),b,Qe(T),G,!1,w)}else p.current||(p.current=!0,I(P.errors),H(P.warnings),m.current=b);return}catch(b){if(b?.code==="ERR_CANCELED")return;let P=b?.response?.status;x(!1),I([{type:2,status:P}]);return}},"confirmSwap")}}a(oo,"useConfirmSwap");import no from"react";import{BalanceErrors as Fn,MinRequiredSlippage as On}from"@rango-dev/ui";import{useNavigate as Un}from"react-router-dom";function tt(t){let e=Un();return t.flatMap(o=>{switch(o.type){case 0:return"No routes found. Please try again later.";case 2:return`Failed to confirm swap ${o.status?`'status': ${o.status})`:""}, please try again.`;case 1:return"Route updated and price impact is too high, try again later!";case 3:return no.createElement(On,{minRequiredSlippage:o.minRequiredSlippage,changeSlippage:()=>e("/"+g.settings)});case 4:return no.createElement(Fn,{messages:o.messages});default:return[]}})}a(tt,"ConfirmSwapErrors");function ro(t){return t.flatMap(e=>{switch(e.type){case 0:return"Route has been updated.";case 3:return`Output amount changed to ${e.newOutputAmount} (${e.percentageChange}% change).`;case 1:return"Route swappers has been updated.";case 2:return"Route internal coins has been updated.";default:return[]}})}a(ro,"ConfirmSwapWarnings");function lo({customDestinationEnabled:t}){let e=Ln(),{navigateBackFrom:o}=U(),n=d.use.bestRoute(),s=d.use.loading(),r=d.use.error(),i=O.use.setSelectedSwap(),{blockchains:l,tokens:u}=k.use.meta(),c=k.use.loadingStatus(),f=R.use.connectedWallets(),T=R.use.selectedWallets(),w=R.use.customDestination(),h=R.use.setCustomDestination(),S=R.use.initSelectedWallets(),C=R.use.setSelectedWallet(),E=A.use.slippage(),p=A.use.customSlippage(),m=d.use.inputUsdValue(),W=d.use.outputUsdValue(),B=d.use.setInputAmount(),[x,v]=so(""),I=wt(s,!!r),[N,H]=so(""),{manager:$}=Kn(),{loading:D,errors:b,warnings:P,confirmSwap:ce}=oo(),ee=p||E,re=!b.find(M=>M.type===3),{getWalletInfo:me,connect:pe}=_n(),te=n?.result?.swaps[0],G=n?.result?.swaps[n?.result?.swaps.length-1],fe=y(te?.fromAmount,4,6),ut=y(G?.toAmount,4,6);Dn(()=>{S(),w&&h("")},[]);let qo=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,ct=!!n?.result?.swaps.find(M=>M.from.blockchain===qo),de=we(f,T,me,ct?"":N),Ho=a(M=>{let Ue=M;Ve(de).forEach(Go=>pe?.(Go,Ue))},"handleConnectChain"),$o=Re(n,u),Oe=!m||!W||!W.gt(0)?null:ne(m.toNumber(),W.toNumber());return _.createElement(qn,{requiredWallets:ae(n),selectableWallets:de,setCustomDestination:h,customDestination:w,customDestinationEnabled:t,isValidCustomDestination:Qt,checkedDestination:!!N,setDestinationChain:H,onBack:o.bind(null,g.confirmSwap),onConfirm:async()=>{ce?.().then(async M=>{if(M)try{await $?.create("swap",{swapDetails:M},{id:M.requestId}),i(M.requestId),e("/"+g.swaps+`/${M.requestId}`,{replace:!0}),setTimeout(()=>{B("")},0)}catch(Ue){v("Error: "+Ue?.message)}})},isWalletRequired:ct,onChange:M=>C(M),confirmDisabled:c!=="success"||Xt(s,N,w,n,de),handleConnectChain:M=>Ho(M),isExperimentalChain:M=>Ve(de).length>0?Nt(l,M):!1,previewInputs:_.createElement(_.Fragment,null,_.createElement(io,{chain:{displayName:te?.from.blockchain||"",logo:te?.from.blockchainLogo||""},token:{symbol:te?.from.symbol||"",image:te?.from.logo||""},usdValue:m?y(m):null,amount:fe,label:ve.t("From"),loadingStatus:c!=="success"?c:I}),_.createElement(ao,{size:12}),_.createElement(io,{chain:{displayName:G?.to.blockchain||"",logo:G?.to.blockchainLogo||""},token:{symbol:G?.to.symbol||"",image:G?.to.logo||""},usdValue:W?y(W):null,amount:ut,label:ve.t("To"),loadingStatus:c!=="success"?c:I,percentageChange:Oe?_.createElement(Gn,{percentageChange:y(Oe,0,2),showPercentageChange:!!Oe?.lt(0)}):null})),previewRoutes:_.createElement(Vn,{routes:n,totalFee:y($o,0,2)}),loading:D,errors:x?[x,...tt(b)]:tt(b),warnings:ro(P),extraMessages:_.createElement(_.Fragment,null,c==="failed"&&_.createElement(Hn,null),c==="failed"&&re&&_.createElement(ao,null),_.createElement($n,{selectedSlippage:ee,highSlippage:ee>=bt,changeSlippage:()=>e("/"+g.settings)})),confirmButtonTitle:P.length>0||b.length>0?`${ve.t("Proceed anyway!")}`:`${ve.t("Confirm swap!")}`})}a(lo,"ConfirmSwapPage");import{History as jn}from"@rango-dev/ui";import{useManager as Qn}from"@rango-dev/queue-manager-react";import Xn from"react";import{useNavigate as Yn}from"react-router-dom";var Pe=a(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let s=o.list.getStorage();s?.swapDetails&&e.push({id:n,swap:s?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import uo from"dayjs";var co=a(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=uo();return t.forEach(n=>{let s=uo(Number(n.creationTime));o.isSame(s,"day")?e.get("today")?.swaps.push(n):o.isSame(s,"week")?e.get("week")?.swaps.push(n):o.isSame(s,"month")?e.get("month")?.swaps.push(n):o.isSame(s,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");function mo(){let t=O.use.setSelectedSwap(),e=Yn(),{navigateBackFrom:o}=U(),{manager:n,state:s}=Qn(),r=Pe(n).map(({swap:l})=>l),i=!s.loadedFromPersistor;return Xn.createElement(jn,{list:r,groupBy:co,loading:i,onSwapClick:l=>{t(l),e(`${l}`,{replace:!0})},onBack:o.bind(null,g.swaps)})}a(mo,"HistoryPage");import go,{useEffect as ir}from"react";import{useNavigate as lr}from"react-router-dom";import{HomePanel as ur}from"@rango-dev/ui";import Ie,{useEffect as Jn,useRef as zn,useState as Zn}from"react";import{useInRouterContext as er,useSearchParams as tr}from"react-router-dom";import{styled as or,Button as nr,VerticalSwapIcon as rr}from"@rango-dev/ui";function sr({count:t}){let e=zn(!0),[o,n]=tr(),s=d.use.outputAmount();return Jn(()=>{if(e.current)e.current=!1;else{let r=o.get("fromChain"),i=o.get("fromToken"),l=o.get("toChain"),u=o.get("toToken");n({...l&&{["fromChain"]:l},...u&&{["fromToken"]:u},...r&&{["toChain"]:r},...i&&{["toToken"]:i},...s&&{["fromAmount"]:s.toString()}})}},[t]),null}a(sr,"SwithFromAndTo");var ar=or("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"});function po(){let t=d.use.switchFromAndTo(),e=er(),[o,n]=Zn(0);return Ie.createElement(ar,null,Ie.createElement(nr,{variant:"ghost",onClick:()=>{t(),n(s=>s+1)}},Ie.createElement(rr,{size:32}),e&&Ie.createElement(sr,{count:o})))}a(po,"SwithFromAndToButton");var fo={genericServerError:"Error connecting server, please reload the app and try again"};import So from"bignumber.js";function ho(){let t=lr(),e=d.use.fromChain(),o=d.use.fromToken(),n=d.use.toChain(),s=d.use.toToken(),r=d.use.setInputAmount(),i=d.use.inputUsdValue(),l=d.use.inputAmount(),u=d.use.outputAmount(),c=d.use.outputUsdValue(),f=d.use.bestRoute(),T=k.use.meta().tokens,w=d.use.loading(),h=d.use.error(),S=k.use.loadingStatus(),C=R.use.connectedWallets(),E=O.use.setCurrentPage(),p=S==="failed"?fo.genericServerError:h,m=!1,W=!!l&&(!!f||w||!!h),B=Ae(i,c),x=Ee(i,B),{fromAmountRangeError:v,recommendation:I,swap:N}=Ot(f),H=!Dt(f,l,i,c),$=Ut(S,C,w,f,je(f),x,H,m,l),D=Re(f,T),b=Lt(D),P=e&&o?y(se(C,e?.name,o?.symbol,o?.address)?.amount||"0",8):"0",ce=e&&o?y(se(C,e?.name,o?.symbol,o?.address)?.amount||"0",se(C,e?.name,o?.symbol,o?.address)?.decimal):"0";ir(()=>(E(g.home),E.bind(null,"")),[]);let ee=!i||!c||!c.gt(0)?null:ne(i.toNumber(),c.toNumber());return go.createElement(ur,{bestRoute:f,bestRouteError:h,fetchBestRoute:Jt,onClickHistory:()=>t(g.swaps),onClickSettings:()=>t(g.settings),setInputAmount:r,fromChain:e,toChain:n,fromToken:o,toToken:s,outputAmount:u?y(new So(u)):y(new So(0)),inputAmount:l,loadingStatus:S,showBestRoute:W,fetchingBestRoute:w,outputUsdValue:y(c),inputUsdValue:y(i),swapButtonTitle:$.title,swapButtonDisabled:$.disabled,swapButtonClick:()=>{$.title==="Connect Wallet"?t(g.wallets):t(g.confirmSwap,{replace:!0})},onChainClick:re=>{t(re)},onTokenClick:re=>{t(re)},highFee:b,errorMessage:p,hasLimitError:je,swap:N,fromAmountRangeError:v,recommendation:I,totalFeeInUsd:y(D,0,2),swithFromAndToComponent:go.createElement(po,null),connectedWallets:C,percentageChange:y(ee,0,2),showPercentageChange:!!ee?.lt(0),tokenBalanceReal:ce,tokenBalance:P,totalTime:ft(dt(f)),bestRouteData:Tt(f),swapFromAmount:y(N?.fromAmount||null)})}a(ho,"Home");import{LiquiditySourcesSelector as cr}from"@rango-dev/ui";import mr from"react";function To({supportedSwappers:t}){let e=k.use.meta().swappers,o=k.use.loadingStatus(),n=A.use.toggleLiquiditySource(),s=A.use.disabledLiquiditySources(),r=A.use.toggleAllLiquiditySources(),{navigateBackFrom:i}=U(),l=[];return q(e.map(u=>u.swapperGroup)).map(u=>e.find(c=>c.swapperGroup===u)).find(u=>{if(u)for(let c of u.types)l.push({title:u.swapperGroup,logo:u.logo,type:c,selected:!s.includes(u.swapperGroup)})}),mr.createElement(cr,{toggleAll:r,list:t?l.filter(u=>t.filter(c=>c===u.title).length>0):l,onChange:u=>n(u.title),onBack:i.bind(null,g.liquiditySources),loadingStatus:o})}a(To,"LiquiditySourcePage");import pr from"react";import{BlockchainSelector as fr}from"@rango-dev/ui";function ot(t){let{type:e,supportedChains:o}=t,n=o?k.use.meta().blockchains.filter(f=>o.includes(f.name)):k.use.meta().blockchains,s=k.use.loadingStatus(),r=d.use.fromChain(),i=d.use.toChain(),l=d.use.setFromChain(),u=d.use.setToChain(),{navigateBackFrom:c}=U();return pr.createElement(fr,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:i,loadingStatus:s,onChange:f=>{e==="from"?l(f,!0):u(f,!0),c(g.fromChain)},onBack:c.bind(null,g.fromChain)})}a(ot,"SelectChainPage");import dr from"react";import{TokenSelector as gr}from"@rango-dev/ui";function nt(t){let{navigateBackFrom:e}=U(),{type:o,supportedTokens:n}=t,s=d.use.sourceTokens(),r=d.use.destinationTokens(),i=n?s.filter(h=>n.some(S=>V(S,h))):s,l=n?r.filter(h=>n.some(S=>V(S,h))):r,u=d.use.fromToken(),c=d.use.toToken(),f=d.use.setFromToken(),T=d.use.setToToken(),w=k.use.loadingStatus();return dr.createElement(gr,{type:o==="from"?"Source":"Destination",list:o=="from"?i:l,selected:o==="from"?u:c,onChange:h=>{o==="from"?f(h):T(h),e(g.fromToken)},onBack:e.bind(null,g.fromToken),loadingStatus:w})}a(nt,"SelectTokenPage");import Sr from"react";import{Settings as hr}from"@rango-dev/ui";import{useNavigate as Tr}from"react-router-dom";function ko({supportedSwappers:t,singleTheme:e}){let o=A.use.slippage(),n=A.use.setSlippage(),s=A.use.disabledLiquiditySources(),r=A.use.customSlippage(),i=A.use.setCustomSlippage(),l=A.use.theme(),u=A.use.setTheme(),c=k.use.meta().swappers,f=Tr(),{navigateBackFrom:T}=U(),w=A.use.infiniteApprove(),h=A.use.toggleInfiniteApprove(),S=k.use.loadingStatus(),C=[];q(c.map(p=>p.swapperGroup)).map(p=>c.find(m=>m.swapperGroup===p)).find(p=>{if(p)for(let m of p.types)C.push({title:p.swapperGroup,logo:p.logo,type:m,selected:!s.includes(p.swapperGroup)})}),t&&C.filter(p=>t.filter(m=>m===p.title).length>0);let E=t?C.filter(p=>t.filter(m=>m===p.title).length>0):C;return Sr.createElement(hr,{slippages:Wt,selectedSlippage:o,onSlippageChange:p=>n(p),onLiquiditySourcesClick:()=>f(g.liquiditySources),onBack:T.bind(null,g.settings),liquiditySources:E,selectedLiquiditySources:E.filter(p=>p.selected),singleTheme:e,customSlippage:r,onCustomSlippageChange:i,minSlippage:Et,maxSlippage:At,selectedTheme:l,onThemeChange:u,infiniteApprove:w,toggleInfiniteApprove:h,loadingStatus:S})}a(ko,"SettingsPage");import{Alert as wr,SecondaryPage as Cr,styled as rt,Wallet as Wr,WalletState as Co}from"@rango-dev/ui";import J,{useEffect as Wo,useRef as yr,useState as br}from"react";import{WalletTypes as Ar,detectMobileScreens as Er}from"@rango-dev/wallets-shared";import{useWallets as Rr}from"@rango-dev/wallets-react";import{i18n as Br}from"@lingui/core";import{Spinner as xr}from"@rango-dev/ui";import{LoadingFailedAlert as vr}from"@rango-dev/ui";import{allProviders as kr}from"@rango-dev/provider-all";function Ne(t,e){let o=kr({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(s=>{if(typeof s=="string"){let r=o.find(i=>i.config.type===s);r?n.push(r):console.warn(`Couldn't find ${s} provider. Please make sure you are passing the correct name.`)}else n.push(s)}),n}return o}a(Ne,"matchAndGenerateProviders");function wo(t,e){return Ne(t,e).map(s=>s.config.type)}a(wo,"configWalletsToWalletName");var Pr=rt("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),Ir=rt("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),Nr=rt("div",{paddingBottom:"$16"}),Mr=Object.values(Ar);function yo({supportedWallets:t,multiWallets:e,config:o}){let{navigateBackFrom:n}=U(),{state:s,disconnect:r,getWalletInfo:i,connect:l}=Rr(),u=Bt(s,i,wo(t,{walletConnectProjectId:o?.walletConnectProjectId})||Mr),c=yr(),f=Er()?u.filter(p=>p.showOnMobile):u;f=Mt(f);let[T,w]=br(""),h=O.use.toggleConnectWalletsButton(),S=k.use.loadingStatus(),C=a(async p=>{let m=s(p);try{if(T&&w(""),m.connected)await r(p);else{if(!e&&u.find(W=>W.state===Co.CONNECTED))return;await l(p)}}catch(W){w("Error: "+W?.message)}},"onSelectWallet"),E=a(()=>{let p=c.current?.filter(m=>m.state===Co.CONNECTING)||[];for(let m of p)r(m.type)},"disconnectConnectingWallets");return Wo(()=>(h(),()=>{E(),h()}),[]),Wo(()=>{c.current=u},[u]),J.createElement(Cr,{title:Br.t("Select Wallet")||"",textField:!1,onBack:n.bind(null,g.wallets)},J.createElement(J.Fragment,null,T&&J.createElement(Nr,null,J.createElement(wr,{type:"error",title:T})),S==="loading"&&J.createElement(Ir,{className:"loader"},J.createElement(xr,{size:24})),S==="failed"&&J.createElement(vr,null),J.createElement(Pr,null,S==="success"&&f.map((p,m)=>J.createElement(Wr,{...p,key:`${m}-${p.type}`,onClick:C})))))}a(yo,"WalletsPage");import Eo from"react";import{useManager as Fr}from"@rango-dev/queue-manager-react";import{SwapHistory as Or,useCopyToClipboard as Ur,SwapDetailsPlaceholder as Dr}from"@rango-dev/ui";import{cancelSwap as Lr,PendingSwapNetworkStatus as _r}from"@rango-dev/queue-manager-rango-preset";import{useWallets as qr}from"@rango-dev/wallets-react";import{getCurrentBlockchainOfOrNull as Hr,getCurrentStep as $r,getRelatedWalletOrNull as Gr}from"@rango-dev/queue-manager-rango-preset";function bo(t){let e=Math.floor((new Date().getTime()-t)/1e3),o,n=Math.floor(e/31536e3);return n>=1?o="year":(n=Math.floor(e/2592e3),n>=1?o="month":(n=Math.floor(e/86400),n>=1?o="day":(n=Math.floor(e/3600),n>=1?o="hour":(n=Math.floor(e/60),n>=1?o="minute":(n=e,o="second"))))),(n>1||n===0)&&(o+="s"),n+" "+o}a(bo,"timeSince");function Ao(t){return t.finishTime?`${bo(parseInt(t.finishTime))} ago`:`${bo(parseInt(t.creationTime))} ago`}a(Ao,"getSwapDate");import{useNavigate as Vr}from"react-router-dom";function Ro(){let t=O.use.selectedSwapRequestId(),{canSwitchNetworkTo:e,connect:o,getWalletInfo:n}=qr(),s=d.use.retry(),r=Vr(),{navigateBackFrom:i}=U(),[l,u]=Ur(2e3),{manager:c,state:f}=Fr(),w=Pe(c).find(({swap:b})=>b.requestId===t),h=a(()=>{let b=c?.get(w?.id);b&&Lr(b)},"onCancel"),S=w?.swap,C=!f.loadedFromPersistor;if(!S)return Eo.createElement(Dr,{requestId:t||"",loading:C,onBack:i.bind(null,g.swapDetails)});let E=$r(S),p=E?Hr(S,E):null,m=E?Gr(S,E):null,W=E?.networkStatus,B=Vt(S,E),x=Xe(E),v=Ao(S),I=jt(S),N=a(b=>!!n(b)?.mobileWallet,"isMobileWallet"),$=W===_r.WaitingForNetworkChange&&!!p&&!!m?.walletType&&(N(m.walletType)||e(m.walletType,p))?o.bind(null,m.walletType,p):void 0,D=Kt(S);return Eo.createElement(Or,{onBack:i.bind(null,g.swapDetails),pendingSwap:kt(S),onCopy:u,isCopied:l,onCancel:h,shortMessage:B.shortMessage,detailedMessage:B.detailedMessage,currentStepBlockchain:p||"",switchNetwork:$,type:x?"warning":S.extraMessageSeverity||void 0,date:v,...I&&{onRetry:()=>{s(S),setTimeout(()=>{r(g.home)},0)}},...D&&{lastConvertedTokenInFailedSwap:{blockchain:D.blockchain,outputAmount:D.outputAmount||"",symbol:D.symbol}}})}a(Ro,"SwapDetailsPage");var jr=a(t=>t.replace("/",""),"getAbsolutePath");function Bo(t){let{config:e}=t;return Kr([{path:g.home,element:K.createElement(ho,null)},{path:g.fromChain,element:K.createElement(ot,{type:"from",supportedChains:e?.from?.blockchains})},{path:g.toChain,element:K.createElement(ot,{type:"to",supportedChains:e?.to?.blockchains})},{path:g.fromToken,element:K.createElement(nt,{type:"from",supportedTokens:e?.from?.tokens})},{path:g.toToken,element:K.createElement(nt,{type:"to",supportedTokens:e?.to?.tokens})},{path:g.settings,element:K.createElement(ko,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:g.liquiditySources,element:K.createElement(To,{supportedSwappers:e?.liquiditySources})},{path:g.swaps,element:K.createElement(mo,null)},{path:g.swapDetails,element:K.createElement(Ro,null)},{path:g.wallets,element:K.createElement(yo,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets,config:e})},{path:jr(g.confirmSwap),element:K.createElement(lo,{customDestinationEnabled:e?.customDestination})}])}a(Bo,"AppRoutes");function xo({config:t}){let e=Qr(),{connectedWallets:o,selectedWallets:n}=R(),{getWalletInfo:s}=Yr(),r=q(we(o,n,s).map(B=>B.image)),{blockchains:i,tokens:l}=k.use.meta(),u=d.use.setFromChain(),c=d.use.setFromToken(),f=d.use.setToChain(),T=d.use.setToToken(),w=d.use.setInputAmount(),h=A.use.setAffiliateRef(),S=A.use.setAffiliatePercent(),C=A.use.setAffiliateWallets(),E=It(o),p=O.use.connectWalletsButtonDisabled(),m=k.use.loadingStatus(),W=R(Yt);return Fe(()=>{if(m==="success"){let B=i.find(v=>v.name===t?.to?.blockchain),x=l.find(v=>V(v,t?.to?.token||null));f(B||null),T(x||null)}},[t?.to?.token,t?.to?.blockchain,m]),Fe(()=>{w(t?.amount?.toString()||"")},[t?.amount]),Fe(()=>{if(m==="success"){let B=i.find(v=>v.name===t?.from?.blockchain),x=l.find(v=>V(v,t?.from?.token||null));u(B||null),c(x||null)}},[t?.from?.token,t?.from?.blockchain,m]),Fe(()=>{h(t?.affiliate?.ref??null),S(t?.affiliate?.percent??null),C(t?.affiliate?.wallets??null)},[t?.affiliate?.ref,t?.affiliate?.percent,t?.affiliate?.wallets]),Me.createElement(Me.Fragment,null,Me.createElement(Xr,{loadingStatus:m,connectedWalletsImages:r,connectedWallets:o,totalBalance:E,fetchingBalance:W,onClick:()=>{p||e(g.wallets)}},Me.createElement(Bo,{config:t})))}a(xo,"Layout");import{globalCss as Jr}from"@rango-dev/ui";var vo=a(t=>Jr({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"],body:{fontFamily:t}})(),"globalFont");import{createTheme as Po,generateRangeColors as j}from"@rango-dev/ui";import{useState as es,useEffect as Io,useLayoutEffect as ts}from"react";import{useEffect as zr,useRef as Zr}from"react";function st(t){let e=Zr();return zr(()=>{e.current=t},[t]),e.current}a(st,"usePrevious");function No({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=A.use.theme(),r=k.use.fetchMeta(),i=A.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",f=l?.background||"#fff",T=l?.foreground||"#000",w={...j("primary","dark",u?.primary),...j("error","dark",u?.error),...j("warning","dark",u?.warning),...j("success","dark",u?.success),...j("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},h={surface:l?.surface||"#fff",...j("primary","light",l?.primary||"#5FA425"),...j("error","light",l?.error||"#FF0000"),...j("warning","light",l?.warning||"#F5A623"),...j("success","light",l?.success||"#0070F3"),...j("neutral","light",c),background:f,foreground:T},S=Po({colors:h,radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${l?.neutral||"#f0f2f5"} ,0px 6px 10px 3px ${l?.neutral||"#f0f2f5"}, 0px 1px 18px 3px ${l?.neutral||"#f0f2f5"}`}}),C=Po({colors:{...h,...j("neutral","dark","#111111"),foreground:f,background:T,surface:"#000",...JSON.parse(JSON.stringify(w))},radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${u?.neutral||"#222"}, 0px 6px 10px 3px ${u?.neutral||"#222"}, 0px 1px 18px 3px ${u?.neutral||"#222"}`}}),[E,p]=es("light");Io(()=>{(async()=>await r())();let B=a(x=>{x.matches?p("dark"):p("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&p("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",B),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",B)}},[]),Io(()=>{n!=="auto"&&i(n)},[n]);let m=st(e);return ts(()=>{let{classList:B}=document.body;m&&B.remove(`font_${m.replace(/ /g,"")}`),B.add(`font_${e.replace(/ /g,"")}`)},[e]),{activeTheme:a(()=>s==="auto"?E==="dark"?C:S:s==="dark"?C:S,"getActiveTheme")()}}a(No,"useTheme");import os,{useMemo as ns}from"react";import{Provider as rs}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as ss,checkWaitingForNetworkChange as as}from"@rango-dev/queue-manager-rango-preset";import{useWallets as is}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ls}from"@rango-dev/wallets-shared";import{isEvmBlockchain as us}from"rango-types";function cs(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:i}=is(),l=ns(()=>ss({API_KEY:Se("API_KEY")}),[]),{blockchains:u}=k.use.meta(),f={blockchains:R.use.connectedWallets().map(m=>({accounts:[m],name:m.chain}))},T=a((m,W)=>{if(r(m,W))return s(m,W)},"switchNetwork"),w=a(m=>!!i(m).mobileWallet,"isMobileWallet"),h=u.filter(m=>m.enabled).reduce((m,W)=>(m[W.name]=W,m),{}),S=u.filter(us),C=a(m=>{let{supportedChains:W}=i(m);return ke(W)},"getSupportedChainNames"),E=e(),p={meta:{blockchains:h,evmBasedChains:S,evmNetworkChainInfo:ls(S),getSupportedChainNames:C},getSigners:o,wallets:f,providers:E,switchNetwork:T,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:w};return os.createElement(rs,{queuesDefs:[l],context:p,onPersistedDataLoaded:m=>{as(m)},isPaused:!1},t.children)}a(cs,"QueueManager");var Mo=cs;import Oo from"react";import{Events as at,Provider as ps}from"@rango-dev/wallets-react";import{isEvmBlockchain as fs}from"rango-sdk";import{useEffect as ms}from"react";function Fo(t,e){let o=R.use.clearConnectedWallet(),n=Ne(void 0,e);return ms(()=>{o(),n=Ne(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t]),{providers:n}}a(Fo,"useWalletProviders");import{createContext as ds,useRef as gs}from"react";var it=ds({onConnectWallet:()=>{}});function lt(t){let{blockchains:e}=k.use.meta(),{providers:o}=Fo(t.providers,t?.options),n=R.use.disconnectWallet(),s=R.use.connectWallet(),r=gs(),i=e.filter(fs).map(u=>u.name),l=a((u,c,f,T,w)=>{if(c===at.ACCOUNTS)if(f){let h=ke(w),S=xt(u,f,i,h);s(S)}else n(u);if(c===at.ACCOUNTS&&T.connected){let h=`${u}-${T.network}-${f}`;T.connected&&(r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===at.NETWORK&&T.network){let h=`${u}-${T.network}`;r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(u,c,f,T,w)},"onUpdateState");return Oo.createElement(it.Provider,{value:{onConnectWallet:u=>{r.current=u}}},Oo.createElement(ps,{allBlockChains:e,providers:o,onUpdateState:l,autoConnect:!0},t.children))}a(lt,"WidgetWallets");import{useEffect as Ss}from"react";import{useEvents as hs,MainEvents as Ts,StepEventType as Uo,StepExecutionEventStatus as ks,isApprovalTX as ws}from"@rango-dev/queue-manager-rango-preset";function Do(){let t=R.use.connectedWallets(),e=R.use.getWalletsDetails(),o=hs();return Ss(()=>(o.on(Ts.StepEvent,n=>{let{event:s,step:r}=n;if(s.type===Uo.TX_EXECUTION&&s.status===ks.TX_SENT&&!ws(r)||s.type===Uo.SUCCEEDED){let l=t.find(c=>c.chain===r?.fromBlockchain),u=r?.fromBlockchain!==r?.toBlockchain&&t.find(c=>c.chain===r?.toBlockchain);l&&e([l]),u&&e([u])}}),()=>o.all.clear()),[o,t.length]),null}a(Do,"WidgetEvents");var Rs=Ws("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function _o(t){let{config:e}=t;vo(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=No(e?.theme||{}),[n,s]=Lo(""),[r,i]=Lo(),l=O.use.currentPage(),u=bs(it);return Es(()=>{e?.apiKey&&Ct({API_KEY:e?.apiKey})},[e]),As(()=>{A.persist.rehydrate(),u.onConnectWallet(s)},[]),z.createElement(ys,{language:e?.language},z.createElement(Rs,{id:"swap-container",className:o},z.createElement(Mo,null,z.createElement(Do,null),z.createElement(Cs,{fixedHeight:l!==g.home},z.createElement(Zt,{lastConnectedWallet:n,disconnectedWallet:r,clearDisconnectedWallet:()=>{i(void 0)}},z.createElement(xo,{config:e}))))))}a(_o,"Main");function Bs(t){return t.config?.externalWallets?z.createElement(_o,{...t}):z.createElement(lt,{providers:t.config?.wallets,options:{walletConnectProjectId:t.config?.walletConnectProjectId}},z.createElement(_o,{...t}))}a(Bs,"Widget");import{useWallets as Kp}from"@rango-dev/wallets-react";import{useEvents as Yp,MainEvents as Jp,RouteEventType as sf,StepEventType as gf,StepExecutionEventStatus as Sf,StepExecutionBlockedEventStatus as hf}from"@rango-dev/queue-manager-rango-preset";export{Jp as MainEvents,sf as RouteEventType,gf as StepEventType,hf as StepExecutionBlockedEventStatus,Sf as StepExecutionEventStatus,Bs as Widget,lt as WidgetWallets,Kp as useWallets,Yp as useWidgetEvents};
2
2
  //# sourceMappingURL=index.js.map