@rango-dev/widget-embedded 0.27.4-next.2 → 0.27.4-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/useSwapInput.d.ts.map +1 -1
- package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
- package/dist/pages/Routes.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/hooks/useSwapInput.ts +11 -5
- package/src/hooks/useSyncStoresWithConfig.ts +3 -0
- package/src/pages/ConfirmSwapPage.tsx +3 -4
- package/src/pages/Routes.tsx +5 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var bf=Object.defineProperty;var i=(t,e)=>bf(t,"name",{value:e,configurable:!0});import{EventSeverity as fG,MainEvents as gG,RouteEventType as hG,StepEventType as yG,StepExecutionBlockedEventStatus as SG,StepExecutionEventStatus as CG,useEvents as TG}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as wG,useWallets as lr,Events as xG}from"@rango-dev/wallets-react";import{Networks as bG,WalletTypes as IG}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as AG}from"rango-types";import{UI_ID as If}from"@rango-dev/ui";var gn="c6381a79-2817-4602-83bf-6a641a409e32",Ga="https://api.rango.exchange",Va="https://explorer.rango.exchange",we={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...If};import{Events as xi,Provider as yg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Sg}from"rango-sdk";import Nn,{createContext as Cg,useEffect as Fl,useMemo as Tg,useRef as Ol}from"react";import{useEffect as zf}from"react";import{create as Ff}from"zustand";import{subscribeWithSelector as Of}from"zustand/middleware";import{RangoClient as $f}from"rango-sdk";import{WalletState as ut}from"@rango-dev/ui";import{readAccountAddress as Nf}from"@rango-dev/wallets-react";import{detectInstallLink as Wf,getCosmosExperimentalChainInfo as Mf,isEvmAddress as Lf,KEPLR_COMPATIBLE_WALLETS as Zw,Networks as Ya}from"@rango-dev/wallets-shared";import pi from"bignumber.js";import{isCosmosBlockchain as Bf}from"rango-types";import Ef from"bignumber.js";var Le=new Ef(0);import{WalletTypes as Af}from"@rango-dev/wallets-shared";var ja=[Af.LEAP];import{BigNumber as Ka}from"bignumber.js";var Eo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ka(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ka(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var hn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var ct=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ao=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function ci(t){switch(!0){case t.connected:return ut.CONNECTED;case t.connecting:return ut.CONNECTING;case!t.installed:return ut.NOT_INSTALLED;default:return ut.DISCONNECTED}}i(ci,"mapStatusToWalletState");function Za(t,e,o,n){return o.filter(r=>!ja.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(u=>u.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l,showOnMobile:p}=e(r),c=ci(t(r));return{title:s,image:a,link:Wf(l),state:c,type:r,showOnMobile:p}})}i(Za,"mapWalletTypesToWalletInfo");function Cn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Cn,"walletAndSupportedChainsNames");function Ja(t,e,o,n,r){let s=[];function a(p,c){if(!!!s.find(d=>d.chain===p)){let d={address:c,chain:p,walletType:t};s.push(d)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:c,network:u}=Nf(p),d=l.length>0,m=l.includes(u),f=u===Ya.Unknown;if(d&&!m&&!f)return;let S=u===Ya.Unknown&&Lf(c);if(f&&!S)return;o.includes(u)||S?r?a(u,c.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{a(k,c.toLowerCase())}):a(u,c)}),s}i(Ja,"prepareAccountsForWalletStore");function Gt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,s)=>{let a=r.from.blockchain,l=r.to.blockchain;if(n.add(a),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((c,u)=>{let d=c.from.blockchain,m=c.to.blockchain,f=s===o.swaps.length-1,g=u===p.length-1;(!f&&!g||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(l)}),Array.from(n)}i(Gt,"getQuoteWallets");function Tn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Tn,"isAccountAndWalletMatched");function Ra(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new pi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:Pf(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Ra,"makeBalanceFor");function el(t){return{...t,loading:!1,error:!0}}i(el,"resetConnectedWalletState");var tl=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=N(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new pi(s?.amount||Le).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),Le)||Le).toString();return _f(r)},"calculateWalletUsdValue");function _f(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(_f,"numberWithThousandSeparator");var Pf=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),kn=i((t,e)=>{let o=Mf(Object.entries(t).map(([,n])=>n).filter(Bf));return o&&o[e]?.experimental},"isExperimentalChain");function wn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(wn,"formatBalance");function ol(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(ol,"compareTokenBalance");function Be(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Be,"areTokensEqual");function nl(t){return t.sort((e,o)=>+(o.state===ut.CONNECTED)-+(e.state===ut.CONNECTED)||+(o.state===ut.DISCONNECTED||o.state===ut.CONNECTING)-+(e.state===ut.DISCONNECTED||e.state===ut.CONNECTING))}i(nl,"sortWalletsBasedOnConnectionState");function xn(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(xn,"getConciseAddress");function rl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(rl,"getAddress");function ui(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(ui,"createTokenHash");function vn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new pi(o?.usdPrice??Le).multipliedBy(o?.amount).toString():""},r=o?ui({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(vn,"makeTokensBalance");var il=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function sl(t){return t.map(e=>e.state).join("-")}i(sl,"hashWalletsState");var mi={API_KEY:gn};function St(t){return mi[t]||""}i(St,"getConfig");function al(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),mi=e,mi}i(al,"initConfig");var ll=20,pl=25,cl="Roboto",di="theme-widget",No=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Be(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Be(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),fi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),ul=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var bn,Lt=i(()=>bn||(bn=new $f(St("API_KEY"),St("BASE_URL")),bn),"httpService");var Df=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Bt=Df;var J=Bt(Ff()(Of((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:vn(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>Tn(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:c,chain:u})=>({address:c,blockchain:u})),p=(await Lt().getWalletsDetails(a)).wallets;if(p)t(c=>{let u=c.connectedWallets.map(m=>{let f=o.find(S=>Tn(S,m)),g=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return g?.failed&&f&&r&&s([f],n,!1),f&&g?{...m,explorerUrl:g.explorerUrl,balances:Ra(g,n),loading:!1}:m});return{loading:!1,balances:vn(u),connectedWallets:u}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(u=>o.find(d=>Tn(d,u))?el(u):u);return{loading:!1,balances:vn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=ui(o);return n[r]??null}}))));import{allProviders as Uf}from"@rango-dev/provider-all";function In(t,e){let o=Uf({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(In,"matchAndGenerateProviders");function ml(t,e){return In(t,e).map(r=>r.config.type)}i(ml,"configWalletsToWalletName");function dl(t,e){let o=J.use.clearConnectedWallet(),n=In(t,{walletConnectProjectId:e?.walletConnectProjectId});return zf(()=>{o(),n=In(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(dl,"useWalletProviders");import cg,{createContext as ug,useContext as mg,useEffect as dg,useRef as fg}from"react";import{create as lg}from"zustand";import{persist as pg}from"zustand/middleware";var gi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},qf={clientUrl:void 0},Qf={liquiditySources:void 0},fl=i((t,e,o)=>({config:{...gi,...t},iframe:qf,campaignMode:Qf,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let s=o().campaignMode;e({campaignMode:{...s,[n]:r}})},updateIframe:(n,r)=>{let s=o().iframe;e({iframe:{...s,[n]:r}})}}),"createConfigSlice");function En(t){return Array.from(new Set(t))}i(En,"removeDuplicateFrom");function Si(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Si,"areEqual");function Tl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Tl,"debounce");function Ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Ct,"containsText");function yl(t,e){return t.toLowerCase()===e.toLowerCase()}i(yl,"exactText");function Sl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Sl,"startWithText");var L=i(()=>document.getElementById(we.SWAP_BOX_ID),"getContainer"),Wo=i(()=>document.getElementById(we.EXPANDED_BOX_ID),"getExpanded");function Cl(t,e,o){let n=!!e&&yl(e,t),r=!!o&&yl(o,t);return n!==r?n?-1:1:0}i(Cl,"compareExactMatchText");function hi(t,e,o){let n=!!e&&Ct(e,t),r=!!o&&Ct(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(hi,"compareContainsText");function yi(t,e,o){let n=!!e&&Sl(e,t),r=!!o&&Sl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(yi,"compareStartWithText");function kl(t,e,o){if(!o)return 0;let n=Cl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Cl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=yi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=hi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=yi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=hi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=yi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=hi(o,t.address,e.address);if(r!==0)return r}return 0}i(kl,"compareWithSearchFor");function wl(t,e){return e.find(o=>o.name===t)?.displayName}i(wl,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Mo(t,e){return e.find(o=>o.id===t)?.title}i(Mo,"getSwapperDisplayName");function Ci(t,e){return e.find(o=>Be(o,t))??null}i(Ci,"findToken");function Ti(t,e){return e.find(o=>o.name===t)??null}i(Ti,"findBlockchain");function ki(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(ki,"isTokenNative");function An(t,e){let o=t.map(s=>s.swapperGroup),n=[];return En(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(An,"getUniqueSwappersGroups");function xl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(xl,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function vl(t,e){return e?.[t]==="enabled"}i(vl,"isFeatureEnabled");var bl=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let s=e().config,a=(o.type==="source"?s.from?.blockchains:s.to?.blockchains)??[];return r.filter(p=>!(a.length>0&&!a.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let s=e().config,a=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(c=>a&&No(c,a)||o.blockchain&&c.blockchain!==o.blockchain||!l.some(u=>u.name===c.blockchain)?!1:o.searchFor?!!(Ct(c.symbol,o.searchFor)||Ct(c.address||"",o.searchFor)||Ct(c.name||"",o.searchFor)):!0).sort((c,u)=>{let d=e().isTokenPinned(c,o.type),m=e().isTokenPinned(u,o.type);if(d!==m)return d?-1:1;if(o.getBalanceFor){let y=o.getBalanceFor(c),k=o.getBalanceFor(u),T=ol(y,k);if(T!==0)return T}let f=r.get(c.blockchain),g=r.get(u.blockchain),S=ki(c,f),C=ki(u,g);if(S!==C)return S?-1:1;if(c.isPopular!==u.isPopular)return c.isPopular?-1:1;if(o.searchFor){let y=kl(c,u,o.searchFor);if(y)return y}return c.isSecondaryCoin!==u.isSecondaryCoin?c.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Be(a,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,s=r??o.liquiditySources,a=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(c=>{let u=s?.includes(c.swapperGroup);return a||!s||s.length===0?!u:u}).sort(xl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Lt().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,s=[],a=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(u=>{p.add(u.blockchain),s.push(u)}),n.blockchains.sort((u,d)=>u.sort-d.sort).forEach(u=>{u.enabled&&p.has(u.name)&&r.set(u.name,u)}),t({_blockchainsMapByName:r,_tokens:s,_popularTokens:a,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as jf,English as Xf,Finland as Kf,French as Yf,German as Zf,Greece as Jf,Italian as Rf,Japanese as eg,Netherlands as tg,Poland as og,Portuguese as ng,Russian as rg,Spanish as ig,Swedish as sg,Ukrainian as ag}from"@rango-dev/ui";var Il=[{title:"English",label:"English",local:"en",SVGFlag:Xf},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:ig},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Yf},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:eg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ng},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:jf},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:rg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Zf},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:ag},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:sg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Kf},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:tg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Jf},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Rf},{title:"Polish",label:"Polski",local:"pl",SVGFlag:og}],Lo="en";var El=[.5,1,3],Al=1,Nl=5,Wl=100,Ml=0;var Ll=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Al,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,c=l<=9;return p&&c}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let s=En(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,s=Ke("theme",n),a=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme;t({...s&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...a&&{language:o.language||Lo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Bl(t){return lg()(pg((...e)=>({...bl(...e),...Ll(...e),...fl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Bl,"createAppStore");var _l=ug(null);function h(){let t=mg(_l);if(dg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Pl(t){let e=fg();return e.current||(e.current=Bl(t.config)),cg.createElement(_l.Provider,{value:e.current},t.children)}i(Pl,"AppStoreProvider");import{create as hg}from"zustand";var $l="rango-widget";var Bo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel($l),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var oe=Bt(hg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),Vt=new Bo({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});var Wn=Cg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function kg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),s=h().tokens(),a=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:p}=dl(a.wallets,l),{connectWallet:c,disconnectWallet:u}=J(),d=Ol(),m=Ol();Fl(()=>{n().catch(console.log)},[]),Fl(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:a,dappConfig:t.config})},[t.config]);let f=r.filter(Sg).map(y=>y.name),g=i((y,k,T,w,I)=>{if(k===xi.ACCOUNTS)if(T){let b=Cn(I.supportedBlockchains),v=Ja(y,T,f,b,I.isContractWallet);v.length&&c(v,s)}else u(y),m.current?m.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===xi.ACCOUNTS&&w.connected){let b=`${y}-${w.network}-${T}`;w.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===xi.NETWORK&&w.network){let b=`${y}-${w.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,k,T,w,I)},"onUpdateState"),S=oe.use.isActiveTab(),C=Tg(()=>({onConnectWallet:y=>{d.current=y},onDisconnectWallet:y=>{m.current=y}}),[]);return Nn.createElement(Wn.Provider,{value:C},Nn.createElement(yg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(kg,"Main");function Mn(t){let{config:e,...o}=t;return Nn.createElement(Pl,{config:e},Nn.createElement(kg,{...o,config:e}))}i(Mn,"WidgetWallets");import li from"react";import wg,{Fragment as xg}from"react";import{MemoryRouter as vg,useInRouterContext as bg}from"react-router";function Ul({children:t}){let o=bg()?xg:vg;return wg.createElement(o,null,t)}i(Ul,"AppRouter");import{I18nManager as yw}from"@rango-dev/ui";import za from"react";import ze from"react";import{useRoutes as nw}from"react-router-dom";var U={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ao,useRef as zn}from"react";import kt from"bignumber.js";import{create as Ng}from"zustand";import{subscribeWithSelector as Wg}from"zustand/middleware";import{getLastSuccessfulStep as Ag}from"@rango-dev/queue-manager-rango-preset";import bb from"bignumber.js";import{i18n as _o}from"@lingui/core";var vi={"Network Fee":_o.t("Network Fee"),"Swapper Fee":_o.t("Protocol Fee"),"Affiliate Fee":_o.t("Affiliate Fee"),"Outbound network fee":_o.t("Outbound Fee"),"Rango Fee":_o.t("Rango Fee")},bi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],zl=30;import{i18n as ot}from"@lingui/core";import _e from"bignumber.js";import{PendingSwapNetworkStatus as _n}from"rango-types";function Ln(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Ln,"isValidAddress");import{i18n as Ne}from"@lingui/core";var R=i(()=>({genericServerError:Ne.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ne.t("Please reset your liquidity sources."),description:Ne.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ne.t("No Routes Found."),description:Ne.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Ne.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ne.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ne.t("High Price Impact"),title:Ne.t("Price impact is too high!"),description:Ne.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ne.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ne.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ne.t("USD Price Unknown"),title:Ne.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ne.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ne.t("Confirm USD Price Unknown")}}),"errorMessages");function ql(t){switch(t.type){case 0:return t.diagnosisMessage??R().noResultError.title;case 1:return R().genericServerError;default:return""}}i(ql,"getQuoteErrorMessage");import{i18n as Bn}from"@lingui/core";var jt=i(()=>({connectWallet:Bn.t("Connect Wallet"),swap:Bn.t("Swap"),swapAnyway:Bn.t("Swap anyway"),ethWarning:Bn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ql(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new _e(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new _e(1e3)))??!1}i(Ql,"hasHighValueLoss");function Hl(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new _e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new _e(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}i(Hl,"hasLimitError");function Gl(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new _e(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new _e(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||c?.lte(l.fromAmount):p?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new _e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new _e(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=ot.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=ot.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=ot.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=ot.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Gl,"getLimitErrorMessage");function Vl(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:jt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||l||!r||r==="0"?{title:jt().swap,action:"confirm-swap",disabled:!0}:a?{title:jt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:jt().ethWarning,action:"confirm-warning",disabled:!1}:{title:jt().swap,action:"confirm-swap",disabled:!1}:{title:jt().connectWallet,action:"connect-wallet",disabled:!1}}i(Vl,"getSwapButtonState");function Ii(t,e,o){return!((!o||o.lte(Le))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ii,"canComputePriceImpact");var Ig=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function Ei(t,e){let o=Le;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=Ig(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new _e(r.amount).multipliedBy(s||0))}return o}i(Ei,"getUsdFeeOfStep");function Pn(t,e){return t.reduce((o,n)=>o.plus(Ei(n,e)),Le)}i(Pn,"getTotalFeeInUsd");function Ai(t){let e=Le;return e=e.plus(new _e(t.amount).multipliedBy(t.price||0)),e}i(Ai,"getUsdFee");function jl(t){return t.reduce((e,o)=>e.plus(Ai(o)),Le)}i(jl,"getTotalFeesInUsd");function Xl(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,s=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;s[r]=[...s[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(Xl,"getFeesGroup");function Kl(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Kl,"checkSlippageErrors");function Yl(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Yl,"checkSlippageWarnings");function $n(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i($n,"getMinRequiredSlippage");function Zl(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Zl,"hasProperSlippage");function Jl(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:c,affiliateRef:u,affiliatePercent:d,affiliateWallets:m,destination:f,enableCentralizedSwappers:g}=t,S=s?.reduce((k,T)=>(k[T.chain]=T.address,k),{}),C=[];return r?.forEach(k=>{C.push({blockchain:k.chain,addresses:[k.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:m??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:c.toString(),...f&&{destination:f},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(k=>!a.includes(k)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(Jl,"createQuoteRequestBody");function Rl(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Rl,"getWalletsForNewSwap");function io(t){return t?.outputAmount||null}i(io,"getQuoteOutputAmount");function ep(t,e){return new _e(e).div(new _e(t)).minus(1).multipliedBy(100).toNumber()}i(ep,"getPercentageChange");function tp(t,e){let o=io(t),n=io(e);if(!o||!n)return!1;let r=Ye(o,n);return r?r<=-1:!0}i(tp,"isOutputAmountChangedALot");function op(t,e,o){let n=t.validationStatus,r=Gt({filter:"required",quote:t});return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>lp(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=N(new _e(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),c=N(new _e(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),u="";return a.reason==="FEE"&&(u=ot.t(" for network fee")),a.reason==="INPUT_ASSET"&&(u=ot.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(u=ot.t(" for input and network fee")),ot.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:c,symbol:l,reason:u,currentAmount:p,blockchain:Xe(a.asset.blockchain,o)}})})}i(op,"generateBalanceWarnings");function Dn(t,e){return(t?new _e(t):Le).multipliedBy(e||0)}i(Dn,"calcOutputUsdValue");function Po(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==_n.NetworkChanged}i(Po,"isNetworkStatusInWarningState");function np(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Po(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case _n.WaitingForConnectingWallet:n=n||ot.t("Waiting for connecting wallet");break;case _n.WaitingForQueue:n=n||ot.t("Waiting for other running tasks to be finished");break;case _n.WaitingForNetworkChange:n=n||ot.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(np,"getSwapMessages");function rp(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}i(rp,"getLastConvertedTokenInFailedSwap");function ip(t){return t.status==="failed"}i(ip,"shouldRetrySwap");function sp(t,e,o,n,r,s){if(!n||t)return!0;let a=Gt({filter:"all",quote:n}),l=Gt({filter:"required",quote:n}),p=a.every(d=>r.some(m=>m.chain===d)),c=l.every(d=>r.some(m=>m.chain===d)),u=o&&s?Ln(s,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!u||!c)}i(sp,"isConfirmSwapDisabled");function ap(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(ap,"isTokensIdentical");function On(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(On,"getQuoteToTokenUsdPrice");function Ni(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ni,"isNumberOfSwapsChanged");function Wi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Si(o,n)}i(Wi,"isQuoteSwappersUpdated");function Mi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Si(o,n)}i(Mi,"isQuoteInternalCoinsUpdated");function cp(t,e){return Ni(t,e)||Wi(t,e)||Mi(t,e)}i(cp,"isQuoteChanged");function lp(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}i(lp,"getRequiredBalanceOfWallet");function Tt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Tt,"getPriceImpactLevel");function up(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Ag(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ti(s?s.toBlockchain:n.fromBlockchain,e),p=Ti(r.toBlockchain,e),c=Ci(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),u=Ci(a,o),d=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:c,toBlockchain:p,toToken:u,inputAmount:d}}i(up,"createRetryQuote");function so(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=Xt(o,t.requestAmount),l=Xt(n,t?.outputAmount??"");if(t&&a&&l){let u=Ye(a.toString(),l.toString());if(!!u&&Ql(a,u)){let m=Pn(t?.swaps,r),f=Tt(u);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:u,totalFee:m,warningLevel:f}}}else if(t&&(!a||!l))return{type:1};let p=$n(t.swaps),c=s>Nl;if(Zl(e.userSlippage.toString(),p)){if(c&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:Yl(t,s),minRequiredSlippage:p};return null}i(so,"generateQuoteWarnings");function Ye(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ep(t.toString(),e.toString());return n&&n<0?n:null}i(Ye,"getPriceImpact");var mp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Un=i((t,e)=>e.sort((o,n)=>{let r=i(c=>c.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),s=r(o),a=r(n);if(s!==a)return a-s;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),dp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(s=>s.swapperId)),r=e.find(s=>{let a=new Set(s.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>a.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),fp=i(t=>{let e=i((o,n)=>{let r=bi.indexOf(o.value),s=bi.indexOf(n.value);return r!==-1&&s!==-1?r-s:r!==-1?-1:s!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Xt=i((t,e)=>t?.usdPrice?new kt(e||Le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),V=Bt(Ng()(Wg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new kt(0),outputUsdValue:new kt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Le;return Ao(o.inputAmount)?(e&&(n=e?.outputAmount?new kt(e?.outputAmount):null,r=Dn(e?.outputAmount,On(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new kt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Xt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new kt(0),outputUsdValue:new kt(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Xt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:c}=up(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:c,outputAmount:null,inputUsdValue:Xt(a??null,c),outputUsdValue:new kt(0),toBlockchain:l,toToken:p,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Xt(e.toToken,e.outputAmount?.toString()||""):new kt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function gp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=V(),c=h().config,u=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{setAffiliateRef:f,setAffiliatePercent:g,setAffiliateWallets:S}=h(),C=c?.from?.tokens,y=c?.from?.blockchains,k=c?.to?.tokens,T=c?.to?.blockchains,w=zn(void 0),I=zn(void 0),b=zn(void 0),v=zn(void 0);ao(()=>{t(c?.amount?.toString()||"")},[c?.amount]),ao(()=>{if(u==="success"){let x=d.find(W=>W.name===c?.from?.blockchain),A=m.find(W=>Be(W,c?.from?.token||null));(x||!x&&b.current)&&n(x??null),A?r({token:A,meta:{blockchains:d,tokens:m}}):!A&&w.current&&r({token:null}),b.current=c?.from?.blockchain,w.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,u]),ao(()=>{No(s,C)&&r({token:null}),fi(l,y)&&n(null)},[C,y]),ao(()=>{No(a,k)&&r({token:null}),fi(p,T)&&o(null)},[k,T]),ao(()=>{if(u==="success"){let x=d.find(W=>W.name===c?.to?.blockchain),A=m.find(W=>Be(W,c?.to?.token||null));(x||!x&&v.current)&&o(x??null),A?e({token:A,meta:{blockchains:d,tokens:m}}):!A&&I.current&&e({token:null}),v.current=c?.to?.blockchain,I.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,u]),ao(()=>{f(c?.affiliate?.ref??null),g(c?.affiliate?.percent??null),S(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(gp,"useSyncStoresWithConfig");import{useEffect as _i,useRef as Mg}from"react";import{useInRouterContext as Lg,useLocation as Bg,useSearchParams as _g}from"react-router-dom";function Li(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Li,"searchParamToToken");function Bi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Bi,"tokenToSearchParam");function Pi(){let t=Bg(),[e,o]=_g(),{fromBlockchain:n,toBlockchain:r,fromToken:s,toToken:a,inputAmount:l,setFromBlockchain:p,setToBlockchain:c,setFromToken:u,setToToken:d,setInputAmount:m}=V(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=Lg(),{updateIframe:y,updateCampaignMode:k}=h(),T=h().isInCampaignMode(),w=Mg(),I=i(()=>{let v={};for(let[Y,te]of e.entries())Y.startsWith("utm_")&&(v[Y]=te);let x=e.get("fromAmount"),A=e.get("fromBlockchain"),W=e.get("fromToken"),O=e.get("toBlockchain"),Q=e.get("toToken"),M=e.get("autoConnect"),E=e.get("clientUrl"),j=e.get("liquiditySources");return{fromAmount:x,fromBlockchain:A,fromToken:W,toBlockchain:O,toToken:Q,autoConnect:M,clientUrl:E,liquiditySources:j,utmQueryParams:v}},"getUrlSearchParams"),b=i(v=>{for(let x in v)v[x]||delete v[x];o(v,{replace:!0})},"updateUrlSearchParams");_i(()=>{let{autoConnect:v,clientUrl:x,utmQueryParams:A}=I();C&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Bi(s),toBlockchain:r?.name,toToken:Bi(a),fromAmount:l,autoConnect:v??void 0,clientUrl:x??void 0,liquiditySources:T?w.current:void 0,...A})},[t.pathname,l,n,s,r,a,T]),_i(()=>{if(!C)return;let v=I();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&m(v.fromAmount),f==="success"){let x=g.find(Q=>Q.name===v.fromBlockchain),A=Li(S,v.fromToken,x??null),W=g.find(Q=>Q.name===v.toBlockchain),O=Li(S,v.toToken,W??null);x&&(p(x),A&&u({token:A,meta:{blockchains:g,tokens:S}})),W&&(c(W),O&&d({token:O,meta:{blockchains:g,tokens:S}}))}},[f]),_i(()=>{let{clientUrl:v,liquiditySources:x}=I();y("clientUrl",v||void 0),k("liquiditySources",x?.split(",")??void 0)},[])}i(Pi,"useSyncUrlAndStore");import{i18n as Ls}from"@lingui/core";import{useManager as $S}from"@rango-dev/queue-manager-react";import{Alert as Yu,Button as DS,css as _s,Divider as Bs,IconButton as Zu,styled as FS,Typography as OS,WalletIcon as US}from"@rango-dev/ui";import Te,{useEffect as Wr,useLayoutEffect as zS,useRef as qS,useState as Zo}from"react";import{useLocation as QS,useNavigate as HS}from"react-router-dom";import{i18n as ft}from"@lingui/core";import{Alert as us,BalanceErrors as vy,Button as Wc,ChevronDownIcon as by,ChevronLeftIcon as Iy,Divider as ho,MessageBox as Ey,Typography as pr,WalletIcon as Ay}from"@rango-dev/ui";import D,{useEffect as Ny,useState as yo}from"react";import{useNavigate as Wy}from"react-router-dom";import{i18n as qn}from"@lingui/core";function Qn(t){switch(t.type){case 0:return qn.t("Route has been updated.");case 3:return qn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return qn.t("Route swappers has been updated.");case 2:return qn.t("Route internal coins has been updated.");default:return""}}i(Qn,"getQuoteUpdateWarningMessage");import{Modal as $g}from"@rango-dev/ui";import Dg from"react";function se(t){let{watermark:e}=oe();return Dg.createElement($g,{hasWatermark:e==="FULL",...t},t.children)}i(se,"WatermarkedModal");import jn,{useRef as Ug}from"react";import*as lo from"@radix-ui/react-collapsible";import{keyframes as yp,styled as Hn}from"@rango-dev/ui";var $i=300,Fg=yp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Og=yp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Sp=Hn(lo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Di=Hn(lo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Gn=Hn(lo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Fg} ${$i}ms ease-out`},false:{animation:`${Og} ${$i}ms ease-out`}}}}),Vn=Hn("div",{transition:`all ${$i}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Xn(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:s,trigger:a,triggerAnchor:l}=t,p=Ug(null);return jn.createElement(Sp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&jn.createElement(Di,{className:"collapsible_trigger",onClick:s},a),jn.createElement(Gn,{className:"collapsible_content",open:e},r),l==="bottom"&&jn.createElement(Di,{className:"collapsible_trigger",onClick:s},a))}i(Xn,"CustomCollapsible");import{css as Cp,darkTheme as po,IconButton as zg,styled as Ze,TextField as qg}from"@rango-dev/ui";var Tp=Ze("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),kp=Ze("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Qg=Ze("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${po} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${po} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${po} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),wp=Ze(Qg,{alignSelf:"stretch",minHeight:"93px"}),xp=Ze("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),vp=Ze(zg,{position:"absolute",left:"$20"}),bp=Ze("div",{paddingTop:"$20"}),Ip=Cp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ep=Ze("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Ap=Cp({paddingTop:"$5"}),Np=Ze("div",{display:"flex"}),Wp=Ze(qg,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Mp=Ze("div",{overflow:"visible",width:"100%"}),Lp=Ze("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${po} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$info100",[`.${po} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${po} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as nt}from"@lingui/core";import{Button as Ty,Divider as ps,Image as ky,MessageBox as ar,SelectableWallet as wy,Typography as Ec,WalletState as Ac}from"@rango-dev/ui";import ue,{useEffect as Nc,useState as Uo}from"react";import{WalletState as Kn}from"@rango-dev/ui";import{useWallets as Hg}from"@rango-dev/wallets-react";import{detectMobileScreens as Gg,KEPLR_COMPATIBLE_WALLETS as Vg,WalletTypes as $o}from"@rango-dev/wallets-shared";import{useCallback as jg,useEffect as Xg,useState as Kg}from"react";var Yg=Object.values($o);function co(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:s,disconnect:a,getWalletInfo:l,connect:p}=Hg(),{connectedWallets:c}=J(),u=h().blockchains(),d=ml(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||Yg,m=Za(s,l,d,e);m=Gg()?m.filter(I=>I.showOnMobile||s(I.type).installed):m;let f=nl(m),[g,S]=Kg(""),C=i(I=>!c.find(b=>b.walletType===I&&b.chain===e),"isExperimentalChainNotAdded"),y=i(async I=>{let b=s(I);try{if(g&&S(""),b.connected)await a(I);else{let v=!!m.find(x=>x.state===Kn.CONNECTED);if(r?.multiWallets===!1&&v)return;o?.(I),await p(I),n?.(I)}}catch(v){S("Error: "+v?.message)}},"handleClick"),k=jg(()=>{let I=m?.filter(b=>b.state===Kn.CONNECTING)||[];for(let b of I)a(b.type)},[sl(m)]);Xg(()=>()=>{k()},[]);let T=i(I=>{let b=I.find(x=>x.type===$o.DEFAULT);return!b||b.state===Kn.NOT_INSTALLED?!1:I.filter(x=>x.state!=Kn.NOT_INSTALLED&&![$o.DEFAULT,$o.WALLET_CONNECT_2].includes(x.type)&&l(x.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),w=i((I,b,v)=>kn(v,b)&&C(I)&&!Vg.includes(I)||I==$o.DEFAULT&&!T(m),"shouldExcludeWallet");return{list:f.filter(I=>!w(I.type,e??"",u)),error:g,handleClick:y,disconnectConnectingWallets:k}}i(co,"useWalletList");import{i18n as Tc}from"@lingui/core";import{styled as wc,Typography as dy,Wallet as fy,WalletState as gy}from"@rango-dev/ui";import go,{useState as kc}from"react";import{useManager as oy}from"@rango-dev/queue-manager-react";import{BottomLogo as ny,Divider as dc,Header as ry}from"@rango-dev/ui";import ge,{useEffect as rs,useRef as fc,useState as iy}from"react";import{useRef as Zg}from"react";function Yn(){return window.self!==window.top}i(Yn,"isAppLoadedIntoIframe");function Fi(){let t=Zg(null),{iframe:e}=h(),o=Yn()&&e.clientUrl,n=i(a=>{o&&window.top?.postMessage(a,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(a=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(a)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Fi,"useIframe");import{useNavigate as Jg}from"react-router-dom";function Je(){let t=Jg();return()=>t(-1)}i(Je,"useNavigateBack");import{createTheme as Hi,darkTheme as rh,lightTheme as ih}from"@rango-dev/ui";import{useEffect as sh,useState as ah}from"react";import{theme as oh,darkColors as nh}from"@rango-dev/ui";import qi from"react";function Rg(t,e,o){let p=[],c=90;for(let m=0;m<9;m++)p.push(c),m+1===4?c=0:c-=m>=4?6:10;let u=o?p.slice().reverse():p,d={};for(let m=0;m<9;m++){let f=100+m*100,g=u[m],S={[`${e}${f}`]:Zn(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(Rg,"generateShades");function Zn(t,e){let[o,n,r]=Bp(t);return`#${Oi(o+e)}${Oi(n+e)}${Oi(r+e)}`}i(Zn,"generateShade");function Bp(t){let r=parseInt(t.slice(1,3),16),s=parseInt(t.slice(3,5),16),a=parseInt(t.slice(5,7),16);return[r,s,a]}i(Bp,"convertToRGB");function Oi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Oi,"clamp");function _p(t){let[a,l,p]=Bp(t);return(a*299+l*587+p*114)/1e3>188}i(_p,"isBright");var Ui=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];a&&a!==t[s]&&(n=!0,s==="background"||s==="foreground"?r={...r,[s]:a}:r={...r,...Rg(a,s,s==="neutral"&&e)})}return n?r:{}},"generateColors");var Pp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),eh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Pp(o%52)+e;return Pp(o%52)+e},"toAlphabeticName"),th=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),zi=i(t=>eh(th(5381,JSON.stringify(t))>>>0),"toHash");function Qi(t){let e=oh.colors,o=Ui({...e,...nh},!0,t?.dark),n=Ui(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${di}-light-${zi(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${di}-dark-${zi(p)}`,tokens:p}}return{light:a,dark:l}}i(Qi,"customizedThemeTokens");function $p(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>qi.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:s,key:a}=n;if(o.push(qi.cloneElement(s,{key:a})),r<t.length-1){let l=`divider-${r}`;o.push(qi.cloneElement(e,{key:l}))}}),o}i($p,"joinList");function Jn(t){let{colors:e,fontFamily:o=cl,borderRadius:n=ll,secondaryBorderRadius:r=pl}=t,[s,a]=ah("light"),{theme:l}=h(),{dark:p,light:c}=Qi(e),u=Hi({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ih.className],m=[u.className,rh.className];if(c){let g=Hi(c.id,c.tokens);d.push(g.className)}if(p){let g=Hi(p.id,p.tokens);m.push(g.className)}return sh(()=>{let g=i(S=>{S.matches?a("dark"):a("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&a("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),S=m.join(" ");return l==="auto"?s==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(Jn,"useTheme");var mt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Dp}from"@lingui/core";import{Alert as lh,Button as ph}from"@rango-dev/ui";import Fp from"react";function Gi(t){return Fp.createElement(lh,{action:Fp.createElement(ph,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Dp.t("Activate this tab")),type:"warning",variant:"alarm",title:Dp.t("Another tab is open and handles transactions.")})}i(Gi,"ActivateTabAlert");import{i18n as Vi}from"@lingui/core";import{Button as ch,Divider as uh,MessageBox as mh}from"@rango-dev/ui";import Rn from"react";function ji(t){let{open:e,onClose:o,onConfirm:n}=t;return Rn.createElement(se,{open:e,dismissible:!0,onClose:o,container:L()},Rn.createElement(mh,{title:Vi.t("Activate current tab"),type:"warning",description:Vi.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},Rn.createElement(uh,{size:20}),Rn.createElement(ch,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Vi.t("Confirm"))))}i(ji,"ActivateTabModal");import{ChevronLeftIcon as gh}from"@rango-dev/ui";import Vp from"react";import{css as dh,darkTheme as Op,IconButton as fh,styled as Kt}from"@rango-dev/ui";var dt=Kt(fh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$info100",[`.${Op} &`]:{backgroundColor:"$neutral"}}}),Up=Kt("div",{position:"absolute",background:"$secondary500",[`.${Op} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),uo=Kt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),zp=Kt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),qp=Kt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Qp=Kt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Hp=dh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Gp=Kt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Xi(t){return Vp.createElement(dt,{variant:"ghost",size:"small",onClick:t.onClick},Vp.createElement(gh,{color:"black",size:16}))}i(Xi,"BackButton");import{i18n as hh}from"@lingui/core";import{Button as yh,Typography as Sh}from"@rango-dev/ui";import Ki from"react";function Yi(t){return Ki.createElement(uo,null,Ki.createElement(yh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Ki.createElement(Sh,{variant:"label",size:"medium",color:"error500"},hh.t("Cancel"))))}i(Yi,"CancelButton");import{i18n as Ch}from"@lingui/core";import{Image as Th,Tooltip as kh,WalletIcon as wh}from"@rango-dev/ui";import Yt from"react";function Zi(t){let{list:e}=co({}),o=e.filter(r=>r.state==="connected"),n=o.length?Yt.createElement("div",{className:Hp()},o.map(r=>Yt.createElement(Gp,{key:r.title},Yt.createElement(Th,{src:r.image,size:14})))):Ch.t("Connect Wallet");return Yt.createElement(kh,{container:t.container,side:"bottom",content:n},Yt.createElement(dt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Yt.createElement(Up,null),Yt.createElement(wh,{size:18,color:"black"})))}i(Zi,"WalletButton");import{i18n as or}from"@lingui/core";import{NotificationsIcon as jh,Popover as Xh,SettingsIcon as Kh,Tooltip as nr,TransactionIcon as Yh}from"@rango-dev/ui";import be from"react";import{i18n as Lh}from"@lingui/core";import{EventSeverity as Rp}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as ec,ChevronRightIcon as Bh,Divider as _h,Typography as Ph}from"@rango-dev/ui";import Oe from"react";import{useNavigate as $h}from"react-router-dom";import{create as xh}from"zustand";import{persist as vh,subscribeWithSelector as bh}from"zustand/middleware";var Fe=Bt(xh()(vh(bh((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:s.toBlockchain,address:s.toSymbolAddress,symbol:s.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{darkTheme as Ih,ListItemButton as Eh,styled as Do}from"@rango-dev/ui";var jp=Do("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),Xp=Do("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),Kp=Do(Eh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Ih} &`]:{backgroundColor:"$error600"}}}}}),Yp=Do("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),Zp=Do("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Ah}from"@lingui/core";import{Divider as Nh,NoNotificationIcon as Wh,Typography as Mh}from"@rango-dev/ui";import er from"react";function Jp(){return er.createElement(Zp,null,er.createElement(Wh,{color:"secondary",size:26}),er.createElement(Nh,{size:12}),er.createElement(Mh,{variant:"body",size:"medium",color:"neutral700"},Ah.t("There are no notifications.")))}i(Jp,"NotificationNotFound");var Dh=4;function Ji(){let t=$h(),{getUnreadNotifications:e}=Fe(),o=e(),n=h().blockchains(),r=h().tokens(),s=o.sort((l,p)=>p.creationTime-l.creationTime).slice(0,Dh),a=i(l=>{t(`${U.swaps}/${l}`)},"handleOnClick");return Oe.createElement(jp,null,s.length?Oe.createElement(Xp,null,s.map((l,p)=>{let{route:c,requestId:u,event:d}=l,m=r.find(C=>Be(C,c.from)),f=n.find(C=>C.name===c.from.blockchain),g=r.find(C=>Be(C,c.to)),S=n.find(C=>C.name===c.to.blockchain);return Oe.createElement(Oe.Fragment,{key:u},p>0&&Oe.createElement(_h,{size:4}),Oe.createElement(Kp,{onClick:()=>a(u),actionRequired:d.messageSeverity===Rp.WARNING,title:Oe.createElement(Ph,{variant:"body",size:"small",color:d.messageSeverity===Rp.WARNING?"$foreground":"$neutral700"},Lh.t(d.message)),id:u,start:Oe.createElement(Yp,null,Oe.createElement("div",{className:"from-chain-token"},Oe.createElement(ec,{tokenImage:m?m.image:"",chainImage:f?f.logo:"",size:"small"})),Oe.createElement("div",{className:"to-chain-token"},Oe.createElement(ec,{tokenImage:g?g.image:"",chainImage:S?S.logo:"",size:"small"}))),end:Oe.createElement(Bh,{size:12,color:"gray"})}))})):Oe.createElement(Jp,null))}i(Ji,"NotificationContent");import{useManager as Fh}from"@rango-dev/queue-manager-react";import{InProgressIcon as Oh}from"@rango-dev/ui";import tc from"react";var Uh=i(()=>{let{manager:t}=Fh();return mt(t).map(({swap:o})=>o).find(o=>o.status==="running")?tc.createElement(Qp,null,tc.createElement(Oh,{color:"info",size:6})):null},"InProgressTransactionBadge"),oc=Uh;import{RefreshProgressButton as zh}from"@rango-dev/ui";import Ri,{useEffect as qh,useState as nc}from"react";var Qh=1e3,rc=60,Hh=100;function tr({onClick:t}){let[e,o]=nc(0),[n,r]=nc(!1),s=i(p=>{document.hidden&&p&&a(p)},"handleVisibilityChange");qh(()=>{let p;return t?p=window.setInterval(()=>{o(c=>c+1),e===rc&&l()},Qh):a(p),document.addEventListener("visibilitychange",()=>s(p)),()=>{document.removeEventListener("visibilitychange",()=>s(p)),p&&clearInterval(p)}},[e,t]);let a=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Ri.createElement(dt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ri.createElement(qp,{onTransitionEnd:()=>r(!1),isRefetched:n},Ri.createElement(zh,{size:22,color:t?"black":"gray",progress:e/rc*Hh})))}i(tr,"RefreshButton");import{EventSeverity as Gh}from"@rango-dev/queue-manager-rango-preset";import{Typography as Vh}from"@rango-dev/ui";import ic from"react";function sc(){let{getUnreadNotifications:t}=Fe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Gh.WARNING);return o?ic.createElement(zp,{isSever:n},ic.createElement(Vh,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(sc,"UnreadNotificationsBadge");function Zt(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:s}=t,{config:{features:a}}=h(),l=Ke("notification",a)||r.includes("notifications");return be.createElement(be.Fragment,null,!r.includes("refresh")&&be.createElement(nr,{container:s||L(),side:"top",content:or.t("Refresh")},be.createElement(tr,{onClick:e})),!l&&be.createElement(Xh,{align:"end",alignOffset:-88,collisionPadding:{right:20,left:20},container:L(),content:be.createElement(Ji,null)},be.createElement("div",null,be.createElement(nr,{container:L(),side:"top",content:or.t("Notifications")},be.createElement(dt,{size:"small",variant:"ghost"},be.createElement(jh,{size:18,color:"black"}),be.createElement(sc,null))))),!r.includes("settings")&&be.createElement(nr,{container:L(),side:"top",content:or.t("Settings")},be.createElement(dt,{size:"small",variant:"ghost",onClick:n},be.createElement(Kh,{size:18,color:"black"}))),!r.includes("history")&&be.createElement(nr,{container:L(),side:"top",content:or.t("Transactions History")},be.createElement(dt,{size:"small",variant:"ghost",onClick:o},be.createElement(Yh,{size:18,color:"black"}),be.createElement(oc,null))))}i(Zt,"HeaderButtons");import{i18n as es}from"@lingui/core";import{Divider as lc,MessageBox as Rh,RefreshIcon as ey}from"@rango-dev/ui";import mo from"react";import{Button as Zh,styled as Jh}from"@rango-dev/ui";var ac=Jh(Zh,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ts(t){let{open:e,onClose:o}=t;return mo.createElement(se,{open:e,dismissible:!0,onClose:o,container:L()},mo.createElement(Rh,{title:es.t("Something went wrong"),type:"error",description:es.t("Something went wrong. Please refresh the app.")},mo.createElement(lc,{size:30}),mo.createElement(ac,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},mo.createElement(ey,{size:20,color:"primary"}),mo.createElement(lc,{size:4,direction:"horizontal"}),es.t("Refresh"))))}i(ts,"RefreshModal");function os(t){let e=t.target;if(e){let o=e.scrollTop,n=L();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(os,"onScrollContentAttachStatusToContainer");import{css as ty,styled as ns}from"@rango-dev/ui";var pc="700px",rr=ty({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),cc=ns("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:pc},fixed:{height:pc}}}}),uc=ns("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),mc=ns("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function ae(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Fi(),{children:n,header:r,footer:s,height:a="fixed"}=t,{fetchStatus:l}=h(),[p,c]=iy(!1),u=J.use.connectedWallets(),{config:{features:d,theme:m}}=h(),{watermark:f}=oe(),g=f==="FULL",{activeTheme:S}=Jn(m||{}),C=Ke("connectWalletButton",d),{isActiveTab:y,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:w,activateCurrentTab:I}=oe(),b=Je(),{manager:v}=oy(),A=mt(v).map(({swap:j})=>j).some(j=>j.status==="running"),W=i(()=>I(Vt.forceClaim,A),"onActivateTab"),O=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,M=fc(null),E=fc(null);return rs(()=>(Yn()&&E.current&&e(E.current),()=>{o()}),[]),rs(()=>(M.current?.addEventListener("scroll",os),()=>{M.current?.removeEventListener("scroll",os)}),[]),rs(()=>{c(l==="failed")},[l]),ge.createElement(cc,{height:a,id:we.SWAP_BOX_ID,className:`${S()} ${rr()}`,ref:E},ge.createElement(ry,{prefix:ge.createElement(ge.Fragment,null,Q&&ge.createElement(Xi,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:ge.createElement(ge.Fragment,null,r.suffix,r.onWallet&&!C&&ge.createElement(Zi,{container:L(),onClick:O,isConnected:!!u?.length}),r.onCancel&&ge.createElement(Yi,{onClick:r.onCancel}))}),ge.createElement(uc,{ref:M},n),ge.createElement(ji,{open:T,onClose:()=>w(!1),onConfirm:W}),ge.createElement(mc,null,ge.createElement("div",{className:"footer__content"},k&&!y&&ge.createElement("div",{className:"footer__alert"},ge.createElement(Gi,{onActivateTab:W}),ge.createElement(dc,{size:10})),s),ge.createElement(dc,{size:12}),ge.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ge.createElement(ny,null))),ge.createElement(ts,{open:p,onClose:()=>c(!1)}))}i(ae,"Layout");import{styled as sy}from"@rango-dev/ui";var gc="$20 $20 $10 $20",Fo=sy("div",{padding:gc,overflowY:"auto",flexGrow:1});import{styled as ay}from"@rango-dev/ui";var ce=ay("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as my}from"@rango-dev/ui";import ss from"react";import{i18n as fo}from"@lingui/core";import{Image as cy,MessageBox as is,WalletState as uy}from"@rango-dev/ui";import Jt from"react";import{keyframes as ly,styled as ir}from"@rango-dev/ui";var iN=ir("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),hc=ir("div",{position:"relative"}),py=ly({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),yc=ir("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${py} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Sc=ir("div",{"& img":{borderRadius:"50%"}});function Cc(t){let{state:e,image:o,error:n}=t;return e===uy.CONNECTED?Jt.createElement(is,{type:"success",title:fo.t("Wallet Connected"),description:fo.t("Your wallet is connected, you can use it to swap.")}):n?Jt.createElement(is,{type:"error",title:fo.t("Failed to Connect"),description:n||fo.t("Your wallet is not connected. Please try again.")}):Jt.createElement(is,{type:"loading",title:fo.t("Connecting to your wallet"),description:fo.t("Click connect in your wallet popup."),icon:Jt.createElement(hc,null,Jt.createElement(Sc,null,Jt.createElement(cy,{src:o,size:45})),Jt.createElement(yc,null))})}i(Cc,"ModalContent");function Oo(t){let{open:e,onClose:o,...n}=t;return ss.createElement(se,{open:e,onClose:o,container:document.getElementById(we.SWAP_BOX_ID)||document.body},ss.createElement(Cc,{...n}),ss.createElement(my,{direction:"vertical",size:32}))}i(Oo,"WalletModal");var hy=wc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),yy=wc(ce,{textAlign:"center"}),sr=3e3,as=300;function xc(){let{fetchStatus:t}=h(),[e,o]=kc(!1),[n,r]=kc(""),s=null,a=oe.use.isActiveTab(),{list:l,handleClick:p,error:c,disconnectConnectingWallets:u}=co({onBeforeConnect:S=>{s=setTimeout(()=>{o(!0),r(S)},as)},onConnect:()=>{s&&clearTimeout(s),setTimeout(()=>{o(!1)},sr)}}),d=i(()=>{u(),o(!1)},"handleCloseWalletModal"),m=l.find(S=>S.type===n),f=m?.image||"",g=m?.state||gy.NOT_INSTALLED;return go.createElement(ae,{header:{title:Tc.t("Connect Wallets")}},go.createElement(yy,null,go.createElement(dy,{variant:"title",size:"xmedium",align:"center"},Tc.t("Choose a wallet to connect.")),go.createElement(hy,null,l.map((S,C)=>{let y=`wallet-${C}-${S.type}`;return go.createElement(fy,{key:y,...S,container:L(),onClick:k=>{p(k)},isLoading:t==="loading",disabled:!a})}),go.createElement(Oo,{open:!!e,onClose:d,image:f,state:g,error:c}))))}i(xc,"WalletsPage");import{keyframes as Sy,styled as ls}from"@rango-dev/ui";var vc=ls("div",{position:"relative"}),Cy=Sy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),bc=ls("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Cy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ic=ls("div",{"& img":{borderRadius:"50%"}});var xy=7;function cs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,a=oe.use.isActiveTab(),l=J.use.connectedWallets(),{blockchains:p}=h(),[c,u]=Uo(""),[d,m]=Uo(null),[f,g]=Uo(!1),[S,C]=Uo(null),{suggestAndConnect:y}=lr(),k=null,{list:T,error:w,handleClick:I,disconnectConnectingWallets:b}=co({chain:e,onBeforeConnect:E=>{k=setTimeout(()=>{u(E)},as)},onConnect:()=>{k&&clearTimeout(k),setTimeout(()=>{u("")},sr)}}),[v,x]=Uo(T),A=T.length,W=r&&A-r>0,O=i(async E=>{g(!1),C("in-progress");try{await y(E.walletType,E.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Nc(()=>{x(E=>{let j=T.findIndex(Y=>o(Y.type,e));return W&&j>1?[T[j]].concat(T.filter((Y,te)=>te!==j)):E.map(Y=>T.find(te=>te.type===Y.type)??Y)})},[JSON.stringify(T)]);let Q=document.getElementById(we.SWAP_BOX_ID);Nc(()=>{let E=null;return(S==="completed"||S==="rejected")&&(E=setTimeout(()=>C(null),sr)),()=>{E&&clearTimeout(E)}},[S]);let M=i(()=>{b(),u("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,v.slice(0,r).map(E=>{let j=rl({connectedWallets:l,walletType:E.type,chain:e}),Y=j?xn(j,xy):"",te=kn(p(),e),F=!l.find(ke=>ke.walletType===E.type&&ke.chain===e),fe=te&&F&&E.state===Ac.CONNECTED,q=fe?nt.t({id:"Add {chain} chain",values:{chain:e}}):Y,le=i(()=>{E.state===Ac.DISCONNECTED?I(E.type):fe?(m({walletType:E.type,chain:e,address:j??""}),g(!0)):n({walletType:E.type,chain:e,address:j??""})},"onClick"),ee=d?.chain?wl(d.chain,p()):void 0;return ue.createElement(ue.Fragment,{key:`${E.title}_${ee}`},ue.createElement(Oo,{open:c===E.type,onClose:M,image:E.image,state:E.state,error:w}),!!d&&ue.createElement(se,{open:!!d&&f,container:Q,onClose:()=>{m(null)}},ue.createElement(ar,{title:nt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:nt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},ue.createElement(ps,{size:18}),ue.createElement(ps,{size:32}),ue.createElement(Ty,{onClick:O.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},nt.t("Confirm")))),S&&ue.createElement(se,{open:!!S,onClose:C.bind(null,null),container:Q},S==="in-progress"&&ue.createElement(ar,{type:"loading",title:nt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:nt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:ue.createElement(vc,null,ue.createElement(Ic,null,ue.createElement(ky,{src:E.image,size:45})),ue.createElement(bc,null))}),S==="completed"&&ue.createElement(ar,{type:"success",title:nt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:nt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),S==="rejected"&&ue.createElement(ar,{type:"error",title:nt.t("Request Rejected"),description:nt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),ue.createElement(ps,{direction:"vertical",size:32})),ue.createElement(wy,{key:E.type,description:q,onClick:le,selected:o(E.type,e),disabled:!a,...E}))}),W&&ue.createElement(wp,{selected:!1,onClick:s},ue.createElement(Ec,{variant:"label",size:"medium"},nt.t("Show more wallets"),ue.createElement(Ec,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(r??0)))))}i(cs,"WalletList");var My=2;function Mc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=h().config,l=h().blockchains(),{selectedQuote:p,setSelectedWallets:c,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=V(),{connectedWallets:g,selectWallets:S}=J(),[C,y]=yo(""),[k,T]=yo([]),[w,I]=yo(""),[b,v]=yo(null),[x,A]=yo(!!m),W=Gt({filter:"all",quote:p}),O=Gt({filter:"required",quote:p}),Q=l.find(H=>H.name===p?.swaps[p?.swaps.length-1].to.blockchain),M=i(H=>O.includes(H),"isWalletRequiredFor"),E=i(()=>g.filter(H=>H.selected&&W.includes(H.chain)),"getInitialSelectableWallets"),[j,Y]=yo(E()),te=k.length>0,F=i((H,X)=>!!j.find(ne=>ne.walletType===H&&ne.chain===X&&ne.selected&&(M(X)||!M(X)&&!m)),"isSelected"),fe=!!m&&x&&Q&&!Ln(Q,m),q=i(()=>{A(!1),f(null),Y(H=>{let X=!1;return H.map(ne=>!X&&ne.chain===Q?.name?(X=!0,{...ne,selected:!0}):ne)})},"resetCustomDestination"),le=i(H=>{if(C&&y(""),F(H.walletType,H.chain))return;let ne=g.find(Ae=>Ae.walletType===H.walletType&&Ae.chain===H.chain);ne&&(n(),H.chain===Q?.name&&x&&(A(!1),f(null)),Y(Ae=>Ae.filter(qe=>qe.chain!==H.chain).concat({...ne,selected:!0})))},"onChange"),ee=i(()=>{let H=j.filter(X=>X.selected);S(H),c(H),d(!0),o()},"onConfirmBalance"),ke=i(async()=>{T([]),I(""),v(null);let H=await r?.({selectedWallets:j.filter(ne=>ne.selected),customDestination:m}),X=H.warnings;X?.balance?.messages&&T(X.balance.messages),X?.quoteUpdate&&v(X.quoteUpdate),H.error&&I(ql(H.error)),!H.error&&!X?.balance?.messages.length?ee():T(X?.balance?.messages??[])},"onConfirmWallets");Ny(()=>{Y(H=>H.concat(g.filter(X=>!!!H.find(Ae=>Ae.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[g.length]);let _=document.getElementById(we.SWAP_BOX_ID),Ve=Wy();return D.createElement(se,{open:e,onClose:()=>{u||Ve("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:D.createElement(Np,null,D.createElement(Wc,{loading:s,disabled:sp(s,x,m,p,j,Q),onClick:ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ft.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:D.createElement(xp,null,D.createElement(vp,{variant:"ghost",onClick:y.bind(null,"")},D.createElement(Iy,{size:16})),D.createElement(pr,{variant:"headline",size:"small"},ft.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(C,l)}})))},anchor:"center"},D.createElement(se,{open:te,onClose:T.bind(null,[]),container:_},D.createElement(Ey,{title:ft.t("Insufficient account balance"),type:"error",description:D.createElement(vy,{messages:k??[]})},D.createElement(Wc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ee},ft.t("Proceed anyway")))),C&&D.createElement(bp,null,D.createElement("div",{className:Ip()},D.createElement(cs,{chain:C,isSelected:F,selectWallet:le,onShowMore:y.bind(null,C)}))),!C&&D.createElement(D.Fragment,null,w&&D.createElement(D.Fragment,null,D.createElement(us,{variant:"alarm",type:"error",title:ft.t(w)}),D.createElement(ho,{size:12})),b&&D.createElement(D.Fragment,null,D.createElement(us,{variant:"alarm",type:"warning",title:Qn(b)}),D.createElement(ho,{size:12})),D.createElement(Mp,null,W.map((H,X)=>{let ne=l.find(Ee=>Ee.name===H),Ae=`wallet-${X}`,qe=X===W.length-1;return D.createElement("div",{key:Ae},D.createElement(Tp,null,D.createElement(pr,{variant:"title",size:"xmedium"},ft.t({id:"Your {blockchainName} wallets",values:{blockchainName:ne?.shortName}})),D.createElement(pr,{variant:"label",color:"$neutral700",size:"medium"},ft.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:ne?.shortName}}))),D.createElement(ho,{size:24}),D.createElement(kp,null,D.createElement(cs,{chain:H,isSelected:F,selectWallet:le,limit:My,onShowMore:()=>y(ne?.name??"")})),!qe&&D.createElement(ho,{size:32}),qe&&a?.customDestination&&D.createElement(Ep,null,D.createElement(Xn,{onOpenChange:Ee=>{Ee?M(Q?.name??"")||Y(ye=>ye.map(je=>je.chain===Q?.name?{...je,selected:!1}:je)):q()},hasSelected:!0,open:x,triggerAnchor:"top",trigger:D.createElement(Lp,null,D.createElement("div",{className:"button__content"},D.createElement(Ay,{size:18,color:"info"}),D.createElement(ho,{size:4,direction:"horizontal"}),D.createElement(pr,{variant:"label",size:"medium"},ft.t("Send to a different address"))),D.createElement(Vn,{orientation:x?"up":"down"},D.createElement(by,{size:10,color:"gray"}))),onClickTrigger:()=>A(Ee=>!Ee)},D.createElement(ho,{size:4}),D.createElement(Wp,{placeholder:ft.t("Your destination address"),value:m||"",onChange:Ee=>{let ye=Ee.target.value;ye.length?f(ye.length?ye:null):(A(!1),f(null))},...!m&&{autoFocus:!0}})),fe&&D.createElement("div",{className:Ap()},D.createElement(us,{variant:"alarm",type:"error",title:ft.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Mc,"ConfirmWalletsModal");import{i18n as Yy}from"@lingui/core";import{Alert as Zy,Button as Jy,InfoIcon as Ry}from"@rango-dev/ui";import He from"react";import{Alert as _y,Button as Py,Divider as fs,NoRouteIcon as $y,RefreshIcon as Dy,Typography as Fc}from"@rango-dev/ui";import Qe from"react";import{i18n as Lc}from"@lingui/core";var Ly=24,By=60;function Bc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:R().genericServerError,action:{onClick:n,title:Lc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:R().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Lc.t("Reset")}},description:R().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:R().noResultError.description}}i(Bc,"makeInfo");var ms=(o=>(o[o.small=Ly]="small",o[o.large=By]="large",o))(ms||{}),ds=(o=>(o.small="small",o.large="medium",o))(ds||{});import{styled as cr}from"@rango-dev/ui";var _c=cr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Pc=cr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),$c=cr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Dc=cr("div",{padding:"$6 $0"});function zo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),s=h().toggleAllLiquiditySources,a=h().swappers(),l=Bc(o,r,()=>s(a,!0),e);return Qe.createElement(_c,null,Qe.createElement($y,{size:ms[n],color:"gray"}),Qe.createElement(fs,{size:4}),Qe.createElement(Fc,{variant:"title",size:ds[n]},R().noResultError.title),n==="large"&&Qe.createElement(fs,{size:4}),!!l.description&&Qe.createElement(Pc,{size:n},Qe.createElement(Fc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Qe.createElement(fs,{size:n==="large"?"24":"4"}),!!l.alert&&Qe.createElement($c,{size:n},Qe.createElement(_y,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(Py,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(Dc,null,Qe.createElement(Dy,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(zo,"NoResult");import{i18n as qo}from"@lingui/core";import{Button as Oy,Divider as Uy,MessageBox as zy,Typography as qy,WarningIcon as Qy}from"@rango-dev/ui";import wt from"react";import{Typography as qc}from"@rango-dev/ui";import hs from"react";import{darkTheme as Fy,styled as ur}from"@rango-dev/ui";var Oc=ur("div",{width:"100%"}),gs=ur("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Uc=ur("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Fy} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zc=ur("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Qc(t){let{title:e,value:o,valueColor:n}=t;return hs.createElement(Uc,null,hs.createElement(qc,{size:"medium",variant:"label",className:"_title"},e),hs.createElement(qc,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Qc,"QuoteErrorsModalItem");function Hc(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:s}=t,a=r.warningLevel==="high"?"error":"warning",l=[{title:qo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:qo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:qo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:qo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${a}500`}];return wt.createElement(se,{footer:wt.createElement(Oy,{type:"primary",size:"large",prefix:wt.createElement(Qy,null),fullWidth:!0,disabled:s,onClick:n},R().highValueLossError.confirmMessage),open:e,onClose:o,container:L()},wt.createElement(zy,{type:a,title:R().highValueLossError.impactTitle,description:R().highValueLossError.description}),wt.createElement(gs,null,wt.createElement(Uy,{size:"4"}),wt.createElement(qy,{size:"small",variant:"title"},qo.t("Details")),wt.createElement(gs,null,l.map((p,c)=>wt.createElement(Qc,{key:c,...p})))))}i(Hc,"HighValueLossWarningModal");import{i18n as ys}from"@lingui/core";function Gc(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=ys.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Tt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=R().highValueLossError.title),t.type===1&&(o.title=R().unknownPriceError.title),t.type===2&&(o.title=ys.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=ys.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Gc,"makeAlerts");import{i18n as So}from"@lingui/core";import{Button as Vc,Divider as jc,MessageBox as Hy,Typography as Gy}from"@rango-dev/ui";import Rt from"react";import{useNavigate as Vy}from"react-router-dom";function Xc(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:s,warning:a,confirmationDisabled:l}=t,p=Vy(),c=e??o;return Rt.createElement(se,{anchor:"bottom",open:n,prefix:Rt.createElement(Vc,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},Rt.createElement(Gy,{variant:"label",size:"medium",color:"$neutral900"},So.t("Change settings"))),container:L(),onClose:r},Rt.createElement(Hy,{type:"warning",title:a.type===3?So.t("High slippage"):So.t("Low slippage"),description:a.type===3?So.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:c}}):So.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Rt.createElement(jc,{size:18}),Rt.createElement(jc,{size:32}),Rt.createElement(Vc,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:s},So.t("Confirm anyway"))))}i(Xc,"SlippageWarningModal");import{Button as jy,MessageBox as Xy,WarningIcon as Ky}from"@rango-dev/ui";import mr from"react";function Kc(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return mr.createElement(se,{footer:mr.createElement(jy,{type:"primary",size:"large",prefix:mr.createElement(Ky,null),fullWidth:!0,disabled:r,onClick:n},R().unknownPriceError.confirmMessage),open:e,onClose:o,container:L()},mr.createElement(Xy,{type:"warning",title:R().unknownPriceError.impactTitle,description:R().unknownPriceError.description}))}i(Kc,"UnknownPriceWarningModal");function Qo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:s,refetchQuote:a,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:c,onChangeSettings:u}=t,d={confirmationDisabled:s,open:r,onClose:p,onConfirm:c},m=o?.type===0||o?.type===1,f=Gc(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),He.createElement(He.Fragment,null,m&&He.createElement(zo,{error:o,fetch:a}),!!f&&He.createElement(Oc,null,He.createElement(Zy,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:He.createElement(zc,{onClick:l},He.createElement(Ry,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:He.createElement(Jy,{size:"xxsmall",type:f.alertType,onClick:u},Yy.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(Hc,{...d,warning:e}),(e.type===3||e.type===2)&&He.createElement(Xc,{...d,warning:e}),e.type===1&&He.createElement(Kc,{...d,warning:e})))}i(Qo,"QuoteWarningsAndErrors");import WS from"bignumber.js";import Ir from"react";import{i18n as eo}from"@lingui/core";import{Alert as yS,Divider as To,FullExpandedQuote as SS,InfoIcon as CS,QuoteTag as TS,StepDetails as kS,TokenAmount as wS,Tooltip as Au,Typography as ko}from"@rango-dev/ui";import bs from"bignumber.js";import B,{useRef as xS,useState as vS}from"react";import{styled as Ss}from"@rango-dev/ui";var Cs=Ss("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Yc=Ss("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Zc=Ss("div",{width:"100%",display:"flex"});import*as dr from"@radix-ui/react-collapsible";import{Button as eS,css as Ho,darkTheme as Se,Image as Jc,styled as Pe,Typography as tS}from"@rango-dev/ui";var oS=300,Rc=Pe(dr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Se} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),eu=Ho({padding:"$10 $15"}),tu=Pe(eS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Se} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Se} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Se} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),ou=Pe("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Se} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Se} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Se} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Se} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Se} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$info100",[`.${Se} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Se} &`]:{backgroundColor:"$neutral400"}}}}]}),nu=Ho({width:"100%",padding:"$15 $15 $10 $15"}),ru=Ho({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Co=Ho({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),iu=Ho({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Se} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),su=Pe(dr.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Jc}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Jc}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Se} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),au=Pe("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),lu=Pe(Gn,{width:"100%",background:"inherit"}),Ts=Pe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${oS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),HM=Pe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),pu=Pe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Se} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),cu=Pe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ks=Pe(tS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),uu=Pe("div",{display:"flex",flexWrap:"wrap"}),ws=Pe("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),mu=Pe("div",{display:"flex"}),fr=Pe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Se} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ot}from"@lingui/core";import{ChevronDownIcon as rS,CloseIcon as iS,Divider as yr,IconButton as sS,QuoteCost as aS,Tooltip as lS,Typography as rt}from"@rango-dev/ui";import K,{useState as hu}from"react";import{css as nS,styled as gr}from"@rango-dev/ui";var hr=gr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),xs=gr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),du=gr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),fu=gr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),gu=nS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var pS=i(t=>t.fee.isZero()?null:K.createElement(hr,null,K.createElement(rt,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(rt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function yu(t){let[e,o]=hu(!1),[n,r]=hu(!1),{steps:s,quote:a,fee:l,time:p,feeWarning:c,showModalFee:u}=t,d=a?.swaps??[],m=L(),f=Xl(d);return K.createElement(K.Fragment,null,K.createElement(aS,{onClickFee:u?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:c,time:p,steps:s,tooltipGas:u?Ot.t("View more info"):void 0,tooltipContainer:m}),K.createElement(se,{container:m,open:e,header:K.createElement(fu,null,K.createElement(rt,{variant:"title",size:"medium"},Ot.t("Gas & Fee Explanation")),K.createElement(sS,{onClick:()=>o(!1),variant:"ghost"},K.createElement(iS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(du,null,K.createElement(rt,{variant:"title",size:"small"},Ot.t("Details")),K.createElement(yr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let k=`payable-fee-${y}`,T=Ai(C);return K.createElement(hr,{key:k},K.createElement(rt,{variant:"label",size:"medium",color:"neutral600"},vi[g]),K.createElement(lS,{content:pe(C.amount),container:m},K.createElement(rt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(T,4,4),")")))})),K.createElement(hr,{className:"total_payable_fee"},K.createElement(rt,{variant:"label",size:"medium"},Ot.t("Total Payable Fee")),K.createElement(rt,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(xs,null),Object.keys(f.nonePayable).length&&K.createElement(Xn,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:gu()},K.createElement(rt,{size:"small",variant:"body",color:"neutral700"},n?Ot.t("Hide non-payable fees"):Ot.t("Show non-payable fees")),K.createElement(yr,{size:4,direction:"horizontal"}),K.createElement(Vn,{orientation:n?"up":"down"},K.createElement(rS,{size:12,color:"gray"}))),open:n},K.createElement(rt,{size:"small",variant:"title"},Ot.t("Description")),K.createElement(yr,{size:4}),K.createElement(rt,{size:"small",variant:"body",color:"neutral700"},Ot.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),K.createElement(yr,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=jl(S),k=vi[g],T=`non-payable-fee-${C}`;return K.createElement(pS,{key:T,fee:y,label:k})}),K.createElement(xs,null)))))}i(yu,"QuoteCostDetails");import{i18n as Tu}from"@lingui/core";import{TokenAmount as ku}from"@rango-dev/ui";import Sr from"react";import{css as cS,styled as uS}from"@rango-dev/ui";var Su=uS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Cu=cS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Go(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Sr.createElement(Su,null,Sr.createElement(ku,{direction:"horizontal",label:Tu.t("Swap input"),type:"input",tooltipContainer:L(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Sr.createElement("div",{className:Cu()}),Sr.createElement(ku,{direction:"horizontal",tooltipContainer:L(),label:Tu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(Go,"QuoteSummary");import{i18n as Iu}from"@lingui/core";import{ChevronDownIcon as fS,ChevronRightIcon as gS,Divider as vs,Image as hS,Tooltip as xr,Typography as Tr}from"@rango-dev/ui";import P from"react";import{useLayoutEffect as mS,useState as Vo}from"react";var wu=480,xu=768,vu=1024,bu=1200,dS=i(()=>{let[t,e]=Vo(!1),[o,n]=Vo(!1),[r,s]=Vo(!1),[a,l]=Vo(!1),[p,c]=Vo(!1),u=i(()=>{e(window.innerWidth<=wu),n(window.innerWidth>wu&&window.innerWidth<=xu),s(window.innerWidth>xu&&window.innerWidth<=vu),l(window.innerWidth>vu&&window.innerWidth<=bu),c(window.innerWidth>bu)},"handleResize");return mS(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:a,isExtraLargeScreen:p}},"useScreenDetect"),Cr=dS;var kr=4,wr=6,jo=i(t=>{let{content:e,src:o,className:n,open:r,state:s,container:a}=t,l=a||L();return P.createElement(xr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},P.createElement(au,{className:n,state:s},P.createElement(hS,{src:o,size:16})))},"ImageComponent");function Eu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:s,type:a,container:l}=t,p=l||L(),c=r.length,u=mp(r),{isTablet:d,isMobile:m}=Cr();return P.createElement(su,{listItem:a==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},P.createElement("div",{className:Co()},P.createElement(Tr,{variant:"body",size:"xsmall"},Iu.t("Via:")),P.createElement(vs,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=P.createElement(Ts,null,P.createElement(gS,{size:12,color:"black"}));return m||d?P.createElement(P.Fragment,{key:S},P.createElement(jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==c-1&&P.createElement(P.Fragment,null,C)):P.createElement(P.Fragment,{key:S},c<=kr||c>kr&&g<kr-1?P.createElement(P.Fragment,null,P.createElement(jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==c-1&&P.createElement(P.Fragment,null,C)):g===kr-1&&P.createElement(xr,{container:p,side:"bottom",align:"end",sideOffset:4,content:P.createElement("div",{className:Co()},C,r.map((y,k)=>{let T=`image-${k}`;return k>=g&&P.createElement(P.Fragment,{key:T},P.createElement(jo,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),k!==c-1&&P.createElement(P.Fragment,null,C))}))},P.createElement(ws,{state:r.find((y,k)=>k>=g&&(y.state==="error"||y.state==="warning"))?.state},P.createElement(Tr,{size:"xsmall",variant:"body"},"+",c-g))))})),P.createElement("div",{className:Co()},P.createElement("div",{className:"blockchains_section"},P.createElement("div",{className:Co()},P.createElement(Tr,{variant:"body",size:"xsmall"},Iu.t("Chains:")),P.createElement(vs,{direction:"horizontal",size:4}),u.map((f,g)=>P.createElement(P.Fragment,{key:f.displayName},u.length<=wr||u.length>wr&&g<wr-1?P.createElement(xr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},P.createElement(jo,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===wr-1&&P.createElement(xr,{container:p,side:"bottom",align:"end",sideOffset:4,content:P.createElement("div",{className:Co()},u.map((S,C)=>C>=g&&P.createElement(jo,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},P.createElement(ws,{className:"blockchainImage"},P.createElement(Tr,{size:"xsmall",variant:"body"},"+",u.length-g))))),P.createElement(vs,{direction:"horizontal",size:32}))),P.createElement(Ts,{orientation:s?"up":"down"},P.createElement(fS,{size:12,color:"black"}))))}i(Eu,"QuoteTrigger");function Is(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,selected:l=!1,tagHidden:p=!0,showModalFee:c=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:m}=t,f=h().blockchains(),g=h().tokens(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),k=C||y,[T,w]=vS(t.expanded),I=xS(null),b=N(o.value,6,6),v=N(n.value,6,6),x=n.usdValue?N(n.usdValue,4,4):"",A=Ye(o.usdValue,n.usdValue??null),W=N(A,2,2),O=Tt(A??0),Q=i((ee,ke)=>ee.map((_,Ve)=>{let H,X=r?.type===3&&r.swap.swapperId===_.swapperId,ne=r?.type===4&&r.recommendedSlippages?.has(Ve),Ae=s?.type===2&&s.recommendedSlippages?.has(Ve),qe=X||ne,Ee=Ae;qe?H="error":Ee&&(H="warning");let ye=qe?eo.t("Slippage Error"):eo.t("Slippage Warning");return X&&(ye=eo.t("Bridge Limit Error")),{swapper:{displayName:Mo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Ve===0&&!ke?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:pe(Ve===0?o.value:_.fromAmount),realUsdValue:pe(new bs(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:pe(_.toAmount),realUsdValue:pe(new bs(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:H,alerts:qe||Ee?B.createElement(Yc,{dense:d},B.createElement(yS,{variant:"alarm",type:qe?"error":"warning",title:ye,footer:B.createElement(Zc,null,X&&B.createElement("div",null,B.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(To,{direction:"vertical",size:2}),B.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},eo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(ne||Ae)&&!X&&B.createElement("div",null,B.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},eo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Ve)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(Ve)}}})),B.createElement(To,{direction:"vertical",size:2}),B.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},eo.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:Eo(_.estimatedTimeInSeconds),fee:N(Ei(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),M=Q(e?.swaps??[]),E=M.length,j=m||L(),Y=fp(t.quote.tags||[]),te=!!u,F=Eo(hn(e?.swaps)),fe=Pn(e?.swaps??[],g),q=N(fe,2,2),le=fe.gte(new bs(zl));return d?B.createElement(SS,{selected:l,fee:q,time:F,tooltipContainer:Wo(),steps:M,tags:Y,feeWarning:le,percentageChange:W,warningLevel:O,outputPrice:{value:v,usdValue:x,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):B.createElement(ou,{selected:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:nu()},!p&&Y.length?B.createElement(B.Fragment,null,B.createElement(mu,null,Y.map((ee,ke)=>{let _=`${ee.value}_${ke}`;return B.createElement(B.Fragment,{key:_},B.createElement(TS,{label:ee.label,value:ee.value}),B.createElement(To,{size:4,direction:"horizontal"}))})),B.createElement(fr,null),!te&&B.createElement(To,{size:4})):null,B.createElement("div",{id:"portal-root",className:ru()},B.createElement(yu,{quote:e,time:F,fee:q,feeWarning:le,showModalFee:c,steps:E}),te&&B.createElement(tu,{onClick:ee=>{ee.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},B.createElement(ko,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},eo.t("See All Routes")))),a==="basic"&&B.createElement("div",{className:iu()},B.createElement(cu,null,B.createElement(CS,{size:12,color:"gray"})),B.createElement(uu,null,B.createElement(ks,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),B.createElement(Au,{content:pe(n.value),container:j,open:n.value?void 0:!1},B.createElement(ks,{size:"small",variant:"body"},"\xA0",`${v} ${M[M.length-1].to.token.displayName}`))),B.createElement(Au,{content:pe(n.usdValue),container:j},B.createElement(To,{size:2,direction:"horizontal"}),B.createElement(ko,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),a==="list-item"&&B.createElement(wS,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:v,usdValue:x,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:M[E-1].to.token.displayName,image:M[E-1].to.token.image},chain:{image:M[E-1].to.chain.image},percentageChange:W,warningLevel:O}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(Go,{from:M[0].from,to:M[E-1].to,percentageChange:W,warningLevel:O}),B.createElement(To,{size:4}))),B.createElement(Rc,{selected:l,listItem:a==="list-item",open:T,className:"quote_container",onOpenChange:w},B.createElement(Eu,{type:a,quoteRef:I,selected:l,setExpanded:w,container:j,expanded:T,steps:M}),B.createElement(lu,{open:T},B.createElement(pu,null),B.createElement("div",{className:eu()},M.map((ee,ke)=>{let _=`item-${ke}`;return B.createElement(kS,{type:"quote-details",key:_,tooltipContainer:j,step:ee,hasSeparator:ke!==M.length-1,state:ee.state})})))))}i(Is,"Quote");import{Divider as AS,Skeleton as NS}from"@rango-dev/ui";import vt from"react";import{darkTheme as bS,styled as vr}from"@rango-dev/ui";var Nu=vr("div",{$$color:"$colors$neutral100",[`.${bS} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Wu=vr("div",{paddingTop:"$2"}),Mu=vr("div",{paddingLeft:"$8"}),Lu=vr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as qu,Divider as it,Skeleton as Ge}from"@rango-dev/ui";import z from"react";import{css as IS,styled as xt}from"@rango-dev/ui";var Es=xt("div",{display:"flex"}),Bu=xt("div",{padding:"$10 $0 $20"}),_u=xt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Pu=xt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),$u=xt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Du=xt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Fu=xt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ou=xt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Uu=xt("div",{padding:"$15 $0 $15 $0"}),zu=IS({display:"flex",justifyContent:"space-between",alignItems:"center"});function Xo(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement($u,null,z.createElement(Fu,null,z.createElement(qu,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(it,{size:8,direction:"horizontal"}),z.createElement(Ou,null,z.createElement(Ge,{height:10,width:60,variant:"rounded"}),z.createElement(it,{size:4}),z.createElement(Ge,{height:15,variant:"rounded"}))),z.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(Es,null,z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(it,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(it,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"})),z.createElement(fr,null),!r&&z.createElement(it,{size:4})),z.createElement("div",{className:zu()},z.createElement(Es,null,z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(it,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(it,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&z.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Bu,null,z.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(_u,null,z.createElement(Pu,null,z.createElement(qu,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(it,{direction:"horizontal",size:4}),z.createElement(Ge,{height:15,width:150,variant:"rounded"})),z.createElement(it,{size:10}),z.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(it,{size:4}),z.createElement(Uu,null,n,z.createElement(Du,null),n),z.createElement(it,{size:12})))}i(Xo,"QuoteSummarySkeleton");import{ChainToken as ju,Divider as Ns,NextIcon as ES,Skeleton as br}from"@rango-dev/ui";import Ce from"react";import{styled as Ko}from"@rango-dev/ui";var Qu=Ko("div",{display:"flex",alignItems:"start"}),Hu=Ko("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),As=Ko("div",{display:"flex",alignItems:"center",flexGrow:1}),Gu=Ko("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Vu=Ko("div",{display:"flex",alignItems:"center"});function gt(t){let{separator:e=!0}=t;return Ce.createElement(Ce.Fragment,null,Ce.createElement(Vu,null,Ce.createElement(br,{height:22,width:22,variant:"circular"}),Ce.createElement(Ns,{direction:"horizontal",size:8}),Ce.createElement(br,{height:15,width:148,variant:"rounded"})),Ce.createElement(Qu,null,Ce.createElement(Lu,{hideSeparator:!e}),Ce.createElement(Hu,{extraSpace:e},Ce.createElement(As,null,Ce.createElement(ju,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ce.createElement(Ns,{direction:"horizontal",size:8}),Ce.createElement(br,{height:12,variant:"rounded"})),Ce.createElement(Gu,null,Ce.createElement(ES,{color:"gray",size:16})),Ce.createElement(As,null,Ce.createElement(ju,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ce.createElement(Ns,{direction:"horizontal",size:8}),Ce.createElement(br,{height:12,variant:"rounded"})))))}i(gt,"StepSkeleton");function Yo(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return vt.createElement(Nu,{expanded:o,rounded:e!=="basic"},vt.createElement(Xo,{type:e,tagHidden:n}),vt.createElement(Wu,null,vt.createElement(NS,{height:15,variant:"rounded"})),o&&vt.createElement(Mu,null,vt.createElement(AS,{size:24}),vt.createElement(gt,null),vt.createElement(gt,null),vt.createElement(gt,{separator:!1})))}i(Yo,"QuoteSkeleton");function to(t){let{quote:e,type:o,loading:n,error:r,warning:s,expanded:a=!1,tagHidden:l,onClick:p,showModalFee:c,selected:u,onClickAllRoutes:d,fullExpandedMode:m=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=V(),y=e?.outputAmount?new WS(e?.outputAmount):null,k=e?.outputAmount?Dn(e?.outputAmount,On(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ir.createElement(Cs,null,Ir.createElement(Yo,{tagHidden:l,type:o,expanded:a})):w?Ir.createElement(Cs,{onClick:()=>p?.(e)},Ir.createElement(Is,{quote:e,error:r,container:f,showModalFee:c,warning:s,tagHidden:l,selected:u,type:o,expanded:a,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:k?.toString()??""}})):null}i(to,"QuoteInfo");import{calculatePendingSwap as _S}from"@rango-dev/queue-manager-rango-preset";import{useEffect as PS}from"react";import{useRef as MS,useState as LS}from"react";var BS=2e3;function Er({request:t}){let[e,o]=LS(!1),n=MS(null),r=i(()=>n.current?.abort(),"cancelFetch"),s=i(async l=>(await new Promise(p=>setTimeout(p,BS)),await a(l,!1)),"retryFetch"),a=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let c=await t(l,{signal:n.current.signal});return n.current=null,c}catch(c){if(p)return await s(l);throw c}finally{o(!1)}},"fetch");return{fetch:a,loading:e,cancelFetch:r}}i(Er,"useFetch");function Xu(){let{fetch:t,loading:e,cancelFetch:o}=Er({request:async(n,r)=>await Lt().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Xu,"useFetchConfirmQuote");function Ar(t){if(!t.swaps)throw new Error(R().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ws(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ar,"throwErrorIfResponseIsNotValid");function Ws(t){if(Hl(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Gl(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}}}let o=Kl(t);if(o){let n=$n(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ws,"getQuoteError");function Ku(t,e,o){let n=!1;t&&(n=cp(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=so(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(tp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(io(e)),percentageChange:N(Ye(io(t)??"",io(e)??""),null,2)}:Ni(t,e)?r.quoteUpdate={type:0}:Wi(t,e)?r.quoteUpdate={type:1}:Mi(t,e)&&(r.quoteUpdate={type:2}));let a=op(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Ku,"generateWarnings");function Nr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Nr,"handleQuoteErrors");function Ms(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:s,setQuoteWarningsConfirmed:a,resetAlerts:l}=V(),{slippage:p,customSlippage:c}=h(),u=h().getDisabledLiquiditySources(),d=h().blockchains(),m=h().tokens(),f=c||p,{fetch:g,cancelFetch:S,loading:C}=Xu();return PS(()=>S,[]),{loading:C,fetch:i(async k=>{let T=k.selectedWallets,w=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=T.reduce((v,x)=>(v[x.chain]=x.address,v),{}),b={requestId:r?.requestId||"",selectedWallets:I,destination:w||void 0};try{return await g(b,!0).then(v=>{let{result:x}=v;Ar({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let A={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};n(A);let W={slippage:f.toString(),disabledSwappersGroups:u},O=Ku(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:T,userSlippage:f});O.quoteUpdate&&a(!1),l();let Q=!!O.balance,M=_S(o.toString(),x,Rl(T),W,!Q,{blockchains:d,tokens:m});return{quote:A,swap:M,error:null,warnings:O}})}catch(v){return Nr(v)}},"fetch"),cancelFetch:S}}i(Ms,"useConfirmSwap");var GS=FS("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Zu}`]:{width:"$48",height:"$48"}}),VS=_s({flexGrow:1,paddingRight:"$10"}),jS=_s({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),XS=_s({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ju(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:s}=V(),a=HS(),l=QS(),[p,c]=Zo(""),u=!n,[d,m]=Zo(!1),[f,g]=Zo(!1),{isActiveTab:S}=oe(),C=h().getDisabledLiquiditySources(),y=qS(C),{manager:k}=$S(),{fetch:T,loading:w,cancelFetch:I}=Ms(),[b,v]=Zo({swap:null,error:null,warnings:null}),[x,A]=Zo(!1),W=i(async({selectedWallets:F,customDestination:fe})=>{let q=await T?.({selectedWallets:F,customDestination:fe});return v(q),q},"onConfirmSwap"),O=i(async()=>{if(b.swap&&n)try{await k?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let F=`../${U.swaps}/${b.swap.requestId}`;a(F,{replace:!0}),setTimeout(()=>{e("")},0)}catch(F){c("Error: "+F?.message)}},"addNewSwap"),Q=i(async()=>{g(!0),await O(),g(!1)},"onConfirm"),M=i(async()=>{b?.warnings?.quote&&!s?A(!0):await Q()},"onStartConfirmSwap"),E=i(async()=>{v({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(F=>{v(F)}).catch(F=>console.error(F))},"onRefresh");Wr(()=>{!!y.current.length&&!C.length&&E(),y.current=C},[C.length]),Wr(()=>{u&&I()},[u]),Wr(()=>{u&&m(u)},[u]),Wr(()=>{u||T({selectedWallets:o,customDestination:r}).then(F=>v(F)).catch(F=>console.error(F))},[]),zS(()=>{t||a(`../${l.search}`)},[]);let j=b.warnings?.quote??null,Y=b.error,te=[];if(p&&te.push(Te.createElement(Yu,{type:"error",variant:"alarm",title:p})),b.warnings?.quoteUpdate&&te.push(Te.createElement(Yu,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&Qn(b.warnings.quoteUpdate)})),j||Y){let F=`../${U.settings}`;te.push(Te.createElement(Qo,{warning:j,error:Y,couldChangeSettings:!1,refetchQuote:E,showWarningModal:x,confirmationDisabled:!S,onOpenWarningModal:()=>A(!0),onCloseWarningModal:()=>A(!1),onConfirmWarningModal:async()=>{A(!1),await O()},onChangeSettings:()=>a(F)}))}return Te.createElement(ae,{header:{title:Ls.t("Confirm Swap"),onWallet:()=>{let F=`../${U.wallets}`;a(F)}},footer:Te.createElement(GS,null,Te.createElement("div",{className:VS()},Te.createElement(DS,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w||f,disabled:!!b.error||!S,onClick:M},Ls.t("Start Swap"))),Te.createElement(Zu,{variant:"contained",type:"primary",size:"large",loading:w||f,disabled:!S,onClick:m.bind(null,!0)},Te.createElement(US,{size:24})))},d&&Te.createElement(Mc,{open:d,onClose:()=>m(!1),onCancel:I,loading:w,onCheckBalance:W}),Te.createElement(ce,null,Te.createElement("div",{className:XS()},Te.createElement(OS,{variant:"title",size:"small"},Ls.t("You get")),Te.createElement("div",{className:jS()},Te.createElement(tr,{onClick:!w&&!d&&!x?E:void 0}))),Te.createElement(Bs,{size:"12"}),$p(te.map((F,fe)=>({element:F,key:`alert-${fe}`})),Te.createElement(Bs,{size:10})),te.length>0?Te.createElement(Bs,{size:10}):null,Te.createElement(to,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:w,warning:b.warnings?.quote??null})))}i(Ju,"ConfirmSwapPage");import{i18n as Lr}from"@lingui/core";import{useManager as cC}from"@rango-dev/queue-manager-react";import{Divider as pm,NotFound as uC,styled as mC}from"@rango-dev/ui";import It,{useState as dC}from"react";import{useNavigate as fC}from"react-router-dom";import{i18n as ZS}from"@lingui/core";import{Divider as nm,GroupedVirtualizedList as JS,Skeleton as RS,SwapListItem as rm,Typography as eC}from"@rango-dev/ui";import $e,{useCallback as im,useEffect as tC,useRef as oC,useState as nC}from"react";function Ru(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Ru,"calculateGroupsSoFar");import{css as KS,darkTheme as YS,styled as Jo}from"@rango-dev/ui";var Ps=KS(),em=Jo("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),$s=Jo("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ps}`]:{$$color:"$colors$neutral600",[`.${YS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ds=Jo("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),tm=Jo("div",{gap:"$10",display:"flex",flexDirection:"column"}),om=Jo("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var rC=10;function Fs(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[s,a]=nC([]),l=oC(0),{swaps:p,groupCounts:c,groups:u}=n(e),d=im(Ru,[]),m=im(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,rC),a(d(c,l.current)))},[e.length]);if(tC(()=>{r||m()},[r,m]),r){let f=[1,2];return $e.createElement($e.Fragment,null,[f,f].map((S,C)=>$e.createElement($s,{key:C},$e.createElement(Ds,null,$e.createElement(RS,{variant:"text",width:60,size:"small"}),$e.createElement(nm,{size:16})),$e.createElement(nm,{size:4}),$e.createElement(tm,null,S.map((k,T)=>$e.createElement(rm,{isLoading:!0,key:T}))))))}return $e.createElement(JS,{endReached:()=>{l.current<e.length&&m()},groupCounts:s,groupContent:f=>$e.createElement($s,null,$e.createElement(Ds,null,$e.createElement(eC,{variant:"label",size:"medium",className:Ps()},u[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return $e.createElement(em,{key:S.requestId},$e.createElement(rm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:L(),onlyShowTime:u[g]===ZS.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:pe(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(Fs,"HistoryGroupedList");import{CloseIcon as sC,IconButton as aC,SearchIcon as lC,TextField as pC}from"@rango-dev/ui";import Ro from"react";import{styled as iC}from"@rango-dev/ui";var sm=iC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function bt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return Ro.createElement(pC,{prefix:Ro.createElement(sm,null,Ro.createElement(lC,{color:"black"})),suffix:!!a.length&&Ro.createElement(aC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},Ro.createElement(sC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(bt,"SearchInput");import{i18n as Mr}from"@lingui/core";import am from"dayjs";var lm=i(t=>{let e=new Map([["today",{title:Mr.t("Today"),swaps:[]}],["week",{title:Mr.t("This week"),swaps:[]}],["month",{title:Mr.t("This month"),swaps:[]}],["year",{title:Mr.t("This year"),swaps:[]}]]);function o(p,c){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(c)}i(o,"addYearsToOutput");let n=am();t.forEach(p=>{let c=Number(p.creationTime),u=am(c);if(n.isSame(u,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(p);else{let d=new Date(c).getFullYear().toString();o(d,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),s=r.flatMap(p=>p.swaps),a=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:s,groupCounts:a,groups:l}},"groupSwapsByDate");var gC=mC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hC=i((t,e)=>t?.length?t.filter(o=>ct(o.fromBlockchain,e)||ct(o.toBlockchain,e)||ct(o.toSymbol,e)||ct(o.fromSymbol,e)).length:!1,"isStepContainsText");function cm(){let t=fC(),{manager:e,state:o}=cC(),n=mt(e).map(({swap:u})=>u),[r,s]=dC(""),a=!o.loadedFromPersistor,l=i(u=>{let d=u.target.value;s(d)},"searchHandler"),p=n;r&&(p=n.filter(u=>ct(u.inputAmount,r)||ct(u.status,r)||hC(u.steps,r)||ct(u.requestId,r)));let c=!p?.length&&!a;return It.createElement(ae,{header:{title:Lr.t("History")}},It.createElement(ce,null,It.createElement(bt,{setValue:s,fullWidth:!0,variant:"contained",placeholder:Lr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),It.createElement(pm,{size:"16"}),It.createElement(gC,null,c&&It.createElement(om,null,It.createElement(pm,{size:32}),It.createElement(uC,{title:Lr.t("No results found"),description:r?Lr.t("Try using different keywords"):""})),!c&&It.createElement(Fs,{list:p,onSwapClick:t,groupBy:lm,isLoading:a}))))}i(cm,"HistoryPage");import{i18n as _C}from"@lingui/core";import{Button as PC,Divider as Am,styled as $C,WarningIcon as DC}from"@rango-dev/ui";import FC from"bignumber.js";import Ue,{useEffect as Nm,useState as Wm}from"react";import{useNavigate as OC}from"react-router-dom";import{i18n as wC}from"@lingui/core";import{Header as xC}from"@rango-dev/ui";import Ut,{useEffect as vC,useState as bC}from"react";import{i18n as SC}from"@lingui/core";import{Divider as Us,FullExpandedQuote as CC,Typography as TC}from"@rango-dev/ui";import me from"react";import{styled as Os}from"@rango-dev/ui";var um=Os("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),mm=Os("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),dm=Os("div",{width:"146px"});import{i18n as en}from"@lingui/core";import{Select as yC}from"@rango-dev/ui";import fm from"react";function Br(t){let{updateQuotePartialState:e,sortStrategy:o}=V(),n=[{value:"SMART",label:en.t("Smart Routing")},{value:"FEE",label:en.t("Lowest Fee")},{value:"SPEED",label:en.t("Fastest Transfer")},{value:"NET_OUTPUT",label:en.t("Maximum Return")},{value:"PRICE",label:en.t("Maximum Output")}];return fm.createElement(dm,null,fm.createElement(yC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Br,"SelectStrategy");var gm=3;function tn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:s=!0,fullExpandedMode:a=!1,container:l}=t,{selectedQuote:p,quotes:c,updateQuotePartialState:u,fromToken:d,toToken:m,sortStrategy:f,error:g}=V(),{slippage:S,customSlippage:C}=h(),y=h().tokens(),k=l||L(),T=!!c&&c.results.length,w=C??S,I=i(x=>{if(!d||!m||!c)return null;let A={requestAmount:c.requestAmount,...x};return so(A,{fromToken:d,toToken:m,userSlippage:w,tokens:y})},"getQuoteWarning"),b=g?.type===0||g?.type===1,v=c?.results?Un(f,c?.results):[];return me.createElement(me.Fragment,null,s&&me.createElement(me.Fragment,null,me.createElement(mm,null,me.createElement(TC,{size:"xmedium",variant:"title"},SC.t("Sort by")),me.createElement(Br,{container:k})),me.createElement(Us,{size:"10"})),e&&Array.from({length:gm},(x,A)=>me.createElement(me.Fragment,{key:A},a?me.createElement(CC,{loading:!0}):me.createElement(Yo,{tagHidden:!1,type:"list-item",expanded:!1}),A!==gm-1&&me.createElement(Us,{size:16}))),!e&&me.createElement(me.Fragment,null,T?v.map((x,A)=>{let W=I(x),O=Ws(x.swaps),Q=v.length-1===A;return me.createElement(me.Fragment,{key:x.requestId},me.createElement(to,{showModalFee:r,container:k,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:c.requestAmount},loading:e,error:O?.options||null,warning:W,fullExpandedMode:a,onClick:M=>{O||u("warning",W),u("error",O?.options||null),o(M)},type:"list-item"}),!Q&&me.createElement(Us,{size:16}))}):b&&me.createElement(um,null,me.createElement(zo,{size:a?"large":"small",error:g,fetch:n}))))}i(tn,"Quotes");import{darkTheme as kC,styled as hm}from"@rango-dev/ui";var ym=hm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${kC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Sm=hm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var IC=100;function zs(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:s}=t,[a,l]=bC(!1),p=a?"":"is-hidden",{config:c}=h(),u=c?.variant==="full-expanded",d=Wo();return vC(()=>{let m=null;return s?m=setTimeout(()=>{l(!0)},IC):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[s]),Ut.createElement(ym,{expandMode:c?.variant==="full-expanded"?"full":"default",className:`${p} ${rr()}`,id:we.EXPANDED_BOX_ID},Ut.createElement(xC,{title:wC.t("Routes"),suffix:Ut.createElement(Ut.Fragment,null,Ut.createElement(Br,{container:d}),Ut.createElement(Zt,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Ut.createElement(Sm,null,Ut.createElement(tn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Wo(),onClickOnQuote:n,fullExpandedMode:u})))}i(zs,"ExpandedQuotes");import{i18n as bm}from"@lingui/core";import{SwapInput as Im}from"@rango-dev/ui";import on from"react";import{ReverseIcon as NC}from"@rango-dev/ui";import Qs from"react";import{keyframes as EC,styled as Cm}from"@rango-dev/ui";var qs=450,AC=EC({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Tm=Cm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),km=Cm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${AC} ${qs}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Hs(){let t=V.use.switchFromAndTo();return Qs.createElement(Tm,null,Qs.createElement(km,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},qs),t()}},Qs.createElement(NC,{size:12})))}i(Hs,"SwitchFromAndToButton");import{styled as wm}from"@rango-dev/ui";var xm=wm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vm=wm("div",{position:"relative"});function Gs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:c,inputAmount:u,inputUsdValue:d,outputAmount:m,outputUsdValue:f,selectedQuote:g}=V(),{connectedWallets:S,getBalanceFor:C}=J(),y=s?C(s):null,k=wn(y)?.amount??"0",T=a&&s?N(y?.amount,y?.decimals):"0",w=!!a&&il(S,a.name),I=!Ii(g,u,d),b=!Ii(g,u,f),v=!d||!f||!f.gt(0)?null:Ye(d.toString(),f.toString());return on.createElement(xm,null,on.createElement(vm,null,on.createElement(Im,{label:bm.t("From"),mode:"From",onInputChange:c,balance:k,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>n("from"),price:{value:u,usdValue:I?void 0:N(d,4,4),realUsdValue:I?void 0:pe(d),error:I?R().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:L(),onSelectMaxBalance:()=>{c(T.split(",").join(""))}}),on.createElement(Hs,null)),on.createElement(Im,{sharpBottomStyle:!r&&(!!g||e),label:bm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ye(d,f),2,2),warningLevel:Tt(v??0),price:{value:N(m,6,6),usdValue:b?void 0:N(f,4,4),realValue:pe(m),realUsdValue:b?void 0:pe(f),error:b?R().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:L()}))}i(Gs,"Inputs");import{useCallback as WC,useEffect as MC,useState as LC}from"react";function Em(){let{fetch:t,loading:e,cancelFetch:o}=Er({request:async(n,r)=>await Lt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Em,"useFetchAllQuotes");var BC=600;function _r({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Em(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:s}=h().config,a=J.use.connectedWallets(),l=h().tokens(),{fromToken:p,toToken:c,inputAmount:u,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:y,updateQuotePartialState:k}=V(),{slippage:T,customSlippage:w,affiliatePercent:I,affiliateRef:b,affiliateWallets:v,fetchStatus:x}=h(),A=h().getLiquiditySources(),W=h().getDisabledLiquiditySources(),O=h().excludeLiquiditySources(),[Q,M]=LC(!0),E=w??T,Y=!p||!c||Be(p,c)||!Ao(u),te=i(q=>{M(q)},"resetState"),F=i(q=>{let{fromToken:le,toToken:ee,inputAmount:ke,liquiditySources:_,excludeLiquiditySources:Ve,disabledLiquiditySources:H,slippage:X,affiliateRef:ne,affiliatePercent:Ae,affiliateWallets:qe}=q;if(Q||te(!0),!Y&&le&&ee){g();let Ee=Jl({fromToken:le,toToken:ee,inputAmount:ke,liquiditySources:_,excludeLiquiditySources:Ve,disabledLiquiditySources:H,wallets:a,slippage:X,affiliateRef:ne,affiliatePercent:Ae,affiliateWallets:qe,enableCentralizedSwappers:s});vl("experimentalRoute",r)&&(Ee.experimental=!0),e(Ee).then(ye=>{let je=Un(f,ye.results),Me=dp(m,je,ye.requestAmount);M(!1),k("quotes",ye),y(Me),Ar({diagnosisMessages:ye.diagnosisMessages,requestId:Me?.requestId||"",swaps:Me?.swaps});let pt=Me&&so(Me,{fromToken:le,toToken:ee,userSlippage:E,tokens:l});k("warning",pt)}).catch(ye=>{let{error:je}=Nr(ye);(je?.type===0||je?.type===1)&&g(),je?.type!==2&&(k("error",je),M(!1))})}},"fetch"),fe=WC(Tl(q=>{Y||F(q)},BC),[Y]);return MC(()=>{if(!t){M(!1);return}if(x==="success"){if(Y){M(!1),(m||S||C)&&g();return}if(!Ao(u)||d?.eq(0)){te(!1),o();return}return g(),te(!0),fe({inputAmount:u,fromToken:p,toToken:c,liquiditySources:A,excludeLiquiditySources:O,disabledLiquiditySources:W,slippage:E,affiliateRef:b,affiliatePercent:I,affiliateWallets:v}),o}},[x,u,p?.symbol,p?.address,p?.blockchain,c?.symbol,c?.address,c?.blockchain,Y,A?.length,n,W.length,E,b,I,JSON.stringify(v)]),{fetch:()=>F({inputAmount:u,fromToken:p,toToken:c,liquiditySources:A,excludeLiquiditySources:O,disabledLiquiditySources:W,slippage:E,affiliateRef:b,affiliatePercent:I,affiliateWallets:v}),loading:Q}}i(_r,"useSwapInput");var UC=$C("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),zC=300;function Mm(){let t=OC(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:s,error:a,warning:l,quotes:p,setSelectedQuote:c,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=V(),[f,g]=Wm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Cr(),{fetch:y,loading:k}=_r({refetchQuote:s}),{config:T,fetchStatus:w}=h(),{connectedWallets:I}=J(),{isActiveTab:b}=oe(),[v,x]=Wm(!1),W=Vl({fetchMetaStatus:w,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:a,warning:l,needsToWarnEthOnPath:!1}),O=ul(S,C,T?.variant),Q=!!n&&!!e&&!!o&&new FC(n).gt(0)&&!ap(e,o),M=Q&&w==="success"&&k,Y=(!O||O&&p?.results.length)&&(l||a);Nm(()=>{u(),m("refetchQuote",!0)},[]),Nm(()=>{g(Q)},[Q]);let te=(r||a)&&!v?y:void 0,F=i(q=>{O&&f?(g(!1),setTimeout(()=>{t(q)},zC)):t(q)},"onHandleNavigation"),fe=i(q=>{r?.requestId!==q.requestId&&(x(!1),c(q))},"onClickOnQuote");return Ue.createElement(UC,null,Ue.createElement(ae,{height:"auto",footer:Ue.createElement(PC,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Ue.createElement(DC,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?F(U.wallets):W.action==="confirm-warning"?x(!0):F(U.confirmSwap)}},W.title),header:{onWallet:()=>{F(U.wallets)},hasBackButton:!1,title:T.title||_C.t("Swap"),suffix:Ue.createElement(Zt,{hidden:O?["refresh"]:void 0,onClickRefresh:te,onClickHistory:()=>F(U.swaps),onClickSettings:()=>{F(U.settings)}})}},Ue.createElement(ce,null,Ue.createElement(Gs,{fetchingQuote:M,fetchMetaStatus:w,isExpandable:O,onClickToken:q=>{F(q==="from"?U.fromSwap:U.toSwap)}}),Ue.createElement(Am,{size:"2"}),O?null:Ue.createElement(to,{quote:r,loading:M,error:a,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),F(U.routes)}:void 0}),Y?Ue.createElement(Ue.Fragment,null,Ue.createElement(Am,{size:"10"}),Ue.createElement(Qo,{warning:l,error:a,couldChangeSettings:!0,refetchQuote:y,showWarningModal:v,confirmationDisabled:!b,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),d(!0),F(U.confirmSwap)},onChangeSettings:()=>F(U.settings)})):null)),O?Ue.createElement(zs,{loading:M,onClickOnQuote:fe,fetch:y,onClickRefresh:te,isVisible:f}):null)}i(Mm,"Home");import{i18n as Lm}from"@lingui/core";import{Alert as qC,Divider as QC,List as HC,ListItemButton as GC,Radio as VC,RadioRoot as jC,Typography as XC}from"@rango-dev/ui";import ht from"react";function zt(){let{setLanguage:t,language:e,config:o}=h(),n=Il,r=o?.language||Lo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:s=>t(s||Lo),resetLanguage:()=>t(null)}}i(zt,"useLanguage");function Bm(){let{activeLanguage:t,changeLanguage:e,languages:o}=zt(),n=Je(),r=o.map(s=>{let{local:a,label:l,SVGFlag:p}=s;return{id:a,value:a,title:ht.createElement(XC,{variant:"title",size:"xmedium"},l),onClick:()=>{e(s.local),n()},end:ht.createElement(VC,{value:a}),start:ht.createElement(p,null)}});return ht.createElement(ae,{header:{title:Lm.t("Language")}},ht.createElement(ce,null,ht.createElement(qC,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),ht.createElement(QC,{size:"8"}),ht.createElement(jC,{value:t},ht.createElement(HC,{type:ht.createElement(GC,{title:Lm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Bm,"LanguagePage");import{i18n as Et}from"@lingui/core";import{Button as RC,Checkbox as eT,Image as tT,ListItemButton as oT,NotFound as nT,Typography as rT}from"@rango-dev/ui";import De,{useState as iT}from"react";import{Checkbox as ZC,Skeleton as Pm}from"@rango-dev/ui";import rn from"react";import{styled as Vs}from"@rango-dev/ui";var nn=Vs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),js=Vs("div",{width:80,display:"flex",justifyContent:"flex-end"}),Xs=Vs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as KC,styled as YC}from"@rango-dev/ui";var _m=YC(KC,{height:61});var JC=30;function Ks(){return rn.createElement(nn,null,Array.from(Array(JC),(t,e)=>rn.createElement(_m,{hasDivider:!0,key:e,start:rn.createElement(Pm,{variant:"circular",width:35,height:35}),title:rn.createElement(Pm,{variant:"text",size:"large",width:90}),end:rn.createElement(ZC,{checked:!1})})))}i(Ks,"LoadingLiquiditySourceList");function Ys({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,s]=iT(""),a=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=An(o,n),c={Exchanges:Et.t("Exchanges"),Bridges:Et.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(y=>u.includes(y.type)),m=d.length===d.filter(y=>y.selected).length,f=i(()=>{d.forEach(y=>{m?a(y.groupTitle):y.selected||a(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:k,groupTitle:T,logo:w}=y;return{start:De.createElement(tT,{src:w,size:22,type:"circular"}),onClick:()=>{l||a(T)},end:De.createElement(eT,{checked:k,disabled:l}),title:De.createElement(rT,{variant:"title",size:"xmedium"},Et.t(T)),...y}}),S=i(y=>{let k=y.target.value;s(k)},"searchHandler"),C=g;return r&&(C=g.filter(y=>ct(y.groupTitle,r))),De.createElement(ae,{header:{title:Et.t(t),suffix:De.createElement(js,null,De.createElement(RC,{variant:"ghost",size:"xsmall",onClick:f},m?Et.t("Deselect all"):Et.t("Select all")))}},De.createElement(ce,{view:!0},De.createElement(bt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Et.t("Search {sourceType}",{sourceType:c[t]}),onChange:S}),e==="loading"&&De.createElement(Ks,null),!C.length&&r?De.createElement(Xs,null,De.createElement(nT,{title:Et.t("No results found"),description:Et.t("Try using different keywords")})):e==="success"&&De.createElement(nn,{disabled:l},C.map(y=>{let{groupTitle:k,...T}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(oT,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(Ys,"LiquiditySourcePage");import{i18n as sT}from"@lingui/core";import Pr from"react";import{useNavigate as aT}from"react-router-dom";function $m(){let t=aT(),e=Je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:s,error:a}=V(),{fetch:l,loading:p}=_r({refetchQuote:n}),c=i(m=>{r(m),s("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${U.settings}`,d=`../${U.wallets}`;return Pr.createElement(ae,{header:{onWallet:()=>{t(d)},onBack:()=>{s("refetchQuote",!1)},title:sT.t("Routes"),suffix:Pr.createElement(Zt,{onClickRefresh:o||a?l:void 0,hidden:["notifications","history"],onClickSettings:()=>t(u)})}},Pr.createElement(ce,null,Pr.createElement(tn,{fetch:l,loading:p,onClickOnQuote:c})))}i($m,"RoutesPage");import{i18n as Hm}from"@lingui/core";import{Divider as Gm,getCountCategories as yT,SelectableCategoryList as ST}from"@rango-dev/ui";import At,{useState as Vm}from"react";import{i18n as Js}from"@lingui/core";import{Divider as qm,Image as mT,ListItemButton as dT,NotFound as fT,Typography as Qm}from"@rango-dev/ui";import Re,{useEffect as gT,useState as hT}from"react";import{BlockchainCategories as Zs}from"@rango-dev/ui";import{TransactionType as $r}from"rango-sdk";var lT=i((t,e)=>{switch(e){case Zs.ALL:return!0;case Zs.UTXO:return t.type===$r.TRANSFER;case Zs.OTHER:return t.type!==$r.TRANSFER&&t.type!==$r.COSMOS&&t.type!==$r.EVM;default:return t.type===e}},"filterByType"),Dm=i((t,e,o)=>t.filter(n=>lT(n,o)).filter(n=>Ct(n.name,e)||Ct(n.displayName,e)),"filterBlockchains");import{ImageContainer as pT,styled as Fm}from"@rango-dev/ui";var Om=Fm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Dr=Fm(Fo,{padding:0,margin:0,listStyle:"none",[`& ${pT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as cT,Skeleton as Um}from"@rango-dev/ui";import Fr from"react";var uT=20;function zm(){return Fr.createElement(Dr,null,Array.from(Array(uT),t=>Fr.createElement(cT,{key:t,hasDivider:!0,start:Fr.createElement(Um,{variant:"circular",width:35,height:35}),title:Fr.createElement(Um,{variant:"text",size:"large",width:90})})))}i(zm,"LoadingBlockchainList");function Rs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=hT(e),{fetchStatus:l}=h();gT(()=>{a([...Dm(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(qm,{size:32}),Re.createElement(fT,{title:Js.t("No results found"),description:Js.t("Try using different keywords")})):Re.createElement(Dr,{as:"ul",key:`${r}-${o}`},s.map(c=>Re.createElement(dT,{key:`${c.name}-${c.chainId}`,hasDivider:!0,onClick:()=>n(c),start:Re.createElement(mT,{src:c.logo,size:30}),title:Re.createElement(Qm,{variant:"title",size:"medium"},c.displayName),id:c.chainId}))),"renderList");return Re.createElement(Om,null,Re.createElement(Qm,{variant:"label",size:"large"},Js.t("Select Blockchain")),Re.createElement(qm,{size:4}),l==="loading"&&Re.createElement(zm,null),l==="success"&&p())}i(Rs,"BlockchainList");function ea(t){let{type:e}=t,o=Je(),[n,r]=Vm(""),[s,a]=Vm("ALL"),l=V.use.setToBlockchain(),p=V.use.setFromBlockchain(),c=h().fetchStatus,u=h().blockchains({type:e}),m=yT(u)!==1;return At.createElement(ae,{header:{title:Hm.t("Select Blockchain")}},At.createElement(ce,{view:!0},m&&At.createElement(At.Fragment,null,At.createElement(ST,{setCategory:a,category:s,blockchains:u,isLoading:c==="loading"}),At.createElement(Gm,{size:24})),At.createElement(bt,{value:n,autoFocus:!0,placeholder:Hm.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),At.createElement(Gm,{size:16}),At.createElement(Rs,{list:u,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ea,"SelectBlockchainPage");import{i18n as Qr}from"@lingui/core";import{Divider as dd}from"@rango-dev/ui";import oo,{useState as PT}from"react";import{useNavigate as $T}from"react-router-dom";import{i18n as na}from"@lingui/core";import{BlockchainsChip as Or,Divider as Ym,Image as Zm,Skeleton as xT,Tooltip as vT,Typography as ra}from"@rango-dev/ui";import Ie from"react";import{useEffect as kT}from"react";var jm=["ETH","COSMOS","OSMOSIS"];function ta(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(CT),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let c=n[p];a=a.filter(u=>c.name!==u)}}n.sort(TT(a)),r=n.splice(s)}return{list:n,more:r}}i(ta,"prepare");function CT(t,e){let o=jm,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(CT,"sortByMostUsedBlockchains");function TT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(TT,"generateSortByPreferredBlockchainsFor");function Xm(t,e){return!!e.list.find(o=>o.name===t)}i(Xm,"isInVisibleList");function oa(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();kT(()=>{if(e?.selected){let s=ta(t,o,e);Xm(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=ta(t,o,e);return{list:r.list,more:r.more,history:[]}}i(oa,"usePrepareBlockchainList");import{styled as wT}from"@rango-dev/ui";var Km=wT("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var bT=12;function ia(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=oa(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=V.use.resetToBlockchain(),c=V.use.resetFromBlockchain(),u=a.more.length>0,d=a.more.length===1,m=!d&&u;return Ie.createElement(Ie.Fragment,null,Ie.createElement(Ym,{size:12}),Ie.createElement(ra,{variant:"label",size:"large"},na.t("Select Blockchain")),Ie.createElement(Ym,{size:12}),Ie.createElement(Km,null,l==="loading"&&Array.from(Array(bT),f=>Ie.createElement(xT,{key:f,variant:"rounded",height:50})),l==="success"&&Ie.createElement(Ie.Fragment,null,Ie.createElement(Or,{selected:!n,onClick:()=>{o==="from"?c():p()}},Ie.createElement(ra,{variant:"body",size:"xsmall",color:"secondary500"},na.t("All"))),a.list.map(f=>Ie.createElement(vT,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:L()},Ie.createElement(Or,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ie.createElement(Zm,{src:f.logo,size:30})))),d?Ie.createElement(Or,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},Ie.createElement(Zm,{src:a.more[0].logo,size:30})):null,m?Ie.createElement(Or,{onClick:s,key:"more-blockchains"},Ie.createElement(ra,{variant:"body",size:"xsmall",color:"secondary500"},na._("More +{count}",{count:a.more.length}))):null)))}i(ia,"BlockchainsSection");import{i18n as ga}from"@lingui/core";import{darkTheme as ld,Divider as xo,ExternalLinkIcon as AT,Image as NT,ListItemButton as WT,NotFound as MT,PinIcon as LT,Skeleton as pd,Typography as qr,VirtualizedList as BT}from"@rango-dev/ui";import G,{useEffect as cd,useState as ud}from"react";import{Divider as sd,ListItem as ET,Skeleton as sn}from"@rango-dev/ui";import st from"react";import{css as wo,darkTheme as Jm,ImageContainer as IT,styled as et,Typography as Rm}from"@rango-dev/ui";var sa=wo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),aa=wo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),la=wo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),pa=wo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Jm} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ca=wo({}),ua=wo(),ed=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ma=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Ur=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${aa}`]:{[`& .${pa}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ca}`]:{bottom:"-15px"},[`& .${sa}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${la}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),da=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),fa=et(Rm,{}),td=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ua}`]:{$$color:"$colors$neutral600",[`.${Jm} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zr=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),WF=et("div",{display:"flex",alignItems:"center"}),od=et("div",{position:"relative",[`& ${IT}`]:{borderRadius:"$xm",overflow:"hidden"}}),nd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),rd=et(Rm,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),id=et("a",{"& svg:hover":{color:"$colors$info"}});function ad(t){return st.createElement(Ur,null,Array.from(Array(t.size),e=>st.createElement(ET,{key:e,hasDivider:!0,start:st.createElement(sn,{variant:"circular",width:35,height:35}),end:st.createElement(zr,null,st.createElement(sn,{variant:"text",size:"large",width:70}),st.createElement(sd,{size:4}),st.createElement(sn,{variant:"text",size:"medium",width:50})),title:st.createElement("div",null,st.createElement(sn,{variant:"text",size:"large",width:90}),st.createElement(sd,{size:4}),st.createElement(sn,{variant:"text",size:"medium",width:90}))})))}i(ad,"LoadingTokenList");var ha=20,_T=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return G.createElement("div",{className:aa()},o?G.createElement("div",{className:sa()},o):G.createElement(ma,{className:la()},G.createElement(qr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(xo,{direction:"horizontal",size:4}),G.createElement(da,{css:s},G.createElement(fa,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&G.createElement("div",{className:`${pa()} ${!o&&ca()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(xo,{size:4,direction:"horizontal"}),G.createElement(id,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(AT,{size:12}))))},"renderDesc");function md(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=ud(e),l=h().fetchStatus,p=h().blockchains(),[c,u]=ud(!0),{getBalanceFor:d,loading:m}=J(),{isTokenPinned:f}=h(),g=i(()=>{a(e.slice(0,s.length+ha))},"loadNextPage");cd(()=>{u(e.length>s.length)},[s.length]),cd(()=>{a(e.slice(0,ha))},[e.length]);let S=i(()=>!s.length&&o?G.createElement(G.Fragment,null,G.createElement(xo,{size:32}),G.createElement(MT,{title:ga.t("No results found"),description:ga.t("Try using different keywords")})):G.createElement(BT,{endReached:c?g:void 0,itemContent:C=>{let y=s[C],k=wn(d(y)),T=y.address||"",w=p.find(A=>A.name===y.blockchain),I=Zn(w?.color||"",_p(w?.color||"")?5:125),b=Zn(w?.color||"",-100),v={$$color:I,[`.${ld} &`]:{$$color:b},backgroundColor:"$$color"},x={$$color:b,[`.${ld} &`]:{$$color:I},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(WT,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(s[C]),start:G.createElement(od,null,G.createElement(NT,{src:y.image,size:30}),f(y,t.type)&&G.createElement(nd,null,G.createElement(LT,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!T?G.createElement(ma,null,G.createElement(qr,{variant:"title",size:"xmedium"},y.symbol),G.createElement(xo,{direction:"horizontal",size:4}),G.createElement(da,{css:v},G.createElement(fa,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:w?.info&&T&&w.type!=="COSMOS"?_T({address:T,token:s[C],customCssForTag:v,customCssForTagTitle:x,name:y.name,url:w.info.addressUrl.split("{wallet}").join(T)}):y.name||void 0,end:m?G.createElement(zr,null,G.createElement(pd,{variant:"text",size:"large",width:70}),G.createElement(xo,{size:4}),G.createElement(pd,{variant:"text",size:"medium",width:50})):k&&G.createElement(td,null,G.createElement(rd,{variant:"title",size:"small"},k.amount),G.createElement("div",null),k.usdValue&&G.createElement(qr,{variant:"body",className:ua(),size:"xsmall"},`$${k.usdValue}`))}))},totalCount:s.length,key:`${r}-${o}`}),"renderList");return G.createElement(ed,null,G.createElement(qr,{variant:"label",size:"large"},ga.t("Select Token")),G.createElement(xo,{size:4}),l==="loading"&&G.createElement(ad,{size:ha}),l==="success"&&G.createElement(Ur,{as:"ul"},S()))}i(md,"TokenList");function ya(t){let{type:e}=t,o=$T(),n=Je(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:c}=V(),u=J.use.getBalanceFor(),[d,m]=PT(""),g=(e==="source"?r:s)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:u}),y=i(w=>{e==="source"?p(w):c(w)},"updateBlockchain"),k=i(w=>{e==="source"?a({token:w,meta:{blockchains:S,tokens:C}}):l({token:w,meta:{blockchains:S,tokens:C}})},"updateToken"),T={source:Qr.t("Source"),destination:Qr.t("Destination")};return oo.createElement(ae,{header:{title:Qr.t("Swap {type}",{type:T[e]})}},oo.createElement(ce,null,oo.createElement(ia,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(U.blockchains),onChange:w=>{y(w)}}),oo.createElement(dd,{size:24}),oo.createElement(bt,{value:d,autoFocus:!0,placeholder:Qr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:w=>m(w.target.value)}),oo.createElement(dd,{size:16}),oo.createElement(md,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:w=>{k(w);let I=S.find(b=>w.blockchain===b.name);I&&y(I),n()}})))}i(ya,"SelectSwapItemsPage");import{i18n as ka}from"@lingui/core";import{Alert as ak,Button as lk,styled as pk}from"@rango-dev/ui";import no from"react";import{useInRouterContext as ck,useSearchParams as uk}from"react-router-dom";import{i18n as Cd}from"@lingui/core";import{Divider as UT,InfoIcon as zT,TextField as qT,Tooltip as QT,Typography as Td}from"@rango-dev/ui";import at from"react";import{Chip as DT,styled as an,TextField as FT}from"@rango-dev/ui";var fd=an("div",{paddingTop:"$5",padding:"$10 $5"}),gd=an("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${FT}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),hd=an("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Hr=an("div",{maxWidth:"280px",padding:"$10"}),yd=an(DT,{width:"61px",flexShrink:0});import{i18n as Sa}from"@lingui/core";import{Typography as OT}from"@rango-dev/ui";import ln from"react";function Sd(){return ln.createElement(Hr,null,ln.createElement(OT,{variant:"label",size:"medium",color:"neutral700"},Sa.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),ln.createElement("br",null),ln.createElement("br",null),ln.createElement("b",null,Sa.t("Warning")),":",Sa.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Sd,"SlippageTooltipContent");function Ca(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return at.createElement(fd,null,at.createElement(hd,null,at.createElement(Td,{variant:"title",size:"xmedium"},Cd.t("Slippage tolerance per swap")),at.createElement(UT,{direction:"horizontal",size:4}),at.createElement(QT,{container:L(),side:"top",sideOffset:4,content:at.createElement(Sd,null)},at.createElement(zT,{color:"gray"}))),at.createElement(gd,null,El.map((r,s)=>{let a=`slippage-${s}`;return at.createElement(yd,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),at.createElement(qT,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=r.target.value,a=parseFloat(s);a>=Ml&&a<=Wl?n(a):n(null)},suffix:o&&at.createElement(Td,{variant:"body",size:"small"},"%"),placeholder:Cd.t("Custom")})))}i(Ca,"Slippage");import{i18n as yt}from"@lingui/core";import{AutoThemeIcon as kd,BridgesIcon as HT,ChevronRightIcon as Ta,DarkModeIcon as wd,Divider as Gr,ExchangeIcon as GT,InfinityIcon as VT,InfoIcon as jT,LanguageIcon as XT,LightModeIcon as xd,List as KT,ListItem as YT,ListItemButton as ZT,Skeleton as JT,styled as RT,Switch as ek,Tabs as tk,Tooltip as ok,Typography as tt}from"@rango-dev/ui";import $ from"react";import{useNavigate as nk}from"react-router-dom";var rk=RT("div",{width:"202px",height:"$40"}),ik=[{id:"light",icon:$.createElement(xd,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},yt.t("Light"))},{id:"dark",icon:$.createElement(wd,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},yt.t("Dark"))},{id:"auto",icon:$.createElement(kd,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},yt.t("Auto"))}],sk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(kd,{...e});case"dark":return $.createElement(wd,{...e});default:return $.createElement(xd,{...e})}},"getThemeIcon");function vd(){let t=nk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:s}=zt(),a=s.find(E=>E.local===r)?.label,l=h().fetchStatus,p=h().swappers(),c=h().getDisabledLiquiditySources(),{config:{features:u}}=h(),d=Ke("theme",u),m=Ke("liquiditySource",u),f=Ke("language",u),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=An(p,c),y=C.filter(E=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(E.type)),k=y.length,T=y.filter(E=>E.selected).length,w=C.filter(E=>E.type==="DEX"),I=w.length,b=w.filter(E=>E.selected).length,v=i((E,j)=>{switch(l){case"loading":return $.createElement(JT,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(tt,{variant:"body",size:"medium",color:"$error500"},yt.t("Loading failed"));default:return $.createElement(tt,{variant:"body",size:"medium"},`${E} / ${j}`)}},"handleSwapperEndItem"),x={id:"bridge-item",title:$.createElement(tt,{variant:"title",size:"xmedium"},yt.t("Bridges")),end:$.createElement($.Fragment,null,v(T,k),$.createElement(Gr,{direction:"horizontal",size:8}),$.createElement(Ta,{color:"black"})),onClick:()=>t(U.bridges),start:$.createElement(HT,{color:"gray",size:16})},A={id:"exchange-item",title:$.createElement(tt,{variant:"title",size:"xmedium"},yt.t("Exchanges")),end:$.createElement($.Fragment,null,v(b,I),$.createElement(Gr,{direction:"horizontal",size:8}),$.createElement(Ta,{color:"black"})),start:$.createElement(GT,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:$.createElement(tt,{variant:"title",size:"xmedium"},yt.t("Language")),start:$.createElement(XT,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(tt,{variant:"body",size:"medium"},a),$.createElement(Gr,{direction:"horizontal",size:8}),$.createElement(Ta,{color:"black"})),onClick:()=>t(U.languages)},O={id:"infinite-approval-item",title:$.createElement($.Fragment,null,$.createElement(tt,{variant:"title",size:"xmedium"},yt.t("Infinite approval")),$.createElement(Gr,{direction:"horizontal",size:4}),$.createElement(ok,{side:"top",sideOffset:4,container:L(),content:$.createElement(Hr,null,$.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},yt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},$.createElement(jT,{color:"gray"}))),start:$.createElement(VT,{color:"gray",size:16}),end:$.createElement(ek,{checked:g}),onClick:S},Q={id:"theme-item",type:$.createElement(YT,null),title:$.createElement(tt,{variant:"title",size:"xmedium"},yt.t("Theme")),end:$.createElement(rk,null,$.createElement(tk,{container:L(),items:ik,value:n,onChange:E=>o(E.id),type:"primary",borderRadius:"small"})),start:sk(n)},M=m?[]:[x,A];return f||M.push(W),M.push(O),!e?.singleTheme&&!d&&M.push(Q),$.createElement(KT,{type:$.createElement(ZT,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(vd,"SettingsLists");var mk=pk("div",{paddingLeft:"$8"});function bd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=uk(),r=ck(),s=i(()=>{r&&o&&(n(a=>(a.delete("liquiditySources"),a),{replace:!0}),e("liquiditySources",void 0))},"onClick");return no.createElement(ae,{header:{title:ka.t("Settings")}},no.createElement(ce,null,o&&no.createElement(ak,{type:"info",variant:"alarm",title:ka.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:no.createElement(mk,null,no.createElement(lk,{type:"secondary",size:"small",onClick:s},ka.t("Reset")))}),no.createElement(Ca,null),no.createElement(vd,null)))}i(bd,"SettingsPage");import{i18n as Jk}from"@lingui/core";import{cancelSwap as Rk}from"@rango-dev/queue-manager-rango-preset";import{useManager as ew}from"@rango-dev/queue-manager-react";import{Alert as tw}from"@rango-dev/ui";import Fa from"react";import{useParams as ow}from"react-router-dom";import{i18n as Mt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as _k,getCurrentStep as Pk,getRelatedWalletOrNull as $k}from"@rango-dev/queue-manager-rango-preset";import{Button as tf,CopyIcon as Dk,Divider as Fk,IconButton as Ok,LinkIcon as Uk,QuoteCost as zk,StepDetails as qk,Typography as ro,useCopyToClipboard as Qk}from"@rango-dev/ui";import{useWallets as Hk}from"@rango-dev/wallets-react";import of from"bignumber.js";import{PendingSwapNetworkStatus as ei}from"rango-types";import Z,{useEffect as nf,useRef as Gk,useState as rf}from"react";import{useNavigate as Vk}from"react-router-dom";import{i18n as qt}from"@lingui/core";var dk=[qt.t("Sunday"),qt.t("Monday"),qt.t("Tuesday"),qt.t("Wednesday"),qt.t("Thursday"),qt.t("Friday"),qt.t("Saturday")];function Id(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?qt.t("Today"):`${dk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Id,"timeSince");function Ed(t){return t.finishTime?Id(parseInt(t.finishTime)):Id(parseInt(t.creationTime))}i(Ed,"getSwapDate");import{PendingSwapNetworkStatus as Xr}from"rango-types";import Kr from"react";import{i18n as Vr}from"@lingui/core";import{Button as Ad,Divider as wa,MessageBox as fk}from"@rango-dev/ui";import Qt from"react";var Nd=i(({onCancel:t,onClose:e})=>Qt.createElement(Qt.Fragment,null,Qt.createElement(wa,{size:20}),Qt.createElement(fk,{type:"error",title:Vr.t("Cancel Swap"),description:Vr.t("Are you sure you want to cancel this swap?")}),Qt.createElement(wa,{size:32}),Qt.createElement(Ad,{variant:"contained",type:"primary",size:"large",onClick:t},Vr.t("Yes, Cancel it")),Qt.createElement(wa,{size:12}),Qt.createElement(Ad,{variant:"outlined",type:"primary",size:"large",onClick:e},Vr.t("No, Continue"))),"CancelContent");import{i18n as jr}from"@lingui/core";import{Button as Wd,Divider as xa,MessageBox as gk,Typography as hk}from"@rango-dev/ui";import Nt from"react";var Md=i(({onDelete:t,onClose:e})=>Nt.createElement(Nt.Fragment,null,Nt.createElement(xa,{size:20}),Nt.createElement(gk,{type:"error",title:jr.t("Delete Transaction"),description:jr.t("Are you sure you want to delete this swap?")}),Nt.createElement(xa,{size:32}),Nt.createElement(Wd,{variant:"contained",type:"primary",size:"large",onClick:t},jr.t("Yes, Delete it")),Nt.createElement(xa,{size:12}),Nt.createElement(Wd,{variant:"outlined",type:"primary",size:"large",onClick:e},Nt.createElement(hk,{variant:"title",size:"medium",color:"primary"},jr.t("No, Cancel")))),"DeleteContent");import{i18n as va}from"@lingui/core";import{PendingSwapNetworkStatus as ba}from"rango-types";var Ia={[ba.WaitingForNetworkChange]:{type:"loading",title:va.t("Change Network")},[ba.WaitingForConnectingWallet]:{type:"warning",title:va.t("Connect Wallet")},[ba.NetworkChanged]:{type:"success",title:va.t("Network Changed")}};import{debug as yk}from"@rango-dev/logging-core";import{MessageBox as Sk,Wallet as Ck}from"@rango-dev/ui";import{useWallets as Tk}from"@rango-dev/wallets-react";import pn from"react";import{styled as Ld}from"@rango-dev/ui";var Bd=Ld("div",{display:"flex",justifyContent:"center"}),SU=Ld("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var _d=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s,walletButtonDisabled:a}=t,{connect:l,getWalletInfo:p,state:c}=Tk(),u=n?.walletType,d=u?ci(c(u)):null,m=u?p(u):null;return pn.createElement(pn.Fragment,null,pn.createElement(Sk,{type:e,title:o,description:r}),s&&!!u&&!!d&&!!m&&pn.createElement(Bd,null,pn.createElement(Ck,{container:L(),title:m.name,image:m.img,type:u,state:d,link:m.installLink,disabled:a,onClick:async()=>l(u).catch(g=>yk(g))})))},"WalletStateContent");function Ea(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a,walletButtonDisabled:l}=t,p=e===Xr.WaitingForNetworkChange||e===Xr.WaitingForConnectingWallet||e===Xr.NetworkChanged;return Kr.createElement(se,{open:!!e,onClose:o,container:document.getElementById(we.SWAP_BOX_ID)||document.body},p&&Kr.createElement(_d,{type:Ia[e].type,title:Ia[e].title,currentStepWallet:s,message:a,walletButtonDisabled:l,showWalletButton:e!==Xr.WaitingForNetworkChange}),e==="delete"&&Kr.createElement(Md,{onClose:o,onDelete:n}),e==="cancel"&&Kr.createElement(Nd,{onClose:o,onCancel:r}))}i(Ea,"SwapDetailsModal");import{i18n as cn}from"@lingui/core";import{Button as Aa,Divider as Yr,MessageBox as Pd,TokenAmount as kk,Typography as Na}from"@rango-dev/ui";import We from"react";import{useNavigate as wk}from"react-router-dom";function Wa(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,realUsdValue:a,realValue:l,token:p,chain:c,percentageChange:u,description:d,diagnosisUrl:m}=t,f=wk();return We.createElement(se,{open:e,onClose:o,container:document.getElementById(we.SWAP_BOX_ID)||document.body},n==="success"?We.createElement(Pd,{type:"success",title:cn.t("Swap Successful")},We.createElement(kk,{direction:"vertical",tooltipContainer:L(),type:"output",centerAlign:!0,price:{value:r,usdValue:s,realUsdValue:a,realValue:l},token:p,chain:c,percentageChange:u}),We.createElement(Yr,{size:12}),We.createElement(Na,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):We.createElement(Pd,{type:"error",title:cn.t("Transaction Failed"),description:d}),We.createElement(Yr,{size:32}),n==="success"&&We.createElement(Aa,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},We.createElement(Na,{variant:"title",size:"medium",color:"neutral100"},cn.t("Done"))),We.createElement(Yr,{size:12}),m&&We.createElement(We.Fragment,null,We.createElement(Aa,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},cn.t("Diagnosis")),We.createElement(Yr,{size:12})),We.createElement(Aa,{variant:"outlined",type:"primary",size:"large",onClick:o},We.createElement(Na,{variant:"title",size:"medium",color:"primary"},cn.t("See Details"))))}i(Wa,"SwapDetailsCompleteModal");import Bk from"react";import{i18n as Nk}from"@lingui/core";import{Alert as Zd,IconButton as Wk,LinkIcon as Mk}from"@rango-dev/ui";import Ht,{Fragment as Lk}from"react";import{Alert as bk,ChevronDownIcon as Ik,IconButton as Ek}from"@rango-dev/ui";import bo,{useState as Ak}from"react";import{css as un,darkTheme as xk,styled as Wt,Typography as vk}from"@rango-dev/ui";var $d=Wt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Zr=Wt("div",{width:"100%"}),Dd=Wt(Fo,{padding:"$0 $20 $20 $20"}),RU=Wt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Fd=Wt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),ez=Wt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),vo=un({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${xk} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Od=un({padding:"$5 0"}),Jr=un({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Ud=un({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),zd=un({width:"100%",padding:"0 $20 $10"}),qd=Wt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Qd=Wt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Rr=Wt(vk,{wordBreak:"break-word"});import{styled as Ma}from"@rango-dev/ui";var Hd=Ma("div",{display:"flex",flexDirection:"column",gap:"$10"}),Gd=Ma("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Vd=Ma("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function jd(t){let{message:e}=t,[o,n]=Ak(!1);return bo.createElement(bk,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&bo.createElement(Ek,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},bo.createElement(Gd,{rotated:o},bo.createElement(Ik,{size:12,color:"gray"}))),footer:bo.createElement(Vd,{open:o},bo.createElement(Rr,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(jd,"FailedAlert");import{i18n as Xd}from"@lingui/core";import{Alert as La,Button as Kd}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ba}from"rango-types";import mn from"react";function Yd(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?mn.createElement(La,{type:"warning",title:n.shortMessage,action:mn.createElement(Kd,{size:"xxsmall",type:"warning",onClick:()=>{o(Ba.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},Xd.t("Change"))}):r===Ba.WaitingForConnectingWallet?mn.createElement(La,{type:"warning",title:n.shortMessage,action:mn.createElement(Kd,{size:"xxsmall",type:"warning",onClick:()=>{o(Ba.WaitingForConnectingWallet)}},Xd.t("Connect"))}):mn.createElement(La,{type:"warning",title:n.shortMessage})}i(Yd,"WarningAlert");function _a(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=Po(s),p=s.status==="waitingForApproval"&&!l,c=s.status==="running"&&!l,u=c&&!a||p&&!s.explorerUrl?.length;return Ht.createElement(Hd,null,s.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&c||p)&&!u,y=S&&s.status==="failed";return Ht.createElement(Lk,{key:g},Ht.createElement(Zd,{type:S&&(C&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:Nk.t("View transaction"),action:d.url&&Ht.createElement(Wk,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Ht.createElement(Mk,{size:12}))}))}),u&&Ht.createElement(Zd,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&Ht.createElement(Yd,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&Ht.createElement(jd,{message:r}))}i(_a,"SwapDetailsAlerts");var Jd=2e3;var Rd=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((s,a)=>{let l=a===0?t.inputAmount:t.steps[a-1].outputAmount||t.steps[a-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:s.fromSymbol,image:s.fromLogo??""},chain:{displayName:Xe(s.fromBlockchain,e)??"",image:s.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:s.toSymbol,image:s.toLogo},chain:{displayName:Xe(s.toBlockchain,e)??"",image:s.toBlockchainLogo??""},price:{value:N(s.outputAmount||s.expectedOutputAmountHumanReadable,6,6),realValue:s.outputAmount||s.expectedOutputAmountHumanReadable}},swapper:{displayName:Mo(s.swapperId,o),image:s.swapperLogo??"",type:s.swapperType},internalSwaps:s.internalSwaps?s.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Mo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Bk.createElement(_a,{step:s,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function ef(t){if(Po(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(ef,"getStepState");function Pa(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Hk(),p=h().blockchains(),c=h().swappers(),u=h().tokens(),d=V.use.retry(),m=oe.use.isActiveTab(),f=Vk(),[g,S]=Qk(Jd),C=Gk(null),[y,k]=rf(null),[T,w]=rf(null),I=i(()=>{r(),k(null)},"onCancel"),b=Fe.use.getUnreadNotifications(),v=Fe.use.setAsRead(),x=b(),A=Pk(e),W=A?.networkStatus;nf(()=>{x.find(pt=>pt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),v(e.requestId)):T&&w(null))},[e.status,e.requestId]),nf(()=>{te?k(ei.WaitingForNetworkChange):W===ei.WaitingForConnectingWallet||W===ei.NetworkChanged?k(W):k(null)},[W]);let O=rp(e),Q=A?_k(e,A):null,M=A?$k(e,A):null,E=Ed(e),j=ip(e),Y=i(Me=>!!l(Me)?.mobileWallet,"isMobileWallet"),te=W===ei.WaitingForNetworkChange&&!!Q&&!!M?.walletType&&(Y(M.walletType)||s(M.walletType,Q)),F=te?a.bind(null,M.walletType,Q):void 0,fe=np(e,A),q=Rd({swap:e,switchNetwork:F,showNetworkModal:W,setNetworkModal:k,message:fe,blockchains:p,swappers:c}),le=q.length,[ee,ke]=[e.steps[0],e.steps[le-1]],_=ke.outputAmount||ke.expectedOutputAmountHumanReadable,Ve=e.steps.reduce((Me,pt)=>Me+parseFloat(pt.feeInUsd||""),0),H=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,X=N(parseFloat(N(_,6,6))*(ke.toUsdPrice||0),4,4),ne=N(parseFloat(e.inputAmount)*(ee.fromUsdPrice||0),4,4),Ae=_?pe(new of(_).multipliedBy(ke.toUsdPrice||0)):"",qe=pe(new of(e.inputAmount).multipliedBy(ee.fromUsdPrice||0)),Ee=Ye(ne,X),ye=fe.detailedMessage.content||fe.shortMessage,je=e.status==="success"?Mt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:q[le-1].to.token.displayName,conciseAddress:xn(e.wallets[q[le-1].to.chain.displayName]?.address||""),chain:q[le-1].to.chain.displayName}}):Z.createElement(Qd,null,Z.createElement(ro,{variant:"body",size:"medium",color:"neutral700",align:"center"},ye?"":Mt.t("Transaction was not sent."),O?`${Mt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:O.outputAmount,symbol:O.symbol,blockchain:O.blockchain}})}`:""),ye&&Z.createElement(Rr,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",ye));return Z.createElement(ae,{header:{title:Mt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(uo,null,Z.createElement(tf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},Z.createElement(ro,{size:"medium",variant:"label",color:"error"},Mt.t("Delete"))))},footer:j&&!T&&Z.createElement(tf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:u}),setTimeout(()=>{f("../../")},0)}},Mt.t("Try again"))},Z.createElement(ce,{compact:!0,view:!0},Z.createElement(Zr,null,Z.createElement("div",{className:vo()},Z.createElement(ro,{variant:"label",size:"large",color:"neutral700"},`${Mt.t("Request ID")}:`),Z.createElement("div",{className:Jr()},Z.createElement(ro,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(Ok,{variant:"ghost",onClick:S.bind(null,o||"")},Z.createElement(Dk,{size:16,color:"gray"})),Z.createElement(qd,{target:"_blank",href:`${Va}/swap/${o}`},Z.createElement(Uk,{size:16})))),Z.createElement("div",{className:vo()},Z.createElement(ro,{variant:"label",size:"large",color:"neutral700"},`${Mt.t(e.finishTime?"Finished at":"Created at")}:`),Z.createElement(ro,{variant:"label",size:"small",color:"neutral700"},E))),Z.createElement("div",{className:Ud()},Z.createElement(zk,{fee:N(String(Ve),2,2),time:Eo(hn(e.steps)),steps:le}),Z.createElement(Go,{from:{price:{value:N(e.inputAmount,6,6),usdValue:ne,realUsdValue:qe,realValue:e.inputAmount},token:{displayName:q[0].from.token.displayName,image:q[0].from.token.image},chain:{image:q[0].from.chain.image,displayName:q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:X,realUsdValue:Ae,realValue:_},token:{displayName:q[le-1].to.token.displayName,image:q[le-1].to.token.image},chain:{image:q[le-1].to.chain.image,displayName:q[le-1].to.chain.displayName}},percentageChange:N(Ee,2,2),warningLevel:Tt(Ee??0)})),Z.createElement("div",{className:zd()},Z.createElement(ro,{variant:"title",size:"small"},Mt.t("Swaps steps"))),Z.createElement(Fk,{size:8}),Z.createElement(Dd,{ref:C},q.map((Me,pt)=>{let Ha=pt,Io=ef(e.steps[pt]),vf=Io==="error"||Io==="in-progress"||Io==="warning"||Io==="completed"&&pt===q.length-1;return Z.createElement(qk,{key:Ha,step:Me,type:"swap-progress",ref:C,state:Io,hasSeparator:pt!==0,tabIndex:Ha,isFocused:vf,tooltipContainer:L()})}))),Z.createElement(Ea,{state:y,onClose:()=>k(null),onCancel:I,onDelete:n,message:fe.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),Z.createElement(Wa,{open:!!T,diagnosisUrl:H,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:X,realUsdValue:Ae,realValue:pe(_),percentageChange:N(Ee,2,2),token:{displayName:q[le-1].to.token.displayName,image:q[le-1].to.token.image},chain:{image:q[le-1].to.chain.image},description:je}))}i(Pa,"SwapDetails");import{i18n as oi}from"@lingui/core";import{Divider as lf,NotFound as Zk,Skeleton as fn,Typography as ni}from"@rango-dev/ui";import de from"react";import{i18n as jk}from"@lingui/core";import{Divider as Xk,Skeleton as Kk,Typography as Yk}from"@rango-dev/ui";import he from"react";import{css as lt,styled as $a}from"@rango-dev/ui";var sf=$a("div",{width:"100%",height:"100%",padding:"$10 $20"}),dn=$a("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ti=$a("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),mq=lt({display:"flex",justifyContent:"space-between",alignItems:"center"}),dq=lt({display:"flex",justifyContent:"space-between",alignItems:"center"}),fq=lt({paddingTop:"$15",display:"flex"}),gq=lt({padding:"$15 $0"}),hq=lt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),yq=lt({paddingBottom:"$10"}),Sq=lt({display:"flex",justifyContent:"start",alignItems:"center"}),Cq=lt({paddingTop:"$5",display:"flex",alignItems:"center"}),Tq=lt({display:"flex",alignItems:"center"}),kq=lt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),af=lt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Da(){return he.createElement(sf,null,he.createElement(Xo,{type:"swap-preview"}),he.createElement("div",{className:"swaps-steps"},he.createElement(Yk,{variant:"title",size:"small"},jk.t("Swaps steps"))),he.createElement(he.Fragment,null,he.createElement(dn,null,he.createElement(gt,{separator:!1}),he.createElement("div",{className:af()},he.createElement(Xk,{direction:"horizontal",size:20}),he.createElement(Kk,{height:22,variant:"rectangular"}))),he.createElement(ti,null),he.createElement(dn,null,he.createElement(gt,{separator:!1})),he.createElement(ti,null),he.createElement(dn,null,he.createElement(gt,{separator:!1})),he.createElement(ti,null),he.createElement(dn,null,he.createElement(gt,{separator:!1}))))}i(Da,"LoadingSwapDetails");function pf(t){let{requestId:e,showSkeleton:o}=t;return de.createElement(ae,{header:{title:oi.t("Swap and Bridge"),suffix:de.createElement(uo,null)}},o&&de.createElement($d,null,de.createElement(Zr,null,de.createElement("div",{className:vo()},de.createElement(ni,{variant:"label",size:"large",color:"neutral700"},`${oi.t("Request ID")}:`),de.createElement("div",{className:Jr()},de.createElement(ni,{variant:"label",size:"small",color:"neutral700"},de.createElement(fn,{width:60,height:10,variant:"rounded"})),de.createElement(lf,{direction:"horizontal",size:4}),de.createElement(fn,{width:16,height:16,variant:"rectangular"}),de.createElement(lf,{direction:"horizontal",size:4}),de.createElement(fn,{width:16,height:16,variant:"rectangular"}))),de.createElement("div",{className:vo()},de.createElement(ni,{className:Od(),variant:"label",size:"large",color:"neutral700"},de.createElement(fn,{width:60,height:10,variant:"rounded"})),de.createElement(ni,{variant:"label",size:"small",color:"neutral700"},de.createElement(fn,{width:60,height:10,variant:"rounded"})))),de.createElement(Da,null)),!o&&de.createElement(Fd,null,de.createElement(Zk,{title:oi.t("Not found"),description:oi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(pf,"SwapDetailsPlaceholder");function cf(){let{manager:t,state:e}=ew(),o=!e.loadedFromPersistor,n=mt(t),{requestId:r}=ow(),s=Je(),{fetchStatus:a}=h();if(!r)return Fa.createElement(tw,{containerStyles:{margin:"20px"},type:"error",title:Jk.t("The request ID is necessary to display the swap details.")});let l=o||a==="loading",p=r?n.find(({swap:m})=>m.requestId===r):void 0,c=i(()=>{if(p?.id){let m=t?.get(p.id);m&&Rk(m)}},"onCancel"),u=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(m){console.log(m)}},"onDelete"),d=p?.swap;return!d||l?Fa.createElement(pf,{requestId:r,showSkeleton:l}):Fa.createElement(Pa,{swap:d,requestId:r,onCancel:c,onDelete:u})}i(cf,"SwapDetailsPage");function uf(){return gp(),Pi(),nw([{path:U.home,element:ze.createElement(Mm,null)},{path:U.routes,element:ze.createElement($m,null)},{path:U.fromSwap,children:[{index:!0,element:ze.createElement(ya,{type:"source"})},{path:U.blockchains,element:ze.createElement(ea,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:ze.createElement(ya,{type:"destination"})},{path:U.blockchains,element:ze.createElement(ea,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:ze.createElement(bd,null)},{path:U.languages,element:ze.createElement(Bm,null)},{path:U.exchanges,element:ze.createElement(Ys,{sourceType:"Exchanges"})},{path:U.bridges,element:ze.createElement(Ys,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:ze.createElement(cm,null)},{path:U.swapDetails,element:ze.createElement(cf,null)}]},{path:U.wallets,element:ze.createElement(xc,null)},{path:U.confirmSwap,element:ze.createElement(Ju,null)}])}i(uf,"AppRoutes");import{useQueueManager as uw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as mw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as dw}from"rango-sdk";import{useContext as fw,useEffect as gw,useState as Sf}from"react";import{globalCss as rw}from"@rango-dev/ui";var mf=i(()=>rw({"@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')"]})(),"globalFont");function df(){let{setWatermark:t}=oe();return{fetchApiConfig:i(async()=>{let o=await fetch(`${St("BASE_URL")}/meta/dapp/config?apiKey=${St("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(df,"useFetchApiConfig");import{useWallets as iw}from"@rango-dev/wallets-react";import{useEffect as sw,useRef as aw}from"react";function ff(){let{connect:t,state:e}=iw(),o=aw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);sw(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(ff,"useForceAutoConnect");import{isApprovalTX as lw,MainEvents as ri,RouteEventType as gf,StepEventType as hf,StepExecutionEventStatus as pw,useEvents as cw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yf}from"react";function Oa(){let t=h().tokens(),e=J.use.connectedWallets(),o=J.use.getWalletsDetails(),n=Fe.use.setNotification(),r=cw();yf(()=>{let s=i(a=>{let{event:l,step:p,route:c}=a;if(l.type===hf.TX_EXECUTION&&l.status===pw.TX_SENT&&!lw(p)||l.type===hf.SUCCEEDED){let d=e.find(f=>f.chain===p?.fromBlockchain),m=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);d&&o([d],t),m&&o([m],t)}n(l,c)},"handleStepEvent");return r.on(ri.StepEvent,s),()=>r.off(ri.StepEvent,s)},[r,e.length]),yf(()=>{let s=i(a=>{let{event:l,route:p}=a;(l.type===gf.FAILED||l.type===gf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(ri.RouteEvent,s),()=>r.off(ri.RouteEvent,s)},[r,e.length])}i(Oa,"useSubscribeToWidgetEvents");function Ua(){mf(),ff(),Oa();let t=h().blockchains(),{canSwitchNetworkTo:e}=lr(),[o,n]=Sf(""),[r,s]=Sf(),a=fw(Wn),l=t.filter(dw),{fetchApiConfig:p}=df();uw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{s(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),gw(()=>(Vt.init(),Fe.persist.hasHydrated()||Fe.persist.rehydrate(),a.onConnectWallet(n),a.onDisconnectWallet(c=>{s(c),c===mw(o)?.[0]&&n("")}),p().catch(console.log),Vt.destroy),[])}i(Ua,"useBootstrap");import{styled as hw}from"@rango-dev/ui";var Cf=hw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ii(){Ua();let{config:t}=h(),{activeTheme:e}=Jn(t?.theme||{}),{activeLanguage:o}=zt();return za.createElement(yw,{language:o},za.createElement(Cf,{id:"swap-container",className:e()},za.createElement(uf,null)))}i(ii,"Main");import Qa,{useMemo as Pw}from"react";import{checkWaitingForNetworkChange as Sw,makeQueueDefinition as Cw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Tw}from"@rango-dev/queue-manager-react";import{useWallets as kw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ww}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xw}from"rango-types";import vw,{useMemo as bw}from"react";function Iw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=kw(),l=bw(()=>Cw({API_KEY:t.apiKey||St("API_KEY"),BASE_URL:St("BASE_URL")}),[t.apiKey]),p=h().blockchains(),u={blockchains:J.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},d=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),m=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),g=p.filter(xw),S=i(T=>{let{supportedChains:w}=a(T);return Cn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:ww(g),getSupportedChainNames:S},getSigners:o,wallets:u,providers:C,switchNetwork:d,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:m},k=oe.use.isActiveTab();return vw.createElement(Tw,{queuesDefs:[l],context:y,onPersistedDataLoaded:T=>{Sw(T)},isPaused:!k},t.children)}i(Iw,"QueueManager");var Tf=Iw;import{useManager as Mw}from"@rango-dev/queue-manager-react";import Lw,{createContext as Bw,useContext as _w}from"react";import{cancelSwap as Ew,getCurrentBlockchainOfOrNull as Aw,getCurrentStep as Nw,getRelatedWalletOrNull as Ww}from"@rango-dev/queue-manager-rango-preset";var si=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return mt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&Ew(o)}getCurrentStepInfo(e){let o=Nw(e);return{step:o,wallet:o?Ww(e,o):null,network:o?Aw(e,o):null}}};var kf=Bw(void 0);function qa(t){let{manager:e}=Mw(),o=oe.use.isActiveTab(),n=V.use.retry(),r=new si(e,{retrySwap:n}),s=J.use.connectedWallets(),a=J.use.loading(),l=tl(s),p=J.use.getWalletsDetails(),c=h().blockchains(),u=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=zt().resetLanguage,g=Fe().getUnreadNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Vt.forceClaim,history:r,wallets:{isLoading:a,details:s,totalBalance:l,refetch:p},meta:{blockchains:c,tokens:u,swappers:d,loadingStatus:m},resetLanguage:f,notifications:{list:g}};return Lw.createElement(kf.Provider,{value:S},t.children)}i(qa,"WidgetInfo");function wf(){let t=_w(kf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(wf,"useWidget");function ai(t){let{onUpdateState:e,config:o}=t;return Pw(()=>{al({API_KEY:o?.apiKey||gn,BASE_URL:o?.apiUrl||Ga})},[o.apiKey,o.apiUrl]),Qa.createElement(Mn,{config:o,onUpdateState:e},Qa.createElement(Tf,{apiKey:o.apiKey},Qa.createElement(qa,null,t.children)))}i(ai,"WidgetProvider");function xf(t){let e=t.config?.externalWallets;return li.createElement(Ul,null,e?li.createElement(ii,null):li.createElement(ai,{config:t.config??gi},li.createElement(ii,null)))}i(xf,"Widget");export{fG as EventSeverity,gG as MainEvents,bG as Networks,AG as PendingSwapNetworkStatus,hG as RouteEventType,yG as StepEventType,SG as StepExecutionBlockedEventStatus,CG as StepExecutionEventStatus,we as UI_ID,xG as WalletEvents,IG as WalletTypes,xf as Widget,ai as WidgetProvider,Mn as WidgetWallets,Qi as customizedThemeTokens,wG as readAccountAddress,lr as useWallets,wf as useWidget,TG as useWidgetEvents};
|
|
1
|
+
var bf=Object.defineProperty;var i=(t,e)=>bf(t,"name",{value:e,configurable:!0});import{EventSeverity as fG,MainEvents as gG,RouteEventType as hG,StepEventType as yG,StepExecutionBlockedEventStatus as SG,StepExecutionEventStatus as CG,useEvents as TG}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as wG,useWallets as pr,Events as xG}from"@rango-dev/wallets-react";import{Networks as bG,WalletTypes as IG}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as AG}from"rango-types";import{UI_ID as If}from"@rango-dev/ui";var hn="c6381a79-2817-4602-83bf-6a641a409e32",Ga="https://api.rango.exchange",Va="https://explorer.rango.exchange",ke={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...If};import{Events as vi,Provider as yg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Sg}from"rango-sdk";import Wn,{createContext as Cg,useEffect as Fl,useMemo as Tg,useRef as Ol}from"react";import{useEffect as qf}from"react";import{create as Ff}from"zustand";import{subscribeWithSelector as Of}from"zustand/middleware";import{RangoClient as $f}from"rango-sdk";import{WalletState as ut}from"@rango-dev/ui";import{readAccountAddress as Nf}from"@rango-dev/wallets-react";import{detectInstallLink as Wf,getCosmosExperimentalChainInfo as Mf,isEvmAddress as Lf,KEPLR_COMPATIBLE_WALLETS as Zw,Networks as Ya}from"@rango-dev/wallets-shared";import ci from"bignumber.js";import{isCosmosBlockchain as Bf}from"rango-types";import Ef from"bignumber.js";var Le=new Ef(0);import{WalletTypes as Af}from"@rango-dev/wallets-shared";var ja=[Af.LEAP];import{BigNumber as Ka}from"bignumber.js";var Eo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),A=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ka(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ka(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var yn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var ct=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ao=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return A(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function ui(t){switch(!0){case t.connected:return ut.CONNECTED;case t.connecting:return ut.CONNECTING;case!t.installed:return ut.NOT_INSTALLED;default:return ut.DISCONNECTED}}i(ui,"mapStatusToWalletState");function Za(t,e,o,n){return o.filter(r=>!ja.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(c=>c.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l,showOnMobile:p}=e(r),u=ui(t(r));return{title:s,image:a,link:Wf(l),state:u,type:r,showOnMobile:p}})}i(Za,"mapWalletTypesToWalletInfo");function Tn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Tn,"walletAndSupportedChainsNames");function Ja(t,e,o,n,r){let s=[];function a(p,u){if(!!!s.find(d=>d.chain===p)){let d={address:u,chain:p,walletType:t};s.push(d)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Nf(p),d=l.length>0,m=l.includes(c),f=c===Ya.Unknown;if(d&&!m&&!f)return;let S=c===Ya.Unknown&&Lf(u);if(f&&!S)return;o.includes(c)||S?r?a(c,u.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{a(k,u.toLowerCase())}):a(c,u)}),s}i(Ja,"prepareAccountsForWalletStore");function Gt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,s)=>{let a=r.from.blockchain,l=r.to.blockchain;if(n.add(a),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let d=u.from.blockchain,m=u.to.blockchain,f=s===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(l)}),Array.from(n)}i(Gt,"getQuoteWallets");function kn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(kn,"isAccountAndWalletMatched");function Ra(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new ci(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:Pf(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Ra,"makeBalanceFor");function el(t){return{...t,loading:!1,error:!0}}i(el,"resetConnectedWalletState");var tl=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=A(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new ci(s?.amount||Le).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),Le)||Le).toString();return _f(r)},"calculateWalletUsdValue");function _f(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(_f,"numberWithThousandSeparator");var Pf=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),wn=i((t,e)=>{let o=Mf(Object.entries(t).map(([,n])=>n).filter(Bf));return o&&o[e]?.experimental},"isExperimentalChain");function xn(t){return t?{...t,amount:A(t.amount,8,8),usdValue:A(t.usdValue,4,4)}:null}i(xn,"formatBalance");function ol(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(ol,"compareTokenBalance");function Be(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Be,"areTokensEqual");function nl(t){return t.sort((e,o)=>+(o.state===ut.CONNECTED)-+(e.state===ut.CONNECTED)||+(o.state===ut.DISCONNECTED||o.state===ut.CONNECTING)-+(e.state===ut.DISCONNECTED||e.state===ut.CONNECTING))}i(nl,"sortWalletsBasedOnConnectionState");function vn(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(vn,"getConciseAddress");function rl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(rl,"getAddress");function mi(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(mi,"createTokenHash");function bn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new ci(o?.usdPrice??Le).multipliedBy(o?.amount).toString():""},r=o?mi({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(bn,"makeTokensBalance");var il=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function sl(t){return t.map(e=>e.state).join("-")}i(sl,"hashWalletsState");var di={API_KEY:hn};function St(t){return di[t]||""}i(St,"getConfig");function al(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),di=e,di}i(al,"initConfig");var ll=20,pl=25,cl="Roboto",fi="theme-widget",No=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Be(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Be(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),gi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),ul=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var In,Lt=i(()=>In||(In=new $f(St("API_KEY"),St("BASE_URL")),In),"httpService");var Df=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Bt=Df;var Z=Bt(Ff()(Of((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:bn(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>kn(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Lt().getWalletsDetails(a)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(m=>{let f=o.find(S=>kn(S,m)),g=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return g?.failed&&f&&r&&s([f],n,!1),f&&g?{...m,explorerUrl:g.explorerUrl,balances:Ra(g,n),loading:!1}:m});return{loading:!1,balances:bn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(d=>kn(d,c))?el(c):c);return{loading:!1,balances:bn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=mi(o);return n[r]??null}}))));import{allProviders as Uf}from"@rango-dev/provider-all";function En(t,e){let o=Uf({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(En,"matchAndGenerateProviders");function ml(t,e){return En(t,e).map(r=>r.config.type)}i(ml,"configWalletsToWalletName");function dl(t,e){let o=Z.use.clearConnectedWallet(),n=En(t,{walletConnectProjectId:e?.walletConnectProjectId});return qf(()=>{o(),n=En(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(dl,"useWalletProviders");import cg,{createContext as ug,useContext as mg,useEffect as dg,useRef as fg}from"react";import{create as lg}from"zustand";import{persist as pg}from"zustand/middleware";var hi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},zf={clientUrl:void 0},Qf={liquiditySources:void 0},fl=i((t,e,o)=>({config:{...hi,...t},iframe:zf,campaignMode:Qf,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let s=o().campaignMode;e({campaignMode:{...s,[n]:r}})},updateIframe:(n,r)=>{let s=o().iframe;e({iframe:{...s,[n]:r}})}}),"createConfigSlice");function An(t){return Array.from(new Set(t))}i(An,"removeDuplicateFrom");function Ci(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ci,"areEqual");function Tl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Tl,"debounce");function Ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Ct,"containsText");function yl(t,e){return t.toLowerCase()===e.toLowerCase()}i(yl,"exactText");function Sl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Sl,"startWithText");var L=i(()=>document.getElementById(ke.SWAP_BOX_ID),"getContainer"),Wo=i(()=>document.getElementById(ke.EXPANDED_BOX_ID),"getExpanded");function Cl(t,e,o){let n=!!e&&yl(e,t),r=!!o&&yl(o,t);return n!==r?n?-1:1:0}i(Cl,"compareExactMatchText");function yi(t,e,o){let n=!!e&&Ct(e,t),r=!!o&&Ct(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(yi,"compareContainsText");function Si(t,e,o){let n=!!e&&Sl(e,t),r=!!o&&Sl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Si,"compareStartWithText");function kl(t,e,o){if(!o)return 0;let n=Cl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Cl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Si(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=yi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Si(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=yi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Si(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=yi(o,t.address,e.address);if(r!==0)return r}return 0}i(kl,"compareWithSearchFor");function wl(t,e){return e.find(o=>o.name===t)?.displayName}i(wl,"getBlockchainDisplayNameFor");function Ke(t,e){return e.find(o=>o.name===t)?.shortName}i(Ke,"getBlockchainShortNameFor");function Mo(t,e){return e.find(o=>o.id===t)?.title}i(Mo,"getSwapperDisplayName");function Ti(t,e){return e.find(o=>Be(o,t))??null}i(Ti,"findToken");function ki(t,e){return e.find(o=>o.name===t)??null}i(ki,"findBlockchain");function wi(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(wi,"isTokenNative");function Nn(t,e){let o=t.map(s=>s.swapperGroup),n=[];return An(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Nn,"getUniqueSwappersGroups");function xl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(xl,"sortLiquiditySourcesByGroupTitle");function Ye(t,e){return e?.[t]==="hidden"}i(Ye,"isFeatureHidden");function vl(t,e){return e?.[t]==="enabled"}i(vl,"isFeatureEnabled");var bl=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let s=e().config,a=(o.type==="source"?s.from?.blockchains:s.to?.blockchains)??[];return r.filter(p=>!(a.length>0&&!a.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let s=e().config,a=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>a&&No(u,a)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(Ct(u.symbol,o.searchFor)||Ct(u.address||"",o.searchFor)||Ct(u.name||"",o.searchFor)):!0).sort((u,c)=>{let d=e().isTokenPinned(u,o.type),m=e().isTokenPinned(c,o.type);if(d!==m)return d?-1:1;if(o.getBalanceFor){let y=o.getBalanceFor(u),k=o.getBalanceFor(c),T=ol(y,k);if(T!==0)return T}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=wi(u,f),C=wi(c,g);if(S!==C)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let y=kl(u,c,o.searchFor);if(y)return y}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Be(a,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,s=r??o.liquiditySources,a=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=s?.includes(u.swapperGroup);return a||!s||s.length===0?!c:c}).sort(xl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Lt().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,s=[],a=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),s.push(c)}),n.blockchains.sort((c,d)=>c.sort-d.sort).forEach(c=>{c.enabled&&p.has(c.name)&&r.set(c.name,c)}),t({_blockchainsMapByName:r,_tokens:s,_popularTokens:a,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as jf,English as Xf,Finland as Kf,French as Yf,German as Zf,Greece as Jf,Italian as Rf,Japanese as eg,Netherlands as tg,Poland as og,Portuguese as ng,Russian as rg,Spanish as ig,Swedish as sg,Ukrainian as ag}from"@rango-dev/ui";var Il=[{title:"English",label:"English",local:"en",SVGFlag:Xf},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:ig},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Yf},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:eg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ng},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:jf},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:rg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Zf},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:ag},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:sg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Kf},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:tg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Jf},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Rf},{title:"Polish",label:"Polski",local:"pl",SVGFlag:og}],Lo="en";var El=[.5,1,3],Al=1,Nl=5,Wl=100,Ml=0;var Ll=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Al,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=9;return p&&u}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let s=An(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,s=Ye("theme",n),a=Ye("language",n),l=Ye("liquiditySource",n),p=r?.singleTheme;t({...s&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...a&&{language:o.language||Lo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Bl(t){return lg()(pg((...e)=>({...bl(...e),...Ll(...e),...fl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Bl,"createAppStore");var _l=ug(null);function h(){let t=mg(_l);if(dg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Pl(t){let e=fg();return e.current||(e.current=Bl(t.config)),cg.createElement(_l.Provider,{value:e.current},t.children)}i(Pl,"AppStoreProvider");import{create as hg}from"zustand";var $l="rango-widget";var Bo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel($l),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ne=Bt(hg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),Vt=new Bo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var Mn=Cg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function kg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),s=h().tokens(),a=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:p}=dl(a.wallets,l),{connectWallet:u,disconnectWallet:c}=Z(),d=Ol(),m=Ol();Fl(()=>{n().catch(console.log)},[]),Fl(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:a,dappConfig:t.config})},[t.config]);let f=r.filter(Sg).map(y=>y.name),g=i((y,k,T,w,v)=>{if(k===vi.ACCOUNTS)if(T){let E=Tn(v.supportedBlockchains),b=Ja(y,T,f,E,v.isContractWallet);b.length&&u(b,s)}else c(y),m.current?m.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===vi.ACCOUNTS&&w.connected){let E=`${y}-${w.network}-${T}`;w.connected&&(d.current?d.current(E):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===vi.NETWORK&&w.network){let E=`${y}-${w.network}`;d.current?d.current(E):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,k,T,w,v)},"onUpdateState"),S=ne.use.isActiveTab(),C=Tg(()=>({onConnectWallet:y=>{d.current=y},onDisconnectWallet:y=>{m.current=y}}),[]);return Wn.createElement(Mn.Provider,{value:C},Wn.createElement(yg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(kg,"Main");function Ln(t){let{config:e,...o}=t;return Wn.createElement(Pl,{config:e},Wn.createElement(kg,{...o,config:e}))}i(Ln,"WidgetWallets");import pi from"react";import wg,{Fragment as xg}from"react";import{MemoryRouter as vg,useInRouterContext as bg}from"react-router";function Ul({children:t}){let o=bg()?xg:vg;return wg.createElement(o,null,t)}i(Ul,"AppRouter");import{I18nManager as yw}from"@rango-dev/ui";import za from"react";import ze from"react";import{useRoutes as nw}from"react-router-dom";var U={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ao,useRef as zn}from"react";import kt from"bignumber.js";import{create as Ng}from"zustand";import{subscribeWithSelector as Wg}from"zustand/middleware";import{getLastSuccessfulStep as Ag}from"@rango-dev/queue-manager-rango-preset";import bb from"bignumber.js";import{i18n as _o}from"@lingui/core";var bi={"Network Fee":_o.t("Network Fee"),"Swapper Fee":_o.t("Protocol Fee"),"Affiliate Fee":_o.t("Affiliate Fee"),"Outbound network fee":_o.t("Outbound Fee"),"Rango Fee":_o.t("Rango Fee")},Ii=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ql=30;import{i18n as nt}from"@lingui/core";import _e from"bignumber.js";import{PendingSwapNetworkStatus as Pn}from"rango-types";function Bn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Bn,"isValidAddress");import{i18n as Ne}from"@lingui/core";var R=i(()=>({genericServerError:Ne.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ne.t("Please reset your liquidity sources."),description:Ne.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ne.t("No Routes Found."),description:Ne.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Ne.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ne.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ne.t("High Price Impact"),title:Ne.t("Price impact is too high!"),description:Ne.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ne.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ne.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ne.t("USD Price Unknown"),title:Ne.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ne.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ne.t("Confirm USD Price Unknown")}}),"errorMessages");function zl(t){switch(t.type){case 0:return t.diagnosisMessage??R().noResultError.title;case 1:return R().genericServerError;default:return""}}i(zl,"getQuoteErrorMessage");import{i18n as _n}from"@lingui/core";var jt=i(()=>({connectWallet:_n.t("Connect Wallet"),swap:_n.t("Swap"),swapAnyway:_n.t("Swap anyway"),ethWarning:_n.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ql(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new _e(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new _e(1e3)))??!1}i(Ql,"hasHighValueLoss");function Hl(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new _e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new _e(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}i(Hl,"hasLimitError");function Gl(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new _e(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new _e(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new _e(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new _e(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=nt.t({id:"Required: >= {min} {symbol}",values:{min:A(o,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=nt.t({id:"Required: > {min} {symbol}",values:{min:A(o,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=nt.t({id:"Required: <= {max} {symbol}",values:{max:A(n,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=nt.t({id:"Required: < {max} {symbol}",values:{max:A(n,6,6),symbol:e.from.symbol}}),a=R().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Gl,"getLimitErrorMessage");function Vl(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:jt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||l||!r||r==="0"?{title:jt().swap,action:"confirm-swap",disabled:!0}:a?{title:jt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:jt().ethWarning,action:"confirm-warning",disabled:!1}:{title:jt().swap,action:"confirm-swap",disabled:!1}:{title:jt().connectWallet,action:"connect-wallet",disabled:!1}}i(Vl,"getSwapButtonState");function Ei(t,e,o){return!((!o||o.lte(Le))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ei,"canComputePriceImpact");var Ig=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function Ai(t,e){let o=Le;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=Ig(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new _e(r.amount).multipliedBy(s||0))}return o}i(Ai,"getUsdFeeOfStep");function $n(t,e){return t.reduce((o,n)=>o.plus(Ai(n,e)),Le)}i($n,"getTotalFeeInUsd");function Ni(t){let e=Le;return e=e.plus(new _e(t.amount).multipliedBy(t.price||0)),e}i(Ni,"getUsdFee");function jl(t){return t.reduce((e,o)=>e.plus(Ni(o)),Le)}i(jl,"getTotalFeesInUsd");function Xl(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,s=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;s[r]=[...s[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(Xl,"getFeesGroup");function Kl(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Kl,"checkSlippageErrors");function Yl(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Yl,"checkSlippageWarnings");function Dn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Dn,"getMinRequiredSlippage");function Zl(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Zl,"hasProperSlippage");function Jl(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:d,affiliateWallets:m,destination:f,enableCentralizedSwappers:g}=t,S=s?.reduce((k,T)=>(k[T.chain]=T.address,k),{}),C=[];return r?.forEach(k=>{C.push({blockchain:k.chain,addresses:[k.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:d??void 0,affiliateWallets:m??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(k=>!a.includes(k)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(Jl,"createQuoteRequestBody");function Rl(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Rl,"getWalletsForNewSwap");function io(t){return t?.outputAmount||null}i(io,"getQuoteOutputAmount");function ep(t,e){return new _e(e).div(new _e(t)).minus(1).multipliedBy(100).toNumber()}i(ep,"getPercentageChange");function tp(t,e){let o=io(t),n=io(e);if(!o||!n)return!1;let r=Ze(o,n);return r?r<=-1:!0}i(tp,"isOutputAmountChangedALot");function op(t,e,o){let n=t.validationStatus,r=Gt({filter:"required",quote:t});return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>lp(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=A(new _e(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=A(new _e(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),c="";return a.reason==="FEE"&&(c=nt.t(" for network fee")),a.reason==="INPUT_ASSET"&&(c=nt.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(c=nt.t(" for input and network fee")),nt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ke(a.asset.blockchain,o)}})})}i(op,"generateBalanceWarnings");function Fn(t,e){return(t?new _e(t):Le).multipliedBy(e||0)}i(Fn,"calcOutputUsdValue");function Po(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Pn.NetworkChanged}i(Po,"isNetworkStatusInWarningState");function np(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Po(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Pn.WaitingForConnectingWallet:n=n||nt.t("Waiting for connecting wallet");break;case Pn.WaitingForQueue:n=n||nt.t("Waiting for other running tasks to be finished");break;case Pn.WaitingForNetworkChange:n=n||nt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(np,"getSwapMessages");function rp(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}i(rp,"getLastConvertedTokenInFailedSwap");function ip(t){return t.status==="failed"}i(ip,"shouldRetrySwap");function sp(t,e,o,n,r,s){if(!n||t)return!0;let a=Gt({filter:"all",quote:n}),l=Gt({filter:"required",quote:n}),p=a.every(d=>r.some(m=>m.chain===d)),u=l.every(d=>r.some(m=>m.chain===d)),c=o&&s?Bn(s,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(sp,"isConfirmSwapDisabled");function ap(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(ap,"isTokensIdentical");function Un(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Un,"getQuoteToTokenUsdPrice");function Wi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Wi,"isNumberOfSwapsChanged");function Mi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ci(o,n)}i(Mi,"isQuoteSwappersUpdated");function Li(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ci(o,n)}i(Li,"isQuoteInternalCoinsUpdated");function cp(t,e){return Wi(t,e)||Mi(t,e)||Li(t,e)}i(cp,"isQuoteChanged");function lp(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}i(lp,"getRequiredBalanceOfWallet");function Tt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Tt,"getPriceImpactLevel");function up(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Ag(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=ki(s?s.toBlockchain:n.fromBlockchain,e),p=ki(r.toBlockchain,e),u=Ti(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Ti(a,o),d=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(up,"createRetryQuote");function so(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=Xt(o,t.requestAmount),l=Xt(n,t?.outputAmount??"");if(t&&a&&l){let c=Ze(a.toString(),l.toString());if(!!c&&Ql(a,c)){let m=$n(t?.swaps,r),f=Tt(c);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!a||!l))return{type:1};let p=Dn(t.swaps),u=s>Nl;if(Zl(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:Yl(t,s),minRequiredSlippage:p};return null}i(so,"generateQuoteWarnings");function Ze(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ep(t.toString(),e.toString());return n&&n<0?n:null}i(Ze,"getPriceImpact");var mp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),qn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),s=r(o),a=r(n);if(s!==a)return a-s;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),dp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(s=>s.swapperId)),r=e.find(s=>{let a=new Set(s.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>a.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),fp=i(t=>{let e=i((o,n)=>{let r=Ii.indexOf(o.value),s=Ii.indexOf(n.value);return r!==-1&&s!==-1?r-s:r!==-1?-1:s!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Xt=i((t,e)=>t?.usdPrice?new kt(e||Le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),V=Bt(Ng()(Wg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new kt(0),outputUsdValue:new kt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Le;return Ao(o.inputAmount)?(e&&(n=e?.outputAmount?new kt(e?.outputAmount):null,r=Fn(e?.outputAmount,Un(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new kt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Xt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new kt(0),outputUsdValue:new kt(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Xt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=up(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:Xt(a??null,u),outputUsdValue:new kt(0),toBlockchain:l,toToken:p,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Xt(e.toToken,e.outputAmount?.toString()||""):new kt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function gp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:s,fromToken:a,toToken:l,fromBlockchain:p,toBlockchain:u}=V(),c=h().config,d=h().fetchStatus,m=h().blockchains(),f=h().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:C}=h(),y=c?.from?.tokens,k=c?.from?.blockchains,T=c?.to?.tokens,w=c?.to?.blockchains,v=zn(void 0),E=zn(void 0),b=zn(void 0),x=zn(void 0);ao(()=>{t(c?.amount?.toString()||"")},[c?.amount]),ao(()=>{if(d==="success"){r();let N=m.find(B=>B.name===c?.from?.blockchain),W=f.find(B=>Be(B,c?.from?.token||null));(N||!N&&b.current)&&n(N??null),W?s({token:W,meta:{blockchains:m,tokens:f}}):!W&&v.current&&s({token:null}),b.current=c?.from?.blockchain,v.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),ao(()=>{No(a,y)&&s({token:null}),gi(p,k)&&n(null)},[y,k]),ao(()=>{No(l,T)&&s({token:null}),gi(u,w)&&o(null)},[T,w]),ao(()=>{if(d==="success"){r();let N=m.find(B=>B.name===c?.to?.blockchain),W=f.find(B=>Be(B,c?.to?.token||null));(N||!N&&x.current)&&o(N??null),W?e({token:W,meta:{blockchains:m,tokens:f}}):!W&&E.current&&e({token:null}),x.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,d]),ao(()=>{g(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),C(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(gp,"useSyncStoresWithConfig");import{useEffect as Pi,useRef as Mg}from"react";import{useInRouterContext as Lg,useLocation as Bg,useSearchParams as _g}from"react-router-dom";function Bi(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Bi,"searchParamToToken");function _i(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(_i,"tokenToSearchParam");function $i(){let t=Bg(),[e,o]=_g(),{fromBlockchain:n,toBlockchain:r,fromToken:s,toToken:a,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=V(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=Lg(),{updateIframe:y,updateCampaignMode:k}=h(),T=h().isInCampaignMode(),w=Mg(),v=i(()=>{let b={};for(let[J,O]of e.entries())J.startsWith("utm_")&&(b[J]=O);let x=e.get("fromAmount"),N=e.get("fromBlockchain"),W=e.get("fromToken"),B=e.get("toBlockchain"),z=e.get("toToken"),M=e.get("autoConnect"),I=e.get("clientUrl"),Q=e.get("liquiditySources");return{fromAmount:x,fromBlockchain:N,fromToken:W,toBlockchain:B,toToken:z,autoConnect:M,clientUrl:I,liquiditySources:Q,utmQueryParams:b}},"getUrlSearchParams"),E=i(b=>{for(let x in b)b[x]||delete b[x];o(b,{replace:!0})},"updateUrlSearchParams");Pi(()=>{let{autoConnect:b,clientUrl:x,utmQueryParams:N}=v();C&&f==="success"&&E({fromBlockchain:n?.name,fromToken:_i(s),toBlockchain:r?.name,toToken:_i(a),fromAmount:l,autoConnect:b??void 0,clientUrl:x??void 0,liquiditySources:T?w.current:void 0,...N})},[t.pathname,l,n,s,r,a,T]),Pi(()=>{if(!C)return;let b=v();if(!w.current&&b.liquiditySources&&(w.current=b.liquiditySources),b.fromAmount&&m(b.fromAmount),f==="success"){let x=g.find(z=>z.name===b.fromBlockchain),N=Bi(S,b.fromToken,x??null),W=g.find(z=>z.name===b.toBlockchain),B=Bi(S,b.toToken,W??null);x&&(p(x),N&&c({token:N,meta:{blockchains:g,tokens:S}})),W&&(u(W),B&&d({token:B,meta:{blockchains:g,tokens:S}}))}},[f]),Pi(()=>{let{clientUrl:b,liquiditySources:x}=v();y("clientUrl",b||void 0),k("liquiditySources",x?.split(",")??void 0)},[])}i($i,"useSyncUrlAndStore");import{i18n as Bs}from"@lingui/core";import{useManager as $S}from"@rango-dev/queue-manager-react";import{Alert as Yu,Button as DS,css as Ps,Divider as _s,IconButton as Zu,styled as FS,Typography as OS,WalletIcon as US}from"@rango-dev/ui";import Te,{useEffect as Mr,useLayoutEffect as qS,useRef as zS,useState as Zo}from"react";import{useNavigate as QS}from"react-router-dom";import{i18n as ft}from"@lingui/core";import{Alert as ms,BalanceErrors as vy,Button as Wc,ChevronDownIcon as by,ChevronLeftIcon as Iy,Divider as ho,MessageBox as Ey,Typography as cr,WalletIcon as Ay}from"@rango-dev/ui";import F,{useEffect as Ny,useState as yo}from"react";import{useNavigate as Wy}from"react-router-dom";import{i18n as Qn}from"@lingui/core";function Hn(t){switch(t.type){case 0:return Qn.t("Route has been updated.");case 3:return Qn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Qn.t("Route swappers has been updated.");case 2:return Qn.t("Route internal coins has been updated.");default:return""}}i(Hn,"getQuoteUpdateWarningMessage");import{Modal as $g}from"@rango-dev/ui";import Dg from"react";function ae(t){let{watermark:e}=ne();return Dg.createElement($g,{hasWatermark:e==="FULL",...t},t.children)}i(ae,"WatermarkedModal");import Xn,{useRef as Ug}from"react";import*as lo from"@radix-ui/react-collapsible";import{keyframes as yp,styled as Gn}from"@rango-dev/ui";var Di=300,Fg=yp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Og=yp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Sp=Gn(lo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Fi=Gn(lo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Vn=Gn(lo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Fg} ${Di}ms ease-out`},false:{animation:`${Og} ${Di}ms ease-out`}}}}),jn=Gn("div",{transition:`all ${Di}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Kn(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:s,trigger:a,triggerAnchor:l}=t,p=Ug(null);return Xn.createElement(Sp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Xn.createElement(Fi,{className:"collapsible_trigger",onClick:s},a),Xn.createElement(Vn,{className:"collapsible_content",open:e},r),l==="bottom"&&Xn.createElement(Fi,{className:"collapsible_trigger",onClick:s},a))}i(Kn,"CustomCollapsible");import{css as Cp,darkTheme as po,IconButton as qg,styled as Je,TextField as zg}from"@rango-dev/ui";var Tp=Je("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),kp=Je("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Qg=Je("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${po} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${po} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${po} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),wp=Je(Qg,{alignSelf:"stretch",minHeight:"93px"}),xp=Je("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),vp=Je(qg,{position:"absolute",left:"$20"}),bp=Je("div",{paddingTop:"$20"}),Ip=Cp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ep=Je("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Ap=Cp({paddingTop:"$5"}),Np=Je("div",{display:"flex"}),Wp=Je(zg,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Mp=Je("div",{overflow:"visible",width:"100%"}),Lp=Je("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${po} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$info100",[`.${po} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${po} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as rt}from"@lingui/core";import{Button as Ty,Divider as cs,Image as ky,MessageBox as lr,SelectableWallet as wy,Typography as Ec,WalletState as Ac}from"@rango-dev/ui";import ue,{useEffect as Nc,useState as Uo}from"react";import{WalletState as Yn}from"@rango-dev/ui";import{useWallets as Hg}from"@rango-dev/wallets-react";import{detectMobileScreens as Gg,KEPLR_COMPATIBLE_WALLETS as Vg,WalletTypes as $o}from"@rango-dev/wallets-shared";import{useCallback as jg,useEffect as Xg,useState as Kg}from"react";var Yg=Object.values($o);function co(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:s,disconnect:a,getWalletInfo:l,connect:p}=Hg(),{connectedWallets:u}=Z(),c=h().blockchains(),d=ml(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||Yg,m=Za(s,l,d,e);m=Gg()?m.filter(v=>v.showOnMobile||s(v.type).installed):m;let f=nl(m),[g,S]=Kg(""),C=i(v=>!u.find(E=>E.walletType===v&&E.chain===e),"isExperimentalChainNotAdded"),y=i(async v=>{let E=s(v);try{if(g&&S(""),E.connected)await a(v);else{let b=!!m.find(x=>x.state===Yn.CONNECTED);if(r?.multiWallets===!1&&b)return;o?.(v),await p(v),n?.(v)}}catch(b){S("Error: "+b?.message)}},"handleClick"),k=jg(()=>{let v=m?.filter(E=>E.state===Yn.CONNECTING)||[];for(let E of v)a(E.type)},[sl(m)]);Xg(()=>()=>{k()},[]);let T=i(v=>{let E=v.find(x=>x.type===$o.DEFAULT);return!E||E.state===Yn.NOT_INSTALLED?!1:v.filter(x=>x.state!=Yn.NOT_INSTALLED&&![$o.DEFAULT,$o.WALLET_CONNECT_2].includes(x.type)&&l(x.type).supportedChains.filter(N=>N.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),w=i((v,E,b)=>wn(b,E)&&C(v)&&!Vg.includes(v)||v==$o.DEFAULT&&!T(m),"shouldExcludeWallet");return{list:f.filter(v=>!w(v.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:k}}i(co,"useWalletList");import{i18n as Tc}from"@lingui/core";import{styled as wc,Typography as dy,Wallet as fy,WalletState as gy}from"@rango-dev/ui";import go,{useState as kc}from"react";import{useManager as oy}from"@rango-dev/queue-manager-react";import{BottomLogo as ny,Divider as dc,Header as ry}from"@rango-dev/ui";import he,{useEffect as is,useRef as fc,useState as iy}from"react";import{useRef as Zg}from"react";function Zn(){return window.self!==window.top}i(Zn,"isAppLoadedIntoIframe");function Oi(){let t=Zg(null),{iframe:e}=h(),o=Zn()&&e.clientUrl,n=i(a=>{o&&window.top?.postMessage(a,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(a=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(a)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Oi,"useIframe");import{useNavigate as Jg}from"react-router-dom";function Re(){let t=Jg();return()=>t(-1)}i(Re,"useNavigateBack");import{createTheme as Gi,darkTheme as rh,lightTheme as ih}from"@rango-dev/ui";import{useEffect as sh,useState as ah}from"react";import{theme as oh,darkColors as nh}from"@rango-dev/ui";import Qi from"react";function Rg(t,e,o){let p=[],u=90;for(let m=0;m<9;m++)p.push(u),m+1===4?u=0:u-=m>=4?6:10;let c=o?p.slice().reverse():p,d={};for(let m=0;m<9;m++){let f=100+m*100,g=c[m],S={[`${e}${f}`]:Jn(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(Rg,"generateShades");function Jn(t,e){let[o,n,r]=Bp(t);return`#${Ui(o+e)}${Ui(n+e)}${Ui(r+e)}`}i(Jn,"generateShade");function Bp(t){let r=parseInt(t.slice(1,3),16),s=parseInt(t.slice(3,5),16),a=parseInt(t.slice(5,7),16);return[r,s,a]}i(Bp,"convertToRGB");function Ui(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Ui,"clamp");function _p(t){let[a,l,p]=Bp(t);return(a*299+l*587+p*114)/1e3>188}i(_p,"isBright");var qi=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];a&&a!==t[s]&&(n=!0,s==="background"||s==="foreground"?r={...r,[s]:a}:r={...r,...Rg(a,s,s==="neutral"&&e)})}return n?r:{}},"generateColors");var Pp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),eh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Pp(o%52)+e;return Pp(o%52)+e},"toAlphabeticName"),th=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),zi=i(t=>eh(th(5381,JSON.stringify(t))>>>0),"toHash");function Hi(t){let e=oh.colors,o=qi({...e,...nh},!0,t?.dark),n=qi(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${fi}-light-${zi(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${fi}-dark-${zi(p)}`,tokens:p}}return{light:a,dark:l}}i(Hi,"customizedThemeTokens");function $p(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Qi.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:s,key:a}=n;if(o.push(Qi.cloneElement(s,{key:a})),r<t.length-1){let l=`divider-${r}`;o.push(Qi.cloneElement(e,{key:l}))}}),o}i($p,"joinList");function Rn(t){let{colors:e,fontFamily:o=cl,borderRadius:n=ll,secondaryBorderRadius:r=pl}=t,[s,a]=ah("light"),{theme:l}=h(),{dark:p,light:u}=Hi(e),c=Gi({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,ih.className],m=[c.className,rh.className];if(u){let g=Gi(u.id,u.tokens);d.push(g.className)}if(p){let g=Gi(p.id,p.tokens);m.push(g.className)}return sh(()=>{let g=i(S=>{S.matches?a("dark"):a("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&a("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),S=m.join(" ");return l==="auto"?s==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(Rn,"useTheme");var mt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Dp}from"@lingui/core";import{Alert as lh,Button as ph}from"@rango-dev/ui";import Fp from"react";function Vi(t){return Fp.createElement(lh,{action:Fp.createElement(ph,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Dp.t("Activate this tab")),type:"warning",variant:"alarm",title:Dp.t("Another tab is open and handles transactions.")})}i(Vi,"ActivateTabAlert");import{i18n as ji}from"@lingui/core";import{Button as ch,Divider as uh,MessageBox as mh}from"@rango-dev/ui";import er from"react";function Xi(t){let{open:e,onClose:o,onConfirm:n}=t;return er.createElement(ae,{open:e,dismissible:!0,onClose:o,container:L()},er.createElement(mh,{title:ji.t("Activate current tab"),type:"warning",description:ji.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},er.createElement(uh,{size:20}),er.createElement(ch,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ji.t("Confirm"))))}i(Xi,"ActivateTabModal");import{ChevronLeftIcon as gh}from"@rango-dev/ui";import Vp from"react";import{css as dh,darkTheme as Op,IconButton as fh,styled as Kt}from"@rango-dev/ui";var dt=Kt(fh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$info100",[`.${Op} &`]:{backgroundColor:"$neutral"}}}),Up=Kt("div",{position:"absolute",background:"$secondary500",[`.${Op} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),uo=Kt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),qp=Kt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),zp=Kt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Qp=Kt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Hp=dh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Gp=Kt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Ki(t){return Vp.createElement(dt,{variant:"ghost",size:"small",onClick:t.onClick},Vp.createElement(gh,{color:"black",size:16}))}i(Ki,"BackButton");import{i18n as hh}from"@lingui/core";import{Button as yh,Typography as Sh}from"@rango-dev/ui";import Yi from"react";function Zi(t){return Yi.createElement(uo,null,Yi.createElement(yh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Yi.createElement(Sh,{variant:"label",size:"medium",color:"error500"},hh.t("Cancel"))))}i(Zi,"CancelButton");import{i18n as Ch}from"@lingui/core";import{Image as Th,Tooltip as kh,WalletIcon as wh}from"@rango-dev/ui";import Yt from"react";function Ji(t){let{list:e}=co({}),o=e.filter(r=>r.state==="connected"),n=o.length?Yt.createElement("div",{className:Hp()},o.map(r=>Yt.createElement(Gp,{key:r.title},Yt.createElement(Th,{src:r.image,size:14})))):Ch.t("Connect Wallet");return Yt.createElement(kh,{container:t.container,side:"bottom",content:n},Yt.createElement(dt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Yt.createElement(Up,null),Yt.createElement(wh,{size:18,color:"black"})))}i(Ji,"WalletButton");import{i18n as nr}from"@lingui/core";import{NotificationsIcon as jh,Popover as Xh,SettingsIcon as Kh,Tooltip as rr,TransactionIcon as Yh}from"@rango-dev/ui";import ve from"react";import{i18n as Lh}from"@lingui/core";import{EventSeverity as Rp}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as ec,ChevronRightIcon as Bh,Divider as _h,Typography as Ph}from"@rango-dev/ui";import Ue from"react";import{useNavigate as $h}from"react-router-dom";import{create as xh}from"zustand";import{persist as vh,subscribeWithSelector as bh}from"zustand/middleware";var Oe=Bt(xh()(vh(bh((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:s.toBlockchain,address:s.toSymbolAddress,symbol:s.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{darkTheme as Ih,ListItemButton as Eh,styled as Do}from"@rango-dev/ui";var jp=Do("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),Xp=Do("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),Kp=Do(Eh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Ih} &`]:{backgroundColor:"$error600"}}}}}),Yp=Do("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),Zp=Do("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Ah}from"@lingui/core";import{Divider as Nh,NoNotificationIcon as Wh,Typography as Mh}from"@rango-dev/ui";import tr from"react";function Jp(){return tr.createElement(Zp,null,tr.createElement(Wh,{color:"secondary",size:26}),tr.createElement(Nh,{size:12}),tr.createElement(Mh,{variant:"body",size:"medium",color:"neutral700"},Ah.t("There are no notifications.")))}i(Jp,"NotificationNotFound");var Dh=4;function Ri(){let t=$h(),{getUnreadNotifications:e}=Oe(),o=e(),n=h().blockchains(),r=h().tokens(),s=o.sort((l,p)=>p.creationTime-l.creationTime).slice(0,Dh),a=i(l=>{t(`${U.swaps}/${l}`)},"handleOnClick");return Ue.createElement(jp,null,s.length?Ue.createElement(Xp,null,s.map((l,p)=>{let{route:u,requestId:c,event:d}=l,m=r.find(C=>Be(C,u.from)),f=n.find(C=>C.name===u.from.blockchain),g=r.find(C=>Be(C,u.to)),S=n.find(C=>C.name===u.to.blockchain);return Ue.createElement(Ue.Fragment,{key:c},p>0&&Ue.createElement(_h,{size:4}),Ue.createElement(Kp,{onClick:()=>a(c),actionRequired:d.messageSeverity===Rp.WARNING,title:Ue.createElement(Ph,{variant:"body",size:"small",color:d.messageSeverity===Rp.WARNING?"$foreground":"$neutral700"},Lh.t(d.message)),id:c,start:Ue.createElement(Yp,null,Ue.createElement("div",{className:"from-chain-token"},Ue.createElement(ec,{tokenImage:m?m.image:"",chainImage:f?f.logo:"",size:"small"})),Ue.createElement("div",{className:"to-chain-token"},Ue.createElement(ec,{tokenImage:g?g.image:"",chainImage:S?S.logo:"",size:"small"}))),end:Ue.createElement(Bh,{size:12,color:"gray"})}))})):Ue.createElement(Jp,null))}i(Ri,"NotificationContent");import{useManager as Fh}from"@rango-dev/queue-manager-react";import{InProgressIcon as Oh}from"@rango-dev/ui";import tc from"react";var Uh=i(()=>{let{manager:t}=Fh();return mt(t).map(({swap:o})=>o).find(o=>o.status==="running")?tc.createElement(Qp,null,tc.createElement(Oh,{color:"info",size:6})):null},"InProgressTransactionBadge"),oc=Uh;import{RefreshProgressButton as qh}from"@rango-dev/ui";import es,{useEffect as zh,useState as nc}from"react";var Qh=1e3,rc=60,Hh=100;function or({onClick:t}){let[e,o]=nc(0),[n,r]=nc(!1),s=i(p=>{document.hidden&&p&&a(p)},"handleVisibilityChange");zh(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===rc&&l()},Qh):a(p),document.addEventListener("visibilitychange",()=>s(p)),()=>{document.removeEventListener("visibilitychange",()=>s(p)),p&&clearInterval(p)}},[e,t]);let a=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return es.createElement(dt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},es.createElement(zp,{onTransitionEnd:()=>r(!1),isRefetched:n},es.createElement(qh,{size:22,color:t?"black":"gray",progress:e/rc*Hh})))}i(or,"RefreshButton");import{EventSeverity as Gh}from"@rango-dev/queue-manager-rango-preset";import{Typography as Vh}from"@rango-dev/ui";import ic from"react";function sc(){let{getUnreadNotifications:t}=Oe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Gh.WARNING);return o?ic.createElement(qp,{isSever:n},ic.createElement(Vh,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(sc,"UnreadNotificationsBadge");function Zt(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:s}=t,{config:{features:a}}=h(),l=Ye("notification",a)||r.includes("notifications");return ve.createElement(ve.Fragment,null,!r.includes("refresh")&&ve.createElement(rr,{container:s||L(),side:"top",content:nr.t("Refresh")},ve.createElement(or,{onClick:e})),!l&&ve.createElement(Xh,{align:"end",alignOffset:-88,collisionPadding:{right:20,left:20},container:L(),content:ve.createElement(Ri,null)},ve.createElement("div",null,ve.createElement(rr,{container:L(),side:"top",content:nr.t("Notifications")},ve.createElement(dt,{size:"small",variant:"ghost"},ve.createElement(jh,{size:18,color:"black"}),ve.createElement(sc,null))))),!r.includes("settings")&&ve.createElement(rr,{container:L(),side:"top",content:nr.t("Settings")},ve.createElement(dt,{size:"small",variant:"ghost",onClick:n},ve.createElement(Kh,{size:18,color:"black"}))),!r.includes("history")&&ve.createElement(rr,{container:L(),side:"top",content:nr.t("Transactions History")},ve.createElement(dt,{size:"small",variant:"ghost",onClick:o},ve.createElement(Yh,{size:18,color:"black"}),ve.createElement(oc,null))))}i(Zt,"HeaderButtons");import{i18n as ts}from"@lingui/core";import{Divider as lc,MessageBox as Rh,RefreshIcon as ey}from"@rango-dev/ui";import mo from"react";import{Button as Zh,styled as Jh}from"@rango-dev/ui";var ac=Jh(Zh,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function os(t){let{open:e,onClose:o}=t;return mo.createElement(ae,{open:e,dismissible:!0,onClose:o,container:L()},mo.createElement(Rh,{title:ts.t("Something went wrong"),type:"error",description:ts.t("Something went wrong. Please refresh the app.")},mo.createElement(lc,{size:30}),mo.createElement(ac,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},mo.createElement(ey,{size:20,color:"primary"}),mo.createElement(lc,{size:4,direction:"horizontal"}),ts.t("Refresh"))))}i(os,"RefreshModal");function ns(t){let e=t.target;if(e){let o=e.scrollTop,n=L();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ns,"onScrollContentAttachStatusToContainer");import{css as ty,styled as rs}from"@rango-dev/ui";var pc="700px",ir=ty({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),cc=rs("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:pc},fixed:{height:pc}}}}),uc=rs("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),mc=rs("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Oi(),{children:n,header:r,footer:s,height:a="fixed"}=t,{fetchStatus:l}=h(),[p,u]=iy(!1),c=Z.use.connectedWallets(),{config:{features:d,theme:m}}=h(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:S}=Rn(m||{}),C=Ye("connectWalletButton",d),{isActiveTab:y,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:w,activateCurrentTab:v}=ne(),E=Re(),{manager:b}=oy(),N=mt(b).map(({swap:Q})=>Q).some(Q=>Q.status==="running"),W=i(()=>v(Vt.forceClaim,N),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),z=typeof r.hasBackButton>"u"||r.hasBackButton,M=fc(null),I=fc(null);return is(()=>(Zn()&&I.current&&e(I.current),()=>{o()}),[]),is(()=>(M.current?.addEventListener("scroll",ns),()=>{M.current?.removeEventListener("scroll",ns)}),[]),is(()=>{u(l==="failed")},[l]),he.createElement(cc,{height:a,id:ke.SWAP_BOX_ID,className:`${S()} ${ir()}`,ref:I},he.createElement(ry,{prefix:he.createElement(he.Fragment,null,z&&he.createElement(Ki,{onClick:()=>{E(),r.onBack&&r.onBack()}})),title:r.title,suffix:he.createElement(he.Fragment,null,r.suffix,r.onWallet&&!C&&he.createElement(Ji,{container:L(),onClick:B,isConnected:!!c?.length}),r.onCancel&&he.createElement(Zi,{onClick:r.onCancel}))}),he.createElement(uc,{ref:M},n),he.createElement(Xi,{open:T,onClose:()=>w(!1),onConfirm:W}),he.createElement(mc,null,he.createElement("div",{className:"footer__content"},k&&!y&&he.createElement("div",{className:"footer__alert"},he.createElement(Vi,{onActivateTab:W}),he.createElement(dc,{size:10})),s),he.createElement(dc,{size:12}),he.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},he.createElement(ny,null))),he.createElement(os,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as sy}from"@rango-dev/ui";var gc="$20 $20 $10 $20",Fo=sy("div",{padding:gc,overflowY:"auto",flexGrow:1});import{styled as ay}from"@rango-dev/ui";var ce=ay("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as my}from"@rango-dev/ui";import as from"react";import{i18n as fo}from"@lingui/core";import{Image as cy,MessageBox as ss,WalletState as uy}from"@rango-dev/ui";import Jt from"react";import{keyframes as ly,styled as sr}from"@rango-dev/ui";var iN=sr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),hc=sr("div",{position:"relative"}),py=ly({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),yc=sr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${py} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Sc=sr("div",{"& img":{borderRadius:"50%"}});function Cc(t){let{state:e,image:o,error:n}=t;return e===uy.CONNECTED?Jt.createElement(ss,{type:"success",title:fo.t("Wallet Connected"),description:fo.t("Your wallet is connected, you can use it to swap.")}):n?Jt.createElement(ss,{type:"error",title:fo.t("Failed to Connect"),description:n||fo.t("Your wallet is not connected. Please try again.")}):Jt.createElement(ss,{type:"loading",title:fo.t("Connecting to your wallet"),description:fo.t("Click connect in your wallet popup."),icon:Jt.createElement(hc,null,Jt.createElement(Sc,null,Jt.createElement(cy,{src:o,size:45})),Jt.createElement(yc,null))})}i(Cc,"ModalContent");function Oo(t){let{open:e,onClose:o,...n}=t;return as.createElement(ae,{open:e,onClose:o,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},as.createElement(Cc,{...n}),as.createElement(my,{direction:"vertical",size:32}))}i(Oo,"WalletModal");var hy=wc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),yy=wc(ce,{textAlign:"center"}),ar=3e3,ls=300;function xc(){let{fetchStatus:t}=h(),[e,o]=kc(!1),[n,r]=kc(""),s=null,a=ne.use.isActiveTab(),{list:l,handleClick:p,error:u,disconnectConnectingWallets:c}=co({onBeforeConnect:S=>{s=setTimeout(()=>{o(!0),r(S)},ls)},onConnect:()=>{s&&clearTimeout(s),setTimeout(()=>{o(!1)},ar)}}),d=i(()=>{c(),o(!1)},"handleCloseWalletModal"),m=l.find(S=>S.type===n),f=m?.image||"",g=m?.state||gy.NOT_INSTALLED;return go.createElement(le,{header:{title:Tc.t("Connect Wallets")}},go.createElement(yy,null,go.createElement(dy,{variant:"title",size:"xmedium",align:"center"},Tc.t("Choose a wallet to connect.")),go.createElement(hy,null,l.map((S,C)=>{let y=`wallet-${C}-${S.type}`;return go.createElement(fy,{key:y,...S,container:L(),onClick:k=>{p(k)},isLoading:t==="loading",disabled:!a})}),go.createElement(Oo,{open:!!e,onClose:d,image:f,state:g,error:u}))))}i(xc,"WalletsPage");import{keyframes as Sy,styled as ps}from"@rango-dev/ui";var vc=ps("div",{position:"relative"}),Cy=Sy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),bc=ps("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Cy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ic=ps("div",{"& img":{borderRadius:"50%"}});var xy=7;function us(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,a=ne.use.isActiveTab(),l=Z.use.connectedWallets(),{blockchains:p}=h(),[u,c]=Uo(""),[d,m]=Uo(null),[f,g]=Uo(!1),[S,C]=Uo(null),{suggestAndConnect:y}=pr(),k=null,{list:T,error:w,handleClick:v,disconnectConnectingWallets:E}=co({chain:e,onBeforeConnect:I=>{k=setTimeout(()=>{c(I)},ls)},onConnect:()=>{k&&clearTimeout(k),setTimeout(()=>{c("")},ar)}}),[b,x]=Uo(T),N=T.length,W=r&&N-r>0,B=i(async I=>{g(!1),C("in-progress");try{await y(I.walletType,I.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Nc(()=>{x(I=>{let Q=T.findIndex(J=>o(J.type,e));return W&&Q>1?[T[Q]].concat(T.filter((J,O)=>O!==Q)):I.map(J=>T.find(O=>O.type===J.type)??J)})},[JSON.stringify(T)]);let z=document.getElementById(ke.SWAP_BOX_ID);Nc(()=>{let I=null;return(S==="completed"||S==="rejected")&&(I=setTimeout(()=>C(null),ar)),()=>{I&&clearTimeout(I)}},[S]);let M=i(()=>{E(),c("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,b.slice(0,r).map(I=>{let Q=rl({connectedWallets:l,walletType:I.type,chain:e}),J=Q?vn(Q,xy):"",O=wn(p(),e),oe=!l.find(ge=>ge.walletType===I.type&&ge.chain===e),me=O&&oe&&I.state===Ac.CONNECTED,j=me?rt.t({id:"Add {chain} chain",values:{chain:e}}):J,ee=i(()=>{I.state===Ac.DISCONNECTED?v(I.type):me?(m({walletType:I.type,chain:e,address:Q??""}),g(!0)):n({walletType:I.type,chain:e,address:Q??""})},"onClick"),te=d?.chain?wl(d.chain,p()):void 0;return ue.createElement(ue.Fragment,{key:`${I.title}_${te}`},ue.createElement(Oo,{open:u===I.type,onClose:M,image:I.image,state:I.state,error:w}),!!d&&ue.createElement(ae,{open:!!d&&f,container:z,onClose:()=>{m(null)}},ue.createElement(lr,{title:rt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:te}}),type:"warning",description:rt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:te}})},ue.createElement(cs,{size:18}),ue.createElement(cs,{size:32}),ue.createElement(Ty,{onClick:B.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},rt.t("Confirm")))),S&&ue.createElement(ae,{open:!!S,onClose:C.bind(null,null),container:z},S==="in-progress"&&ue.createElement(lr,{type:"loading",title:rt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:te}}),description:rt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:te}}),icon:ue.createElement(vc,null,ue.createElement(Ic,null,ue.createElement(ky,{src:I.image,size:45})),ue.createElement(bc,null))}),S==="completed"&&ue.createElement(lr,{type:"success",title:rt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:te}}),description:rt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:te}})}),S==="rejected"&&ue.createElement(lr,{type:"error",title:rt.t("Request Rejected"),description:rt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:te}})}),ue.createElement(cs,{direction:"vertical",size:32})),ue.createElement(wy,{key:I.type,description:j,onClick:ee,selected:o(I.type,e),disabled:!a,...I}))}),W&&ue.createElement(wp,{selected:!1,onClick:s},ue.createElement(Ec,{variant:"label",size:"medium"},rt.t("Show more wallets"),ue.createElement(Ec,{variant:"label",size:"medium",color:"$primary"},"\xA0+",N-(r??0)))))}i(us,"WalletList");var My=2;function Mc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=h().config,l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=V(),{connectedWallets:g,selectWallets:S}=Z(),[C,y]=yo(""),[k,T]=yo([]),[w,v]=yo(""),[E,b]=yo(null),[x,N]=yo(!!m),W=Gt({filter:"all",quote:p}),B=Gt({filter:"required",quote:p}),z=l.find(H=>H.name===p?.swaps[p?.swaps.length-1].to.blockchain),M=i(H=>B.includes(H),"isWalletRequiredFor"),I=i(()=>g.filter(H=>H.selected&&W.includes(H.chain)),"getInitialSelectableWallets"),[Q,J]=yo(I()),O=k.length>0,oe=i((H,X)=>!!Q.find(re=>re.walletType===H&&re.chain===X&&re.selected&&(M(X)||!M(X)&&!m)),"isSelected"),me=!!m&&x&&z&&!Bn(z,m),j=i(()=>{N(!1),f(null),J(H=>{let X=!1;return H.map(re=>!X&&re.chain===z?.name?(X=!0,{...re,selected:!0}):re)})},"resetCustomDestination"),ee=i(H=>{if(C&&y(""),oe(H.walletType,H.chain))return;let re=g.find(Ie=>Ie.walletType===H.walletType&&Ie.chain===H.chain);re&&(n(),H.chain===z?.name&&x&&(N(!1),f(null)),J(Ie=>Ie.filter(Qe=>Qe.chain!==H.chain).concat({...re,selected:!0})))},"onChange"),te=i(()=>{let H=Q.filter(X=>X.selected);S(H),u(H),d(!0),o()},"onConfirmBalance"),ge=i(async()=>{T([]),v(""),b(null);let H=await r?.({selectedWallets:Q.filter(re=>re.selected),customDestination:m}),X=H.warnings;X?.balance?.messages&&T(X.balance.messages),X?.quoteUpdate&&b(X.quoteUpdate),H.error&&v(zl(H.error)),!H.error&&!X?.balance?.messages.length?te():T(X?.balance?.messages??[])},"onConfirmWallets");Ny(()=>{J(H=>H.concat(g.filter(X=>!!!H.find(Ie=>Ie.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[g.length]);let P=document.getElementById(ke.SWAP_BOX_ID),je=Wy();return F.createElement(ae,{open:e,onClose:()=>{c||je("../",{replace:!0}),o()},dismissible:!C,container:P,...!C&&{footer:F.createElement(Np,null,F.createElement(Wc,{loading:s,disabled:sp(s,x,m,p,Q,z),onClick:ge,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ft.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:F.createElement(xp,null,F.createElement(vp,{variant:"ghost",onClick:y.bind(null,"")},F.createElement(Iy,{size:16})),F.createElement(cr,{variant:"headline",size:"small"},ft.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ke(C,l)}})))},anchor:"center"},F.createElement(ae,{open:O,onClose:T.bind(null,[]),container:P},F.createElement(Ey,{title:ft.t("Insufficient account balance"),type:"error",description:F.createElement(vy,{messages:k??[]})},F.createElement(Wc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:te},ft.t("Proceed anyway")))),C&&F.createElement(bp,null,F.createElement("div",{className:Ip()},F.createElement(us,{chain:C,isSelected:oe,selectWallet:ee,onShowMore:y.bind(null,C)}))),!C&&F.createElement(F.Fragment,null,w&&F.createElement(F.Fragment,null,F.createElement(ms,{variant:"alarm",type:"error",title:ft.t(w)}),F.createElement(ho,{size:12})),E&&F.createElement(F.Fragment,null,F.createElement(ms,{variant:"alarm",type:"warning",title:Hn(E)}),F.createElement(ho,{size:12})),F.createElement(Mp,null,W.map((H,X)=>{let re=l.find(Ee=>Ee.name===H),Ie=`wallet-${X}`,Qe=X===W.length-1;return F.createElement("div",{key:Ie},F.createElement(Tp,null,F.createElement(cr,{variant:"title",size:"xmedium"},ft.t({id:"Your {blockchainName} wallets",values:{blockchainName:re?.shortName}})),F.createElement(cr,{variant:"label",color:"$neutral700",size:"medium"},ft.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:re?.shortName}}))),F.createElement(ho,{size:24}),F.createElement(kp,null,F.createElement(us,{chain:H,isSelected:oe,selectWallet:ee,limit:My,onShowMore:()=>y(re?.name??"")})),!Qe&&F.createElement(ho,{size:32}),Qe&&a?.customDestination&&F.createElement(Ep,null,F.createElement(Kn,{onOpenChange:Ee=>{Ee?M(z?.name??"")||J(Me=>Me.map(Xe=>Xe.chain===z?.name?{...Xe,selected:!1}:Xe)):j()},hasSelected:!0,open:x,triggerAnchor:"top",trigger:F.createElement(Lp,null,F.createElement("div",{className:"button__content"},F.createElement(Ay,{size:18,color:"info"}),F.createElement(ho,{size:4,direction:"horizontal"}),F.createElement(cr,{variant:"label",size:"medium"},ft.t("Send to a different address"))),F.createElement(jn,{orientation:x?"up":"down"},F.createElement(by,{size:10,color:"gray"}))),onClickTrigger:()=>N(Ee=>!Ee)},F.createElement(ho,{size:4}),F.createElement(Wp,{placeholder:ft.t("Your destination address"),value:m||"",onChange:Ee=>{let Me=Ee.target.value;Me.length?f(Me.length?Me:null):(N(!1),f(null))},...!m&&{autoFocus:!0}})),me&&F.createElement("div",{className:Ap()},F.createElement(ms,{variant:"alarm",type:"error",title:ft.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Mc,"ConfirmWalletsModal");import{i18n as Yy}from"@lingui/core";import{Alert as Zy,Button as Jy,InfoIcon as Ry}from"@rango-dev/ui";import Ge from"react";import{Alert as _y,Button as Py,Divider as gs,NoRouteIcon as $y,RefreshIcon as Dy,Typography as Fc}from"@rango-dev/ui";import He from"react";import{i18n as Lc}from"@lingui/core";var Ly=24,By=60;function Bc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:R().genericServerError,action:{onClick:n,title:Lc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:R().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Lc.t("Reset")}},description:R().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:R().noResultError.description}}i(Bc,"makeInfo");var ds=(o=>(o[o.small=Ly]="small",o[o.large=By]="large",o))(ds||{}),fs=(o=>(o.small="small",o.large="medium",o))(fs||{});import{styled as ur}from"@rango-dev/ui";var _c=ur("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Pc=ur("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),$c=ur("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Dc=ur("div",{padding:"$6 $0"});function qo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),s=h().toggleAllLiquiditySources,a=h().swappers(),l=Bc(o,r,()=>s(a,!0),e);return He.createElement(_c,null,He.createElement($y,{size:ds[n],color:"gray"}),He.createElement(gs,{size:4}),He.createElement(Fc,{variant:"title",size:fs[n]},R().noResultError.title),n==="large"&&He.createElement(gs,{size:4}),!!l.description&&He.createElement(Pc,{size:n},He.createElement(Fc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),He.createElement(gs,{size:n==="large"?"24":"4"}),!!l.alert&&He.createElement($c,{size:n},He.createElement(_y,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&He.createElement(Py,{size:"xsmall",type:l.alert.type,prefix:He.createElement(Dc,null,He.createElement(Dy,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(qo,"NoResult");import{i18n as zo}from"@lingui/core";import{Button as Oy,Divider as Uy,MessageBox as qy,Typography as zy,WarningIcon as Qy}from"@rango-dev/ui";import wt from"react";import{Typography as zc}from"@rango-dev/ui";import ys from"react";import{darkTheme as Fy,styled as mr}from"@rango-dev/ui";var Oc=mr("div",{width:"100%"}),hs=mr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Uc=mr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Fy} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),qc=mr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Qc(t){let{title:e,value:o,valueColor:n}=t;return ys.createElement(Uc,null,ys.createElement(zc,{size:"medium",variant:"label",className:"_title"},e),ys.createElement(zc,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Qc,"QuoteErrorsModalItem");function Hc(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:s}=t,a=r.warningLevel==="high"?"error":"warning",l=[{title:zo.t("Swapping"),value:A(r.inputUsdValue,4,4)},{title:zo.t("Gas cost"),value:A(r.totalFee,2,2)},{title:zo.t("Receiving"),value:A(r.outputUsdValue,4,4)},{title:zo.t("Price impact"),value:A(r.priceImpact,2,2),valueColor:`${a}500`}];return wt.createElement(ae,{footer:wt.createElement(Oy,{type:"primary",size:"large",prefix:wt.createElement(Qy,null),fullWidth:!0,disabled:s,onClick:n},R().highValueLossError.confirmMessage),open:e,onClose:o,container:L()},wt.createElement(qy,{type:a,title:R().highValueLossError.impactTitle,description:R().highValueLossError.description}),wt.createElement(hs,null,wt.createElement(Uy,{size:"4"}),wt.createElement(zy,{size:"small",variant:"title"},zo.t("Details")),wt.createElement(hs,null,l.map((p,u)=>wt.createElement(Qc,{key:u,...p})))))}i(Hc,"HighValueLossWarningModal");import{i18n as Ss}from"@lingui/core";function Gc(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Ss.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Tt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=R().highValueLossError.title),t.type===1&&(o.title=R().unknownPriceError.title),t.type===2&&(o.title=Ss.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Ss.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Gc,"makeAlerts");import{i18n as So}from"@lingui/core";import{Button as Vc,Divider as jc,MessageBox as Hy,Typography as Gy}from"@rango-dev/ui";import Rt from"react";import{useNavigate as Vy}from"react-router-dom";function Xc(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:s,warning:a,confirmationDisabled:l}=t,p=Vy(),u=e??o;return Rt.createElement(ae,{anchor:"bottom",open:n,prefix:Rt.createElement(Vc,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},Rt.createElement(Gy,{variant:"label",size:"medium",color:"$neutral900"},So.t("Change settings"))),container:L(),onClose:r},Rt.createElement(Hy,{type:"warning",title:a.type===3?So.t("High slippage"):So.t("Low slippage"),description:a.type===3?So.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):So.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Rt.createElement(jc,{size:18}),Rt.createElement(jc,{size:32}),Rt.createElement(Vc,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:s},So.t("Confirm anyway"))))}i(Xc,"SlippageWarningModal");import{Button as jy,MessageBox as Xy,WarningIcon as Ky}from"@rango-dev/ui";import dr from"react";function Kc(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return dr.createElement(ae,{footer:dr.createElement(jy,{type:"primary",size:"large",prefix:dr.createElement(Ky,null),fullWidth:!0,disabled:r,onClick:n},R().unknownPriceError.confirmMessage),open:e,onClose:o,container:L()},dr.createElement(Xy,{type:"warning",title:R().unknownPriceError.impactTitle,description:R().unknownPriceError.description}))}i(Kc,"UnknownPriceWarningModal");function Qo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:s,refetchQuote:a,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,d={confirmationDisabled:s,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,f=Gc(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Ge.createElement(Ge.Fragment,null,m&&Ge.createElement(qo,{error:o,fetch:a}),!!f&&Ge.createElement(Oc,null,Ge.createElement(Zy,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Ge.createElement(qc,{onClick:l},Ge.createElement(Ry,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Ge.createElement(Jy,{size:"xxsmall",type:f.alertType,onClick:c},Yy.t("Change"))}})),e&&Ge.createElement(Ge.Fragment,null,e.type===0&&Ge.createElement(Hc,{...d,warning:e}),(e.type===3||e.type===2)&&Ge.createElement(Xc,{...d,warning:e}),e.type===1&&Ge.createElement(Kc,{...d,warning:e})))}i(Qo,"QuoteWarningsAndErrors");import WS from"bignumber.js";import Er from"react";import{i18n as eo}from"@lingui/core";import{Alert as yS,Divider as To,FullExpandedQuote as SS,InfoIcon as CS,QuoteTag as TS,StepDetails as kS,TokenAmount as wS,Tooltip as Au,Typography as ko}from"@rango-dev/ui";import Is from"bignumber.js";import _,{useRef as xS,useState as vS}from"react";import{styled as Cs}from"@rango-dev/ui";var Ts=Cs("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Yc=Cs("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Zc=Cs("div",{width:"100%",display:"flex"});import*as fr from"@radix-ui/react-collapsible";import{Button as eS,css as Ho,darkTheme as Se,Image as Jc,styled as Pe,Typography as tS}from"@rango-dev/ui";var oS=300,Rc=Pe(fr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Se} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),eu=Ho({padding:"$10 $15"}),tu=Pe(eS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Se} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Se} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Se} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),ou=Pe("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Se} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Se} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Se} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Se} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Se} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$info100",[`.${Se} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Se} &`]:{backgroundColor:"$neutral400"}}}}]}),nu=Ho({width:"100%",padding:"$15 $15 $10 $15"}),ru=Ho({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Co=Ho({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),iu=Ho({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Se} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),su=Pe(fr.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Jc}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Jc}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Se} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Se} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),au=Pe("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),lu=Pe(Vn,{width:"100%",background:"inherit"}),ks=Pe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${oS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),HM=Pe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),pu=Pe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Se} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),cu=Pe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ws=Pe(tS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),uu=Pe("div",{display:"flex",flexWrap:"wrap"}),xs=Pe("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),mu=Pe("div",{display:"flex"}),gr=Pe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Se} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ot}from"@lingui/core";import{ChevronDownIcon as rS,CloseIcon as iS,Divider as Sr,IconButton as sS,QuoteCost as aS,Tooltip as lS,Typography as it}from"@rango-dev/ui";import K,{useState as hu}from"react";import{css as nS,styled as hr}from"@rango-dev/ui";var yr=hr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),vs=hr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),du=hr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),fu=hr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),gu=nS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var pS=i(t=>t.fee.isZero()?null:K.createElement(yr,null,K.createElement(it,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(it,{variant:"label",size:"medium"},"$",A(t.fee,4,4))),"NonPayableFee");function yu(t){let[e,o]=hu(!1),[n,r]=hu(!1),{steps:s,quote:a,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=a?.swaps??[],m=L(),f=Xl(d);return K.createElement(K.Fragment,null,K.createElement(aS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:s,tooltipGas:c?Ot.t("View more info"):void 0,tooltipContainer:m}),K.createElement(ae,{container:m,open:e,header:K.createElement(fu,null,K.createElement(it,{variant:"title",size:"medium"},Ot.t("Gas & Fee Explanation")),K.createElement(sS,{onClick:()=>o(!1),variant:"ghost"},K.createElement(iS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(du,null,K.createElement(it,{variant:"title",size:"small"},Ot.t("Details")),K.createElement(Sr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let k=`payable-fee-${y}`,T=Ni(C);return K.createElement(yr,{key:k},K.createElement(it,{variant:"label",size:"medium",color:"neutral600"},bi[g]),K.createElement(lS,{content:pe(C.amount),container:m},K.createElement(it,{variant:"label",size:"medium"},A(C.amount,2,2)," ",C.asset.symbol," ($",A(T,4,4),")")))})),K.createElement(yr,{className:"total_payable_fee"},K.createElement(it,{variant:"label",size:"medium"},Ot.t("Total Payable Fee")),K.createElement(it,{variant:"label",size:"medium"},"$",A(l,4,4))),K.createElement(vs,null),Object.keys(f.nonePayable).length&&K.createElement(Kn,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:gu()},K.createElement(it,{size:"small",variant:"body",color:"neutral700"},n?Ot.t("Hide non-payable fees"):Ot.t("Show non-payable fees")),K.createElement(Sr,{size:4,direction:"horizontal"}),K.createElement(jn,{orientation:n?"up":"down"},K.createElement(rS,{size:12,color:"gray"}))),open:n},K.createElement(it,{size:"small",variant:"title"},Ot.t("Description")),K.createElement(Sr,{size:4}),K.createElement(it,{size:"small",variant:"body",color:"neutral700"},Ot.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),K.createElement(Sr,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let y=jl(S),k=bi[g],T=`non-payable-fee-${C}`;return K.createElement(pS,{key:T,fee:y,label:k})}),K.createElement(vs,null)))))}i(yu,"QuoteCostDetails");import{i18n as Tu}from"@lingui/core";import{TokenAmount as ku}from"@rango-dev/ui";import Cr from"react";import{css as cS,styled as uS}from"@rango-dev/ui";var Su=uS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Cu=cS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Go(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Cr.createElement(Su,null,Cr.createElement(ku,{direction:"horizontal",label:Tu.t("Swap input"),type:"input",tooltipContainer:L(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Cr.createElement("div",{className:Cu()}),Cr.createElement(ku,{direction:"horizontal",tooltipContainer:L(),label:Tu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(Go,"QuoteSummary");import{i18n as Iu}from"@lingui/core";import{ChevronDownIcon as fS,ChevronRightIcon as gS,Divider as bs,Image as hS,Tooltip as vr,Typography as kr}from"@rango-dev/ui";import $ from"react";import{useLayoutEffect as mS,useState as Vo}from"react";var wu=480,xu=768,vu=1024,bu=1200,dS=i(()=>{let[t,e]=Vo(!1),[o,n]=Vo(!1),[r,s]=Vo(!1),[a,l]=Vo(!1),[p,u]=Vo(!1),c=i(()=>{e(window.innerWidth<=wu),n(window.innerWidth>wu&&window.innerWidth<=xu),s(window.innerWidth>xu&&window.innerWidth<=vu),l(window.innerWidth>vu&&window.innerWidth<=bu),u(window.innerWidth>bu)},"handleResize");return mS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:a,isExtraLargeScreen:p}},"useScreenDetect"),Tr=dS;var wr=4,xr=6,jo=i(t=>{let{content:e,src:o,className:n,open:r,state:s,container:a}=t,l=a||L();return $.createElement(vr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},$.createElement(au,{className:n,state:s},$.createElement(hS,{src:o,size:16})))},"ImageComponent");function Eu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:s,type:a,container:l}=t,p=l||L(),u=r.length,c=mp(r),{isTablet:d,isMobile:m}=Tr();return $.createElement(su,{listItem:a==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},$.createElement("div",{className:Co()},$.createElement(kr,{variant:"body",size:"xsmall"},Iu.t("Via:")),$.createElement(bs,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=$.createElement(ks,null,$.createElement(gS,{size:12,color:"black"}));return m||d?$.createElement($.Fragment,{key:S},$.createElement(jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&$.createElement($.Fragment,null,C)):$.createElement($.Fragment,{key:S},u<=wr||u>wr&&g<wr-1?$.createElement($.Fragment,null,$.createElement(jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&$.createElement($.Fragment,null,C)):g===wr-1&&$.createElement(vr,{container:p,side:"bottom",align:"end",sideOffset:4,content:$.createElement("div",{className:Co()},C,r.map((y,k)=>{let T=`image-${k}`;return k>=g&&$.createElement($.Fragment,{key:T},$.createElement(jo,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),k!==u-1&&$.createElement($.Fragment,null,C))}))},$.createElement(xs,{state:r.find((y,k)=>k>=g&&(y.state==="error"||y.state==="warning"))?.state},$.createElement(kr,{size:"xsmall",variant:"body"},"+",u-g))))})),$.createElement("div",{className:Co()},$.createElement("div",{className:"blockchains_section"},$.createElement("div",{className:Co()},$.createElement(kr,{variant:"body",size:"xsmall"},Iu.t("Chains:")),$.createElement(bs,{direction:"horizontal",size:4}),c.map((f,g)=>$.createElement($.Fragment,{key:f.displayName},c.length<=xr||c.length>xr&&g<xr-1?$.createElement(vr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},$.createElement(jo,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===xr-1&&$.createElement(vr,{container:p,side:"bottom",align:"end",sideOffset:4,content:$.createElement("div",{className:Co()},c.map((S,C)=>C>=g&&$.createElement(jo,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},$.createElement(xs,{className:"blockchainImage"},$.createElement(kr,{size:"xsmall",variant:"body"},"+",c.length-g))))),$.createElement(bs,{direction:"horizontal",size:32}))),$.createElement(ks,{orientation:s?"up":"down"},$.createElement(fS,{size:12,color:"black"}))))}i(Eu,"QuoteTrigger");function Es(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=h().blockchains(),g=h().tokens(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),k=C||y,[T,w]=vS(t.expanded),v=xS(null),E=A(o.value,6,6),b=A(n.value,6,6),x=n.usdValue?A(n.usdValue,4,4):"",N=Ze(o.usdValue,n.usdValue??null),W=A(N,2,2),B=Tt(N??0),z=i((te,ge)=>te.map((P,je)=>{let H,X=r?.type===3&&r.swap.swapperId===P.swapperId,re=r?.type===4&&r.recommendedSlippages?.has(je),Ie=s?.type===2&&s.recommendedSlippages?.has(je),Qe=X||re,Ee=Ie;Qe?H="error":Ee&&(H="warning");let Me=Qe?eo.t("Slippage Error"):eo.t("Slippage Warning");return X&&(Me=eo.t("Bridge Limit Error")),{swapper:{displayName:Mo(P.swapperId,S),image:P.swapperLogo},from:{token:{displayName:P.from.symbol,image:P.from.logo},chain:{displayName:Ke(P.from.blockchain,f),image:P.from.blockchainLogo},price:{value:je===0&&!ge?A(o.value,6,6):A(P.fromAmount,6,6),usdValue:A((P.from.usdPrice??0)*parseFloat(P.fromAmount),4,4),realValue:pe(je===0?o.value:P.fromAmount),realUsdValue:pe(new Is(P.from.usdPrice??0).multipliedBy(P.fromAmount))}},to:{token:{displayName:P.to.symbol,image:P.to.logo},chain:{displayName:Ke(P.to.blockchain,f),image:P.to.blockchainLogo},price:{value:A(P.toAmount,6,6),usdValue:A((P.to.usdPrice??0)*parseFloat(P.toAmount),4,4),realValue:pe(P.toAmount),realUsdValue:pe(new Is(P.to.usdPrice??0).multipliedBy(P.toAmount))}},state:H,alerts:Qe||Ee?_.createElement(Yc,{dense:d},_.createElement(yS,{variant:"alarm",type:Qe?"error":"warning",title:Me,footer:_.createElement(Zc,null,X&&_.createElement("div",null,_.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),_.createElement(To,{direction:"vertical",size:2}),_.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},eo.t({id:"Yours: {amount} {symbol}",values:{amount:A(P.fromAmount,6,6),symbol:P?.from.symbol}}))),(re||Ie)&&!X&&_.createElement("div",null,_.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},eo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(je)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(je)}}})),_.createElement(To,{direction:"vertical",size:2}),_.createElement(ko,{size:"xsmall",variant:"body",color:"neutral900"},eo.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:Eo(P.estimatedTimeInSeconds),fee:A(Ai(P,g),2,2),internalSwaps:P.internalSwaps?z(P.internalSwaps):void 0}}),"getQuoteSteps"),M=z(e?.swaps??[]),I=M.length,Q=m||L(),J=fp(t.quote.tags||[]),O=!!c,oe=Eo(yn(e?.swaps)),me=$n(e?.swaps??[],g),j=A(me,2,2),ee=me.gte(new Is(ql));return d?_.createElement(SS,{selected:l,fee:j,time:oe,tooltipContainer:Wo(),steps:M,tags:J,feeWarning:ee,percentageChange:W,warningLevel:B,outputPrice:{value:b,usdValue:x,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):_.createElement(ou,{selected:l,listItem:a==="list-item",basic:a==="basic"},_.createElement("div",{className:nu()},!p&&J.length?_.createElement(_.Fragment,null,_.createElement(mu,null,J.map((te,ge)=>{let P=`${te.value}_${ge}`;return _.createElement(_.Fragment,{key:P},_.createElement(TS,{label:te.label,value:te.value}),_.createElement(To,{size:4,direction:"horizontal"}))})),_.createElement(gr,null),!O&&_.createElement(To,{size:4})):null,_.createElement("div",{id:"portal-root",className:ru()},_.createElement(yu,{quote:e,time:oe,fee:j,feeWarning:ee,showModalFee:u,steps:I}),O&&_.createElement(tu,{onClick:te=>{te.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},_.createElement(ko,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},eo.t("See All Routes")))),a==="basic"&&_.createElement("div",{className:iu()},_.createElement(cu,null,_.createElement(CS,{size:12,color:"gray"})),_.createElement(uu,null,_.createElement(ws,{size:"small",variant:"body"},`${E} ${M[0].from.token.displayName} = `),_.createElement(Au,{content:pe(n.value),container:Q,open:n.value?void 0:!1},_.createElement(ws,{size:"small",variant:"body"},"\xA0",`${b} ${M[M.length-1].to.token.displayName}`))),_.createElement(Au,{content:pe(n.usdValue),container:Q},_.createElement(To,{size:2,direction:"horizontal"}),_.createElement(ko,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),a==="list-item"&&_.createElement(wS,{tooltipContainer:Q,type:"output",direction:"vertical",price:{value:b,usdValue:x,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:M[I-1].to.token.displayName,image:M[I-1].to.token.image},chain:{image:M[I-1].to.chain.image},percentageChange:W,warningLevel:B}),a==="swap-preview"&&_.createElement(_.Fragment,null,_.createElement(Go,{from:M[0].from,to:M[I-1].to,percentageChange:W,warningLevel:B}),_.createElement(To,{size:4}))),_.createElement(Rc,{selected:l,listItem:a==="list-item",open:T,className:"quote_container",onOpenChange:w},_.createElement(Eu,{type:a,quoteRef:v,selected:l,setExpanded:w,container:Q,expanded:T,steps:M}),_.createElement(lu,{open:T},_.createElement(pu,null),_.createElement("div",{className:eu()},M.map((te,ge)=>{let P=`item-${ge}`;return _.createElement(kS,{type:"quote-details",key:P,tooltipContainer:Q,step:te,hasSeparator:ge!==M.length-1,state:te.state})})))))}i(Es,"Quote");import{Divider as AS,Skeleton as NS}from"@rango-dev/ui";import vt from"react";import{darkTheme as bS,styled as br}from"@rango-dev/ui";var Nu=br("div",{$$color:"$colors$neutral100",[`.${bS} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Wu=br("div",{paddingTop:"$2"}),Mu=br("div",{paddingLeft:"$8"}),Lu=br("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as zu,Divider as st,Skeleton as Ve}from"@rango-dev/ui";import q from"react";import{css as IS,styled as xt}from"@rango-dev/ui";var As=xt("div",{display:"flex"}),Bu=xt("div",{padding:"$10 $0 $20"}),_u=xt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Pu=xt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),$u=xt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Du=xt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Fu=xt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ou=xt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Uu=xt("div",{padding:"$15 $0 $15 $0"}),qu=IS({display:"flex",justifyContent:"space-between",alignItems:"center"});function Xo(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement($u,null,q.createElement(Fu,null,q.createElement(zu,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(st,{size:8,direction:"horizontal"}),q.createElement(Ou,null,q.createElement(Ve,{height:10,width:60,variant:"rounded"}),q.createElement(st,{size:4}),q.createElement(Ve,{height:15,variant:"rounded"}))),q.createElement(Ve,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(As,null,q.createElement(Ve,{width:65,height:20,variant:"rounded"}),q.createElement(st,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:65,height:20,variant:"rounded"}),q.createElement(st,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:65,height:20,variant:"rounded"})),q.createElement(gr,null),!r&&q.createElement(st,{size:4})),q.createElement("div",{className:qu()},q.createElement(As,null,q.createElement(Ve,{width:60,height:10,variant:"rounded"}),q.createElement(st,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:60,height:10,variant:"rounded"}),q.createElement(st,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ve,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(Bu,null,q.createElement(Ve,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(_u,null,q.createElement(Pu,null,q.createElement(zu,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(st,{direction:"horizontal",size:4}),q.createElement(Ve,{height:15,width:150,variant:"rounded"})),q.createElement(st,{size:10}),q.createElement(Ve,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(st,{size:4}),q.createElement(Uu,null,n,q.createElement(Du,null),n),q.createElement(st,{size:12})))}i(Xo,"QuoteSummarySkeleton");import{ChainToken as ju,Divider as Ws,NextIcon as ES,Skeleton as Ir}from"@rango-dev/ui";import Ce from"react";import{styled as Ko}from"@rango-dev/ui";var Qu=Ko("div",{display:"flex",alignItems:"start"}),Hu=Ko("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ns=Ko("div",{display:"flex",alignItems:"center",flexGrow:1}),Gu=Ko("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Vu=Ko("div",{display:"flex",alignItems:"center"});function gt(t){let{separator:e=!0}=t;return Ce.createElement(Ce.Fragment,null,Ce.createElement(Vu,null,Ce.createElement(Ir,{height:22,width:22,variant:"circular"}),Ce.createElement(Ws,{direction:"horizontal",size:8}),Ce.createElement(Ir,{height:15,width:148,variant:"rounded"})),Ce.createElement(Qu,null,Ce.createElement(Lu,{hideSeparator:!e}),Ce.createElement(Hu,{extraSpace:e},Ce.createElement(Ns,null,Ce.createElement(ju,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ce.createElement(Ws,{direction:"horizontal",size:8}),Ce.createElement(Ir,{height:12,variant:"rounded"})),Ce.createElement(Gu,null,Ce.createElement(ES,{color:"gray",size:16})),Ce.createElement(Ns,null,Ce.createElement(ju,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ce.createElement(Ws,{direction:"horizontal",size:8}),Ce.createElement(Ir,{height:12,variant:"rounded"})))))}i(gt,"StepSkeleton");function Yo(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return vt.createElement(Nu,{expanded:o,rounded:e!=="basic"},vt.createElement(Xo,{type:e,tagHidden:n}),vt.createElement(Wu,null,vt.createElement(NS,{height:15,variant:"rounded"})),o&&vt.createElement(Mu,null,vt.createElement(AS,{size:24}),vt.createElement(gt,null),vt.createElement(gt,null),vt.createElement(gt,{separator:!1})))}i(Yo,"QuoteSkeleton");function to(t){let{quote:e,type:o,loading:n,error:r,warning:s,expanded:a=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:d,fullExpandedMode:m=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=V(),y=e?.outputAmount?new WS(e?.outputAmount):null,k=e?.outputAmount?Fn(e?.outputAmount,Un(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Er.createElement(Ts,null,Er.createElement(Yo,{tagHidden:l,type:o,expanded:a})):w?Er.createElement(Ts,{onClick:()=>p?.(e)},Er.createElement(Es,{quote:e,error:r,container:f,showModalFee:u,warning:s,tagHidden:l,selected:c,type:o,expanded:a,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:k?.toString()??""}})):null}i(to,"QuoteInfo");import{calculatePendingSwap as _S}from"@rango-dev/queue-manager-rango-preset";import{useEffect as PS}from"react";import{useRef as MS,useState as LS}from"react";var BS=2e3;function Ar({request:t}){let[e,o]=LS(!1),n=MS(null),r=i(()=>n.current?.abort(),"cancelFetch"),s=i(async l=>(await new Promise(p=>setTimeout(p,BS)),await a(l,!1)),"retryFetch"),a=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await s(l);throw u}finally{o(!1)}},"fetch");return{fetch:a,loading:e,cancelFetch:r}}i(Ar,"useFetch");function Xu(){let{fetch:t,loading:e,cancelFetch:o}=Ar({request:async(n,r)=>await Lt().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Xu,"useFetchConfirmQuote");function Nr(t){if(!t.swaps)throw new Error(R().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ms(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Nr,"throwErrorIfResponseIsNotValid");function Ms(t){if(Hl(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Gl(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}}}let o=Kl(t);if(o){let n=Dn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ms,"getQuoteError");function Ku(t,e,o){let n=!1;t&&(n=cp(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=so(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(tp(t,e)?r.quoteUpdate={type:3,newOutputAmount:A(io(e)),percentageChange:A(Ze(io(t)??"",io(e)??""),null,2)}:Wi(t,e)?r.quoteUpdate={type:0}:Mi(t,e)?r.quoteUpdate={type:1}:Li(t,e)&&(r.quoteUpdate={type:2}));let a=op(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Ku,"generateWarnings");function Wr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Wr,"handleQuoteErrors");function Ls(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:s,setQuoteWarningsConfirmed:a,resetAlerts:l}=V(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),d=h().blockchains(),m=h().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:C}=Xu();return PS(()=>S,[]),{loading:C,fetch:i(async k=>{let T=k.selectedWallets,w=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let v=T.reduce((b,x)=>(b[x.chain]=x.address,b),{}),E={requestId:r?.requestId||"",selectedWallets:v,destination:w||void 0};try{return await g(E,!0).then(b=>{let{result:x}=b;Nr({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let N={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};n(N);let W={slippage:f.toString(),disabledSwappersGroups:c},B=Ku(r??void 0,N,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:T,userSlippage:f});B.quoteUpdate&&a(!1),l();let z=!!B.balance,M=_S(o.toString(),x,Rl(T),W,!z,{blockchains:d,tokens:m});return{quote:N,swap:M,error:null,warnings:B}})}catch(b){return Wr(b)}},"fetch"),cancelFetch:S}}i(Ls,"useConfirmSwap");var HS=FS("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Zu}`]:{width:"$48",height:"$48"}}),GS=Ps({flexGrow:1,paddingRight:"$10"}),VS=Ps({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),jS=Ps({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ju(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:s}=V(),a=QS(),[l,p]=Zo(""),u=!n,[c,d]=Zo(!1),[m,f]=Zo(!1),{isActiveTab:g}=ne(),S=h().getDisabledLiquiditySources(),C=zS(S),{manager:y}=$S(),{fetch:k,loading:T,cancelFetch:w}=Ls(),[v,E]=Zo({swap:null,error:null,warnings:null}),[b,x]=Zo(!1),N=i(async({selectedWallets:O,customDestination:oe})=>{let me=await k?.({selectedWallets:O,customDestination:oe});return E(me),me},"onConfirmSwap"),W=i(async()=>{if(v.swap&&n)try{await y?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let O=`../${U.swaps}/${v.swap.requestId}`;a(O,{replace:!0}),setTimeout(()=>{e("")},0)}catch(O){p("Error: "+O?.message)}},"addNewSwap"),B=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),z=i(async()=>{v?.warnings?.quote&&!s?x(!0):await B()},"onStartConfirmSwap"),M=i(async()=>{E({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:r}).then(O=>{E(O)}).catch(O=>console.error(O))},"onRefresh");Mr(()=>{!!C.current.length&&!S.length&&M(),C.current=S},[S.length]),Mr(()=>{u&&w()},[u]),Mr(()=>{u&&d(u)},[u]),Mr(()=>{u||k({selectedWallets:o,customDestination:r}).then(O=>E(O)).catch(O=>console.error(O))},[]),qS(()=>{t?.requestId||a(`../${location.search}`)},[t?.requestId]);let I=v.warnings?.quote??null,Q=v.error,J=[];if(l&&J.push(Te.createElement(Yu,{type:"error",variant:"alarm",title:l})),v.warnings?.quoteUpdate&&J.push(Te.createElement(Yu,{variant:"alarm",type:"warning",title:v.warnings.quoteUpdate&&Hn(v.warnings.quoteUpdate)})),I||Q){let O=`../${U.settings}`;J.push(Te.createElement(Qo,{warning:I,error:Q,couldChangeSettings:!1,refetchQuote:M,showWarningModal:b,confirmationDisabled:!g,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await W()},onChangeSettings:()=>a(O)}))}return Te.createElement(le,{header:{title:Bs.t("Confirm Swap"),onWallet:()=>{let O=`../${U.wallets}`;a(O)}},footer:Te.createElement(HS,null,Te.createElement("div",{className:GS()},Te.createElement(DS,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||m,disabled:!!v.error||!g,onClick:z},Bs.t("Start Swap"))),Te.createElement(Zu,{variant:"contained",type:"primary",size:"large",loading:T||m,disabled:!g,onClick:d.bind(null,!0)},Te.createElement(US,{size:24})))},c&&Te.createElement(Mc,{open:c,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:N}),Te.createElement(ce,null,Te.createElement("div",{className:jS()},Te.createElement(OS,{variant:"title",size:"small"},Bs.t("You get")),Te.createElement("div",{className:VS()},Te.createElement(or,{onClick:!T&&!c&&!b?M:void 0}))),Te.createElement(_s,{size:"12"}),$p(J.map((O,oe)=>({element:O,key:`alert-${oe}`})),Te.createElement(_s,{size:10})),J.length>0?Te.createElement(_s,{size:10}):null,Te.createElement(to,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:v.error,loading:T,warning:v.warnings?.quote??null})))}i(Ju,"ConfirmSwapPage");import{i18n as Br}from"@lingui/core";import{useManager as pC}from"@rango-dev/queue-manager-react";import{Divider as pm,NotFound as cC,styled as uC}from"@rango-dev/ui";import It,{useState as mC}from"react";import{useNavigate as dC}from"react-router-dom";import{i18n as YS}from"@lingui/core";import{Divider as nm,GroupedVirtualizedList as ZS,Skeleton as JS,SwapListItem as rm,Typography as RS}from"@rango-dev/ui";import $e,{useCallback as im,useEffect as eC,useRef as tC,useState as oC}from"react";function Ru(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Ru,"calculateGroupsSoFar");import{css as XS,darkTheme as KS,styled as Jo}from"@rango-dev/ui";var $s=XS(),em=Jo("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ds=Jo("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${$s}`]:{$$color:"$colors$neutral600",[`.${KS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Fs=Jo("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),tm=Jo("div",{gap:"$10",display:"flex",flexDirection:"column"}),om=Jo("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var nC=10;function Os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[s,a]=oC([]),l=tC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=im(Ru,[]),m=im(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,nC),a(d(u,l.current)))},[e.length]);if(eC(()=>{r||m()},[r,m]),r){let f=[1,2];return $e.createElement($e.Fragment,null,[f,f].map((S,C)=>$e.createElement(Ds,{key:C},$e.createElement(Fs,null,$e.createElement(JS,{variant:"text",width:60,size:"small"}),$e.createElement(nm,{size:16})),$e.createElement(nm,{size:4}),$e.createElement(tm,null,S.map((k,T)=>$e.createElement(rm,{isLoading:!0,key:T}))))))}return $e.createElement(ZS,{endReached:()=>{l.current<e.length&&m()},groupCounts:s,groupContent:f=>$e.createElement(Ds,null,$e.createElement(Fs,null,$e.createElement(RS,{variant:"label",size:"medium",className:$s()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return $e.createElement(em,{key:S.requestId},$e.createElement(rm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:L(),onlyShowTime:c[g]===YS.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:A(S.inputAmount,6,6),realAmount:pe(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:A(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(Os,"HistoryGroupedList");import{CloseIcon as iC,IconButton as sC,SearchIcon as aC,TextField as lC}from"@rango-dev/ui";import Ro from"react";import{styled as rC}from"@rango-dev/ui";var sm=rC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function bt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return Ro.createElement(lC,{prefix:Ro.createElement(sm,null,Ro.createElement(aC,{color:"black"})),suffix:!!a.length&&Ro.createElement(sC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},Ro.createElement(iC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(bt,"SearchInput");import{i18n as Lr}from"@lingui/core";import am from"dayjs";var lm=i(t=>{let e=new Map([["today",{title:Lr.t("Today"),swaps:[]}],["week",{title:Lr.t("This week"),swaps:[]}],["month",{title:Lr.t("This month"),swaps:[]}],["year",{title:Lr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=am();t.forEach(p=>{let u=Number(p.creationTime),c=am(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let d=new Date(u).getFullYear().toString();o(d,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),s=r.flatMap(p=>p.swaps),a=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:s,groupCounts:a,groups:l}},"groupSwapsByDate");var fC=uC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),gC=i((t,e)=>t?.length?t.filter(o=>ct(o.fromBlockchain,e)||ct(o.toBlockchain,e)||ct(o.toSymbol,e)||ct(o.fromSymbol,e)).length:!1,"isStepContainsText");function cm(){let t=dC(),{manager:e,state:o}=pC(),n=mt(e).map(({swap:c})=>c),[r,s]=mC(""),a=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;s(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>ct(c.inputAmount,r)||ct(c.status,r)||gC(c.steps,r)||ct(c.requestId,r)));let u=!p?.length&&!a;return It.createElement(le,{header:{title:Br.t("History")}},It.createElement(ce,null,It.createElement(bt,{setValue:s,fullWidth:!0,variant:"contained",placeholder:Br.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),It.createElement(pm,{size:"16"}),It.createElement(fC,null,u&&It.createElement(om,null,It.createElement(pm,{size:32}),It.createElement(cC,{title:Br.t("No results found"),description:r?Br.t("Try using different keywords"):""})),!u&&It.createElement(Os,{list:p,onSwapClick:t,groupBy:lm,isLoading:a}))))}i(cm,"HistoryPage");import{i18n as _C}from"@lingui/core";import{Button as PC,Divider as Am,styled as $C,WarningIcon as DC}from"@rango-dev/ui";import FC from"bignumber.js";import qe,{useEffect as Nm,useState as Wm}from"react";import{useNavigate as OC}from"react-router-dom";import{i18n as kC}from"@lingui/core";import{Header as wC}from"@rango-dev/ui";import Ut,{useEffect as xC,useState as vC}from"react";import{i18n as yC}from"@lingui/core";import{Divider as qs,FullExpandedQuote as SC,Typography as CC}from"@rango-dev/ui";import de from"react";import{styled as Us}from"@rango-dev/ui";var um=Us("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),mm=Us("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),dm=Us("div",{width:"146px"});import{i18n as en}from"@lingui/core";import{Select as hC}from"@rango-dev/ui";import fm from"react";function _r(t){let{updateQuotePartialState:e,sortStrategy:o}=V(),n=[{value:"SMART",label:en.t("Smart Routing")},{value:"FEE",label:en.t("Lowest Fee")},{value:"SPEED",label:en.t("Fastest Transfer")},{value:"NET_OUTPUT",label:en.t("Maximum Return")},{value:"PRICE",label:en.t("Maximum Output")}];return fm.createElement(dm,null,fm.createElement(hC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(_r,"SelectStrategy");var gm=3;function tn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:s=!0,fullExpandedMode:a=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:d,toToken:m,sortStrategy:f,error:g}=V(),{slippage:S,customSlippage:C}=h(),y=h().tokens(),k=l||L(),T=!!u&&u.results.length,w=C??S,v=i(x=>{if(!d||!m||!u)return null;let N={requestAmount:u.requestAmount,...x};return so(N,{fromToken:d,toToken:m,userSlippage:w,tokens:y})},"getQuoteWarning"),E=g?.type===0||g?.type===1,b=u?.results?qn(f,u?.results):[];return de.createElement(de.Fragment,null,s&&de.createElement(de.Fragment,null,de.createElement(mm,null,de.createElement(CC,{size:"xmedium",variant:"title"},yC.t("Sort by")),de.createElement(_r,{container:k})),de.createElement(qs,{size:"10"})),e&&Array.from({length:gm},(x,N)=>de.createElement(de.Fragment,{key:N},a?de.createElement(SC,{loading:!0}):de.createElement(Yo,{tagHidden:!1,type:"list-item",expanded:!1}),N!==gm-1&&de.createElement(qs,{size:16}))),!e&&de.createElement(de.Fragment,null,T?b.map((x,N)=>{let W=v(x),B=Ms(x.swaps),z=b.length-1===N;return de.createElement(de.Fragment,{key:x.requestId},de.createElement(to,{showModalFee:r,container:k,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:W,fullExpandedMode:a,onClick:M=>{B||c("warning",W),c("error",B?.options||null),o(M)},type:"list-item"}),!z&&de.createElement(qs,{size:16}))}):E&&de.createElement(um,null,de.createElement(qo,{size:a?"large":"small",error:g,fetch:n}))))}i(tn,"Quotes");import{darkTheme as TC,styled as hm}from"@rango-dev/ui";var ym=hm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${TC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Sm=hm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var bC=100;function zs(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:s}=t,[a,l]=vC(!1),p=a?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",d=Wo();return xC(()=>{let m=null;return s?m=setTimeout(()=>{l(!0)},bC):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[s]),Ut.createElement(ym,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ir()}`,id:ke.EXPANDED_BOX_ID},Ut.createElement(wC,{title:kC.t("Routes"),suffix:Ut.createElement(Ut.Fragment,null,Ut.createElement(_r,{container:d}),Ut.createElement(Zt,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Ut.createElement(Sm,null,Ut.createElement(tn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Wo(),onClickOnQuote:n,fullExpandedMode:c})))}i(zs,"ExpandedQuotes");import{i18n as bm}from"@lingui/core";import{SwapInput as Im}from"@rango-dev/ui";import on from"react";import{ReverseIcon as AC}from"@rango-dev/ui";import Hs from"react";import{keyframes as IC,styled as Cm}from"@rango-dev/ui";var Qs=450,EC=IC({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Tm=Cm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),km=Cm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${EC} ${Qs}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function Gs(){let t=V.use.switchFromAndTo();return Hs.createElement(Tm,null,Hs.createElement(km,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Qs),t()}},Hs.createElement(AC,{size:12})))}i(Gs,"SwitchFromAndToButton");import{styled as wm}from"@rango-dev/ui";var xm=wm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vm=wm("div",{position:"relative"});function Vs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:d,outputAmount:m,outputUsdValue:f,selectedQuote:g}=V(),{connectedWallets:S,getBalanceFor:C}=Z(),y=s?C(s):null,k=xn(y)?.amount??"0",T=a&&s?A(y?.amount,y?.decimals):"0",w=!!a&&il(S,a.name),v=!Ei(g,c,d),E=!Ei(g,c,f),b=!d||!f||!f.gt(0)?null:Ze(d.toString(),f.toString());return on.createElement(xm,null,on.createElement(vm,null,on.createElement(Im,{label:bm.t("From"),mode:"From",onInputChange:u,balance:k,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:v?void 0:A(d,4,4),realUsdValue:v?void 0:pe(d),error:v?R().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:L(),onSelectMaxBalance:()=>{u(T.split(",").join(""))}}),on.createElement(Gs,null)),on.createElement(Im,{sharpBottomStyle:!r&&(!!g||e),label:bm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:A(Ze(d,f),2,2),warningLevel:Tt(b??0),price:{value:A(m,6,6),usdValue:E?void 0:A(f,4,4),realValue:pe(m),realUsdValue:E?void 0:pe(f),error:E?R().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:L()}))}i(Vs,"Inputs");import{useCallback as NC,useEffect as WC,useRef as MC,useState as LC}from"react";function Em(){let{fetch:t,loading:e,cancelFetch:o}=Ar({request:async(n,r)=>await Lt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Em,"useFetchAllQuotes");var BC=600;function Pr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Em(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:s}=h().config,a=Z.use.connectedWallets(),l=h().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:y,updateQuotePartialState:k}=V(),{slippage:T,customSlippage:w,affiliatePercent:v,affiliateRef:E,affiliateWallets:b,fetchStatus:x}=h(),N=h().getLiquiditySources(),W=h().getDisabledLiquiditySources(),B=h().excludeLiquiditySources(),[z,M]=LC(!0),I=MC(c),Q=w??T,O=!p||!u||Be(p,u)||!Ao(c),oe=i(ee=>{M(ee)},"resetState"),me=i(ee=>{let{fromToken:te,toToken:ge,inputAmount:P,liquiditySources:je,excludeLiquiditySources:H,disabledLiquiditySources:X,slippage:re,affiliateRef:Ie,affiliatePercent:Qe,affiliateWallets:Ee}=ee;if(z||oe(!0),!O&&te&&ge){g();let Me=Jl({fromToken:te,toToken:ge,inputAmount:P,liquiditySources:je,excludeLiquiditySources:H,disabledLiquiditySources:X,wallets:a,slippage:re,affiliateRef:Ie,affiliatePercent:Qe,affiliateWallets:Ee,enableCentralizedSwappers:s});vl("experimentalRoute",r)&&(Me.experimental=!0),e(Me).then(Xe=>{let Ae=qn(f,Xe.results),Fe=dp(m,Ae,Xe.requestAmount);M(!1),k("quotes",Xe),y(Fe),Nr({diagnosisMessages:Xe.diagnosisMessages,requestId:Fe?.requestId||"",swaps:Fe?.swaps});let gn=Fe&&so(Fe,{fromToken:te,toToken:ge,userSlippage:Q,tokens:l});k("warning",gn)}).catch(Xe=>{let{error:Ae}=Wr(Xe);(Ae?.type===0||Ae?.type===1)&&g(),Ae?.type!==2&&(k("error",Ae),M(!1))})}},"fetch"),j=NC(Tl(ee=>{me(ee)},BC),[O]);return WC(()=>{if(!t){M(!1);return}if(x!=="success")return;if(O){M(!1),(m||S||C)&&g();return}if(!Ao(c)||d?.eq(0)){oe(!1),o();return}g(),oe(!0);let ee=me;return I.current&&I.current!=c&&(ee=j),I.current=c,ee({inputAmount:c,fromToken:p,toToken:u,liquiditySources:N,excludeLiquiditySources:B,disabledLiquiditySources:W,slippage:Q,affiliateRef:E,affiliatePercent:v,affiliateWallets:b}),o},[x,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,O,N?.length,n,W.length,Q,E,v,JSON.stringify(b)]),{fetch:()=>me({inputAmount:c,fromToken:p,toToken:u,liquiditySources:N,excludeLiquiditySources:B,disabledLiquiditySources:W,slippage:Q,affiliateRef:E,affiliatePercent:v,affiliateWallets:b}),loading:z}}i(Pr,"useSwapInput");var UC=$C("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),qC=300;function Mm(){let t=OC(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:s,error:a,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=V(),[f,g]=Wm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Tr(),{fetch:y,loading:k}=Pr({refetchQuote:s}),{config:T,fetchStatus:w}=h(),{connectedWallets:v}=Z(),{isActiveTab:E}=ne(),[b,x]=Wm(!1),W=Vl({fetchMetaStatus:w,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:a,warning:l,needsToWarnEthOnPath:!1}),B=ul(S,C,T?.variant),z=!!n&&!!e&&!!o&&new FC(n).gt(0)&&!ap(e,o),M=z&&w==="success"&&k,J=(!B||B&&p?.results.length)&&(l||a);Nm(()=>{c(),m("refetchQuote",!0)},[]),Nm(()=>{g(z)},[z]);let O=(r||a)&&!b?y:void 0,oe=i(j=>{B&&f?(g(!1),setTimeout(()=>{t(j)},qC)):t(j)},"onHandleNavigation"),me=i(j=>{r?.requestId!==j.requestId&&(x(!1),u(j))},"onClickOnQuote");return qe.createElement(UC,null,qe.createElement(le,{height:"auto",footer:qe.createElement(PC,{type:"primary",size:"large",disabled:W.disabled||!E,prefix:W.action==="confirm-warning"&&qe.createElement(DC,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?oe(U.wallets):W.action==="confirm-warning"?x(!0):oe(U.confirmSwap)}},W.title),header:{onWallet:()=>{oe(U.wallets)},hasBackButton:!1,title:T.title||_C.t("Swap"),suffix:qe.createElement(Zt,{hidden:B?["refresh"]:void 0,onClickRefresh:O,onClickHistory:()=>oe(U.swaps),onClickSettings:()=>{oe(U.settings)}})}},qe.createElement(ce,null,qe.createElement(Vs,{fetchingQuote:M,fetchMetaStatus:w,isExpandable:B,onClickToken:j=>{oe(j==="from"?U.fromSwap:U.toSwap)}}),qe.createElement(Am,{size:"2"}),B?null:qe.createElement(to,{quote:r,loading:M,error:a,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),oe(U.routes)}:void 0}),J?qe.createElement(qe.Fragment,null,qe.createElement(Am,{size:"10"}),qe.createElement(Qo,{warning:l,error:a,couldChangeSettings:!0,refetchQuote:y,showWarningModal:b,confirmationDisabled:!E,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),d(!0),oe(U.confirmSwap)},onChangeSettings:()=>oe(U.settings)})):null)),B?qe.createElement(zs,{loading:M,onClickOnQuote:me,fetch:y,onClickRefresh:O,isVisible:f}):null)}i(Mm,"Home");import{i18n as Lm}from"@lingui/core";import{Alert as zC,Divider as QC,List as HC,ListItemButton as GC,Radio as VC,RadioRoot as jC,Typography as XC}from"@rango-dev/ui";import ht from"react";function qt(){let{setLanguage:t,language:e,config:o}=h(),n=Il,r=o?.language||Lo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:s=>t(s||Lo),resetLanguage:()=>t(null)}}i(qt,"useLanguage");function Bm(){let{activeLanguage:t,changeLanguage:e,languages:o}=qt(),n=Re(),r=o.map(s=>{let{local:a,label:l,SVGFlag:p}=s;return{id:a,value:a,title:ht.createElement(XC,{variant:"title",size:"xmedium"},l),onClick:()=>{e(s.local),n()},end:ht.createElement(VC,{value:a}),start:ht.createElement(p,null)}});return ht.createElement(le,{header:{title:Lm.t("Language")}},ht.createElement(ce,null,ht.createElement(zC,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),ht.createElement(QC,{size:"8"}),ht.createElement(jC,{value:t},ht.createElement(HC,{type:ht.createElement(GC,{title:Lm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Bm,"LanguagePage");import{i18n as Et}from"@lingui/core";import{Button as RC,Checkbox as eT,Image as tT,ListItemButton as oT,NotFound as nT,Typography as rT}from"@rango-dev/ui";import De,{useState as iT}from"react";import{Checkbox as ZC,Skeleton as Pm}from"@rango-dev/ui";import rn from"react";import{styled as js}from"@rango-dev/ui";var nn=js("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Xs=js("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ks=js("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as KC,styled as YC}from"@rango-dev/ui";var _m=YC(KC,{height:61});var JC=30;function Ys(){return rn.createElement(nn,null,Array.from(Array(JC),(t,e)=>rn.createElement(_m,{hasDivider:!0,key:e,start:rn.createElement(Pm,{variant:"circular",width:35,height:35}),title:rn.createElement(Pm,{variant:"text",size:"large",width:90}),end:rn.createElement(ZC,{checked:!1})})))}i(Ys,"LoadingLiquiditySourceList");function Zs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,s]=iT(""),a=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Nn(o,n),u={Exchanges:Et.t("Exchanges"),Bridges:Et.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(y=>c.includes(y.type)),m=d.length===d.filter(y=>y.selected).length,f=i(()=>{d.forEach(y=>{m?a(y.groupTitle):y.selected||a(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:k,groupTitle:T,logo:w}=y;return{start:De.createElement(tT,{src:w,size:22,type:"circular"}),onClick:()=>{l||a(T)},end:De.createElement(eT,{checked:k,disabled:l}),title:De.createElement(rT,{variant:"title",size:"xmedium"},Et.t(T)),...y}}),S=i(y=>{let k=y.target.value;s(k)},"searchHandler"),C=g;return r&&(C=g.filter(y=>ct(y.groupTitle,r))),De.createElement(le,{header:{title:Et.t(t),suffix:De.createElement(Xs,null,De.createElement(RC,{variant:"ghost",size:"xsmall",onClick:f},m?Et.t("Deselect all"):Et.t("Select all")))}},De.createElement(ce,{view:!0},De.createElement(bt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Et.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&De.createElement(Ys,null),!C.length&&r?De.createElement(Ks,null,De.createElement(nT,{title:Et.t("No results found"),description:Et.t("Try using different keywords")})):e==="success"&&De.createElement(nn,{disabled:l},C.map(y=>{let{groupTitle:k,...T}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(oT,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(Zs,"LiquiditySourcePage");import{i18n as sT}from"@lingui/core";import $r from"react";import{useNavigate as aT}from"react-router-dom";function $m(){let t=aT(),e=Re(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:s,error:a}=V(),{fetch:l,loading:p}=Pr({refetchQuote:n}),u=i(m=>{r(m),s("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${U.settings}`,d=`../${U.wallets}`;return $r.createElement(le,{header:{onWallet:()=>{t(d),s("refetchQuote",!0)},onBack:()=>{s("refetchQuote",!1)},title:sT.t("Routes"),suffix:$r.createElement(Zt,{onClickRefresh:o||a?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),s("refetchQuote",!0)}})}},$r.createElement(ce,null,$r.createElement(tn,{fetch:l,loading:p,onClickOnQuote:u})))}i($m,"RoutesPage");import{i18n as Hm}from"@lingui/core";import{Divider as Gm,getCountCategories as yT,SelectableCategoryList as ST}from"@rango-dev/ui";import At,{useState as Vm}from"react";import{i18n as Rs}from"@lingui/core";import{Divider as zm,Image as mT,ListItemButton as dT,NotFound as fT,Typography as Qm}from"@rango-dev/ui";import et,{useEffect as gT,useState as hT}from"react";import{BlockchainCategories as Js}from"@rango-dev/ui";import{TransactionType as Dr}from"rango-sdk";var lT=i((t,e)=>{switch(e){case Js.ALL:return!0;case Js.UTXO:return t.type===Dr.TRANSFER;case Js.OTHER:return t.type!==Dr.TRANSFER&&t.type!==Dr.COSMOS&&t.type!==Dr.EVM;default:return t.type===e}},"filterByType"),Dm=i((t,e,o)=>t.filter(n=>lT(n,o)).filter(n=>Ct(n.name,e)||Ct(n.displayName,e)),"filterBlockchains");import{ImageContainer as pT,styled as Fm}from"@rango-dev/ui";var Om=Fm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Fr=Fm(Fo,{padding:0,margin:0,listStyle:"none",[`& ${pT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as cT,Skeleton as Um}from"@rango-dev/ui";import Or from"react";var uT=20;function qm(){return Or.createElement(Fr,null,Array.from(Array(uT),t=>Or.createElement(cT,{key:t,hasDivider:!0,start:Or.createElement(Um,{variant:"circular",width:35,height:35}),title:Or.createElement(Um,{variant:"text",size:"large",width:90})})))}i(qm,"LoadingBlockchainList");function ea(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=hT(e),{fetchStatus:l}=h();gT(()=>{a([...Dm(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?et.createElement(et.Fragment,null,et.createElement(zm,{size:32}),et.createElement(fT,{title:Rs.t("No results found"),description:Rs.t("Try using different keywords")})):et.createElement(Fr,{as:"ul",key:`${r}-${o}`},s.map(u=>et.createElement(dT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:et.createElement(mT,{src:u.logo,size:30}),title:et.createElement(Qm,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return et.createElement(Om,null,et.createElement(Qm,{variant:"label",size:"large"},Rs.t("Select Blockchain")),et.createElement(zm,{size:4}),l==="loading"&&et.createElement(qm,null),l==="success"&&p())}i(ea,"BlockchainList");function ta(t){let{type:e}=t,o=Re(),[n,r]=Vm(""),[s,a]=Vm("ALL"),l=V.use.setToBlockchain(),p=V.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),m=yT(c)!==1;return At.createElement(le,{header:{title:Hm.t("Select Blockchain")}},At.createElement(ce,{view:!0},m&&At.createElement(At.Fragment,null,At.createElement(ST,{setCategory:a,category:s,blockchains:c,isLoading:u==="loading"}),At.createElement(Gm,{size:24})),At.createElement(bt,{value:n,autoFocus:!0,placeholder:Hm.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),At.createElement(Gm,{size:16}),At.createElement(ea,{list:c,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ta,"SelectBlockchainPage");import{i18n as Hr}from"@lingui/core";import{Divider as dd}from"@rango-dev/ui";import oo,{useState as PT}from"react";import{useNavigate as $T}from"react-router-dom";import{i18n as ra}from"@lingui/core";import{BlockchainsChip as Ur,Divider as Ym,Image as Zm,Skeleton as xT,Tooltip as vT,Typography as ia}from"@rango-dev/ui";import be from"react";import{useEffect as kT}from"react";var jm=["ETH","COSMOS","OSMOSIS"];function oa(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(CT),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(c=>u.name!==c)}}n.sort(TT(a)),r=n.splice(s)}return{list:n,more:r}}i(oa,"prepare");function CT(t,e){let o=jm,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(CT,"sortByMostUsedBlockchains");function TT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(TT,"generateSortByPreferredBlockchainsFor");function Xm(t,e){return!!e.list.find(o=>o.name===t)}i(Xm,"isInVisibleList");function na(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();kT(()=>{if(e?.selected){let s=oa(t,o,e);Xm(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=oa(t,o,e);return{list:r.list,more:r.more,history:[]}}i(na,"usePrepareBlockchainList");import{styled as wT}from"@rango-dev/ui";var Km=wT("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var bT=12;function sa(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=na(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=V.use.resetToBlockchain(),u=V.use.resetFromBlockchain(),c=a.more.length>0,d=a.more.length===1,m=!d&&c;return be.createElement(be.Fragment,null,be.createElement(Ym,{size:12}),be.createElement(ia,{variant:"label",size:"large"},ra.t("Select Blockchain")),be.createElement(Ym,{size:12}),be.createElement(Km,null,l==="loading"&&Array.from(Array(bT),f=>be.createElement(xT,{key:f,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(Ur,{selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(ia,{variant:"body",size:"xsmall",color:"secondary500"},ra.t("All"))),a.list.map(f=>be.createElement(vT,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:L()},be.createElement(Ur,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(Zm,{src:f.logo,size:30})))),d?be.createElement(Ur,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},be.createElement(Zm,{src:a.more[0].logo,size:30})):null,m?be.createElement(Ur,{onClick:s,key:"more-blockchains"},be.createElement(ia,{variant:"body",size:"xsmall",color:"secondary500"},ra._("More +{count}",{count:a.more.length}))):null)))}i(sa,"BlockchainsSection");import{i18n as ha}from"@lingui/core";import{darkTheme as ld,Divider as xo,ExternalLinkIcon as AT,Image as NT,ListItemButton as WT,NotFound as MT,PinIcon as LT,Skeleton as pd,Typography as Qr,VirtualizedList as BT}from"@rango-dev/ui";import G,{useEffect as cd,useState as ud}from"react";import{Divider as sd,ListItem as ET,Skeleton as sn}from"@rango-dev/ui";import at from"react";import{css as wo,darkTheme as Jm,ImageContainer as IT,styled as tt,Typography as Rm}from"@rango-dev/ui";var aa=wo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),la=wo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),pa=wo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ca=wo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Jm} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ua=wo({}),ma=wo(),ed=tt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),da=tt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),qr=tt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${la}`]:{[`& .${ca}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ua}`]:{bottom:"-15px"},[`& .${aa}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${pa}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),fa=tt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ga=tt(Rm,{}),td=tt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ma}`]:{$$color:"$colors$neutral600",[`.${Jm} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zr=tt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),WF=tt("div",{display:"flex",alignItems:"center"}),od=tt("div",{position:"relative",[`& ${IT}`]:{borderRadius:"$xm",overflow:"hidden"}}),nd=tt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),rd=tt(Rm,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),id=tt("a",{"& svg:hover":{color:"$colors$info"}});function ad(t){return at.createElement(qr,null,Array.from(Array(t.size),e=>at.createElement(ET,{key:e,hasDivider:!0,start:at.createElement(sn,{variant:"circular",width:35,height:35}),end:at.createElement(zr,null,at.createElement(sn,{variant:"text",size:"large",width:70}),at.createElement(sd,{size:4}),at.createElement(sn,{variant:"text",size:"medium",width:50})),title:at.createElement("div",null,at.createElement(sn,{variant:"text",size:"large",width:90}),at.createElement(sd,{size:4}),at.createElement(sn,{variant:"text",size:"medium",width:90}))})))}i(ad,"LoadingTokenList");var ya=20,_T=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return G.createElement("div",{className:la()},o?G.createElement("div",{className:aa()},o):G.createElement(da,{className:pa()},G.createElement(Qr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(xo,{direction:"horizontal",size:4}),G.createElement(fa,{css:s},G.createElement(ga,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&G.createElement("div",{className:`${ca()} ${!o&&ua()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(xo,{size:4,direction:"horizontal"}),G.createElement(id,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(AT,{size:12}))))},"renderDesc");function md(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=ud(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=ud(!0),{getBalanceFor:d,loading:m}=Z(),{isTokenPinned:f}=h(),g=i(()=>{a(e.slice(0,s.length+ya))},"loadNextPage");cd(()=>{c(e.length>s.length)},[s.length]),cd(()=>{a(e.slice(0,ya))},[e.length]);let S=i(()=>!s.length&&o?G.createElement(G.Fragment,null,G.createElement(xo,{size:32}),G.createElement(MT,{title:ha.t("No results found"),description:ha.t("Try using different keywords")})):G.createElement(BT,{endReached:u?g:void 0,itemContent:C=>{let y=s[C],k=xn(d(y)),T=y.address||"",w=p.find(N=>N.name===y.blockchain),v=Jn(w?.color||"",_p(w?.color||"")?5:125),E=Jn(w?.color||"",-100),b={$$color:v,[`.${ld} &`]:{$$color:E},backgroundColor:"$$color"},x={$$color:E,[`.${ld} &`]:{$$color:v},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(WT,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(s[C]),start:G.createElement(od,null,G.createElement(NT,{src:y.image,size:30}),f(y,t.type)&&G.createElement(nd,null,G.createElement(LT,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!T?G.createElement(da,null,G.createElement(Qr,{variant:"title",size:"xmedium"},y.symbol),G.createElement(xo,{direction:"horizontal",size:4}),G.createElement(fa,{css:b},G.createElement(ga,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:w?.info&&T&&w.type!=="COSMOS"?_T({address:T,token:s[C],customCssForTag:b,customCssForTagTitle:x,name:y.name,url:w.info.addressUrl.split("{wallet}").join(T)}):y.name||void 0,end:m?G.createElement(zr,null,G.createElement(pd,{variant:"text",size:"large",width:70}),G.createElement(xo,{size:4}),G.createElement(pd,{variant:"text",size:"medium",width:50})):k&&G.createElement(td,null,G.createElement(rd,{variant:"title",size:"small"},k.amount),G.createElement("div",null),k.usdValue&&G.createElement(Qr,{variant:"body",className:ma(),size:"xsmall"},`$${k.usdValue}`))}))},totalCount:s.length,key:`${r}-${o}`}),"renderList");return G.createElement(ed,null,G.createElement(Qr,{variant:"label",size:"large"},ha.t("Select Token")),G.createElement(xo,{size:4}),l==="loading"&&G.createElement(ad,{size:ya}),l==="success"&&G.createElement(qr,{as:"ul"},S()))}i(md,"TokenList");function Sa(t){let{type:e}=t,o=$T(),n=Re(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=V(),c=Z.use.getBalanceFor(),[d,m]=PT(""),g=(e==="source"?r:s)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),k=i(w=>{e==="source"?a({token:w,meta:{blockchains:S,tokens:C}}):l({token:w,meta:{blockchains:S,tokens:C}})},"updateToken"),T={source:Hr.t("Source"),destination:Hr.t("Destination")};return oo.createElement(le,{header:{title:Hr.t("Swap {type}",{type:T[e]})}},oo.createElement(ce,null,oo.createElement(sa,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(U.blockchains),onChange:w=>{y(w)}}),oo.createElement(dd,{size:24}),oo.createElement(bt,{value:d,autoFocus:!0,placeholder:Hr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:w=>m(w.target.value)}),oo.createElement(dd,{size:16}),oo.createElement(md,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:w=>{k(w);let v=S.find(E=>w.blockchain===E.name);v&&y(v),n()}})))}i(Sa,"SelectSwapItemsPage");import{i18n as wa}from"@lingui/core";import{Alert as ak,Button as lk,styled as pk}from"@rango-dev/ui";import no from"react";import{useInRouterContext as ck,useSearchParams as uk}from"react-router-dom";import{i18n as Cd}from"@lingui/core";import{Divider as UT,InfoIcon as qT,TextField as zT,Tooltip as QT,Typography as Td}from"@rango-dev/ui";import lt from"react";import{Chip as DT,styled as an,TextField as FT}from"@rango-dev/ui";var fd=an("div",{paddingTop:"$5",padding:"$10 $5"}),gd=an("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${FT}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),hd=an("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Gr=an("div",{maxWidth:"280px",padding:"$10"}),yd=an(DT,{width:"61px",flexShrink:0});import{i18n as Ca}from"@lingui/core";import{Typography as OT}from"@rango-dev/ui";import ln from"react";function Sd(){return ln.createElement(Gr,null,ln.createElement(OT,{variant:"label",size:"medium",color:"neutral700"},Ca.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),ln.createElement("br",null),ln.createElement("br",null),ln.createElement("b",null,Ca.t("Warning")),":",Ca.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Sd,"SlippageTooltipContent");function Ta(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return lt.createElement(fd,null,lt.createElement(hd,null,lt.createElement(Td,{variant:"title",size:"xmedium"},Cd.t("Slippage tolerance per swap")),lt.createElement(UT,{direction:"horizontal",size:4}),lt.createElement(QT,{container:L(),side:"top",sideOffset:4,content:lt.createElement(Sd,null)},lt.createElement(qT,{color:"gray"}))),lt.createElement(gd,null,El.map((r,s)=>{let a=`slippage-${s}`;return lt.createElement(yd,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),lt.createElement(zT,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=r.target.value,a=parseFloat(s);a>=Ml&&a<=Wl?n(a):n(null)},suffix:o&<.createElement(Td,{variant:"body",size:"small"},"%"),placeholder:Cd.t("Custom")})))}i(Ta,"Slippage");import{i18n as yt}from"@lingui/core";import{AutoThemeIcon as kd,BridgesIcon as HT,ChevronRightIcon as ka,DarkModeIcon as wd,Divider as Vr,ExchangeIcon as GT,InfinityIcon as VT,InfoIcon as jT,LanguageIcon as XT,LightModeIcon as xd,List as KT,ListItem as YT,ListItemButton as ZT,Skeleton as JT,styled as RT,Switch as ek,Tabs as tk,Tooltip as ok,Typography as ot}from"@rango-dev/ui";import D from"react";import{useNavigate as nk}from"react-router-dom";var rk=RT("div",{width:"202px",height:"$40"}),ik=[{id:"light",icon:D.createElement(xd,{color:"black",size:24}),tooltip:D.createElement(ot,{size:"xsmall",variant:"body"},yt.t("Light"))},{id:"dark",icon:D.createElement(wd,{color:"black",size:24}),tooltip:D.createElement(ot,{size:"xsmall",variant:"body"},yt.t("Dark"))},{id:"auto",icon:D.createElement(kd,{color:"black",size:24}),tooltip:D.createElement(ot,{size:"xsmall",variant:"body"},yt.t("Auto"))}],sk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(kd,{...e});case"dark":return D.createElement(wd,{...e});default:return D.createElement(xd,{...e})}},"getThemeIcon");function vd(){let t=nk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:s}=qt(),a=s.find(I=>I.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),d=Ye("theme",c),m=Ye("liquiditySource",c),f=Ye("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=Nn(p,u),y=C.filter(I=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(I.type)),k=y.length,T=y.filter(I=>I.selected).length,w=C.filter(I=>I.type==="DEX"),v=w.length,E=w.filter(I=>I.selected).length,b=i((I,Q)=>{switch(l){case"loading":return D.createElement(JT,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(ot,{variant:"body",size:"medium",color:"$error500"},yt.t("Loading failed"));default:return D.createElement(ot,{variant:"body",size:"medium"},`${I} / ${Q}`)}},"handleSwapperEndItem"),x={id:"bridge-item",title:D.createElement(ot,{variant:"title",size:"xmedium"},yt.t("Bridges")),end:D.createElement(D.Fragment,null,b(T,k),D.createElement(Vr,{direction:"horizontal",size:8}),D.createElement(ka,{color:"black"})),onClick:()=>t(U.bridges),start:D.createElement(HT,{color:"gray",size:16})},N={id:"exchange-item",title:D.createElement(ot,{variant:"title",size:"xmedium"},yt.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,v),D.createElement(Vr,{direction:"horizontal",size:8}),D.createElement(ka,{color:"black"})),start:D.createElement(GT,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:D.createElement(ot,{variant:"title",size:"xmedium"},yt.t("Language")),start:D.createElement(XT,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(ot,{variant:"body",size:"medium"},a),D.createElement(Vr,{direction:"horizontal",size:8}),D.createElement(ka,{color:"black"})),onClick:()=>t(U.languages)},B={id:"infinite-approval-item",title:D.createElement(D.Fragment,null,D.createElement(ot,{variant:"title",size:"xmedium"},yt.t("Infinite approval")),D.createElement(Vr,{direction:"horizontal",size:4}),D.createElement(ok,{side:"top",sideOffset:4,container:L(),content:D.createElement(Gr,null,D.createElement(ot,{variant:"label",size:"medium",color:"neutral700"},yt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},D.createElement(jT,{color:"gray"}))),start:D.createElement(VT,{color:"gray",size:16}),end:D.createElement(ek,{checked:g}),onClick:S},z={id:"theme-item",type:D.createElement(YT,null),title:D.createElement(ot,{variant:"title",size:"xmedium"},yt.t("Theme")),end:D.createElement(rk,null,D.createElement(tk,{container:L(),items:ik,value:n,onChange:I=>o(I.id),type:"primary",borderRadius:"small"})),start:sk(n)},M=m?[]:[x,N];return f||M.push(W),M.push(B),!e?.singleTheme&&!d&&M.push(z),D.createElement(KT,{type:D.createElement(ZT,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(vd,"SettingsLists");var mk=pk("div",{paddingLeft:"$8"});function bd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=uk(),r=ck(),s=i(()=>{r&&o&&(n(a=>(a.delete("liquiditySources"),a),{replace:!0}),e("liquiditySources",void 0))},"onClick");return no.createElement(le,{header:{title:wa.t("Settings")}},no.createElement(ce,null,o&&no.createElement(ak,{type:"info",variant:"alarm",title:wa.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:no.createElement(mk,null,no.createElement(lk,{type:"secondary",size:"small",onClick:s},wa.t("Reset")))}),no.createElement(Ta,null),no.createElement(vd,null)))}i(bd,"SettingsPage");import{i18n as Jk}from"@lingui/core";import{cancelSwap as Rk}from"@rango-dev/queue-manager-rango-preset";import{useManager as ew}from"@rango-dev/queue-manager-react";import{Alert as tw}from"@rango-dev/ui";import Oa from"react";import{useParams as ow}from"react-router-dom";import{i18n as Mt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as _k,getCurrentStep as Pk,getRelatedWalletOrNull as $k}from"@rango-dev/queue-manager-rango-preset";import{Button as tf,CopyIcon as Dk,Divider as Fk,IconButton as Ok,LinkIcon as Uk,QuoteCost as qk,StepDetails as zk,Typography as ro,useCopyToClipboard as Qk}from"@rango-dev/ui";import{useWallets as Hk}from"@rango-dev/wallets-react";import of from"bignumber.js";import{PendingSwapNetworkStatus as ti}from"rango-types";import Y,{useEffect as nf,useRef as Gk,useState as rf}from"react";import{useNavigate as Vk}from"react-router-dom";import{i18n as zt}from"@lingui/core";var dk=[zt.t("Sunday"),zt.t("Monday"),zt.t("Tuesday"),zt.t("Wednesday"),zt.t("Thursday"),zt.t("Friday"),zt.t("Saturday")];function Id(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?zt.t("Today"):`${dk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Id,"timeSince");function Ed(t){return t.finishTime?Id(parseInt(t.finishTime)):Id(parseInt(t.creationTime))}i(Ed,"getSwapDate");import{PendingSwapNetworkStatus as Kr}from"rango-types";import Yr from"react";import{i18n as jr}from"@lingui/core";import{Button as Ad,Divider as xa,MessageBox as fk}from"@rango-dev/ui";import Qt from"react";var Nd=i(({onCancel:t,onClose:e})=>Qt.createElement(Qt.Fragment,null,Qt.createElement(xa,{size:20}),Qt.createElement(fk,{type:"error",title:jr.t("Cancel Swap"),description:jr.t("Are you sure you want to cancel this swap?")}),Qt.createElement(xa,{size:32}),Qt.createElement(Ad,{variant:"contained",type:"primary",size:"large",onClick:t},jr.t("Yes, Cancel it")),Qt.createElement(xa,{size:12}),Qt.createElement(Ad,{variant:"outlined",type:"primary",size:"large",onClick:e},jr.t("No, Continue"))),"CancelContent");import{i18n as Xr}from"@lingui/core";import{Button as Wd,Divider as va,MessageBox as gk,Typography as hk}from"@rango-dev/ui";import Nt from"react";var Md=i(({onDelete:t,onClose:e})=>Nt.createElement(Nt.Fragment,null,Nt.createElement(va,{size:20}),Nt.createElement(gk,{type:"error",title:Xr.t("Delete Transaction"),description:Xr.t("Are you sure you want to delete this swap?")}),Nt.createElement(va,{size:32}),Nt.createElement(Wd,{variant:"contained",type:"primary",size:"large",onClick:t},Xr.t("Yes, Delete it")),Nt.createElement(va,{size:12}),Nt.createElement(Wd,{variant:"outlined",type:"primary",size:"large",onClick:e},Nt.createElement(hk,{variant:"title",size:"medium",color:"primary"},Xr.t("No, Cancel")))),"DeleteContent");import{i18n as ba}from"@lingui/core";import{PendingSwapNetworkStatus as Ia}from"rango-types";var Ea={[Ia.WaitingForNetworkChange]:{type:"loading",title:ba.t("Change Network")},[Ia.WaitingForConnectingWallet]:{type:"warning",title:ba.t("Connect Wallet")},[Ia.NetworkChanged]:{type:"success",title:ba.t("Network Changed")}};import{debug as yk}from"@rango-dev/logging-core";import{MessageBox as Sk,Wallet as Ck}from"@rango-dev/ui";import{useWallets as Tk}from"@rango-dev/wallets-react";import pn from"react";import{styled as Ld}from"@rango-dev/ui";var Bd=Ld("div",{display:"flex",justifyContent:"center"}),SU=Ld("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var _d=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s,walletButtonDisabled:a}=t,{connect:l,getWalletInfo:p,state:u}=Tk(),c=n?.walletType,d=c?ui(u(c)):null,m=c?p(c):null;return pn.createElement(pn.Fragment,null,pn.createElement(Sk,{type:e,title:o,description:r}),s&&!!c&&!!d&&!!m&&pn.createElement(Bd,null,pn.createElement(Ck,{container:L(),title:m.name,image:m.img,type:c,state:d,link:m.installLink,disabled:a,onClick:async()=>l(c).catch(g=>yk(g))})))},"WalletStateContent");function Aa(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a,walletButtonDisabled:l}=t,p=e===Kr.WaitingForNetworkChange||e===Kr.WaitingForConnectingWallet||e===Kr.NetworkChanged;return Yr.createElement(ae,{open:!!e,onClose:o,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},p&&Yr.createElement(_d,{type:Ea[e].type,title:Ea[e].title,currentStepWallet:s,message:a,walletButtonDisabled:l,showWalletButton:e!==Kr.WaitingForNetworkChange}),e==="delete"&&Yr.createElement(Md,{onClose:o,onDelete:n}),e==="cancel"&&Yr.createElement(Nd,{onClose:o,onCancel:r}))}i(Aa,"SwapDetailsModal");import{i18n as cn}from"@lingui/core";import{Button as Na,Divider as Zr,MessageBox as Pd,TokenAmount as kk,Typography as Wa}from"@rango-dev/ui";import We from"react";import{useNavigate as wk}from"react-router-dom";function Ma(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,realUsdValue:a,realValue:l,token:p,chain:u,percentageChange:c,description:d,diagnosisUrl:m}=t,f=wk();return We.createElement(ae,{open:e,onClose:o,container:document.getElementById(ke.SWAP_BOX_ID)||document.body},n==="success"?We.createElement(Pd,{type:"success",title:cn.t("Swap Successful")},We.createElement(kk,{direction:"vertical",tooltipContainer:L(),type:"output",centerAlign:!0,price:{value:r,usdValue:s,realUsdValue:a,realValue:l},token:p,chain:u,percentageChange:c}),We.createElement(Zr,{size:12}),We.createElement(Wa,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):We.createElement(Pd,{type:"error",title:cn.t("Transaction Failed"),description:d}),We.createElement(Zr,{size:32}),n==="success"&&We.createElement(Na,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},We.createElement(Wa,{variant:"title",size:"medium",color:"neutral100"},cn.t("Done"))),We.createElement(Zr,{size:12}),m&&We.createElement(We.Fragment,null,We.createElement(Na,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},cn.t("Diagnosis")),We.createElement(Zr,{size:12})),We.createElement(Na,{variant:"outlined",type:"primary",size:"large",onClick:o},We.createElement(Wa,{variant:"title",size:"medium",color:"primary"},cn.t("See Details"))))}i(Ma,"SwapDetailsCompleteModal");import Bk from"react";import{i18n as Nk}from"@lingui/core";import{Alert as Zd,IconButton as Wk,LinkIcon as Mk}from"@rango-dev/ui";import Ht,{Fragment as Lk}from"react";import{Alert as bk,ChevronDownIcon as Ik,IconButton as Ek}from"@rango-dev/ui";import bo,{useState as Ak}from"react";import{css as un,darkTheme as xk,styled as Wt,Typography as vk}from"@rango-dev/ui";var $d=Wt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Jr=Wt("div",{width:"100%"}),Dd=Wt(Fo,{padding:"$0 $20 $20 $20"}),RU=Wt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Fd=Wt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),eq=Wt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),vo=un({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${xk} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Od=un({padding:"$5 0"}),Rr=un({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Ud=un({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),qd=un({width:"100%",padding:"0 $20 $10"}),zd=Wt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Qd=Wt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ei=Wt(vk,{wordBreak:"break-word"});import{styled as La}from"@rango-dev/ui";var Hd=La("div",{display:"flex",flexDirection:"column",gap:"$10"}),Gd=La("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Vd=La("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function jd(t){let{message:e}=t,[o,n]=Ak(!1);return bo.createElement(bk,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&bo.createElement(Ek,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},bo.createElement(Gd,{rotated:o},bo.createElement(Ik,{size:12,color:"gray"}))),footer:bo.createElement(Vd,{open:o},bo.createElement(ei,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(jd,"FailedAlert");import{i18n as Xd}from"@lingui/core";import{Alert as Ba,Button as Kd}from"@rango-dev/ui";import{PendingSwapNetworkStatus as _a}from"rango-types";import mn from"react";function Yd(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?mn.createElement(Ba,{type:"warning",title:n.shortMessage,action:mn.createElement(Kd,{size:"xxsmall",type:"warning",onClick:()=>{o(_a.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},Xd.t("Change"))}):r===_a.WaitingForConnectingWallet?mn.createElement(Ba,{type:"warning",title:n.shortMessage,action:mn.createElement(Kd,{size:"xxsmall",type:"warning",onClick:()=>{o(_a.WaitingForConnectingWallet)}},Xd.t("Connect"))}):mn.createElement(Ba,{type:"warning",title:n.shortMessage})}i(Yd,"WarningAlert");function Pa(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=Po(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,c=u&&!a||p&&!s.explorerUrl?.length;return Ht.createElement(Hd,null,s.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,y=S&&s.status==="failed";return Ht.createElement(Lk,{key:g},Ht.createElement(Zd,{type:S&&(C&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:Nk.t("View transaction"),action:d.url&&Ht.createElement(Wk,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Ht.createElement(Mk,{size:12}))}))}),c&&Ht.createElement(Zd,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&Ht.createElement(Yd,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&Ht.createElement(jd,{message:r}))}i(Pa,"SwapDetailsAlerts");var Jd=2e3;var Rd=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((s,a)=>{let l=a===0?t.inputAmount:t.steps[a-1].outputAmount||t.steps[a-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:s.fromSymbol,image:s.fromLogo??""},chain:{displayName:Ke(s.fromBlockchain,e)??"",image:s.fromBlockchainLogo??""},price:{value:A(l,6,6),realValue:l}},to:{token:{displayName:s.toSymbol,image:s.toLogo},chain:{displayName:Ke(s.toBlockchain,e)??"",image:s.toBlockchainLogo??""},price:{value:A(s.outputAmount||s.expectedOutputAmountHumanReadable,6,6),realValue:s.outputAmount||s.expectedOutputAmountHumanReadable}},swapper:{displayName:Mo(s.swapperId,o),image:s.swapperLogo??"",type:s.swapperType},internalSwaps:s.internalSwaps?s.internalSwaps.map(p=>({from:{chain:{displayName:Ke(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ke(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Mo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Bk.createElement(Pa,{step:s,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function ef(t){if(Po(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(ef,"getStepState");function $a(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Hk(),p=h().blockchains(),u=h().swappers(),c=h().tokens(),d=V.use.retry(),m=ne.use.isActiveTab(),f=Vk(),[g,S]=Qk(Jd),C=Gk(null),[y,k]=rf(null),[T,w]=rf(null),v=i(()=>{r(),k(null)},"onCancel"),E=Oe.use.getUnreadNotifications(),b=Oe.use.setAsRead(),x=E(),N=Pk(e),W=N?.networkStatus;nf(()=>{x.find(Fe=>Fe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),b(e.requestId)):T&&w(null))},[e.status,e.requestId]),nf(()=>{O?k(ti.WaitingForNetworkChange):W===ti.WaitingForConnectingWallet||W===ti.NetworkChanged?k(W):k(null)},[W]);let B=rp(e),z=N?_k(e,N):null,M=N?$k(e,N):null,I=Ed(e),Q=ip(e),J=i(Ae=>!!l(Ae)?.mobileWallet,"isMobileWallet"),O=W===ti.WaitingForNetworkChange&&!!z&&!!M?.walletType&&(J(M.walletType)||s(M.walletType,z)),oe=O?a.bind(null,M.walletType,z):void 0,me=np(e,N),j=Rd({swap:e,switchNetwork:oe,showNetworkModal:W,setNetworkModal:k,message:me,blockchains:p,swappers:u}),ee=j.length,[te,ge]=[e.steps[0],e.steps[ee-1]],P=ge.outputAmount||ge.expectedOutputAmountHumanReadable,je=e.steps.reduce((Ae,Fe)=>Ae+parseFloat(Fe.feeInUsd||""),0),H=e.steps.find(Ae=>Ae.diagnosisUrl)?.diagnosisUrl,X=A(parseFloat(A(P,6,6))*(ge.toUsdPrice||0),4,4),re=A(parseFloat(e.inputAmount)*(te.fromUsdPrice||0),4,4),Ie=P?pe(new of(P).multipliedBy(ge.toUsdPrice||0)):"",Qe=pe(new of(e.inputAmount).multipliedBy(te.fromUsdPrice||0)),Ee=Ze(re,X),Me=me.detailedMessage.content||me.shortMessage,Xe=e.status==="success"?Mt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:A(P,6,6),token:j[ee-1].to.token.displayName,conciseAddress:vn(e.wallets[j[ee-1].to.chain.displayName]?.address||""),chain:j[ee-1].to.chain.displayName}}):Y.createElement(Qd,null,Y.createElement(ro,{variant:"body",size:"medium",color:"neutral700",align:"center"},Me?"":Mt.t("Transaction was not sent."),B?`${Mt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Me&&Y.createElement(ei,{align:"center",variant:"body",size:"medium",color:"neutral700"},Y.createElement("b",null,"Reason:")," ",Me));return Y.createElement(le,{header:{title:Mt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(uo,null,Y.createElement(tf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},Y.createElement(ro,{size:"medium",variant:"label",color:"error"},Mt.t("Delete"))))},footer:Q&&!T&&Y.createElement(tf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},Mt.t("Try again"))},Y.createElement(ce,{compact:!0,view:!0},Y.createElement(Jr,null,Y.createElement("div",{className:vo()},Y.createElement(ro,{variant:"label",size:"large",color:"neutral700"},`${Mt.t("Request ID")}:`),Y.createElement("div",{className:Rr()},Y.createElement(ro,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(Ok,{variant:"ghost",onClick:S.bind(null,o||"")},Y.createElement(Dk,{size:16,color:"gray"})),Y.createElement(zd,{target:"_blank",href:`${Va}/swap/${o}`},Y.createElement(Uk,{size:16})))),Y.createElement("div",{className:vo()},Y.createElement(ro,{variant:"label",size:"large",color:"neutral700"},`${Mt.t(e.finishTime?"Finished at":"Created at")}:`),Y.createElement(ro,{variant:"label",size:"small",color:"neutral700"},I))),Y.createElement("div",{className:Ud()},Y.createElement(qk,{fee:A(String(je),2,2),time:Eo(yn(e.steps)),steps:ee}),Y.createElement(Go,{from:{price:{value:A(e.inputAmount,6,6),usdValue:re,realUsdValue:Qe,realValue:e.inputAmount},token:{displayName:j[0].from.token.displayName,image:j[0].from.token.image},chain:{image:j[0].from.chain.image,displayName:j[0].from.chain.displayName}},to:{price:{value:A(P,6,6),usdValue:X,realUsdValue:Ie,realValue:P},token:{displayName:j[ee-1].to.token.displayName,image:j[ee-1].to.token.image},chain:{image:j[ee-1].to.chain.image,displayName:j[ee-1].to.chain.displayName}},percentageChange:A(Ee,2,2),warningLevel:Tt(Ee??0)})),Y.createElement("div",{className:qd()},Y.createElement(ro,{variant:"title",size:"small"},Mt.t("Swaps steps"))),Y.createElement(Fk,{size:8}),Y.createElement(Dd,{ref:C},j.map((Ae,Fe)=>{let gn=Fe,Io=ef(e.steps[Fe]),vf=Io==="error"||Io==="in-progress"||Io==="warning"||Io==="completed"&&Fe===j.length-1;return Y.createElement(zk,{key:gn,step:Ae,type:"swap-progress",ref:C,state:Io,hasSeparator:Fe!==0,tabIndex:gn,isFocused:vf,tooltipContainer:L()})}))),Y.createElement(Aa,{state:y,onClose:()=>k(null),onCancel:v,onDelete:n,message:me.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),Y.createElement(Ma,{open:!!T,diagnosisUrl:H,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:A(P,6,6),usdValue:X,realUsdValue:Ie,realValue:pe(P),percentageChange:A(Ee,2,2),token:{displayName:j[ee-1].to.token.displayName,image:j[ee-1].to.token.image},chain:{image:j[ee-1].to.chain.image},description:Xe}))}i($a,"SwapDetails");import{i18n as ni}from"@lingui/core";import{Divider as lf,NotFound as Zk,Skeleton as fn,Typography as ri}from"@rango-dev/ui";import fe from"react";import{i18n as jk}from"@lingui/core";import{Divider as Xk,Skeleton as Kk,Typography as Yk}from"@rango-dev/ui";import ye from"react";import{css as pt,styled as Da}from"@rango-dev/ui";var sf=Da("div",{width:"100%",height:"100%",padding:"$10 $20"}),dn=Da("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),oi=Da("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),mz=pt({display:"flex",justifyContent:"space-between",alignItems:"center"}),dz=pt({display:"flex",justifyContent:"space-between",alignItems:"center"}),fz=pt({paddingTop:"$15",display:"flex"}),gz=pt({padding:"$15 $0"}),hz=pt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),yz=pt({paddingBottom:"$10"}),Sz=pt({display:"flex",justifyContent:"start",alignItems:"center"}),Cz=pt({paddingTop:"$5",display:"flex",alignItems:"center"}),Tz=pt({display:"flex",alignItems:"center"}),kz=pt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),af=pt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Fa(){return ye.createElement(sf,null,ye.createElement(Xo,{type:"swap-preview"}),ye.createElement("div",{className:"swaps-steps"},ye.createElement(Yk,{variant:"title",size:"small"},jk.t("Swaps steps"))),ye.createElement(ye.Fragment,null,ye.createElement(dn,null,ye.createElement(gt,{separator:!1}),ye.createElement("div",{className:af()},ye.createElement(Xk,{direction:"horizontal",size:20}),ye.createElement(Kk,{height:22,variant:"rectangular"}))),ye.createElement(oi,null),ye.createElement(dn,null,ye.createElement(gt,{separator:!1})),ye.createElement(oi,null),ye.createElement(dn,null,ye.createElement(gt,{separator:!1})),ye.createElement(oi,null),ye.createElement(dn,null,ye.createElement(gt,{separator:!1}))))}i(Fa,"LoadingSwapDetails");function pf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:ni.t("Swap and Bridge"),suffix:fe.createElement(uo,null)}},o&&fe.createElement($d,null,fe.createElement(Jr,null,fe.createElement("div",{className:vo()},fe.createElement(ri,{variant:"label",size:"large",color:"neutral700"},`${ni.t("Request ID")}:`),fe.createElement("div",{className:Rr()},fe.createElement(ri,{variant:"label",size:"small",color:"neutral700"},fe.createElement(fn,{width:60,height:10,variant:"rounded"})),fe.createElement(lf,{direction:"horizontal",size:4}),fe.createElement(fn,{width:16,height:16,variant:"rectangular"}),fe.createElement(lf,{direction:"horizontal",size:4}),fe.createElement(fn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:vo()},fe.createElement(ri,{className:Od(),variant:"label",size:"large",color:"neutral700"},fe.createElement(fn,{width:60,height:10,variant:"rounded"})),fe.createElement(ri,{variant:"label",size:"small",color:"neutral700"},fe.createElement(fn,{width:60,height:10,variant:"rounded"})))),fe.createElement(Fa,null)),!o&&fe.createElement(Fd,null,fe.createElement(Zk,{title:ni.t("Not found"),description:ni.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(pf,"SwapDetailsPlaceholder");function cf(){let{manager:t,state:e}=ew(),o=!e.loadedFromPersistor,n=mt(t),{requestId:r}=ow(),s=Re(),{fetchStatus:a}=h();if(!r)return Oa.createElement(tw,{containerStyles:{margin:"20px"},type:"error",title:Jk.t("The request ID is necessary to display the swap details.")});let l=o||a==="loading",p=r?n.find(({swap:m})=>m.requestId===r):void 0,u=i(()=>{if(p?.id){let m=t?.get(p.id);m&&Rk(m)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(m){console.log(m)}},"onDelete"),d=p?.swap;return!d||l?Oa.createElement(pf,{requestId:r,showSkeleton:l}):Oa.createElement($a,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(cf,"SwapDetailsPage");function uf(){return gp(),$i(),nw([{path:U.home,element:ze.createElement(Mm,null)},{path:U.routes,element:ze.createElement($m,null)},{path:U.fromSwap,children:[{index:!0,element:ze.createElement(Sa,{type:"source"})},{path:U.blockchains,element:ze.createElement(ta,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:ze.createElement(Sa,{type:"destination"})},{path:U.blockchains,element:ze.createElement(ta,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:ze.createElement(bd,null)},{path:U.languages,element:ze.createElement(Bm,null)},{path:U.exchanges,element:ze.createElement(Zs,{sourceType:"Exchanges"})},{path:U.bridges,element:ze.createElement(Zs,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:ze.createElement(cm,null)},{path:U.swapDetails,element:ze.createElement(cf,null)}]},{path:U.wallets,element:ze.createElement(xc,null)},{path:U.confirmSwap,element:ze.createElement(Ju,null)}])}i(uf,"AppRoutes");import{useQueueManager as uw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as mw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as dw}from"rango-sdk";import{useContext as fw,useEffect as gw,useState as Sf}from"react";import{globalCss as rw}from"@rango-dev/ui";var mf=i(()=>rw({"@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')"]})(),"globalFont");function df(){let{setWatermark:t}=ne();return{fetchApiConfig:i(async()=>{let o=await fetch(`${St("BASE_URL")}/meta/dapp/config?apiKey=${St("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(df,"useFetchApiConfig");import{useWallets as iw}from"@rango-dev/wallets-react";import{useEffect as sw,useRef as aw}from"react";function ff(){let{connect:t,state:e}=iw(),o=aw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);sw(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(ff,"useForceAutoConnect");import{isApprovalTX as lw,MainEvents as ii,RouteEventType as gf,StepEventType as hf,StepExecutionEventStatus as pw,useEvents as cw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yf}from"react";function Ua(){let t=h().tokens(),e=Z.use.connectedWallets(),o=Z.use.getWalletsDetails(),n=Oe.use.setNotification(),r=cw();yf(()=>{let s=i(a=>{let{event:l,step:p,route:u}=a;if(l.type===hf.TX_EXECUTION&&l.status===pw.TX_SENT&&!lw(p)||l.type===hf.SUCCEEDED){let d=e.find(f=>f.chain===p?.fromBlockchain),m=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);d&&o([d],t),m&&o([m],t)}n(l,u)},"handleStepEvent");return r.on(ii.StepEvent,s),()=>r.off(ii.StepEvent,s)},[r,e.length]),yf(()=>{let s=i(a=>{let{event:l,route:p}=a;(l.type===gf.FAILED||l.type===gf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(ii.RouteEvent,s),()=>r.off(ii.RouteEvent,s)},[r,e.length])}i(Ua,"useSubscribeToWidgetEvents");function qa(){mf(),ff(),Ua();let t=h().blockchains(),{canSwitchNetworkTo:e}=pr(),[o,n]=Sf(""),[r,s]=Sf(),a=fw(Mn),l=t.filter(dw),{fetchApiConfig:p}=df();uw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{s(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),gw(()=>(Vt.init(),Oe.persist.hasHydrated()||Oe.persist.rehydrate(),a.onConnectWallet(n),a.onDisconnectWallet(u=>{s(u),u===mw(o)?.[0]&&n("")}),p().catch(console.log),Vt.destroy),[])}i(qa,"useBootstrap");import{styled as hw}from"@rango-dev/ui";var Cf=hw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function si(){qa();let{config:t}=h(),{activeTheme:e}=Rn(t?.theme||{}),{activeLanguage:o}=qt();return za.createElement(yw,{language:o},za.createElement(Cf,{id:"swap-container",className:e()},za.createElement(uf,null)))}i(si,"Main");import Ha,{useMemo as Pw}from"react";import{checkWaitingForNetworkChange as Sw,makeQueueDefinition as Cw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Tw}from"@rango-dev/queue-manager-react";import{useWallets as kw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ww}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xw}from"rango-types";import vw,{useMemo as bw}from"react";function Iw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=kw(),l=bw(()=>Cw({API_KEY:t.apiKey||St("API_KEY"),BASE_URL:St("BASE_URL")}),[t.apiKey]),p=h().blockchains(),c={blockchains:Z.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},d=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),m=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),g=p.filter(xw),S=i(T=>{let{supportedChains:w}=a(T);return Tn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:ww(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:m},k=ne.use.isActiveTab();return vw.createElement(Tw,{queuesDefs:[l],context:y,onPersistedDataLoaded:T=>{Sw(T)},isPaused:!k},t.children)}i(Iw,"QueueManager");var Tf=Iw;import{useManager as Mw}from"@rango-dev/queue-manager-react";import Lw,{createContext as Bw,useContext as _w}from"react";import{cancelSwap as Ew,getCurrentBlockchainOfOrNull as Aw,getCurrentStep as Nw,getRelatedWalletOrNull as Ww}from"@rango-dev/queue-manager-rango-preset";var ai=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return mt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&Ew(o)}getCurrentStepInfo(e){let o=Nw(e);return{step:o,wallet:o?Ww(e,o):null,network:o?Aw(e,o):null}}};var kf=Bw(void 0);function Qa(t){let{manager:e}=Mw(),o=ne.use.isActiveTab(),n=V.use.retry(),r=new ai(e,{retrySwap:n}),s=Z.use.connectedWallets(),a=Z.use.loading(),l=tl(s),p=Z.use.getWalletsDetails(),u=h().blockchains(),c=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=qt().resetLanguage,g=Oe().getUnreadNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Vt.forceClaim,history:r,wallets:{isLoading:a,details:s,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:d,loadingStatus:m},resetLanguage:f,notifications:{list:g}};return Lw.createElement(kf.Provider,{value:S},t.children)}i(Qa,"WidgetInfo");function wf(){let t=_w(kf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(wf,"useWidget");function li(t){let{onUpdateState:e,config:o}=t;return Pw(()=>{al({API_KEY:o?.apiKey||hn,BASE_URL:o?.apiUrl||Ga})},[o.apiKey,o.apiUrl]),Ha.createElement(Ln,{config:o,onUpdateState:e},Ha.createElement(Tf,{apiKey:o.apiKey},Ha.createElement(Qa,null,t.children)))}i(li,"WidgetProvider");function xf(t){let e=t.config?.externalWallets;return pi.createElement(Ul,null,e?pi.createElement(si,null):pi.createElement(li,{config:t.config??hi},pi.createElement(si,null)))}i(xf,"Widget");export{fG as EventSeverity,gG as MainEvents,bG as Networks,AG as PendingSwapNetworkStatus,hG as RouteEventType,yG as StepEventType,SG as StepExecutionBlockedEventStatus,CG as StepExecutionEventStatus,ke as UI_ID,xG as WalletEvents,IG as WalletTypes,xf as Widget,li as WidgetProvider,Ln as WidgetWallets,Hi as customizedThemeTokens,wG as readAccountAddress,pr as useWallets,wf as useWidget,TG as useWidgetEvents};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|