@rango-dev/widget-embedded 0.28.3-next.4 → 0.28.3-next.5

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/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Xf=Object.defineProperty;var i=(t,e)=>Xf(t,"name",{value:e,configurable:!0});import{EventSeverity as OV,MainEvents as UV,RouteEventType as zV,StepEventType as qV,StepExecutionBlockedEventStatus as QV,StepExecutionEventStatus as HV,useEvents as GV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as XV,useWallets as Sr,Events as jV}from"@rango-dev/wallets-react";import{Networks as YV,WalletTypes as ZV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as RV}from"rango-types";import{UI_ID as jf}from"@rango-dev/ui";var Tn="c6381a79-2817-4602-83bf-6a641a409e32",rl="https://api.rango.exchange",il="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...jf};var al="Roboto",Si=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as _i,Provider as Ug}from"@rango-dev/wallets-react";import{isEvmBlockchain as zg}from"rango-sdk";import Pn,{createContext as qg,useEffect as ep,useMemo as Qg,useRef as tp}from"react";import{useEffect as dg}from"react";import{create as cg}from"zustand";import{subscribeWithSelector as ug}from"zustand/middleware";import{RangoClient as lg}from"rango-sdk";import{BlockchainCategories as eg,WalletState as ft}from"@rango-dev/ui";import{readAccountAddress as tg}from"@rango-dev/wallets-react";import{detectInstallLink as og,getCosmosExperimentalChainInfo as ng,isEvmAddress as rg,KEPLR_COMPATIBLE_WALLETS as Hv,Networks as Sl}from"@rango-dev/wallets-shared";import vi from"bignumber.js";import{isCosmosBlockchain as ig}from"rango-types";import Kf from"bignumber.js";var Pe=new Kf(0);import{WalletTypes as Yf}from"@rango-dev/wallets-shared";var sl=[Yf.LEAP];import{BlockchainCategories as Ci}from"@rango-dev/ui";import{TransactionType as kn}from"rango-sdk";function po(t){return Array.from(new Set(t))}i(po,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function dl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(dl,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function cl(t,e){return t.toLowerCase()===e.toLowerCase()}i(cl,"exactText");function ul(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ul,"startWithText");var B=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Po=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function ml(t,e,o){let n=!!e&&cl(e,t),r=!!o&&cl(o,t);return n!==r?n?-1:1:0}i(ml,"compareExactMatchText");function Ti(t,e,o){let n=!!e&&Tt(e,t),r=!!o&&Tt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ti,"compareContainsText");function ki(t,e,o){let n=!!e&&ul(e,t),r=!!o&&ul(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareStartWithText");function fl(t,e,o){if(!o)return 0;let n=ml(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=ml(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ki(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ti(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ki(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ti(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ki(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ti(o,t.address,e.address);if(r!==0)return r}return 0}i(fl,"compareWithSearchFor");var wn=i((t,e)=>{switch(e){case Ci.ALL:return!0;case Ci.UTXO:return t===kn.TRANSFER;case Ci.OTHER:return t!==kn.TRANSFER&&t!==kn.COSMOS&&t!==kn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),gl=i(t=>Si.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as yl}from"bignumber.js";var $o=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 yl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new yl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var vn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var dt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Do=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function xi(t){switch(!0){case t.connected:return ft.CONNECTED;case t.connecting:return ft.CONNECTING;case!t.installed:return ft.NOT_INSTALLED;default:return ft.DISCONNECTED}}i(xi,"mapStatusToWalletState");function Cl(t,e,o,n){return o.filter(r=>!sl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:d}=e(r),m=po(d.map(g=>g.type)),f=xi(t(r));return{title:a,image:s,link:og(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(Cl,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function Tl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(d=>d.chain===p)){let d={address:u,chain:p,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=tg(p),d=l.length>0,m=l.includes(c),f=c===Sl.Unknown;if(d&&!m&&!f)return;let S=c===Sl.Unknown&&rg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Tl,"prepareAccountsForWalletStore");function jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let d=u.from.blockchain,m=u.to.blockchain,f=a===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(jt,"getQuoteWallets");function En(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(En,"isAccountAndWalletMatched");function kl(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 vi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:sg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(kl,"makeBalanceFor");function wl(t){return{...t,loading:!1,error:!0}}i(wl,"resetConnectedWalletState");var vl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new vi(a?.amount||Pe).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Pe)||Pe).toString();return ag(r)},"calculateWalletUsdValue");function ag(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ag,"numberWithThousandSeparator");var sg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),An=i((t,e)=>{let o=ng(Object.entries(t).map(([,n])=>n).filter(ig));return o&&o[e]?.experimental},"isExperimentalChain");function Nn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Nn,"formatBalance");function xl(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(xl,"compareTokenBalance");function $e(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i($e,"areTokensEqual");function bl(t){return t.sort((e,o)=>+(o.state===ft.CONNECTED)-+(e.state===ft.CONNECTED)||+(o.state===ft.DISCONNECTED||o.state===ft.CONNECTING)-+(e.state===ft.DISCONNECTED||e.state===ft.CONNECTING))}i(bl,"sortWalletsBasedOnConnectionState");function Wn(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(Wn,"getConciseAddress");function Il({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Il,"getAddress");function bi(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(bi,"createTokenHash");function Ln(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new vi(o?.usdPrice??Pe).multipliedBy(o?.amount).toString():""},r=o?bi({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Ln,"makeTokensBalance");var El=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Al(t){return t.map(e=>e.state).join("-")}i(Al,"hashWalletsState");function Nl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Nl,"filterBlockchainsByWalletTypes");function Wl(t,e){return e===eg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Wl,"filterWalletsByCategory");var Ii={API_KEY:Tn};function kt(t){return Ii[t]||""}i(kt,"getConfig");function Ll(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ii=e,Ii}i(Ll,"initConfig");var Ml=20,Bl=25,Ei="theme-widget",Fo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>$e(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>$e(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ai=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),_l=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Mn,_t=i(()=>Mn||(Mn=new lg(kt("API_KEY"),kt("BASE_URL")),Mn),"httpService");var pg=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"),Pt=pg;var R=Pt(cg()(ug((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.find(p=>p.chain===s.chain&&p.selected);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.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),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Ln(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>En(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(m=>{let f=o.find(S=>En(S,m)),g=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...m,explorerUrl:g.explorerUrl,balances:kl(g,n),loading:!1}:m});return{loading:!1,balances:Ln(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(d=>En(d,c))?wl(c):c);return{loading:!1,balances:Ln(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=bi(o);return n[r]??null}}))));import{allProviders as mg}from"@rango-dev/provider-all";function Bn(t,e){let o=mg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Bn,"matchAndGenerateProviders");function Pl(t,e){return Bn(t,e).map(r=>r.config.type)}i(Pl,"configWalletsToWalletName");function $l(t,e){let o=R.use.clearConnectedWallet(),n=Bn(t,e);return dg(()=>{o(),n=Bn(t,e)},[t?.length]),{providers:n}}i($l,"useWalletProviders");import Bg,{createContext as _g,useContext as Pg,useEffect as $g,useRef as Dg}from"react";import{create as Lg}from"zustand";import{persist as Mg}from"zustand/middleware";var Ni={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},fg={clientUrl:void 0},gg={liquiditySources:void 0},Dl=i((t,e,o)=>({config:{...Ni,...t},iframe:fg,campaignMode:gg,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 a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Fl(t,e){return e.find(o=>o.name===t)?.displayName}i(Fl,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>$e(o,t))??null}i(Wi,"findToken");function Li(t,e){return e.find(o=>o.name===t)??null}i(Li,"findBlockchain");function Mi(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(Mi,"isTokenNative");function _n(t,e){let o=t.map(a=>a.swapperGroup),n=[];return po(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(_n,"getUniqueSwappersGroups");function Ol(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ol,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Ul(t,e){return e?.[t]==="enabled"}i(Ul,"isFeatureEnabled");var zl=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 a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let a=e().config,s=(o.type==="source"?a.from?.tokens:a.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>s&&Fo(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(Tt(u.symbol,o.searchFor)||Tt(u.address||"",o.searchFor)||Tt(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 h=o.getBalanceFor(u),T=o.getBalanceFor(c),k=xl(h,T);if(k!==0)return k}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=Mi(u,f),C=Mi(c,g);if(S!==C)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let h=fl(u,c,o.searchFor);if(h)return h}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(s=>$e(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Ol)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=[],s=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),a.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:a,_popularTokens:s,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as hg,English as yg,Finland as Sg,French as Cg,German as Tg,Greece as kg,Italian as wg,Japanese as vg,Netherlands as xg,Poland as bg,Portuguese as Ig,Russian as Eg,Spanish as Ag,Swedish as Ng,Ukrainian as Wg}from"@rango-dev/ui";var ql=[{title:"English",label:"English",local:"en",SVGFlag:yg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ag},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Cg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:vg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ig},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:hg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Eg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Tg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Wg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ng},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Sg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:xg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:kg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:bg}],Uo="en";var Ql=[.5,1,3],Hl=1,Gl=5,Vl=100,Xl=0;var jl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Hl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},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 a=po(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),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,a=Ze("theme",n),s=Ze("language",n),l=Ze("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Uo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Kl(t){return Lg()(Mg((...e)=>({...zl(...e),...jl(...e),...Dl(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(Kl,"createAppStore");var Yl=_g(null);function y(){let t=Pg(Yl);if($g(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function Zl(t){let e=Dg();return e.current||(e.current=Kl(t.config)),Bg.createElement(Yl.Provider,{value:e.current},t.children)}i(Zl,"AppStoreProvider");import{create as Og}from"zustand";var Jl="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Jl),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=Pt(Og()((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})}}))),Kt=new zo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var $n=qg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Hg(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=$l(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=tp(),m=tp();ep(()=>{n().catch(console.log)},[]),ep(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(zg).map(h=>h.name),g=i((h,T,k,v,E)=>{if(T===_i.ACCOUNTS)if(k){let b=In(E.supportedBlockchains),x=Tl(h,k,f,b,E.isContractWallet);x.length&&u(x,a)}else c(h),m.current?m.current(h):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===_i.ACCOUNTS&&v.connected){let b=`${h}-${v.network}-${k}`;v.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===_i.NETWORK&&v.network){let b=`${h}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,T,k,v,E)},"onUpdateState"),S=ne.use.isActiveTab(),C=Qg(()=>({onConnectWallet:h=>{d.current=h},onDisconnectWallet:h=>{m.current=h}}),[]);return Pn.createElement($n.Provider,{value:C},Pn.createElement(Ug,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Hg,"Main");function Dn(t){let{config:e,...o}=t;return Pn.createElement(Zl,{config:e},Pn.createElement(Hg,{...o,config:e}))}i(Dn,"WidgetWallets");import yi from"react";import Gg,{Fragment as Vg}from"react";import{MemoryRouter as Xg,useInRouterContext as jg}from"react-router";function op({children:t}){let o=jg()?Vg:Xg;return Gg.createElement(o,null,t)}i(op,"AppRouter");import{I18nManager as Jw}from"@rango-dev/ui";import tl from"react";import He from"react";import{useRoutes as $w}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 mo,useRef as Xn}from"react";import vt from"bignumber.js";import{create as Jg}from"zustand";import{subscribeWithSelector as Rg}from"zustand/middleware";import{getLastSuccessfulStep as Zg}from"@rango-dev/queue-manager-rango-preset";import hI from"bignumber.js";import{i18n as qo}from"@lingui/core";var Pi={"Network Fee":qo.t("Network Fee"),"Swapper Fee":qo.t("Protocol Fee"),"Affiliate Fee":qo.t("Affiliate Fee"),"Outbound network fee":qo.t("Outbound Fee"),"Rango Fee":qo.t("Rango Fee")},$i=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],np=30;import{i18n as it}from"@lingui/core";import{RouteEventType as eI}from"@rango-dev/queue-manager-rango-preset";import De from"bignumber.js";import{PendingSwapNetworkStatus as Un}from"rango-types";function Fn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Fn,"isValidAddress");import{i18n as Me}from"@lingui/core";var ee=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.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:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function rp(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(rp,"getQuoteErrorMessage");import{i18n as On}from"@lingui/core";var Yt=i(()=>({connectWallet:On.t("Connect Wallet"),swap:On.t("Swap"),swapAnyway:On.t("Swap anyway"),ethWarning:On.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ip(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new De(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new De(1e3)))??!1}i(ip,"hasHighValueLoss");function ap(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new De(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new De(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(ap,"hasLimitError");function sp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new De(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new De(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 De(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new De(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(sp,"getLimitErrorMessage");function lp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Yt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Yt().swap,action:"confirm-swap",disabled:!0}:s?{title:Yt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Yt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Yt().swap,action:"confirm-swap",disabled:!1}:{title:Yt().connectWallet,action:"connect-wallet",disabled:!1}}i(lp,"getSwapButtonState");function Di(t,e,o){return!((!o||o.lte(Pe))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Di,"canComputePriceImpact");var Kg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function Fi(t,e){let o=Pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=Kg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new De(r.amount).multipliedBy(a||0))}return o}i(Fi,"getUsdFeeOfStep");function zn(t,e){return t.reduce((o,n)=>o.plus(Fi(n,e)),Pe)}i(zn,"getTotalFeeInUsd");function Oi(t){let e=Pe;return e=e.plus(new De(t.amount).multipliedBy(t.price||0)),e}i(Oi,"getUsdFee");function pp(t){return t.reduce((e,o)=>e.plus(Oi(o)),Pe)}i(pp,"getTotalFeesInUsd");function cp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(cp,"getFeesGroup");function up(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(up,"checkSlippageErrors");function mp(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(mp,"checkSlippageWarnings");function qn(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(qn,"getMinRequiredSlippage");function dp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(dp,"hasProperSlippage");function fp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:d,affiliateWallets:m,destination:f,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.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:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(fp,"createQuoteRequestBody");function gp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(gp,"getWalletsForNewSwap");function co(t){return t?.outputAmount||null}i(co,"getQuoteOutputAmount");function hp(t,e){return new De(e).div(new De(t)).minus(1).multipliedBy(100).toNumber()}i(hp,"getPercentageChange");function yp(t,e){let o=co(t),n=co(e);if(!o||!n)return!1;let r=Je(o,n);return r?r<=-1:!0}i(yp,"isOutputAmountChangedALot");function Sp(t,e,o){let n=t.validationStatus,r=jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>xp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new De(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new De(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.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:Ye(s.asset.blockchain,o)}})})}i(Sp,"generateBalanceWarnings");function Qn(t,e){return(t?new De(t):Pe).multipliedBy(e||0)}i(Qn,"calcOutputUsdValue");function Qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Un.NetworkChanged}i(Qo,"isNetworkStatusInWarningState");function Cp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Un.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Un.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Un.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Cp,"getSwapMessages");function Tp(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(Tp,"getLastConvertedTokenInFailedSwap");function kp(t){return t.status==="failed"}i(kp,"shouldRetrySwap");function wp(t,e,o,n,r,a){if(!n||t)return!0;let s=jt({filter:"all",quote:n}),l=jt({filter:"required",quote:n}),p=s.every(d=>r.some(m=>m.chain===d)),u=l.every(d=>r.some(m=>m.chain===d)),c=o&&a?Fn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(wp,"isConfirmSwapDisabled");function vp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(vp,"isTokensIdentical");function Gn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Gn,"getQuoteToTokenUsdPrice");function Ui(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ui,"isNumberOfSwapsChanged");function zi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!wi(o,n)}i(zi,"isQuoteSwappersUpdated");function qi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!wi(o,n)}i(qi,"isQuoteInternalCoinsUpdated");function Ip(t,e){return Ui(t,e)||zi(t,e)||qi(t,e)}i(Ip,"isQuoteChanged");function xp(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(xp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function Ep(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Zg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Li(a?a.toBlockchain:n.fromBlockchain,e),p=Li(r.toBlockchain,e),u=Wi(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Wi(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(Ep,"createRetryQuote");function uo(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Zt(o,t.requestAmount),l=Zt(n,t?.outputAmount??"");if(t&&s&&l){let c=Je(s.toString(),l.toString());if(!!c&&ip(s,c)){let m=zn(t?.swaps,r),f=wt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=qn(t.swaps),u=a>Gl;if(dp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:mp(t,a),minRequiredSlippage:p};return null}i(uo,"generateQuoteWarnings");function Je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:hp(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var Ap=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"),Vn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Np=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Wp=i(t=>{let e=i((o,n)=>{let r=$i.indexOf(o.value),a=$i.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Zt=i((t,e)=>t?.usdPrice?new vt(e||Pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Pt(Jg()(Rg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new vt(0),outputUsdValue:new vt(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=Pe;return Do(o.inputAmount)?(e&&(n=e?.outputAmount?new vt(e?.outputAmount):null,r=Qn(e?.outputAmount,Gn(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 vt(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:Zt(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 vt(0),outputUsdValue:new vt(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Zt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Ep(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Zt(s??null,u),outputUsdValue:new vt(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?Zt(e.toToken,e.outputAmount?.toString()||""):new vt(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 Lp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=y().config,d=y().fetchStatus,m=y().blockchains(),f=y().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:C}=y(),h=c?.from?.tokens,T=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Xn(void 0),b=Xn(void 0),x=Xn(void 0),w=Xn(void 0);mo(()=>{t(c?.amount?.toString()||"")},[c?.amount]),mo(()=>{if(d==="success"){r();let I=m.find(M=>M.name===c?.from?.blockchain),W=f.find(M=>$e(M,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),W?a({token:W,meta:{blockchains:m,tokens:f}}):!W&&E.current&&a({token:null}),x.current=c?.from?.blockchain,E.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),mo(()=>{Fo(s,h)&&a({token:null}),Ai(p,T)&&n(null)},[h,T]),mo(()=>{Fo(l,k)&&a({token:null}),Ai(u,v)&&o(null)},[k,v]),mo(()=>{if(d==="success"){r();let I=m.find(M=>M.name===c?.to?.blockchain),W=f.find(M=>$e(M,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),W?e({token:W,meta:{blockchains:m,tokens:f}}):!W&&b.current&&e({token:null}),w.current=c?.to?.blockchain,b.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,d]),mo(()=>{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(Lp,"useSyncStoresWithConfig");import{useEffect as Gi,useRef as eh}from"react";import{useInRouterContext as th,useLocation as oh,useSearchParams as nh}from"react-router-dom";function Qi(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(Qi,"searchParamToToken");function Hi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Hi,"tokenToSearchParam");function Vi(){let t=oh(),[e,o]=nh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=y().fetchStatus,g=y().blockchains(),S=y().tokens(),C=th(),{updateIframe:h,updateCampaignMode:T}=y(),k=y().isInCampaignMode(),v=eh(),E=i(()=>{let x={};for(let[re,H]of e.entries())re.startsWith("utm_")&&(x[re]=H);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),W=e.get("fromToken"),M=e.get("toBlockchain"),Q=e.get("toToken"),L=e.get("autoConnect"),V=e.get("clientUrl"),Y=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:W,toBlockchain:M,toToken:Q,autoConnect:L,clientUrl:V,liquiditySources:Y,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Gi(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();C&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Hi(a),toBlockchain:r?.name,toToken:Hi(s),fromAmount:l,autoConnect:x??void 0,clientUrl:w??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Gi(()=>{if(!C)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&m(x.fromAmount),f==="success"){let w=g.find(Q=>Q.name===x.fromBlockchain),I=Qi(S,x.fromToken,w??null),W=g.find(Q=>Q.name===x.toBlockchain),M=Qi(S,x.toToken,W??null);w&&(p(w),I&&c({token:I,meta:{blockchains:g,tokens:S}})),W&&(u(W),M&&d({token:M,meta:{blockchains:g,tokens:S}}))}},[f]),Gi(()=>{let{clientUrl:x,liquiditySources:w}=E();h("clientUrl",x||void 0),T("liquiditySources",w?.split(",")??void 0)},[])}i(Vi,"useSyncUrlAndStore");import{i18n as Va}from"@lingui/core";import{useManager as hC}from"@rango-dev/queue-manager-react";import{Alert as gm,Button as yC,css as ja,Divider as Xa,IconButton as hm,styled as SC,Typography as CC,WalletIcon as TC}from"@rango-dev/ui";import we,{useEffect as Ur,useLayoutEffect as kC,useRef as wC,useState as on}from"react";import{useNavigate as vC}from"react-router-dom";import{i18n as ht}from"@lingui/core";import{Alert as ba,BalanceErrors as rS,Button as Kc,ChevronDownIcon as iS,ChevronLeftIcon as aS,Divider as vo,MessageBox as sS,Typography as Cr,WalletIcon as lS}from"@rango-dev/ui";import O,{useEffect as pS,useState as xo}from"react";import{useNavigate as cS}from"react-router-dom";import{i18n as jn}from"@lingui/core";function Kn(t){switch(t.type){case 0:return jn.t("Route has been updated.");case 3:return jn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return jn.t("Route swappers has been updated.");case 2:return jn.t("Route internal coins has been updated.");default:return""}}i(Kn,"getQuoteUpdateWarningMessage");import{Modal as ih}from"@rango-dev/ui";import ah from"react";function oe(t){let{watermark:e}=ne();return ah.createElement(ih,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Rn,{useRef as ph}from"react";import*as fo from"@radix-ui/react-collapsible";import{keyframes as Bp,styled as Yn}from"@rango-dev/ui";var Xi=300,sh=Bp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),lh=Bp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_p=Yn(fo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ji=Yn(fo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Zn=Yn(fo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${sh} ${Xi}ms ease-out`},false:{animation:`${lh} ${Xi}ms ease-out`}}}}),Jn=Yn("div",{transition:`all ${Xi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function er(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ph(null);return Rn.createElement(_p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Rn.createElement(ji,{className:"collapsible_trigger",onClick:a},s),Rn.createElement(Zn,{className:"collapsible_content",open:e},r),l==="bottom"&&Rn.createElement(ji,{className:"collapsible_trigger",onClick:a},s))}i(er,"CustomCollapsible");import{css as Pp,darkTheme as go,IconButton as ch,styled as Re,TextField as uh}from"@rango-dev/ui";var $p=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Dp=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),mh=Re("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${go} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Fp=Re(mh,{alignSelf:"stretch",minHeight:"93px"}),Op=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Up=Re(ch,{position:"absolute",left:"$20"}),zp=Re("div",{paddingTop:"$20"}),qp=Pp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Qp=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Hp=Pp({paddingTop:"$5"}),Gp=Re("div",{display:"flex"}),Vp=Re(uh,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Xp=Re("div",{overflow:"visible",width:"100%"}),jp=Re("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${go} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$secondary100",[`.${go} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as eS,Divider as va,Image as tS,MessageBox as yr,SelectableWallet as oS,Typography as Vc,WalletState as Xc}from"@rango-dev/ui";import ce,{useEffect as jc,useState as wo}from"react";import{WalletState as tr}from"@rango-dev/ui";import{useWallets as dh}from"@rango-dev/wallets-react";import{detectMobileScreens as fh,KEPLR_COMPATIBLE_WALLETS as gh,WalletTypes as ho}from"@rango-dev/wallets-shared";import{useCallback as hh,useEffect as yh,useState as Sh}from"react";var Ch=Object.values(ho);function yo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=dh(),{connectedWallets:u}=R(),c=y().blockchains(),d=Pl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ch,m=Cl(a,l,d,e);m=fh()?m.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):m;let f=bl(m),[g,S]=Sh(""),C=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),h=i(async(b,x)=>{let w=a(b);try{if(g&&S(""),w.connected)await s(b);else{let I=!!m.find(W=>W.state===tr.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),T=hh(()=>{let b=m?.filter(x=>x.state===tr.CONNECTING)||[];for(let x of b)s(x.type)},[Al(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");yh(()=>()=>{T()},[]);let v=i(b=>{let x=b.find(I=>I.type===ho.DEFAULT);return!x||x.state===tr.NOT_INSTALLED?!1:b.filter(I=>I.state!=tr.NOT_INSTALLED&&![ho.DEFAULT,ho.WALLET_CONNECT_2,ho.LEDGER].includes(I.type)&&l(I.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>An(w,x)&&C(b)&&!gh.includes(b)||b==ho.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:h,disconnectConnectingWallets:T,disconnectWallet:k}}i(yo,"useWalletList");import{i18n as Oc}from"@lingui/core";import{Divider as Gy,getCategoriesCount as Vy,SelectableCategoryList as Xy,styled as zc,Typography as jy,Wallet as Ky,WalletState as Uc}from"@rango-dev/ui";import at,{useState as gr}from"react";import{useManager as vy}from"@rango-dev/queue-manager-react";import{BottomLogo as xy,Divider as Mc,Header as by}from"@rango-dev/ui";import Se,{useEffect as ya,useRef as Bc,useState as Iy}from"react";import{useRef as Th}from"react";function or(){return window.self!==window.top}i(or,"isAppLoadedIntoIframe");function Ki(){let t=Th(null),{iframe:e}=y(),o=or()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ki,"useIframe");import{useNavigate as kh}from"react-router-dom";function et(){let t=kh();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as ta,darkTheme as Eh,lightTheme as Ah}from"@rango-dev/ui";import{useEffect as Nh,useState as Wh}from"react";import{theme as bh,darkColors as Ih}from"@rango-dev/ui";import Ri from"react";function wh(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}`]:nr(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(wh,"generateShades");function nr(t,e){let[o,n,r]=Kp(t);return`#${Yi(o+e)}${Yi(n+e)}${Yi(r+e)}`}i(nr,"generateShade");function Kp(t){let r=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return[r,a,s]}i(Kp,"convertToRGB");function Yi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Yi,"clamp");function Yp(t){let[s,l,p]=Kp(t);return(s*299+l*587+p*114)/1e3>188}i(Yp,"isBright");var Zi=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let a in o){let s=o[a];s&&s!==t[a]&&(n=!0,a==="background"||a==="foreground"?r={...r,[a]:s}:r={...r,...wh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Zp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),vh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Zp(o%52)+e;return Zp(o%52)+e},"toAlphabeticName"),xh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ji=i(t=>vh(xh(5381,JSON.stringify(t))>>>0),"toHash");function ea(t){let e=bh.colors,o=Zi({...e,...Ih},!0,t?.dark),n=Zi(e,!1,t?.light),r=Object.keys(o).length>0,a=Object.keys(n).length>0,s,l;if(a){let p={colors:n};s={id:`${Ei}-light-${Ji(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ei}-dark-${Ji(p)}`,tokens:p}}return{light:s,dark:l}}i(ea,"customizedThemeTokens");function Jp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ri.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ri.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ri.cloneElement(e,{key:l}))}}),o}i(Jp,"joinList");function rr(t){let{colors:e,fontFamily:o=al,borderRadius:n=Ml,secondaryBorderRadius:r=Bl}=t,[a,s]=Wh("light"),{theme:l}=y(),{dark:p,light:u}=ea(e),c=ta({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,Ah.className],m=[c.className,Eh.className];if(u){let g=ta(u.id,u.tokens);d.push(g.className)}if(p){let g=ta(p.id,p.tokens);m.push(g.className)}return Nh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("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"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(rr,"useTheme");var tt=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 Rp}from"@lingui/core";import{Alert as Lh,Button as Mh}from"@rango-dev/ui";import ec from"react";function oa(t){return ec.createElement(Lh,{action:ec.createElement(Mh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rp.t("Activate this tab")),type:"warning",variant:"alarm",title:Rp.t("Another tab is open and handles transactions.")})}i(oa,"ActivateTabAlert");import{i18n as na}from"@lingui/core";import{Button as Bh,Divider as _h,MessageBox as Ph}from"@rango-dev/ui";import ir from"react";function ra(t){let{open:e,onClose:o,onConfirm:n}=t;return ir.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},ir.createElement(Ph,{title:na.t("Activate current tab"),type:"warning",description:na.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.")},ir.createElement(_h,{size:20}),ir.createElement(Bh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},na.t("Confirm"))))}i(ra,"ActivateTabModal");import{ChevronLeftIcon as Fh}from"@rango-dev/ui";import sc from"react";import{css as $h,darkTheme as tc,IconButton as Dh,styled as Jt}from"@rango-dev/ui";var gt=Jt(Dh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tc} &`]:{backgroundColor:"$neutral"}}}),oc=Jt("div",{position:"absolute",background:"$secondary500",[`.${tc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),So=Jt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nc=Jt("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"}}}}),rc=Jt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ic=Jt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),ac=$h({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ar=Jt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ia(t){return sc.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},sc.createElement(Fh,{color:"black",size:16}))}i(ia,"BackButton");import{i18n as Oh}from"@lingui/core";import{Button as Uh,Typography as zh}from"@rango-dev/ui";import aa from"react";function sa(t){return aa.createElement(So,null,aa.createElement(Uh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},aa.createElement(zh,{variant:"label",size:"medium",color:"error500"},Oh.t("Cancel"))))}i(sa,"CancelButton");import{i18n as qh}from"@lingui/core";import{Image as Qh,Tooltip as Hh,WalletIcon as Gh}from"@rango-dev/ui";import Rt from"react";function la(t){let{list:e}=yo({}),o=e.filter(r=>r.state==="connected"),n=o.length?Rt.createElement("div",{className:ac()},o.map(r=>Rt.createElement(ar,{key:r.title},Rt.createElement(Qh,{src:r.image,size:14})))):qh.t("Connect Wallet");return Rt.createElement(Hh,{container:t.container,side:"bottom",content:n},Rt.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Rt.createElement(oc,null),Rt.createElement(Gh,{size:18,color:"black"})))}i(la,"WalletButton");import{i18n as pr}from"@lingui/core";import{NotificationsIcon as fy,Popover as gy,SettingsIcon as hy,Tooltip as cr,TransactionIcon as yy}from"@rango-dev/ui";import Ie from"react";import{i18n as pa}from"@lingui/core";import{EventSeverity as yc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Sc,ChevronRightIcon as oy,Divider as Cc,Typography as ca}from"@rango-dev/ui";import de from"react";import{useNavigate as ny}from"react-router-dom";import{create as Vh}from"zustand";import{persist as Xh,subscribeWithSelector as jh}from"zustand/middleware";var be=Pt(Vh()(Xh(jh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n:[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));import{Button as Kh,darkTheme as Yh,ListItemButton as Zh,styled as Dt}from"@rango-dev/ui";var lc=Dt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),pc=Dt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),cc=Dt(Kh,{padding:"$5 !important"}),uc=Dt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),mc=Dt(Zh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Yh} &`]:{backgroundColor:"$error600"}}}}}),dc=Dt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),fc=Dt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),gc=Dt("span",{paddingRight:"$8"});import{i18n as Jh}from"@lingui/core";import{Divider as Rh,NoNotificationIcon as ey,Typography as ty}from"@rango-dev/ui";import sr from"react";function hc(){return sr.createElement(fc,null,sr.createElement(ey,{color:"secondary",size:26}),sr.createElement(Rh,{size:12}),sr.createElement(ty,{variant:"body",size:"medium",color:"neutral700"},Jh.t("There are no notifications.")))}i(hc,"NotificationNotFound");var ry=4;function ua(){let t=ny(),{getNotifications:e,clearNotifications:o}=be(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,ry),l=i(p=>{t(`${U.swaps}/${p}`)},"handleOnClick");return de.createElement(lc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(pc,null,de.createElement(ca,{variant:"label",size:"medium"},pa.t("Notifications")),de.createElement(cc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(ca,{variant:"body",size:"xsmall"},pa.t("Clear all")))),de.createElement(Cc,{direction:"vertical",size:4})),s.length?de.createElement(uc,null,s.map((p,u)=>{let{route:c,requestId:d,event:m}=p,f=a.find(h=>$e(h,c.from)),g=r.find(h=>h.name===c.from.blockchain),S=a.find(h=>$e(h,c.to)),C=r.find(h=>h.name===c.to.blockchain);return de.createElement(de.Fragment,{key:d},u>0&&de.createElement(Cc,{size:4}),de.createElement(mc,{onClick:()=>l(d),actionRequired:m.messageSeverity===yc.WARNING,title:de.createElement(ca,{variant:"body",size:"small",color:m.messageSeverity===yc.WARNING?"$foreground":"$neutral700"},pa.t(m.message)),id:d,start:de.createElement(dc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Sc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Sc,{tokenImage:S?S.image:"",chainImage:C?C.logo:"",size:"small"}))),end:de.createElement(gc,null,de.createElement(oy,{size:12,color:"gray"}))}))})):de.createElement(hc,null))}i(ua,"NotificationContent");import{useManager as iy}from"@rango-dev/queue-manager-react";import{InProgressIcon as ay}from"@rango-dev/ui";import Tc from"react";var sy=i(()=>{let{manager:t}=iy();return tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Tc.createElement(ic,null,Tc.createElement(ay,{color:"info",size:6})):null},"InProgressTransactionBadge"),kc=sy;import{EventSeverity as ly}from"@rango-dev/queue-manager-rango-preset";import{Typography as py}from"@rango-dev/ui";import wc from"react";function vc(){let{getNotifications:t}=be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ly.WARNING);return o?wc.createElement(nc,{isSever:n},wc.createElement(py,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(vc,"NotificationsBadge");import{RefreshProgressButton as cy}from"@rango-dev/ui";import ma,{useEffect as uy,useState as xc}from"react";var my=1e3,bc=60,dy=100;function lr({onClick:t}){let[e,o]=xc(0),[n,r]=xc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");uy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===bc&&l()},my):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ma.createElement(gt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ma.createElement(rc,{onTransitionEnd:()=>r(!1),isRefetched:n},ma.createElement(cy,{size:22,color:t?"black":"gray",progress:e/bc*dy})))}i(lr,"RefreshButton");function eo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ze("notification",s)||r.includes("notifications");return Ie.createElement(Ie.Fragment,null,!r.includes("refresh")&&Ie.createElement(cr,{container:a||B(),side:"top",content:pr.t("Refresh")},Ie.createElement(lr,{onClick:e})),!l&&Ie.createElement(gy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ie.createElement(ua,null)},Ie.createElement("div",null,Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Notifications")},Ie.createElement(gt,{size:"small",variant:"ghost"},Ie.createElement(fy,{size:18,color:"black"}),Ie.createElement(vc,null))))),!r.includes("settings")&&Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Settings")},Ie.createElement(gt,{size:"small",variant:"ghost",onClick:n},Ie.createElement(hy,{size:18,color:"black"}))),!r.includes("history")&&Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Transactions History")},Ie.createElement(gt,{size:"small",variant:"ghost",onClick:o},Ie.createElement(yy,{size:18,color:"black"}),Ie.createElement(kc,null))))}i(eo,"HeaderButtons");import{i18n as da}from"@lingui/core";import{Divider as Ec,MessageBox as Ty,RefreshIcon as ky}from"@rango-dev/ui";import Co from"react";import{Button as Sy,styled as Cy}from"@rango-dev/ui";var Ic=Cy(Sy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fa(t){let{open:e,onClose:o}=t;return Co.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},Co.createElement(Ty,{title:da.t("Something went wrong"),type:"error",description:da.t("Something went wrong. Please refresh the app.")},Co.createElement(Ec,{size:30}),Co.createElement(Ic,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Co.createElement(ky,{size:20,color:"primary"}),Co.createElement(Ec,{size:4,direction:"horizontal"}),da.t("Refresh"))))}i(fa,"RefreshModal");function ga(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ga,"onScrollContentAttachStatusToContainer");import{css as wy,styled as ha}from"@rango-dev/ui";var Ac="700px",ur=wy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Nc=ha("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ac},fixed:{height:Ac}}}}),Wc=ha("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Lc=ha("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}=Ki(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Iy(!1),c=R.use.connectedWallets(),{config:{features:d,theme:m}}=y(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:S}=rr(m||{}),C=Ze("connectWalletButton",d),{isActiveTab:h,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ne(),b=et(),{manager:x}=vy(),I=tt(x).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),W=i(()=>E(Kt.forceClaim,I),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,L=Bc(null),V=Bc(null);return ya(()=>(or()&&V.current&&e(V.current),()=>{o()}),[]),ya(()=>(L.current?.addEventListener("scroll",ga),()=>{L.current?.removeEventListener("scroll",ga)}),[]),ya(()=>{u(l==="failed")},[l]),Se.createElement(Nc,{height:s,id:ye.SWAP_BOX_ID,className:`${S()} ${ur()}`,ref:V},Se.createElement(by,{prefix:Se.createElement(Se.Fragment,null,Q&&Se.createElement(ia,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!C&&Se.createElement(la,{container:B(),onClick:M,isConnected:!!c?.length}),r.onCancel&&Se.createElement(sa,{onClick:r.onCancel}))}),Se.createElement(Wc,{ref:L},n),Se.createElement(ra,{open:k,onClose:()=>v(!1),onConfirm:W}),Se.createElement(Lc,null,Se.createElement("div",{className:"footer__content"},T&&!h&&Se.createElement("div",{className:"footer__alert"},Se.createElement(oa,{onActivateTab:W}),Se.createElement(Mc,{size:10})),a),Se.createElement(Mc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(xy,null))),Se.createElement(fa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as Ey}from"@rango-dev/ui";var _c="$20 $20 $10 $20",Ho=Ey("div",{padding:_c,overflowY:"auto",flexGrow:1});import{styled as Ay}from"@rango-dev/ui";var ue=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 By}from"@rango-dev/ui";import Ca from"react";import{i18n as To}from"@lingui/core";import{Image as Ly,MessageBox as Sa,WalletState as My}from"@rango-dev/ui";import to from"react";import{keyframes as Ny,styled as mr}from"@rango-dev/ui";var ZN=mr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),dr=mr("div",{position:"relative"}),Wy=Ny({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fr=mr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Wy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Pc=mr("div",{"& img":{borderRadius:"50%"}});function $c(t){let{state:e,image:o,error:n}=t;return e===My.CONNECTED?to.createElement(Sa,{type:"success",title:To.t("Wallet Connected"),description:To.t("Your wallet is connected, you can use it to swap.")}):n?to.createElement(Sa,{type:"error",title:To.t("Failed to Connect"),description:n||To.t("Your wallet is not connected. Please try again.")}):to.createElement(Sa,{type:"loading",title:To.t("Connecting to your wallet"),description:To.t("Click connect in your wallet popup."),icon:to.createElement(dr,null,to.createElement(Pc,null,to.createElement(Ly,{src:o,size:45})),to.createElement(fr,null))})}i($c,"ModalContent");function Go(t){let{open:e,onClose:o,...n}=t;return Ca.createElement(oe,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},Ca.createElement($c,{...n}),Ca.createElement(By,{direction:"vertical",size:32}))}i(Go,"WalletModal");import{i18n as Ta}from"@lingui/core";import{Button as Py,Checkbox as $y,Image as Fc,ListItemButton as Dy,MessageBox as Fy,Radio as Oy,RadioRoot as Uy}from"@rango-dev/ui";import{Namespace as ko}from"@rango-dev/wallets-shared";import Ae,{useMemo as zy,useState as qy}from"react";import{styled as _y}from"@rango-dev/ui";var Dc=_y("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Qy={[ko.Evm]:"ETH",[ko.Solana]:"SOLANA",[ko.Cosmos]:"COSMOS",[ko.Utxo]:"BTC",[ko.Starknet]:"STARKNET",[ko.Tron]:"TRON"},Hy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function oo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=qy([]),a=y().blockchains(),s=zy(()=>o?.map(u=>({name:u,logo:Hy(a,Qy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(d=>d!==u):c.concat(u))},"onSelect"),p=i(u=>e?Ae.createElement(Uy,{value:n?.[0]},u):Ae.createElement(Ae.Fragment,null,u),"wrapRadioRoot");return Ae.createElement(oe,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},Ae.createElement(Fy,{type:"info",title:Ta.t("Select chain types"),description:Ta.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ae.createElement(dr,null,Ae.createElement(ar,null,Ae.createElement(Fc,{src:t.image,size:45})),Ae.createElement(fr,null))}),Ae.createElement(Dc,null,p(Ae.createElement(Ae.Fragment,null,s?.map(u=>Ae.createElement(Dy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ae.createElement(Fc,{src:u.logo,size:22}),end:e?Ae.createElement(Oy,{value:u.name}):Ae.createElement($y,{checked:n.includes(u.name)})}))))),Ae.createElement(Py,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ta.t("Confirm")))}i(oo,"WalletNamespacesModal");var Yy=zc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Zy=zc(ue,{textAlign:"center"}),hr=3e3,ka=300;function qc(){let{fetchStatus:t}=y(),[e,o]=gr("ALL"),n=y().blockchains(),[r,a]=gr(!1),[s,l]=gr(null),[p,u]=gr(""),c=null,d=ne.use.isActiveTab(),{list:m,handleClick:f,error:g,disconnectConnectingWallets:S}=yo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ka)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},hr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),h=m.find(w=>w.type===p),T=h?.image||"",k=h?.state||Uc.NOT_INSTALLED,v=Nl(m,n),b=Vy(v)!==1,x=Wl(m,e);return at.createElement(le,{header:{title:Oc.t("Connect Wallets")}},at.createElement(Zy,null,b&&at.createElement(at.Fragment,null,at.createElement(Xy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),at.createElement(Gy,{size:24})),at.createElement(jy,{variant:"title",size:"xmedium",align:"center"},Oc.t("Choose a wallet to connect.")),at.createElement(Yy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return at.createElement(Ky,{key:W,...w,container:B(),onClick:M=>{w.namespaces&&w.state===Uc.DISCONNECTED?l({providerType:M,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(M)},isLoading:t==="loading",disabled:!d})}),at.createElement(Go,{open:!!r,onClose:C,image:T,state:k,error:g}),at.createElement(oo,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(qc,"WalletsPage");import{keyframes as Jy,styled as wa}from"@rango-dev/ui";var Qc=wa("div",{position:"relative"}),Ry=Jy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Hc=wa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ry} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Gc=wa("div",{"& img":{borderRadius:"50%"}});var nS=7;function xa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=y(),[u,c]=wo(""),[d,m]=wo(null),[f,g]=wo(!1),[S,C]=wo(null),[h,T]=wo(null),{suggestAndConnect:k}=Sr(),v=null,{list:E,error:b,handleClick:x,disconnectWallet:w,disconnectConnectingWallets:I}=yo({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},ka)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},hr)}}),[W,M]=wo(E),Q=E.length,L=r&&Q-r>0,V=i(async A=>{g(!1),C("in-progress");try{await k(A.walletType,A.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain"),Y=i(A=>{T({providerType:A.type,providerImage:A.image,availableNamespaces:A.namespaces,singleNamespace:A.singleNamespace})},"handleOpenNamespacesModal");jc(()=>{M(A=>{let te=E.findIndex(q=>o(q.type,e));return L&&te>1?[E[te]].concat(E.filter((q,Z)=>Z!==te)):A.map(q=>E.find(Z=>Z.type===q.type)??q)})},[JSON.stringify(E)]);let re=document.getElementById(ye.SWAP_BOX_ID);jc(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>C(null),hr)),()=>{A&&clearTimeout(A)}},[S]);let H=i(()=>{I(),c("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,W.slice(0,r).map(A=>{let te=Il({connectedWallets:l,walletType:A.type,chain:e}),q=te?Wn(te,nS):"",Z=An(p(),e),me=!l.find(X=>X.walletType===A.type&&X.chain===e),he=Z&&me&&A.state===Xc.CONNECTED,_=he?st.t({id:"Add {chain} chain",values:{chain:e}}):q,ze=i(async()=>{A.state===Xc.DISCONNECTED?A.namespaces?Y(A):x(A.type):A.namespaces&&!q?(await w(A.type),Y(A)):he?(m({walletType:A.type,chain:e,address:te??""}),g(!0)):n({walletType:A.type,chain:e,address:te??""})},"onClick"),P=d?.chain?Fl(d.chain,p()):void 0;return ce.createElement(ce.Fragment,{key:`${A.title}_${P}`},ce.createElement(Go,{open:u===A.type,onClose:H,image:A.image,state:A.state,error:b}),ce.createElement(oo,{open:!!h,onClose:()=>T(null),onConfirm:X=>{x(h?.providerType,X),T(null)},image:h?.providerImage,namespaces:h?.availableNamespaces,singleNamespace:h?.singleNamespace}),!!d&&ce.createElement(oe,{open:!!d&&f,container:re,onClose:()=>{m(null)}},ce.createElement(yr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}})},ce.createElement(va,{size:18}),ce.createElement(va,{size:32}),ce.createElement(eS,{onClick:V.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),S&&ce.createElement(oe,{open:!!S,onClose:C.bind(null,null),container:re},S==="in-progress"&&ce.createElement(yr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}}),icon:ce.createElement(Qc,null,ce.createElement(Gc,null,ce.createElement(tS,{src:A.image,size:45})),ce.createElement(Hc,null))}),S==="completed"&&ce.createElement(yr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:P}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:P}})}),S==="rejected"&&ce.createElement(yr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:P}})}),ce.createElement(va,{direction:"vertical",size:32})),ce.createElement(oS,{key:A.type,description:_,onClick:ze,selected:o(A.type,e),disabled:!s,...A}))}),L&&ce.createElement(Fp,{selected:!1,onClick:a},ce.createElement(Vc,{variant:"label",size:"medium"},st.t("Show more wallets"),ce.createElement(Vc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(xa,"WalletList");var uS=2;function Yc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=y().config,l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=j(),{connectedWallets:g,selectWallets:S}=R(),[C,h]=xo(""),[T,k]=xo([]),[v,E]=xo(""),[b,x]=xo(null),[w,I]=xo(!!m),W=jt({filter:"all",quote:p}),M=jt({filter:"required",quote:p}),Q=l.find(P=>P.name===p?.swaps[p?.swaps.length-1].to.blockchain),L=i(P=>M.includes(P),"isWalletRequiredFor"),V=i(()=>g.filter(P=>P.selected&&W.includes(P.chain)),"getInitialSelectableWallets"),[Y,re]=xo(V()),H=T.length>0,A=i((P,X)=>!!Y.find(ie=>ie.walletType===P&&ie.chain===X&&ie.selected&&(L(X)||!L(X)&&!m)),"isSelected"),te=!!m&&w&&Q&&!Fn(Q,m),q=i(()=>{I(!1),f(null),re(P=>{let X=!1;return P.map(ie=>!X&&ie.chain===Q?.name?(X=!0,{...ie,selected:!0}):ie)})},"resetCustomDestination"),Z=i(P=>{if(C&&h(""),A(P.walletType,P.chain))return;let ie=g.find(Ne=>Ne.walletType===P.walletType&&Ne.chain===P.chain);ie&&(n(),P.chain===Q?.name&&w&&(I(!1),f(null)),re(Ne=>Ne.filter(Ge=>Ge.chain!==P.chain).concat({...ie,selected:!0})))},"onChange"),me=i(()=>{let P=Y.filter(X=>X.selected);S(P),u(P),d(!0),o()},"onConfirmBalance"),he=i(async()=>{k([]),E(""),x(null);let P=await r?.({selectedWallets:Y.filter(ie=>ie.selected),customDestination:m}),X=P.warnings;X?.balance?.messages&&k(X.balance.messages),X?.quoteUpdate&&x(X.quoteUpdate),P.error&&E(rp(P.error)),!P.error&&!X?.balance?.messages.length?me():k(X?.balance?.messages??[])},"onConfirmWallets");pS(()=>{re(P=>P.concat(g.filter(X=>!!!P.find(Ne=>Ne.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[g.length]);let _=document.getElementById(ye.SWAP_BOX_ID),ze=cS();return O.createElement(oe,{open:e,onClose:()=>{c||ze("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:O.createElement(Gp,null,O.createElement(Kc,{loading:a,disabled:wp(a,w,m,p,Y,Q),onClick:he,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ht.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:O.createElement(Op,null,O.createElement(Up,{variant:"ghost",onClick:h.bind(null,"")},O.createElement(aS,{size:16})),O.createElement(Cr,{variant:"headline",size:"small"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(C,l)}})))},anchor:"center"},O.createElement(oe,{open:H,onClose:k.bind(null,[]),container:_},O.createElement(sS,{title:ht.t("Insufficient account balance"),type:"error",description:O.createElement(rS,{messages:T??[]})},O.createElement(Kc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},ht.t("Proceed anyway")))),C&&O.createElement(zp,null,O.createElement("div",{className:qp()},O.createElement(xa,{chain:C,isSelected:A,selectWallet:Z,onShowMore:h.bind(null,C)}))),!C&&O.createElement(O.Fragment,null,v&&O.createElement(O.Fragment,null,O.createElement(ba,{variant:"alarm",type:"error",title:ht.t(v)}),O.createElement(vo,{size:12})),b&&O.createElement(O.Fragment,null,O.createElement(ba,{variant:"alarm",type:"warning",title:Kn(b)}),O.createElement(vo,{size:12})),O.createElement(Xp,null,W.map((P,X)=>{let ie=l.find(We=>We.name===P),Ne=`wallet-${X}`,Ge=X===W.length-1;return O.createElement("div",{key:Ne},O.createElement($p,null,O.createElement(Cr,{variant:"title",size:"xmedium"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:ie?.shortName}})),O.createElement(Cr,{variant:"label",color:"$neutral700",size:"medium"},ht.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:ie?.shortName}}))),O.createElement(vo,{size:24}),O.createElement(Dp,null,O.createElement(xa,{chain:P,isSelected:A,selectWallet:Z,limit:uS,onShowMore:()=>h(ie?.name??"")})),!Ge&&O.createElement(vo,{size:32}),Ge&&s?.customDestination&&O.createElement(Qp,null,O.createElement(er,{onOpenChange:We=>{We?L(Q?.name??"")||re(_e=>_e.map(Ke=>Ke.chain===Q?.name?{...Ke,selected:!1}:Ke)):q()},hasSelected:!0,open:w,triggerAnchor:"top",trigger:O.createElement(jp,null,O.createElement("div",{className:"button__content"},O.createElement(lS,{size:18,color:"info"}),O.createElement(vo,{size:4,direction:"horizontal"}),O.createElement(Cr,{variant:"label",size:"medium"},ht.t("Send to a different address"))),O.createElement(Jn,{orientation:w?"up":"down"},O.createElement(iS,{size:10,color:"gray"}))),onClickTrigger:()=>I(We=>!We)},O.createElement(vo,{size:4}),O.createElement(Vp,{placeholder:ht.t("Your destination address"),value:m||"",onChange:We=>{let _e=We.target.value;_e.length?f(_e.length?_e:null):(I(!1),f(null))},...!m&&{autoFocus:!0}})),te&&O.createElement("div",{className:Hp()},O.createElement(ba,{variant:"alarm",type:"error",title:ht.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Yc,"ConfirmWalletsModal");import{i18n as WS}from"@lingui/core";import{Alert as LS,Button as MS,InfoIcon as BS}from"@rango-dev/ui";import Xe from"react";import{Alert as fS,Button as gS,Divider as Aa,NoRouteIcon as hS,RefreshIcon as yS,Typography as nu}from"@rango-dev/ui";import Ve from"react";import{i18n as Zc}from"@lingui/core";var mS=24,dS=60;function Jc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Zc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Zc.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Jc,"makeInfo");var Ia=(o=>(o[o.small=mS]="small",o[o.large=dS]="large",o))(Ia||{}),Ea=(o=>(o.small="small",o.large="medium",o))(Ea||{});import{styled as Tr}from"@rango-dev/ui";var Rc=Tr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),eu=Tr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),tu=Tr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),ou=Tr("div",{padding:"$6 $0"});function Vo(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Jc(o,r,()=>a(s,!0),e);return Ve.createElement(Rc,null,Ve.createElement(hS,{size:Ia[n],color:"gray"}),Ve.createElement(Aa,{size:4}),Ve.createElement(nu,{variant:"title",size:Ea[n]},ee().noResultError.title),n==="large"&&Ve.createElement(Aa,{size:4}),!!l.description&&Ve.createElement(eu,{size:n},Ve.createElement(nu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(Aa,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(tu,{size:n},Ve.createElement(fS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(gS,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(ou,null,Ve.createElement(yS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Vo,"NoResult");import{i18n as Xo}from"@lingui/core";import{Button as CS,Divider as TS,MessageBox as kS,Typography as wS,WarningIcon as vS}from"@rango-dev/ui";import xt from"react";import{Typography as su}from"@rango-dev/ui";import Wa from"react";import{darkTheme as SS,styled as kr}from"@rango-dev/ui";var ru=kr("div",{width:"100%"}),Na=kr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),iu=kr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${SS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),au=kr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function lu(t){let{title:e,value:o,valueColor:n}=t;return Wa.createElement(iu,null,Wa.createElement(su,{size:"medium",variant:"label",className:"_title"},e),Wa.createElement(su,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(lu,"QuoteErrorsModalItem");function pu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Xo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Xo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Xo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Xo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return xt.createElement(oe,{footer:xt.createElement(CS,{type:"primary",size:"large",prefix:xt.createElement(vS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},xt.createElement(kS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),xt.createElement(Na,null,xt.createElement(TS,{size:"4"}),xt.createElement(wS,{size:"small",variant:"title"},Xo.t("Details")),xt.createElement(Na,null,l.map((p,u)=>xt.createElement(lu,{key:u,...p})))))}i(pu,"HighValueLossWarningModal");import{i18n as La}from"@lingui/core";function cu(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=La.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&&(wt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title),t.type===1&&(o.title=ee().unknownPriceError.title),t.type===2&&(o.title=La.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=La.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(cu,"makeAlerts");import{i18n as bo}from"@lingui/core";import{Button as uu,Divider as mu,MessageBox as xS,Typography as bS}from"@rango-dev/ui";import no from"react";import{useNavigate as IS}from"react-router-dom";function du(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=IS(),u=e??o;return no.createElement(oe,{anchor:"bottom",open:n,prefix:no.createElement(uu,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},no.createElement(bS,{variant:"label",size:"medium",color:"$neutral900"},bo.t("Change settings"))),container:B(),onClose:r},no.createElement(xS,{type:"warning",title:s.type===3?bo.t("High slippage"):bo.t("Low slippage"),description:s.type===3?bo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):bo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},no.createElement(mu,{size:18}),no.createElement(mu,{size:32}),no.createElement(uu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},bo.t("Confirm anyway"))))}i(du,"SlippageWarningModal");import{Button as ES,MessageBox as AS,WarningIcon as NS}from"@rango-dev/ui";import wr from"react";function fu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(oe,{footer:wr.createElement(ES,{type:"primary",size:"large",prefix:wr.createElement(NS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(AS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(fu,"UnknownPriceWarningModal");function jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,d={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,f=cu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Xe.createElement(Xe.Fragment,null,m&&Xe.createElement(Vo,{error:o,fetch:s}),!!f&&Xe.createElement(ru,null,Xe.createElement(LS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Xe.createElement(au,{onClick:l},Xe.createElement(BS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Xe.createElement(MS,{size:"xxsmall",type:f.alertType,onClick:c},WS.t("Change"))}})),e&&Xe.createElement(Xe.Fragment,null,e.type===0&&Xe.createElement(pu,{...d,warning:e}),(e.type===3||e.type===2)&&Xe.createElement(du,{...d,warning:e}),e.type===1&&Xe.createElement(fu,{...d,warning:e})))}i(jo,"QuoteWarningsAndErrors");import cC from"bignumber.js";import $r from"react";import{i18n as ro}from"@lingui/core";import{Alert as ZS,Divider as Eo,FullExpandedQuote as JS,InfoIcon as RS,QuoteTag as eC,StepDetails as tC,TokenAmount as oC,Tooltip as Xu,Typography as Ao}from"@rango-dev/ui";import Oa from"bignumber.js";import $,{useRef as nC,useState as rC}from"react";import{styled as Ma}from"@rango-dev/ui";var Ba=Ma("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),gu=Ma("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),hu=Ma("div",{width:"100%",display:"flex"});import*as vr from"@radix-ui/react-collapsible";import{Button as _S,css as Ko,darkTheme as Te,Image as yu,styled as Fe,Typography as PS}from"@rango-dev/ui";var $S=300,Su=Fe(vr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Te} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Cu=Ko({padding:"$10 $15"}),Tu=Fe(_S,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Te} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Te} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Te} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),ku=Fe("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",[`.${Te} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Te} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Te} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Te} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Te} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Te} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Te} &`]:{backgroundColor:"$neutral400"}}}}]}),wu=Ko({width:"100%",padding:"$15 $15 $10 $15"}),vu=Ko({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Io=Ko({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),xu=Ko({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Te} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bu=Fe(vr.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:{[`& ${yu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${yu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Te} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Iu=Fe("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"}}}}),Eu=Fe(Zn,{width:"100%",background:"inherit"}),_a=Fe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),tB=Fe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Au=Fe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Te} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Nu=Fe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Pa=Fe(PS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Wu=Fe("div",{display:"flex",flexWrap:"wrap"}),$a=Fe("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"}}}}),Lu=Fe("div",{display:"flex"}),xr=Fe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Te} &`]:{borderTopColor:"$neutral800"}});import{i18n as qt}from"@lingui/core";import{ChevronDownIcon as FS,CloseIcon as OS,Divider as Er,IconButton as US,QuoteCost as zS,Tooltip as qS,Typography as lt}from"@rango-dev/ui";import K,{useState as Pu}from"react";import{css as DS,styled as br}from"@rango-dev/ui";var Ir=br("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Da=br("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Mu=br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Bu=br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),_u=DS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var QS=i(t=>t.fee.isZero()?null:K.createElement(Ir,null,K.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function $u(t){let[e,o]=Pu(!1),[n,r]=Pu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=B(),f=cp(d);return K.createElement(K.Fragment,null,K.createElement(zS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?qt.t("View more info"):void 0,tooltipContainer:m}),K.createElement(oe,{container:m,open:e,header:K.createElement(Bu,null,K.createElement(lt,{variant:"title",size:"medium"},qt.t("Gas & Fee Explanation")),K.createElement(US,{onClick:()=>o(!1),variant:"ghost"},K.createElement(OS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(Mu,null,K.createElement(lt,{variant:"title",size:"small"},qt.t("Details")),K.createElement(Er,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,h)=>{let T=`payable-fee-${h}`,k=Oi(C);return K.createElement(Ir,{key:T},K.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Pi[g]),K.createElement(qS,{content:pe(C.amount),container:m},K.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),K.createElement(Ir,{className:"total_payable_fee"},K.createElement(lt,{variant:"label",size:"medium"},qt.t("Total Payable Fee")),K.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(Da,null),Object.keys(f.nonePayable).length&&K.createElement(er,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:_u()},K.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?qt.t("Hide non-payable fees"):qt.t("Show non-payable fees")),K.createElement(Er,{size:4,direction:"horizontal"}),K.createElement(Jn,{orientation:n?"up":"down"},K.createElement(FS,{size:12,color:"gray"}))),open:n},K.createElement(lt,{size:"small",variant:"title"},qt.t("Description")),K.createElement(Er,{size:4}),K.createElement(lt,{size:"small",variant:"body",color:"neutral700"},qt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),K.createElement(Er,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let h=pp(S),T=Pi[g],k=`non-payable-fee-${C}`;return K.createElement(QS,{key:k,fee:h,label:T})}),K.createElement(Da,null)))))}i($u,"QuoteCostDetails");import{i18n as Ou}from"@lingui/core";import{TokenAmount as Uu}from"@rango-dev/ui";import Ar from"react";import{css as HS,styled as GS}from"@rango-dev/ui";var Du=GS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Fu=HS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Yo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ar.createElement(Du,null,Ar.createElement(Uu,{direction:"horizontal",label:Ou.t("Swap input"),type:"input",tooltipContainer:B(),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}}),Ar.createElement("div",{className:Fu()}),Ar.createElement(Uu,{direction:"horizontal",tooltipContainer:B(),label:Ou.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(Yo,"QuoteSummary");import{i18n as Gu}from"@lingui/core";import{ChevronDownIcon as jS,ChevronRightIcon as KS,Divider as Fa,Image as YS,Tooltip as Br,Typography as Wr}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as VS,useState as Zo}from"react";var zu=480,qu=768,Qu=1024,Hu=1200,XS=i(()=>{let[t,e]=Zo(!1),[o,n]=Zo(!1),[r,a]=Zo(!1),[s,l]=Zo(!1),[p,u]=Zo(!1),c=i(()=>{e(window.innerWidth<=zu),n(window.innerWidth>zu&&window.innerWidth<=qu),a(window.innerWidth>qu&&window.innerWidth<=Qu),l(window.innerWidth>Qu&&window.innerWidth<=Hu),u(window.innerWidth>Hu)},"handleResize");return VS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Nr=XS;var Lr=4,Mr=6,Jo=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return D.createElement(Br,{container:l,side:"bottom",sideOffset:4,open:r,content:e},D.createElement(Iu,{className:n,state:a},D.createElement(YS,{src:o,size:16})))},"ImageComponent");function Vu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Ap(r),{isTablet:d,isMobile:m}=Nr();return D.createElement(bu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},D.createElement("div",{className:Io()},D.createElement(Wr,{variant:"body",size:"xsmall"},Gu.t("Via:")),D.createElement(Fa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=D.createElement(_a,null,D.createElement(KS,{size:12,color:"black"}));return m||d?D.createElement(D.Fragment,{key:S},D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):D.createElement(D.Fragment,{key:S},u<=Lr||u>Lr&&g<Lr-1?D.createElement(D.Fragment,null,D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):g===Lr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:Io()},C,r.map((h,T)=>{let k=`image-${T}`;return T>=g&&D.createElement(D.Fragment,{key:k},D.createElement(Jo,{content:h.swapper.displayName,src:h.swapper.image,state:h.state,open:!1}),T!==u-1&&D.createElement(D.Fragment,null,C))}))},D.createElement($a,{state:r.find((h,T)=>T>=g&&(h.state==="error"||h.state==="warning"))?.state},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",u-g))))})),D.createElement("div",{className:Io()},D.createElement("div",{className:"blockchains_section"},D.createElement("div",{className:Io()},D.createElement(Wr,{variant:"body",size:"xsmall"},Gu.t("Chains:")),D.createElement(Fa,{direction:"horizontal",size:4}),c.map((f,g)=>D.createElement(D.Fragment,{key:f.displayName},c.length<=Mr||c.length>Mr&&g<Mr-1?D.createElement(Br,{container:p,side:"bottom",content:f.displayName,sideOffset:4},D.createElement(Jo,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===Mr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:Io()},c.map((S,C)=>C>=g&&D.createElement(Jo,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},D.createElement($a,{className:"blockchainImage"},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",c.length-g))))),D.createElement(Fa,{direction:"horizontal",size:32}))),D.createElement(_a,{orientation:a?"up":"down"},D.createElement(jS,{size:12,color:"black"}))))}i(Vu,"QuoteTrigger");function Ua(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=y().blockchains(),g=y().tokens(),S=y().swappers(),{customSlippage:C,slippage:h}=y(),T=C||h,[k,v]=rC(t.expanded),E=nC(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=Je(o.usdValue,n.usdValue??null),W=N(I,2,2),M=wt(I??0),Q=i((me,he)=>me.map((_,ze)=>{let P,X=r?.type===3&&r.swap.swapperId===_.swapperId,ie=r?.type===4&&r.recommendedSlippages?.has(ze),Ne=a?.type===2&&a.recommendedSlippages?.has(ze),Ge=X||ie,We=Ne;Ge?P="error":We&&(P="warning");let _e=Ge?ro.t("Slippage Error"):ro.t("Slippage Warning");return X&&(_e=ro.t("Bridge Limit Error")),{swapper:{displayName:Oo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ye(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:ze===0&&!he?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:pe(ze===0?o.value:_.fromAmount),realUsdValue:pe(new Oa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Ye(_.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 Oa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:P,alerts:Ge||We?$.createElement(gu,{dense:d},$.createElement(ZS,{variant:"alarm",type:Ge?"error":"warning",title:_e,footer:$.createElement(hu,null,X&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(ie||Ne)&&!X&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(ze)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(ze)}}})),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:$o(_.estimatedTimeInSeconds),fee:N(Fi(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),L=Q(e?.swaps??[]),V=L.length,Y=m||B(),re=Wp(t.quote.tags||[]),H=!!c,A=$o(vn(e?.swaps)),te=zn(e?.swaps??[],g),q=N(te,2,2),Z=te.gte(new Oa(np));return d?$.createElement(JS,{selected:l,fee:q,time:A,tooltipContainer:Po(),steps:L,tags:re,feeWarning:Z,percentageChange:W,warningLevel:M,outputPrice:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):$.createElement(ku,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:wu()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(Lu,null,re.map((me,he)=>{let _=`${me.value}_${he}`;return $.createElement($.Fragment,{key:_},$.createElement(eC,{label:me.label,value:me.value}),$.createElement(Eo,{size:4,direction:"horizontal"}))})),$.createElement(xr,null),!H&&$.createElement(Eo,{size:4})):null,$.createElement("div",{id:"portal-root",className:vu()},$.createElement($u,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(Tu,{onClick:me=>{me.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Ao,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},ro.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:xu()},$.createElement(Nu,null,$.createElement(RS,{size:12,color:"gray"})),$.createElement(Wu,null,$.createElement(Pa,{size:"small",variant:"body"},`${b} ${L[0].from.token.displayName} = `),$.createElement(Xu,{content:pe(n.value),container:Y,open:n.value?void 0:!1},$.createElement(Pa,{size:"small",variant:"body"},"\xA0",`${x} ${L[L.length-1].to.token.displayName}`))),$.createElement(Xu,{content:pe(n.usdValue),container:Y},$.createElement(Eo,{size:2,direction:"horizontal"}),$.createElement(Ao,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(oC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:L[V-1].to.token.displayName,image:L[V-1].to.token.image},chain:{image:L[V-1].to.chain.image},percentageChange:W,warningLevel:M}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Yo,{from:L[0].from,to:L[V-1].to,percentageChange:W,warningLevel:M}),$.createElement(Eo,{size:4}))),$.createElement(Su,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Vu,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:L}),$.createElement(Eu,{open:k},$.createElement(Au,null),$.createElement("div",{className:Cu()},L.map((me,he)=>{let _=`item-${he}`;return $.createElement(tC,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:he!==L.length-1,state:me.state})})))))}i(Ua,"Quote");import{Divider as lC,Skeleton as pC}from"@rango-dev/ui";import It from"react";import{darkTheme as iC,styled as _r}from"@rango-dev/ui";var ju=_r("div",{$$color:"$colors$neutral100",[`.${iC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ku=_r("div",{paddingTop:"$2"}),Yu=_r("div",{paddingLeft:"$8"}),Zu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as sm,Divider as pt,Skeleton as je}from"@rango-dev/ui";import z from"react";import{css as aC,styled as bt}from"@rango-dev/ui";var za=bt("div",{display:"flex"}),Ju=bt("div",{padding:"$10 $0 $20"}),Ru=bt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),em=bt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),tm=bt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),om=bt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),nm=bt("div",{width:"65%",display:"flex",justifyContent:"start"}),rm=bt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),im=bt("div",{padding:"$15 $0 $15 $0"}),am=aC({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ro(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(tm,null,z.createElement(nm,null,z.createElement(sm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{size:8,direction:"horizontal"}),z.createElement(rm,null,z.createElement(je,{height:10,width:60,variant:"rounded"}),z.createElement(pt,{size:4}),z.createElement(je,{height:15,variant:"rounded"}))),z.createElement(je,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(za,null,z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"})),z.createElement(xr,null),!r&&z.createElement(pt,{size:4})),z.createElement("div",{className:am()},z.createElement(za,null,z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"})),r&&z.createElement(je,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Ju,null,z.createElement(je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Ru,null,z.createElement(em,null,z.createElement(sm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{direction:"horizontal",size:4}),z.createElement(je,{height:15,width:150,variant:"rounded"})),z.createElement(pt,{size:10}),z.createElement(je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(pt,{size:4}),z.createElement(im,null,n,z.createElement(om,null),n),z.createElement(pt,{size:12})))}i(Ro,"QuoteSummarySkeleton");import{ChainToken as mm,Divider as Qa,NextIcon as sC,Skeleton as Pr}from"@rango-dev/ui";import ke from"react";import{styled as en}from"@rango-dev/ui";var lm=en("div",{display:"flex",alignItems:"start"}),pm=en("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),qa=en("div",{display:"flex",alignItems:"center",flexGrow:1}),cm=en("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),um=en("div",{display:"flex",alignItems:"center"});function yt(t){let{separator:e=!0}=t;return ke.createElement(ke.Fragment,null,ke.createElement(um,null,ke.createElement(Pr,{height:22,width:22,variant:"circular"}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:15,width:148,variant:"rounded"})),ke.createElement(lm,null,ke.createElement(Zu,{hideSeparator:!e}),ke.createElement(pm,{extraSpace:e},ke.createElement(qa,null,ke.createElement(mm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:12,variant:"rounded"})),ke.createElement(cm,null,ke.createElement(sC,{color:"gray",size:16})),ke.createElement(qa,null,ke.createElement(mm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:12,variant:"rounded"})))))}i(yt,"StepSkeleton");function tn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return It.createElement(ju,{expanded:o,rounded:e!=="basic"},It.createElement(Ro,{type:e,tagHidden:n}),It.createElement(Ku,null,It.createElement(pC,{height:15,variant:"rounded"})),o&&It.createElement(Yu,null,It.createElement(lC,{size:24}),It.createElement(yt,null),It.createElement(yt,null),It.createElement(yt,{separator:!1})))}i(tn,"QuoteSkeleton");function io(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:d,fullExpandedMode:m=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=j(),h=e?.outputAmount?new cC(e?.outputAmount):null,T=e?.outputAmount?Qn(e?.outputAmount,Gn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?$r.createElement(Ba,null,$r.createElement(tn,{tagHidden:l,type:o,expanded:s})):v?$r.createElement(Ba,{onClick:()=>p?.(e)},$r.createElement(Ua,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:h?.toString()??"",usdValue:T?.toString()??""}})):null}i(io,"QuoteInfo");import{calculatePendingSwap as fC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as gC}from"react";import{useRef as uC,useState as mC}from"react";var dC=2e3;function Dr({request:t}){let[e,o]=mC(!1),n=uC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,dC)),await s(l,!1)),"retryFetch"),s=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 a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Dr,"useFetch");function dm(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(dm,"useFetchConfirmQuote");function Fr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ha(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Fr,"throwErrorIfResponseIsNotValid");function Ha(t){if(ap(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=sp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=up(t);if(o){let n=qn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ha,"getQuoteError");function fm(t,e,o){let n=!1;t&&(n=Ip(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=uo(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(yp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(co(e)),percentageChange:N(Je(co(t)??"",co(e)??""),null,2)}:Ui(t,e)?r.quoteUpdate={type:0}:zi(t,e)?r.quoteUpdate={type:1}:qi(t,e)&&(r.quoteUpdate={type:2}));let s=Sp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(fm,"generateWarnings");function Or(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(Or,"handleQuoteErrors");function Ga(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),d=y().blockchains(),m=y().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:C}=dm();return gC(()=>S,[]),{loading:C,fetch:i(async T=>{let k=T.selectedWallets,v=T?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await g(b,!0).then(x=>{let{result:w}=x;Fr({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let I={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(I);let W={slippage:f.toString(),disabledSwappersGroups:c},M=fm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});M.quoteUpdate&&s(!1),l();let Q=!!M.balance,L=fC(o.toString(),w,gp(k),W,!Q,{blockchains:d,tokens:m});return{quote:I,swap:L,error:null,warnings:M}})}catch(x){return Or(x)}},"fetch"),cancelFetch:S}}i(Ga,"useConfirmSwap");var xC=SC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${hm}`]:{width:"$48",height:"$48"}}),bC=ja({flexGrow:1,paddingRight:"$10"}),IC=ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),EC=ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function ym(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=vC(),[l,p]=on(""),u=!n,[c,d]=on(!1),[m,f]=on(!1),{isActiveTab:g}=ne(),S=y().getDisabledLiquiditySources(),C=wC(S),{manager:h}=hC(),{fetch:T,loading:k,cancelFetch:v}=Ga(),[E,b]=on({swap:null,error:null,warnings:null}),[x,w]=on(!1),I=i(async({selectedWallets:H,customDestination:A})=>{let te=await T?.({selectedWallets:H,customDestination:A});return b(te),te},"onConfirmSwap"),W=i(async()=>{if(E.swap&&n)try{await h?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let H=`../${U.swaps}/${E.swap.requestId}`;s(H,{replace:!0}),setTimeout(()=>{e("")},0)}catch(H){p("Error: "+H?.message)}},"addNewSwap"),M=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await M()},"onStartConfirmSwap"),L=i(async()=>{b({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(H=>{b(H)}).catch(H=>console.error(H))},"onRefresh");Ur(()=>{!!C.current.length&&!S.length&&L(),C.current=S},[S.length]),Ur(()=>{u&&v()},[u]),Ur(()=>{u&&d(u)},[u]),Ur(()=>{u||T({selectedWallets:o,customDestination:r}).then(H=>b(H)).catch(H=>console.error(H))},[]),kC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=E.warnings?.quote??null,Y=E.error,re=[];if(l&&re.push(we.createElement(gm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&re.push(we.createElement(gm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Kn(E.warnings.quoteUpdate)})),V||Y){let H=`../${U.settings}`;re.push(we.createElement(jo,{warning:V,error:Y,couldChangeSettings:!1,refetchQuote:L,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(H)}))}return we.createElement(le,{header:{title:Va.t("Confirm Swap"),onWallet:()=>{let H=`../${U.wallets}`;s(H)}},footer:we.createElement(xC,null,we.createElement("div",{className:bC()},we.createElement(yC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:Q},Va.t("Start Swap"))),we.createElement(hm,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},we.createElement(TC,{size:24})))},c&&we.createElement(Yc,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),we.createElement(ue,null,we.createElement("div",{className:EC()},we.createElement(CC,{variant:"title",size:"small"},Va.t("You get")),we.createElement("div",{className:IC()},we.createElement(lr,{onClick:!k&&!c&&!x?L:void 0}))),we.createElement(Xa,{size:"12"}),Jp(re.map((H,A)=>({element:H,key:`alert-${A}`})),we.createElement(Xa,{size:10})),re.length>0?we.createElement(Xa,{size:10}):null,we.createElement(io,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(ym,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as QC}from"@rango-dev/queue-manager-react";import{Divider as Am,NotFound as HC,styled as GC}from"@rango-dev/ui";import At,{useState as VC}from"react";import{useNavigate as XC}from"react-router-dom";import{i18n as WC}from"@lingui/core";import{Divider as wm,GroupedVirtualizedList as LC,Skeleton as MC,SwapListItem as vm,Typography as BC}from"@rango-dev/ui";import Oe,{useCallback as xm,useEffect as _C,useRef as PC,useState as $C}from"react";function Sm(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(Sm,"calculateGroupsSoFar");import{css as AC,darkTheme as NC,styled as nn}from"@rango-dev/ui";var Ka=AC(),Cm=nn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ya=nn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ka}`]:{$$color:"$colors$neutral600",[`.${NC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Za=nn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Tm=nn("div",{gap:"$10",display:"flex",flexDirection:"column"}),km=nn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var DC=10;function Ja(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=$C([]),l=PC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=xm(Sm,[]),m=xm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,DC),s(d(u,l.current)))},[e.length]);if(_C(()=>{r||m()},[r,m]),r){let f=[1,2];return Oe.createElement(Oe.Fragment,null,[f,f].map((S,C)=>Oe.createElement(Ya,{key:C},Oe.createElement(Za,null,Oe.createElement(MC,{variant:"text",width:60,size:"small"}),Oe.createElement(wm,{size:16})),Oe.createElement(wm,{size:4}),Oe.createElement(Tm,null,S.map((T,k)=>Oe.createElement(vm,{isLoading:!0,key:k}))))))}return Oe.createElement(LC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>Oe.createElement(Ya,null,Oe.createElement(Za,null,Oe.createElement(BC,{variant:"label",size:"medium",className:Ka()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],h=S.steps[S.steps.length-1];return Oe.createElement(Cm,{key:S.requestId},Oe.createElement(vm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===WC.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:h.toLogo,displayName:h.toSymbol},blockchain:{image:h.toBlockchainLogo||""},amount:N(h.outputAmount||h.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(h.outputAmount||h.expectedOutputAmountHumanReadable)}}}))}})}i(Ja,"HistoryGroupedList");import{CloseIcon as OC,IconButton as UC,SearchIcon as zC,TextField as qC}from"@rango-dev/ui";import rn from"react";import{styled as FC}from"@rango-dev/ui";var bm=FC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return rn.createElement(qC,{prefix:rn.createElement(bm,null,rn.createElement(zC,{color:"black"})),suffix:!!s.length&&rn.createElement(UC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},rn.createElement(OC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Et,"SearchInput");import{i18n as zr}from"@lingui/core";import Im from"dayjs";var Em=i(t=>{let e=new Map([["today",{title:zr.t("Today"),swaps:[]}],["week",{title:zr.t("This week"),swaps:[]}],["month",{title:zr.t("This month"),swaps:[]}],["year",{title:zr.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=Im();t.forEach(p=>{let u=Number(p.creationTime),c=Im(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),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var jC=GC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),KC=i((t,e)=>t?.length?t.filter(o=>dt(o.fromBlockchain,e)||dt(o.toBlockchain,e)||dt(o.toSymbol,e)||dt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Nm(){let t=XC(),{manager:e,state:o}=QC(),n=tt(e).map(({swap:c})=>c),[r,a]=VC(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>dt(c.inputAmount,r)||dt(c.status,r)||KC(c.steps,r)||dt(c.requestId,r)));let u=!p?.length&&!s;return At.createElement(le,{header:{title:qr.t("History")}},At.createElement(ue,null,At.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),At.createElement(Am,{size:"16"}),At.createElement(jC,null,u&&At.createElement(km,null,At.createElement(Am,{size:32}),At.createElement(HC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&At.createElement(Ja,{list:p,onSwapClick:t,groupBy:Em,isLoading:s}))))}i(Nm,"HistoryPage");import{i18n as fT}from"@lingui/core";import{Button as gT,Divider as Xm,styled as hT,WarningIcon as yT}from"@rango-dev/ui";import ST from"bignumber.js";import Qe,{useEffect as jm,useState as Km}from"react";import{useNavigate as CT}from"react-router-dom";import{i18n as tT}from"@lingui/core";import{Header as oT}from"@rango-dev/ui";import Qt,{useEffect as nT,useState as rT}from"react";import{i18n as ZC}from"@lingui/core";import{Divider as es,FullExpandedQuote as JC,Typography as RC}from"@rango-dev/ui";import fe from"react";import{styled as Ra}from"@rango-dev/ui";var Wm=Ra("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Lm=Ra("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Mm=Ra("div",{width:"146px"});import{i18n as an}from"@lingui/core";import{Select as YC}from"@rango-dev/ui";import Bm from"react";function Qr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:an.t("Smart Routing")},{value:"FEE",label:an.t("Lowest Fee")},{value:"SPEED",label:an.t("Fastest Transfer")},{value:"NET_OUTPUT",label:an.t("Maximum Return")},{value:"PRICE",label:an.t("Maximum Output")}];return Bm.createElement(Mm,null,Bm.createElement(YC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Qr,"SelectStrategy");var _m=3;function sn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:d,toToken:m,sortStrategy:f,error:g}=j(),{slippage:S,customSlippage:C}=y(),h=y().tokens(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!d||!m||!u)return null;let I={requestAmount:u.requestAmount,...w};return uo(I,{fromToken:d,toToken:m,userSlippage:v,tokens:h})},"getQuoteWarning"),b=g?.type===0||g?.type===1,x=u?.results?Vn(f,u?.results):[];return fe.createElement(fe.Fragment,null,a&&fe.createElement(fe.Fragment,null,fe.createElement(Lm,null,fe.createElement(RC,{size:"xmedium",variant:"title"},ZC.t("Sort by")),fe.createElement(Qr,{container:T})),fe.createElement(es,{size:"10"})),e&&Array.from({length:_m},(w,I)=>fe.createElement(fe.Fragment,{key:I},s?fe.createElement(JC,{loading:!0}):fe.createElement(tn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==_m-1&&fe.createElement(es,{size:16}))),!e&&fe.createElement(fe.Fragment,null,k?x.map((w,I)=>{let W=E(w),M=Ha(w.swaps),Q=x.length-1===I;return fe.createElement(fe.Fragment,{key:w.requestId},fe.createElement(io,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:M?.options||null,warning:W,fullExpandedMode:s,onClick:L=>{M||c("warning",W),c("error",M?.options||null),o(L)},type:"list-item"}),!Q&&fe.createElement(es,{size:16}))}):b&&fe.createElement(Wm,null,fe.createElement(Vo,{size:s?"large":"small",error:g,fetch:n}))))}i(sn,"Quotes");import{darkTheme as eT,styled as Pm}from"@rango-dev/ui";var $m=Pm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${eT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Dm=Pm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var iT=100;function ts(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=rT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",d=Po();return nT(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},iT):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),Qt.createElement($m,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ur()}`,id:ye.EXPANDED_BOX_ID},Qt.createElement(oT,{title:tT.t("Routes"),suffix:Qt.createElement(Qt.Fragment,null,Qt.createElement(Qr,{container:d}),Qt.createElement(eo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Qt.createElement(Dm,null,Qt.createElement(sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Po(),onClickOnQuote:n,fullExpandedMode:c})))}i(ts,"ExpandedQuotes");import{i18n as Hm}from"@lingui/core";import{SwapInput as Gm}from"@rango-dev/ui";import ln from"react";import{ReverseIcon as lT}from"@rango-dev/ui";import ns from"react";import{keyframes as aT,styled as Fm}from"@rango-dev/ui";var os=450,sT=aT({"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)"}}),Om=Fm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Um=Fm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${sT} ${os}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 rs(){let t=j.use.switchFromAndTo();return ns.createElement(Om,null,ns.createElement(Um,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},os),t()}},ns.createElement(lT,{size:12})))}i(rs,"SwitchFromAndToButton");import{styled as zm}from"@rango-dev/ui";var qm=zm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Qm=zm("div",{position:"relative"});function is(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:d,outputAmount:m,outputUsdValue:f,selectedQuote:g}=j(),{connectedWallets:S,getBalanceFor:C}=R(),h=a?C(a):null,T=Nn(h)?.amount??"0",k=s&&a?N(h?.amount,h?.decimals):"0",v=!!s&&El(S,s.name),E=!Di(g,c,d),b=!Di(g,c,f),x=!d||!f||!f.gt(0)?null:Je(d.toString(),f.toString());return ln.createElement(qm,null,ln.createElement(Qm,null,ln.createElement(Gm,{label:Hm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(d,4,4),realUsdValue:E?void 0:pe(d),error:E?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),ln.createElement(rs,null)),ln.createElement(Gm,{sharpBottomStyle:!r&&(!!g||e),label:Hm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Je(d,f),2,2),warningLevel:wt(x??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?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(is,"Inputs");import{useCallback as pT,useEffect as cT,useRef as uT,useState as mT}from"react";function Vm(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Vm,"useFetchAllQuotes");var dT=600;function Hr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Vm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=R.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:h,updateQuotePartialState:T}=j(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=y(),I=y().getLiquiditySources(),W=y().getDisabledLiquiditySources(),M=y().excludeLiquiditySources(),[Q,L]=mT(!0),V=uT(c),Y=v??k,H=!p||!u||$e(p,u)||!Do(c),A=i(Z=>{L(Z)},"resetState"),te=i(Z=>{let{fromToken:me,toToken:he,inputAmount:_,liquiditySources:ze,excludeLiquiditySources:P,disabledLiquiditySources:X,slippage:ie,affiliateRef:Ne,affiliatePercent:Ge,affiliateWallets:We}=Z;if(Q||A(!0),!H&&me&&he){g();let _e=fp({fromToken:me,toToken:he,inputAmount:_,liquiditySources:ze,excludeLiquiditySources:P,disabledLiquiditySources:X,wallets:s,slippage:ie,affiliateRef:Ne,affiliatePercent:Ge,affiliateWallets:We,enableCentralizedSwappers:a});Ul("experimentalRoute",r)&&(_e.experimental=!0),e(_e).then(Ke=>{let Le=Vn(f,Ke.results),qe=Np(m,Le,Ke.requestAmount);L(!1),T("quotes",Ke),h(qe),Fr({diagnosisMessages:Ke.diagnosisMessages,requestId:qe?.requestId||"",swaps:qe?.swaps});let Cn=qe&&uo(qe,{fromToken:me,toToken:he,userSlippage:Y,tokens:l});T("warning",Cn)}).catch(Ke=>{let{error:Le}=Or(Ke);(Le?.type===0||Le?.type===1)&&g(),Le?.type!==2&&(T("error",Le),L(!1))})}},"fetch"),q=pT(dl(Z=>{te(Z)},dT),[H]);return cT(()=>{if(!t){L(!1);return}if(w!=="success")return;if(H){L(!1),(m||S||C)&&g();return}if(!Do(c)||d?.eq(0)){A(!1),o();return}g(),A(!0);let Z=te;return V.current&&V.current!=c&&(Z=q),V.current=c,Z({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:M,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,H,I?.length,n,W.length,Y,b,E,JSON.stringify(x)]),{fetch:()=>te({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:M,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:Q}}i(Hr,"useSwapInput");var TT=hT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),kT=300;function Ym(){let t=CT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=j(),[f,g]=Km(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Nr(),{fetch:h,loading:T}=Hr({refetchQuote:a}),{config:k,fetchStatus:v}=y(),{connectedWallets:E}=R(),{isActiveTab:b}=ne(),[x,w]=Km(!1),W=lp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),M=_l(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new ST(n).gt(0)&&!vp(e,o),L=Q&&v==="success"&&T,re=(!M||M&&p?.results.length)&&(l||s);jm(()=>{c(),m("refetchQuote",!0)},[]),jm(()=>{g(Q)},[Q]);let H=(r||s)&&!x?h:void 0,A=i(q=>{M&&f?(g(!1),setTimeout(()=>{t(q)},kT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return Qe.createElement(TT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(gT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(yT,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?A(U.wallets):W.action==="confirm-warning"?w(!0):A(U.confirmSwap)}},W.title),header:{onWallet:()=>{A(U.wallets)},hasBackButton:!1,title:k.title||fT.t("Swap"),suffix:Qe.createElement(eo,{hidden:M?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>A(U.swaps),onClickSettings:()=>{A(U.settings)}})}},Qe.createElement(ue,null,Qe.createElement(is,{fetchingQuote:L,fetchMetaStatus:v,isExpandable:M,onClickToken:q=>{A(q==="from"?U.fromSwap:U.toSwap)}}),Qe.createElement(Xm,{size:"2"}),M?null:Qe.createElement(io,{quote:r,loading:L,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),A(U.routes)}:void 0}),re?Qe.createElement(Qe.Fragment,null,Qe.createElement(Xm,{size:"10"}),Qe.createElement(jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:h,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),A(U.confirmSwap)},onChangeSettings:()=>A(U.settings)})):null)),M?Qe.createElement(ts,{loading:L,onClickOnQuote:te,fetch:h,onClickRefresh:H,isVisible:f}):null)}i(Ym,"Home");import{i18n as Zm}from"@lingui/core";import{Alert as wT,Divider as vT,List as xT,ListItemButton as bT,Radio as IT,RadioRoot as ET,Typography as AT}from"@rango-dev/ui";import St from"react";function Ht(){let{setLanguage:t,language:e,config:o}=y(),n=ql,r=o?.language||Uo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Uo),resetLanguage:()=>t(null)}}i(Ht,"useLanguage");function Jm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Ht(),n=et(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:St.createElement(AT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:St.createElement(IT,{value:s}),start:St.createElement(p,null)}});return St.createElement(le,{header:{title:Zm.t("Language")}},St.createElement(ue,null,St.createElement(wT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),St.createElement(vT,{size:"8"}),St.createElement(ET,{value:t},St.createElement(xT,{type:St.createElement(bT,{title:Zm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Jm,"LanguagePage");import{i18n as Nt}from"@lingui/core";import{Button as BT,Checkbox as _T,Image as PT,ListItemButton as $T,NotFound as DT,Typography as FT}from"@rango-dev/ui";import Ue,{useState as OT}from"react";import{Checkbox as LT,Skeleton as ed}from"@rango-dev/ui";import cn from"react";import{styled as as}from"@rango-dev/ui";var pn=as("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ss=as("div",{width:80,display:"flex",justifyContent:"flex-end"}),ls=as("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as NT,styled as WT}from"@rango-dev/ui";var Rm=WT(NT,{height:61});var MT=30;function ps(){return cn.createElement(pn,null,Array.from(Array(MT),(t,e)=>cn.createElement(Rm,{hasDivider:!0,key:e,start:cn.createElement(ed,{variant:"circular",width:35,height:35}),title:cn.createElement(ed,{variant:"text",size:"large",width:90}),end:cn.createElement(LT,{checked:!1})})))}i(ps,"LoadingLiquiditySourceList");function cs({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=OT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=_n(o,n),u={Exchanges:Nt.t("Exchanges"),Bridges:Nt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(h=>c.includes(h.type)),m=d.length===d.filter(h=>h.selected).length,f=i(()=>{d.forEach(h=>{m?s(h.groupTitle):h.selected||s(h.groupTitle)})},"toggleAllSources"),g=d.map(h=>{let{selected:T,groupTitle:k,logo:v}=h;return{start:Ue.createElement(PT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ue.createElement(_T,{checked:T,disabled:l}),title:Ue.createElement(FT,{variant:"title",size:"xmedium"},Nt.t(k)),...h}}),S=i(h=>{let T=h.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(h=>dt(h.groupTitle,r))),Ue.createElement(le,{header:{title:Nt.t(t),suffix:Ue.createElement(ss,null,Ue.createElement(BT,{variant:"ghost",size:"xsmall",onClick:f},m?Nt.t("Deselect all"):Nt.t("Select all")))}},Ue.createElement(ue,{view:!0},Ue.createElement(Et,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Nt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Ue.createElement(ps,null),!C.length&&r?Ue.createElement(ls,null,Ue.createElement(DT,{title:Nt.t("No results found"),description:Nt.t("Try using different keywords")})):e==="success"&&Ue.createElement(pn,{disabled:l},C.map(h=>{let{groupTitle:T,...k}=h;return Ue.createElement(Ue.Fragment,{key:h.id},Ue.createElement($T,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(cs,"LiquiditySourcePage");import{i18n as UT}from"@lingui/core";import Gr from"react";import{useNavigate as zT}from"react-router-dom";function td(){let t=zT(),e=et(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Hr({refetchQuote:n}),u=i(m=>{r(m),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${U.settings}`,d=`../${U.wallets}`;return Gr.createElement(le,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:UT.t("Routes"),suffix:Gr.createElement(eo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Gr.createElement(ue,null,Gr.createElement(sn,{fetch:l,loading:p,onClickOnQuote:u})))}i(td,"RoutesPage");import{i18n as pd}from"@lingui/core";import{Divider as cd,getCategoriesCount as YT,SelectableCategoryList as ZT}from"@rango-dev/ui";import Wt,{useState as ud}from"react";import{i18n as us}from"@lingui/core";import{Divider as sd,Image as GT,ListItemButton as VT,NotFound as XT,Typography as ld}from"@rango-dev/ui";import ot,{useEffect as jT,useState as KT}from"react";var od=i((t,e,o)=>t.filter(n=>wn(n.type,o)).filter(n=>Tt(n.name,e)||Tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as qT,styled as nd}from"@rango-dev/ui";var rd=nd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vr=nd(Ho,{padding:0,margin:0,listStyle:"none",[`& ${qT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as QT,Skeleton as id}from"@rango-dev/ui";import Xr from"react";var HT=20;function ad(){return Xr.createElement(Vr,null,Array.from(Array(HT),t=>Xr.createElement(QT,{key:t,hasDivider:!0,start:Xr.createElement(id,{variant:"circular",width:35,height:35}),title:Xr.createElement(id,{variant:"text",size:"large",width:90})})))}i(ad,"LoadingBlockchainList");function ms(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=KT(e),{fetchStatus:l}=y();jT(()=>{s([...od(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?ot.createElement(ot.Fragment,null,ot.createElement(sd,{size:32}),ot.createElement(XT,{title:us.t("No results found"),description:us.t("Try using different keywords")})):ot.createElement(Vr,{as:"ul",key:`${r}-${o}`},a.map(u=>ot.createElement(VT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:ot.createElement(GT,{src:u.logo,size:30}),title:ot.createElement(ld,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return ot.createElement(rd,null,ot.createElement(ld,{variant:"label",size:"large"},us.t("Select Blockchain")),ot.createElement(sd,{size:4}),l==="loading"&&ot.createElement(ad,null),l==="success"&&p())}i(ms,"BlockchainList");function ds(t){let{type:e}=t,o=et(),[n,r]=ud(""),[a,s]=ud("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),m=YT(c)!==1;return Wt.createElement(le,{header:{title:pd.t("Select Blockchain")}},Wt.createElement(ue,{view:!0},m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(ZT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Wt.createElement(cd,{size:24})),Wt.createElement(Et,{value:n,autoFocus:!0,placeholder:pd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Wt.createElement(cd,{size:16}),Wt.createElement(ms,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ds,"SelectBlockchainPage");import{i18n as Jr}from"@lingui/core";import{Divider as Md}from"@rango-dev/ui";import ao,{useState as fk}from"react";import{useNavigate as gk}from"react-router-dom";import{i18n as hs}from"@lingui/core";import{BlockchainsChip as jr,Divider as gd,Image as hd,Skeleton as ok,Tooltip as nk,Typography as ys}from"@rango-dev/ui";import Ee from"react";import{useEffect as ek}from"react";var md=["ETH","COSMOS","OSMOSIS"];function fs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(JT),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(RT(s)),r=n.splice(a)}return{list:n,more:r}}i(fs,"prepare");function JT(t,e){let o=md,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(JT,"sortByMostUsedBlockchains");function RT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(RT,"generateSortByPreferredBlockchainsFor");function dd(t,e){return!!e.list.find(o=>o.name===t)}i(dd,"isInVisibleList");function gs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();ek(()=>{if(e?.selected){let a=fs(t,o,e);dd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=fs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(gs,"usePrepareBlockchainList");import{styled as tk}from"@rango-dev/ui";var fd=tk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var rk=12;function Ss(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=gs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return Ee.createElement(Ee.Fragment,null,Ee.createElement(gd,{size:12}),Ee.createElement(ys,{variant:"label",size:"large"},hs.t("Select Blockchain")),Ee.createElement(gd,{size:12}),Ee.createElement(fd,null,l==="loading"&&Array.from(Array(rk),f=>Ee.createElement(ok,{key:f,variant:"rounded",height:50})),l==="success"&&Ee.createElement(Ee.Fragment,null,Ee.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ee.createElement(ys,{variant:"body",size:"xsmall",color:"secondary500"},hs.t("All"))),s.list.map(f=>Ee.createElement(nk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},Ee.createElement(jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ee.createElement(hd,{src:f.logo,size:30})))),d?Ee.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ee.createElement(hd,{src:s.more[0].logo,size:30})):null,m?Ee.createElement(jr,{onClick:a,key:"more-blockchains"},Ee.createElement(ys,{variant:"body",size:"xsmall",color:"secondary500"},hs._("More +{count}",{count:s.more.length}))):null)))}i(Ss,"BlockchainsSection");import{i18n as As}from"@lingui/core";import{darkTheme as Ed,Divider as Wo,ExternalLinkIcon as sk,Image as lk,ListItemButton as pk,NotFound as ck,PinIcon as uk,Skeleton as Ad,Typography as Zr,VirtualizedList as mk}from"@rango-dev/ui";import G,{useEffect as Nd,useState as Wd}from"react";import{Divider as bd,ListItem as ak,Skeleton as un}from"@rango-dev/ui";import ct from"react";import{css as No,darkTheme as yd,ImageContainer as ik,styled as nt,Typography as Sd}from"@rango-dev/ui";var Cs=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ts=No({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ks=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ws=No({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${yd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),vs=No({}),xs=No(),Cd=nt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),bs=nt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kr=nt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ts}`]:{[`& .${ws}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${vs}`]:{bottom:"-15px"},[`& .${Cs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Is=nt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Es=nt(Sd,{}),Td=nt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${xs}`]:{$$color:"$colors$neutral600",[`.${yd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yr=nt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),OO=nt("div",{display:"flex",alignItems:"center"}),kd=nt("div",{position:"relative",[`& ${ik}`]:{borderRadius:"$xm",overflow:"hidden"}}),wd=nt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),vd=nt(Sd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),xd=nt("a",{"& svg:hover":{color:"$colors$info"}});function Id(t){return ct.createElement(Kr,null,Array.from(Array(t.size),e=>ct.createElement(ak,{key:e,hasDivider:!0,start:ct.createElement(un,{variant:"circular",width:35,height:35}),end:ct.createElement(Yr,null,ct.createElement(un,{variant:"text",size:"large",width:70}),ct.createElement(bd,{size:4}),ct.createElement(un,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(un,{variant:"text",size:"large",width:90}),ct.createElement(bd,{size:4}),ct.createElement(un,{variant:"text",size:"medium",width:90}))})))}i(Id,"LoadingTokenList");var Ns=20,dk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:Ts()},o?G.createElement("div",{className:Cs()},o):G.createElement(bs,{className:ks()},G.createElement(Zr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(Is,{css:a},G.createElement(Es,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${ws()} ${!o&&vs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Wo,{size:4,direction:"horizontal"}),G.createElement(xd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(sk,{size:12}))))},"renderDesc");function Ld(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Wd(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Wd(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=y(),g=i(()=>{s(e.slice(0,a.length+Ns))},"loadNextPage");Nd(()=>{c(e.length>a.length)},[a.length]),Nd(()=>{s(e.slice(0,Ns))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Wo,{size:32}),G.createElement(ck,{title:As.t("No results found"),description:As.t("Try using different keywords")})):G.createElement(mk,{endReached:u?g:void 0,itemContent:C=>{let h=a[C],T=Nn(d(h)),k=h.address||"",v=p.find(I=>I.name===h.blockchain),E=nr(v?.color||"",Yp(v?.color||"")?5:125),b=nr(v?.color||"",-100),x={$$color:E,[`.${Ed} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Ed} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(pk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${h.symbol}${h.address}`,id:`${h.symbol}${h.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:G.createElement(kd,null,G.createElement(lk,{src:h.image,size:30}),f(h,t.type)&&G.createElement(wd,null,G.createElement(uk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||h.name||!h.name&&!k?G.createElement(bs,null,G.createElement(Zr,{variant:"title",size:"xmedium"},h.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(Is,{css:x},G.createElement(Es,{variant:"body",size:"xsmall",css:w},h.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?dk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:w,name:h.name,url:v.info.addressUrl.split("{wallet}").join(k)}):h.name||void 0,end:m?G.createElement(Yr,null,G.createElement(Ad,{variant:"text",size:"large",width:70}),G.createElement(Wo,{size:4}),G.createElement(Ad,{variant:"text",size:"medium",width:50})):T&&G.createElement(Td,null,G.createElement(vd,{variant:"title",size:"small"},T.amount),G.createElement("div",null),T.usdValue&&G.createElement(Zr,{variant:"body",className:xs(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(Cd,null,G.createElement(Zr,{variant:"label",size:"large"},As.t("Select Token")),G.createElement(Wo,{size:4}),l==="loading"&&G.createElement(Id,{size:Ns}),l==="success"&&G.createElement(Kr,{as:"ul"},S()))}i(Ld,"TokenList");function Ws(t){let{type:e}=t,o=gk(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=R.use.getBalanceFor(),[d,m]=fk(""),g=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),h=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:Jr.t("Source"),destination:Jr.t("Destination")};return ao.createElement(le,{header:{title:Jr.t("Swap {type}",{type:k[e]})}},ao.createElement(ue,null,ao.createElement(Ss,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(U.blockchains),onChange:v=>{h(v)}}),ao.createElement(Md,{size:24}),ao.createElement(Et,{value:d,autoFocus:!0,placeholder:Jr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:v=>m(v.target.value)}),ao.createElement(Md,{size:16}),ao.createElement(Ld,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{T(v);let E=S.find(b=>v.blockchain===b.name);E&&h(E),n()}})))}i(Ws,"SelectSwapItemsPage");import{i18n as _s}from"@lingui/core";import{Alert as Uk,Button as zk,styled as qk}from"@rango-dev/ui";import so from"react";import{useInRouterContext as Qk,useSearchParams as Hk}from"react-router-dom";import{i18n as Fd}from"@lingui/core";import{Divider as Ck,InfoIcon as Tk,TextField as kk,Tooltip as wk,Typography as Od}from"@rango-dev/ui";import ut from"react";import{Chip as hk,styled as mn,TextField as yk}from"@rango-dev/ui";var Bd=mn("div",{paddingTop:"$5",padding:"$10 $5"}),_d=mn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${yk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Pd=mn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rr=mn("div",{maxWidth:"280px",padding:"$10"}),$d=mn(hk,{width:"61px",flexShrink:0});import{i18n as Ls}from"@lingui/core";import{Typography as Sk}from"@rango-dev/ui";import dn from"react";function Dd(){return dn.createElement(Rr,null,dn.createElement(Sk,{variant:"label",size:"medium",color:"neutral700"},Ls.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),dn.createElement("br",null),dn.createElement("br",null),dn.createElement("b",null,Ls.t("Warning")),":",Ls.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(Dd,"SlippageTooltipContent");function Ms(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return ut.createElement(Bd,null,ut.createElement(Pd,null,ut.createElement(Od,{variant:"title",size:"xmedium"},Fd.t("Slippage tolerance per swap")),ut.createElement(Ck,{direction:"horizontal",size:4}),ut.createElement(wk,{container:B(),side:"top",sideOffset:4,content:ut.createElement(Dd,null)},ut.createElement(Tk,{color:"gray"}))),ut.createElement(_d,null,Ql.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement($d,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(kk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Xl&&s<=Vl?n(s):n(null)},suffix:o&&ut.createElement(Od,{variant:"body",size:"small"},"%"),placeholder:Fd.t("Custom")})))}i(Ms,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as Ud,BridgesIcon as vk,ChevronRightIcon as Bs,DarkModeIcon as zd,Divider as ei,ExchangeIcon as xk,InfinityIcon as bk,InfoIcon as Ik,LanguageIcon as Ek,LightModeIcon as qd,List as Ak,ListItem as Nk,ListItemButton as Wk,Skeleton as Lk,styled as Mk,Switch as Bk,Tabs as _k,Tooltip as Pk,Typography as rt}from"@rango-dev/ui";import F from"react";import{useNavigate as $k}from"react-router-dom";var Dk=Mk("div",{width:"202px",height:"$40"}),Fk=[{id:"light",icon:F.createElement(qd,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:F.createElement(zd,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:F.createElement(Ud,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],Ok=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Ud,{...e});case"dark":return F.createElement(zd,{...e});default:return F.createElement(qd,{...e})}},"getThemeIcon");function Qd(){let t=$k(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Ht(),s=a.find(V=>V.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),d=Ze("theme",c),m=Ze("liquiditySource",c),f=Ze("language",c),g=y().infiniteApprove,S=y().toggleInfiniteApprove,C=_n(p,u),h=C.filter(V=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(V.type)),T=h.length,k=h.filter(V=>V.selected).length,v=C.filter(V=>V.type==="DEX"),E=v.length,b=v.filter(V=>V.selected).length,x=i((V,Y)=>{switch(l){case"loading":return F.createElement(Lk,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(rt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return F.createElement(rt,{variant:"body",size:"medium"},`${V} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:F.createElement(F.Fragment,null,x(k,T),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),onClick:()=>t(U.bridges),start:F.createElement(vk,{color:"gray",size:16})},I={id:"exchange-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:F.createElement(F.Fragment,null,x(b,E),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),start:F.createElement(xk,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:F.createElement(Ek,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(rt,{variant:"body",size:"medium"},s),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),onClick:()=>t(U.languages)},M={id:"infinite-approval-item",title:F.createElement(F.Fragment,null,F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),F.createElement(ei,{direction:"horizontal",size:4}),F.createElement(Pk,{side:"top",sideOffset:4,container:B(),content:F.createElement(Rr,null,F.createElement(rt,{variant:"label",size:"medium",color:"neutral700"},Ct.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.")))},F.createElement(Ik,{color:"gray"}))),start:F.createElement(bk,{color:"gray",size:16}),end:F.createElement(Bk,{checked:g}),onClick:S},Q={id:"theme-item",type:F.createElement(Nk,null),title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:F.createElement(Dk,null,F.createElement(_k,{container:B(),items:Fk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:Ok(n)},L=m?[]:[w,I];return f||L.push(W),L.push(M),!e?.singleTheme&&!d&&L.push(Q),F.createElement(Ak,{type:F.createElement(Wk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:L})}i(Qd,"SettingsLists");var Gk=qk("div",{paddingLeft:"$8"});function Hd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Hk(),r=Qk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return so.createElement(le,{header:{title:_s.t("Settings")}},so.createElement(ue,null,o&&so.createElement(Uk,{type:"info",variant:"alarm",title:_s.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:so.createElement(Gk,null,so.createElement(zk,{type:"secondary",size:"small",onClick:a},_s.t("Reset")))}),so.createElement(Ms,null),so.createElement(Qd,null)))}i(Hd,"SettingsPage");import{i18n as Lw}from"@lingui/core";import{cancelSwap as Mw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Bw}from"@rango-dev/queue-manager-react";import{Alert as _w}from"@rango-dev/ui";import Zs from"react";import{useParams as Pw}from"react-router-dom";import{i18n as Bt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as dw,getCurrentStep as fw,getRelatedWalletOrNull as gw}from"@rango-dev/queue-manager-rango-preset";import{Button as wf,CopyIcon as hw,Divider as yw,IconButton as Sw,LinkIcon as Cw,QuoteCost as Tw,StepDetails as kw,Typography as lo,useCopyToClipboard as ww}from"@rango-dev/ui";import{useWallets as vw}from"@rango-dev/wallets-react";import vf from"bignumber.js";import{PendingSwapNetworkStatus as pi}from"rango-types";import J,{useEffect as xf,useRef as xw,useState as bf}from"react";import{useNavigate as bw}from"react-router-dom";import{i18n as Gt}from"@lingui/core";var Vk=[Gt.t("Sunday"),Gt.t("Monday"),Gt.t("Tuesday"),Gt.t("Wednesday"),Gt.t("Thursday"),Gt.t("Friday"),Gt.t("Saturday")];function Gd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Gt.t("Today"):`${Vk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Gd,"timeSince");function Vd(t){return t.finishTime?Gd(parseInt(t.finishTime)):Gd(parseInt(t.creationTime))}i(Vd,"getSwapDate");import{PendingSwapNetworkStatus as ni}from"rango-types";import ri from"react";import{i18n as ti}from"@lingui/core";import{Button as Xd,Divider as Ps,MessageBox as Xk}from"@rango-dev/ui";import Vt from"react";var jd=i(({onCancel:t,onClose:e})=>Vt.createElement(Vt.Fragment,null,Vt.createElement(Ps,{size:20}),Vt.createElement(Xk,{type:"error",title:ti.t("Cancel Swap"),description:ti.t("Are you sure you want to cancel this swap?")}),Vt.createElement(Ps,{size:32}),Vt.createElement(Xd,{variant:"contained",type:"primary",size:"large",onClick:t},ti.t("Yes, Cancel it")),Vt.createElement(Ps,{size:12}),Vt.createElement(Xd,{variant:"outlined",type:"primary",size:"large",onClick:e},ti.t("No, Continue"))),"CancelContent");import{i18n as oi}from"@lingui/core";import{Button as Kd,Divider as $s,MessageBox as jk,Typography as Kk}from"@rango-dev/ui";import Lt from"react";var Yd=i(({onDelete:t,onClose:e})=>Lt.createElement(Lt.Fragment,null,Lt.createElement($s,{size:20}),Lt.createElement(jk,{type:"error",title:oi.t("Delete Transaction"),description:oi.t("Are you sure you want to delete this swap?")}),Lt.createElement($s,{size:32}),Lt.createElement(Kd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Delete it")),Lt.createElement($s,{size:12}),Lt.createElement(Kd,{variant:"outlined",type:"primary",size:"large",onClick:e},Lt.createElement(Kk,{variant:"title",size:"medium",color:"primary"},oi.t("No, Cancel")))),"DeleteContent");import{i18n as Ds}from"@lingui/core";import{PendingSwapNetworkStatus as Fs}from"rango-types";var Os={[Fs.WaitingForNetworkChange]:{type:"loading",title:Ds.t("Change Network")},[Fs.WaitingForConnectingWallet]:{type:"warning",title:Ds.t("Connect Wallet")},[Fs.NetworkChanged]:{type:"success",title:Ds.t("Network Changed")}};import{debug as Rd}from"@rango-dev/logging-core";import{MessageBox as Yk,Wallet as Zk}from"@rango-dev/ui";import{useWallets as Jk}from"@rango-dev/wallets-react";import Lo,{useState as Rk}from"react";import{styled as Zd}from"@rango-dev/ui";var Jd=Zd("div",{display:"flex",justifyContent:"center"}),Ez=Zd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var ef=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Jk(),[c,d]=Rk(null),m=n?.walletType,f=m?xi(u(m)):null,g=m?p(m):null;return Lo.createElement(Lo.Fragment,null,Lo.createElement(Yk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&Lo.createElement(Jd,null,Lo.createElement(Zk,{container:B(),title:g.name,image:g.img,type:m,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?d({providerType:m,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(m).catch(C=>Rd(C))}})),Lo.createElement(oo,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(h=>Rd(h)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Us(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ni.WaitingForNetworkChange||e===ni.WaitingForConnectingWallet||e===ni.NetworkChanged;return ri.createElement(oe,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&ri.createElement(ef,{type:Os[e].type,title:Os[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ni.WaitingForNetworkChange}),e==="delete"&&ri.createElement(Yd,{onClose:o,onDelete:n}),e==="cancel"&&ri.createElement(jd,{onClose:o,onCancel:r}))}i(Us,"SwapDetailsModal");import{i18n as fn}from"@lingui/core";import{Button as zs,Divider as ii,MessageBox as tf,TokenAmount as ew,Typography as qs}from"@rango-dev/ui";import Be from"react";import{useNavigate as tw}from"react-router-dom";function Qs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:d,diagnosisUrl:m}=t,f=tw();return Be.createElement(oe,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Be.createElement(tf,{type:"success",title:fn.t("Swap Successful")},Be.createElement(ew,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Be.createElement(ii,{size:12}),Be.createElement(qs,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Be.createElement(tf,{type:"error",title:fn.t("Transaction Failed"),description:d}),Be.createElement(ii,{size:32}),n==="success"&&Be.createElement(zs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Be.createElement(qs,{variant:"title",size:"medium",color:"neutral100"},fn.t("Done"))),Be.createElement(ii,{size:12}),m&&Be.createElement(Be.Fragment,null,Be.createElement(zs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},fn.t("Diagnosis")),Be.createElement(ii,{size:12})),Be.createElement(zs,{variant:"outlined",type:"primary",size:"large",onClick:o},Be.createElement(qs,{variant:"title",size:"medium",color:"primary"},fn.t("See Details"))))}i(Qs,"SwapDetailsCompleteModal");import mw from"react";import{i18n as lw}from"@lingui/core";import{Alert as Sf,IconButton as pw,LinkIcon as cw}from"@rango-dev/ui";import Xt,{Fragment as uw}from"react";import{Alert as rw,ChevronDownIcon as iw,IconButton as aw}from"@rango-dev/ui";import Bo,{useState as sw}from"react";import{css as gn,darkTheme as ow,styled as Mt,Typography as nw}from"@rango-dev/ui";var of=Mt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ai=Mt("div",{width:"100%"}),nf=Mt(Ho,{padding:"$0 $20 $20 $20"}),pq=Mt("div",{display:"flex",flexDirection:"column",gap:"$10"}),rf=Mt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),cq=Mt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Mo=gn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ow} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),af=gn({padding:"$5 0"}),si=gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),sf=gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),lf=gn({width:"100%",padding:"0 $20 $10"}),pf=Mt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),cf=Mt("div",{display:"flex",flexDirection:"column",gap:"$5"}),li=Mt(nw,{wordBreak:"break-word"});import{styled as Hs}from"@rango-dev/ui";var uf=Hs("div",{display:"flex",flexDirection:"column",gap:"$10"}),mf=Hs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),df=Hs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function ff(t){let{message:e}=t,[o,n]=sw(!1);return Bo.createElement(rw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Bo.createElement(aw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Bo.createElement(mf,{rotated:o},Bo.createElement(iw,{size:12,color:"gray"}))),footer:Bo.createElement(df,{open:o},Bo.createElement(li,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(ff,"FailedAlert");import{i18n as gf}from"@lingui/core";import{Alert as Gs,Button as hf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Vs}from"rango-types";import hn from"react";function yf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?hn.createElement(Gs,{type:"warning",title:n.shortMessage,action:hn.createElement(hf,{size:"xxsmall",type:"warning",onClick:()=>{o(Vs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},gf.t("Change"))}):r===Vs.WaitingForConnectingWallet?hn.createElement(Gs,{type:"warning",title:n.shortMessage,action:hn.createElement(hf,{size:"xxsmall",type:"warning",onClick:()=>{o(Vs.WaitingForConnectingWallet)}},gf.t("Connect"))}):hn.createElement(Gs,{type:"warning",title:n.shortMessage})}i(yf,"WarningAlert");function Xs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Xt.createElement(uf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,h=S&&a.status==="failed";return Xt.createElement(uw,{key:g},Xt.createElement(Sf,{type:S&&(C&&"loading"||h&&"error")||"success",title:d.description?`${d.description} Tx`:lw.t("View transaction"),action:d.url&&Xt.createElement(pw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Xt.createElement(cw,{size:12}))}))}),c&&Xt.createElement(Sf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Xt.createElement(yf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Xt.createElement(ff,{message:r}))}i(Xs,"SwapDetailsAlerts");var Cf=2e3;var Tf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ye(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ye(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Oo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ye(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ye(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:mw.createElement(Xs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function kf(t){if(Qo(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(kf,"getStepState");function js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=vw(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),d=j.use.retry(),m=ne.use.isActiveTab(),f=bw(),[g,S]=ww(Cf),C=xw(null),[h,T]=bf(null),[k,v]=bf(null),E=i(()=>{r(),T(null)},"onCancel"),b=be.use.getNotifications(),x=be.use.removeNotification(),w=b(),I=fw(e),W=I?.networkStatus;xf(()=>{w.find(qe=>qe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),xf(()=>{H?T(pi.WaitingForNetworkChange):W===pi.WaitingForConnectingWallet||W===pi.NetworkChanged?T(W):T(null)},[W]);let M=Tp(e),Q=I?dw(e,I):null,L=I?gw(e,I):null,V=Vd(e),Y=kp(e),re=i(Le=>!!l(Le)?.mobileWallet,"isMobileWallet"),H=W===pi.WaitingForNetworkChange&&!!Q&&!!L?.walletType&&(re(L.walletType)||a(L.walletType,Q)),A=H?s.bind(null,L.walletType,Q):void 0,te=Cp(e,I),q=Tf({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:T,message:te,blockchains:p,swappers:u}),Z=q.length,[me,he]=[e.steps[0],e.steps[Z-1]],_=he.outputAmount||he.expectedOutputAmountHumanReadable,ze=e.steps.reduce((Le,qe)=>Le+parseFloat(qe.feeInUsd||""),0),P=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,X=N(parseFloat(N(_,6,6))*(he.toUsdPrice||0),4,4),ie=N(parseFloat(e.inputAmount)*(me.fromUsdPrice||0),4,4),Ne=_?pe(new vf(_).multipliedBy(he.toUsdPrice||0)):"",Ge=pe(new vf(e.inputAmount).multipliedBy(me.fromUsdPrice||0)),We=Je(ie,X),_e=te.detailedMessage.content||te.shortMessage,Ke=e.status==="success"?Bt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:q[Z-1].to.token.displayName,conciseAddress:Wn(e.wallets[q[Z-1].to.chain.displayName]?.address||""),chain:q[Z-1].to.chain.displayName}}):J.createElement(cf,null,J.createElement(lo,{variant:"body",size:"medium",color:"neutral700",align:"center"},_e?"":Bt.t("Transaction was not sent."),M?`${Bt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:M.outputAmount,symbol:M.symbol,blockchain:M.blockchain}})}`:""),_e&&J.createElement(li,{align:"center",variant:"body",size:"medium",color:"neutral700"},J.createElement("b",null,"Reason:")," ",_e));return J.createElement(le,{header:{title:Bt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&J.createElement(So,null,J.createElement(wf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},J.createElement(lo,{size:"medium",variant:"label",color:"error"},Bt.t("Delete"))))},footer:Y&&!k&&J.createElement(wf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},Bt.t("Try again"))},J.createElement(ue,{compact:!0,view:!0},J.createElement(ai,null,J.createElement("div",{className:Mo()},J.createElement(lo,{variant:"label",size:"large",color:"neutral700"},`${Bt.t("Request ID")}:`),J.createElement("div",{className:si()},J.createElement(lo,{variant:"label",size:"small",color:"neutral700"},o),J.createElement(Sw,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(hw,{size:16,color:"gray"})),J.createElement(pf,{target:"_blank",href:`${il}/swap/${o}`},J.createElement(Cw,{size:16})))),J.createElement("div",{className:Mo()},J.createElement(lo,{variant:"label",size:"large",color:"neutral700"},`${Bt.t(e.finishTime?"Finished at":"Created at")}:`),J.createElement(lo,{variant:"label",size:"small",color:"neutral700"},V))),J.createElement("div",{className:sf()},J.createElement(Tw,{fee:N(String(ze),2,2),time:$o(vn(e.steps)),steps:Z}),J.createElement(Yo,{from:{price:{value:N(e.inputAmount,6,6),usdValue:ie,realUsdValue:Ge,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:Ne,realValue:_},token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image,displayName:q[Z-1].to.chain.displayName}},percentageChange:N(We,2,2),warningLevel:wt(We??0)})),J.createElement("div",{className:lf()},J.createElement(lo,{variant:"title",size:"small"},Bt.t("Swaps steps"))),J.createElement(yw,{size:8}),J.createElement(nf,{ref:C},q.map((Le,qe)=>{let Cn=qe,_o=kf(e.steps[qe]),Vf=_o==="error"||_o==="in-progress"||_o==="warning"||_o==="completed"&&qe===q.length-1;return J.createElement(kw,{key:Cn,step:Le,type:"swap-progress",ref:C,state:_o,hasSeparator:qe!==0,tabIndex:Cn,isFocused:Vf,tooltipContainer:B()})}))),J.createElement(Us,{state:h,onClose:()=>T(null),onCancel:E,onDelete:n,message:te.detailedMessage.content,currentStepWallet:L,walletButtonDisabled:!m}),J.createElement(Qs,{open:!!k,diagnosisUrl:P,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:X,realUsdValue:Ne,realValue:pe(_),percentageChange:N(We,2,2),token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image},description:Ke}))}i(js,"SwapDetails");import{i18n as ui}from"@lingui/core";import{Divider as Af,NotFound as Ww,Skeleton as Sn,Typography as mi}from"@rango-dev/ui";import ge from"react";import{i18n as Iw}from"@lingui/core";import{Divider as Ew,Skeleton as Aw,Typography as Nw}from"@rango-dev/ui";import Ce from"react";import{css as mt,styled as Ks}from"@rango-dev/ui";var If=Ks("div",{width:"100%",height:"100%",padding:"$10 $20"}),yn=Ks("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ci=Ks("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),wQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),vQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),xQ=mt({paddingTop:"$15",display:"flex"}),bQ=mt({padding:"$15 $0"}),IQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),EQ=mt({paddingBottom:"$10"}),AQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),NQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),WQ=mt({display:"flex",alignItems:"center"}),LQ=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Ef=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ys(){return Ce.createElement(If,null,Ce.createElement(Ro,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Nw,{variant:"title",size:"small"},Iw.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1}),Ce.createElement("div",{className:Ef()},Ce.createElement(Ew,{direction:"horizontal",size:20}),Ce.createElement(Aw,{height:22,variant:"rectangular"}))),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1})),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1})),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1}))))}i(Ys,"LoadingSwapDetails");function Nf(t){let{requestId:e,showSkeleton:o}=t;return ge.createElement(le,{header:{title:ui.t("Swap and Bridge"),suffix:ge.createElement(So,null)}},o&&ge.createElement(of,null,ge.createElement(ai,null,ge.createElement("div",{className:Mo()},ge.createElement(mi,{variant:"label",size:"large",color:"neutral700"},`${ui.t("Request ID")}:`),ge.createElement("div",{className:si()},ge.createElement(mi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})),ge.createElement(Af,{direction:"horizontal",size:4}),ge.createElement(Sn,{width:16,height:16,variant:"rectangular"}),ge.createElement(Af,{direction:"horizontal",size:4}),ge.createElement(Sn,{width:16,height:16,variant:"rectangular"}))),ge.createElement("div",{className:Mo()},ge.createElement(mi,{className:af(),variant:"label",size:"large",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})),ge.createElement(mi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})))),ge.createElement(Ys,null)),!o&&ge.createElement(rf,null,ge.createElement(Ww,{title:ui.t("Not found"),description:ui.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Nf,"SwapDetailsPlaceholder");function Wf(){let{manager:t,state:e}=Bw(),o=!e.loadedFromPersistor,n=tt(t),{requestId:r}=Pw(),a=et(),{fetchStatus:s}=y();if(!r)return Zs.createElement(_w,{containerStyles:{margin:"20px"},type:"error",title:Lw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:m})=>m.requestId===r):void 0,u=i(()=>{if(p?.id){let m=t?.get(p.id);m&&Mw(m)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(m){console.log(m)}},"onDelete"),d=p?.swap;return!d||l?Zs.createElement(Nf,{requestId:r,showSkeleton:l}):Zs.createElement(js,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(Wf,"SwapDetailsPage");function Lf(){return Lp(),Vi(),$w([{path:U.home,element:He.createElement(Ym,null)},{path:U.routes,element:He.createElement(td,null)},{path:U.fromSwap,children:[{index:!0,element:He.createElement(Ws,{type:"source"})},{path:U.blockchains,element:He.createElement(ds,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:He.createElement(Ws,{type:"destination"})},{path:U.blockchains,element:He.createElement(ds,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:He.createElement(Hd,null)},{path:U.languages,element:He.createElement(Jm,null)},{path:U.exchanges,element:He.createElement(cs,{sourceType:"Exchanges"})},{path:U.bridges,element:He.createElement(cs,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:He.createElement(Nm,null)},{path:U.swapDetails,element:He.createElement(Wf,null)}]},{path:U.wallets,element:He.createElement(qc,null)},{path:U.confirmSwap,element:He.createElement(ym,null)}])}i(Lf,"AppRoutes");import{useQueueManager as Vw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Xw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as jw}from"rango-sdk";import{useContext as Kw,useEffect as Yw,useState as Ff}from"react";import{globalCss as Dw}from"@rango-dev/ui";var Mf=i(()=>Dw({"@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')"})(),"globalFont");function Bf(){let{setWatermark:t}=ne();return{fetchApiConfig:i(async()=>{let o=await fetch(`${kt("BASE_URL")}/meta/dapp/config?apiKey=${kt("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(Bf,"useFetchApiConfig");import{useWallets as Fw}from"@rango-dev/wallets-react";import{useEffect as Ow,useRef as Uw}from"react";function _f(){let{connect:t,state:e}=Fw(),o=Uw({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Ow(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(_f,"useForceAutoConnect");import{isApprovalTX as zw,MainEvents as di,RouteEventType as Pf,StepEventType as $f,StepExecutionEventStatus as qw,useEvents as Qw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Df}from"react";function Js(){let t=y().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=be.use.setNotification(),r=Qw();Df(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===$f.TX_EXECUTION&&l.status===qw.TX_SENT&&!zw(p)||l.type===$f.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(di.StepEvent,a),()=>r.off(di.StepEvent,a)},[r,e.length]),Df(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Pf.FAILED||l.type===Pf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(di.RouteEvent,a),()=>r.off(di.RouteEvent,a)},[r,e.length])}i(Js,"useSubscribeToWidgetEvents");import{useManager as Hw}from"@rango-dev/queue-manager-react";import{useEffect as Gw}from"react";function Rs(){let{isSynced:t,syncNotifications:e}=be(),{manager:o,state:n}=Hw();Gw(()=>{be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(tt(o))},[be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Rs,"useSyncNotifications");function el(){_f(),Mf(),Js(),Rs();let t=y().blockchains(),{canSwitchNetworkTo:e}=Sr(),[o,n]=Ff(""),[r,a]=Ff(),s=Kw($n),l=t.filter(jw),{fetchApiConfig:p}=Bf();Vw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Yw(()=>(Kt.init(),be.persist.hasHydrated()||be.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Xw(o)?.[0]&&n("")}),p().catch(console.log),Kt.destroy),[])}i(el,"useBootstrap");import{styled as Zw}from"@rango-dev/ui";var Of=Zw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function fi(){el();let{config:t}=y(),{activeTheme:e}=rr(t?.theme||{}),{activeLanguage:o}=Ht();return tl.createElement(Jw,{language:o},tl.createElement(Of,{id:"swap-container",className:e()},tl.createElement(Lf,null)))}i(fi,"Main");import{setSolanaSignerConfig as Sv}from"@rango-dev/signer-solana";import nl,{useEffect as Hf,useMemo as Cv}from"react";import{useState as Rw}from"react";var ev=i(()=>{let[t,e]=Rw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=gl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Uf=ev;import{checkWaitingForNetworkChange as tv,makeQueueDefinition as ov}from"@rango-dev/queue-manager-rango-preset";import{Provider as nv}from"@rango-dev/queue-manager-react";import{useWallets as rv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as iv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as av}from"rango-types";import sv,{useMemo as lv}from"react";function pv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=rv(),l=lv(()=>ov({API_KEY:t.apiKey||kt("API_KEY"),BASE_URL:kt("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:R.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},d=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),m=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(av),S=i(k=>{let{supportedChains:v}=s(k);return In(v)},"getSupportedChainNames"),C=e(),h={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:iv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return sv.createElement(nv,{queuesDefs:[l],context:h,onPersistedDataLoaded:k=>{tv(k)},isPaused:!T},t.children)}i(pv,"QueueManager");var zf=pv;import{useManager as fv}from"@rango-dev/queue-manager-react";import gv,{createContext as hv,useContext as yv}from"react";import{cancelSwap as cv,getCurrentBlockchainOfOrNull as uv,getCurrentStep as mv,getRelatedWalletOrNull as dv}from"@rango-dev/queue-manager-rango-preset";var gi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return tt(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&&cv(o)}getCurrentStepInfo(e){let o=mv(e);return{step:o,wallet:o?dv(e,o):null,network:o?uv(e,o):null}}};var qf=hv(void 0);function ol(t){let{manager:e}=fv(),o=ne.use.isActiveTab(),n=j.use.retry(),r=new gi(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=vl(a),p=R.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),d=y().swappers(),m=y().fetchStatus,f=Ht().resetLanguage,g=be().getNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Kt.forceClaim,history:r,wallets:{isLoading:s,details:a,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:d,loadingStatus:m},resetLanguage:f,notifications:{list:g}};return gv.createElement(qf.Provider,{value:S},t.children)}i(ol,"WidgetInfo");function Qf(){let t=yv(qf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Qf,"useWidget");function hi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Uf();return Hf(()=>{n&&r(n)},[n]),Cv(()=>{Ll({API_KEY:o?.apiKey||Tn,BASE_URL:o?.apiUrl||rl})},[o.apiKey,o.apiUrl]),Hf(()=>{t.config?.signers?.customSolanaRPC&&Sv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),nl.createElement(Dn,{config:o,onUpdateState:e},nl.createElement(zf,{apiKey:o.apiKey},nl.createElement(ol,null,t.children)))}i(hi,"WidgetProvider");function Gf(t){let e=t.config?.externalWallets;return yi.createElement(op,null,e?yi.createElement(fi,null):yi.createElement(hi,{config:t.config??Ni},yi.createElement(fi,null)))}i(Gf,"Widget");export{OV as EventSeverity,UV as MainEvents,YV as Networks,RV as PendingSwapNetworkStatus,zV as RouteEventType,Si as SUPPORTED_FONTS,qV as StepEventType,QV as StepExecutionBlockedEventStatus,HV as StepExecutionEventStatus,ye as UI_ID,jV as WalletEvents,ZV as WalletTypes,Gf as Widget,hi as WidgetProvider,Dn as WidgetWallets,ea as customizedThemeTokens,XV as readAccountAddress,Sr as useWallets,Qf as useWidget,GV as useWidgetEvents};
1
+ var jf=Object.defineProperty;var i=(t,e)=>jf(t,"name",{value:e,configurable:!0});import{EventSeverity as HV,MainEvents as GV,RouteEventType as VV,StepEventType as XV,StepExecutionBlockedEventStatus as jV,StepExecutionEventStatus as KV,useEvents as YV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as JV,useWallets as Tr,Events as RV}from"@rango-dev/wallets-react";import{Networks as t2,WalletTypes as o2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as r2}from"rango-types";import{UI_ID as Kf}from"@rango-dev/ui";var kn="c6381a79-2817-4602-83bf-6a641a409e32",al="https://api.rango.exchange",sl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Kf};var ll="Roboto",Ti=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as $i,Provider as zg}from"@rango-dev/wallets-react";import{isEvmBlockchain as qg}from"rango-sdk";import Dn,{createContext as Qg,useEffect as tp,useMemo as Hg,useRef as op}from"react";import{useEffect as fg}from"react";import{create as ug}from"zustand";import{subscribeWithSelector as mg}from"zustand/middleware";import{RangoClient as pg}from"rango-sdk";import{BlockchainCategories as tg,WalletState as dt}from"@rango-dev/ui";import{readAccountAddress as og}from"@rango-dev/wallets-react";import{detectInstallLink as ng,getCosmosExperimentalChainInfo as rg,isEvmAddress as ig,KEPLR_COMPATIBLE_WALLETS as Kv,Networks as Tl}from"@rango-dev/wallets-shared";import bi from"bignumber.js";import{isCosmosBlockchain as ag}from"rango-types";import Yf from"bignumber.js";var _e=new Yf(0);import{WalletTypes as Zf}from"@rango-dev/wallets-shared";var pl=[Zf.LEAP];import{BlockchainCategories as ki}from"@rango-dev/ui";import{TransactionType as wn}from"rango-sdk";function uo(t){return Array.from(new Set(t))}i(uo,"removeDuplicateFrom");function xi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(xi,"areEqual");function gl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(gl,"debounce");function vt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(vt,"containsText");function ml(t,e){return t.toLowerCase()===e.toLowerCase()}i(ml,"exactText");function dl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(dl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Po=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function fl(t,e,o){let n=!!e&&ml(e,t),r=!!o&&ml(o,t);return n!==r?n?-1:1:0}i(fl,"compareExactMatchText");function wi(t,e,o){let n=!!e&&vt(e,t),r=!!o&&vt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareContainsText");function vi(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(vi,"compareStartWithText");function hl(t,e,o){if(!o)return 0;let n=fl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=fl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r!==0)return r}return 0}i(hl,"compareWithSearchFor");var vn=i((t,e)=>{switch(e){case ki.ALL:return!0;case ki.UTXO:return t===wn.TRANSFER;case ki.OTHER:return t!==wn.TRANSFER&&t!==wn.COSMOS&&t!==wn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),yl=i(t=>Ti.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as Cl}from"bignumber.js";var $o=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 Cl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Cl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var xn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Do=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function le(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(le,"formatTooltipNumbers");function Ii(t){switch(!0){case t.connected:return dt.CONNECTED;case t.connecting:return dt.CONNECTING;case!t.installed:return dt.NOT_INSTALLED;default:return dt.DISCONNECTED}}i(Ii,"mapStatusToWalletState");function kl(t,e,o,n){return o.filter(r=>!pl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:f}=e(r),d=uo(f.map(h=>h.type)),m=Ii(t(r));return{title:a,image:s,link:ng(l),state:m,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d}})}i(kl,"mapWalletTypesToWalletInfo");function En(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(En,"walletAndSupportedChainsNames");function wl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(f=>f.chain===p)){let f={address:u,chain:p,walletType:t};a.push(f)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=og(p),f=l.length>0,d=l.includes(c),m=c===Tl.Unknown;if(f&&!d&&!m)return;let S=c===Tl.Unknown&&ig(u);if(m&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(wl,"prepareAccountsForWalletStore");function Yt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let f=u.from.blockchain,d=u.to.blockchain,m=a===o.swaps.length-1,h=c===p.length-1;(!m&&!h||m&&l!==f||e==="all")&&n.add(f),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Yt,"getQuoteWallets");function An(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(An,"isAccountAndWalletMatched");function vl(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 bi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:lg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(vl,"makeBalanceFor");function xl(t){return{...t,loading:!1,error:!0}}i(xl,"resetConnectedWalletState");var bl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new bi(a?.amount||_e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),_e)||_e).toString();return sg(r)},"calculateWalletUsdValue");function sg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(sg,"numberWithThousandSeparator");var lg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),Nn=i((t,e)=>{let o=rg(Object.entries(t).map(([,n])=>n).filter(ag));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 Il(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(Il,"compareTokenBalance");function Pe(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Pe,"areTokensEqual");function El(t){return t.sort((e,o)=>+(o.state===dt.CONNECTED)-+(e.state===dt.CONNECTED)||+(o.state===dt.DISCONNECTED||o.state===dt.CONNECTING)-+(e.state===dt.DISCONNECTED||e.state===dt.CONNECTING))}i(El,"sortWalletsBasedOnConnectionState");function Ln(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(Ln,"getConciseAddress");function Al({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Al,"getAddress");function Ei(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ei,"createTokenHash");function Mn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new bi(o?.usdPrice??_e).multipliedBy(o?.amount).toString():""},r=o?Ei({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Mn,"makeTokensBalance");var Nl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Wl(t){return t.map(e=>e.state).join("-")}i(Wl,"hashWalletsState");function Ll(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Ll,"filterBlockchainsByWalletTypes");function Ml(t,e){return e===tg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(vn(n,e))return!0;return!1})}i(Ml,"filterWalletsByCategory");var Ai={API_KEY:kn};function xt(t){return Ai[t]||""}i(xt,"getConfig");function Bl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ai=e,Ai}i(Bl,"initConfig");var _l=20,Pl=25,Ni="theme-widget",Fo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Pe(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Pe(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Wi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),$l=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Bn,$t=i(()=>Bn||(Bn=new pg(xt("API_KEY"),xt("BASE_URL")),Bn),"httpService");var cg=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"),Dt=cg;var ee=Dt(ug()(mg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.find(p=>p.chain===s.chain&&p.selected);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.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),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Mn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>An(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await $t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(S=>An(S,d)),h=p.find(S=>S.address===d.address&&S.blockChain===d.chain);return h?.failed&&m&&r&&a([m],n,!1),m&&h?{...d,explorerUrl:h.explorerUrl,balances:vl(h,n),loading:!1}:d});return{loading:!1,balances:Mn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(f=>An(f,c))?xl(c):c);return{loading:!1,balances:Mn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ei(o);return n[r]??null}}))));import{allProviders as dg}from"@rango-dev/provider-all";function _n(t,e){let o=dg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(_n,"matchAndGenerateProviders");function Dl(t,e){return _n(t,e).map(r=>r.config.type)}i(Dl,"configWalletsToWalletName");function Fl(t,e){let o=ee.use.clearConnectedWallet(),n=_n(t,e);return fg(()=>{o(),n=_n(t,e)},[t?.length]),{providers:n}}i(Fl,"useWalletProviders");import _g,{createContext as Pg,useContext as $g,useEffect as Dg,useRef as Fg}from"react";import{create as Mg}from"zustand";import{persist as Bg}from"zustand/middleware";var Li={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},gg={clientUrl:void 0},hg={liquiditySources:void 0},Ol=i((t,e,o)=>({config:{...Li,...t},iframe:gg,campaignMode:hg,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 a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Pn(t,e){return e.find(o=>o.name===t)?.displayName}i(Pn,"getBlockchainDisplayNameFor");function Ve(t,e){return e.find(o=>o.name===t)?.shortName}i(Ve,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Mi(t,e){return e.find(o=>Pe(o,t))??null}i(Mi,"findToken");function Bi(t,e){return e.find(o=>o.name===t)??null}i(Bi,"findBlockchain");function _i(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(_i,"isTokenNative");function $n(t,e){let o=t.map(a=>a.swapperGroup),n=[];return uo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i($n,"getUniqueSwappersGroups");function Ul(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ul,"sortLiquiditySourcesByGroupTitle");function Xe(t,e){return e?.[t]==="hidden"}i(Xe,"isFeatureHidden");function zl(t,e){return e?.[t]==="enabled"}i(zl,"isFeatureEnabled");var ql=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 a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let a=e().config,s=(o.type==="source"?a.from?.tokens:a.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>s&&Fo(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(vt(u.symbol,o.searchFor)||vt(u.address||"",o.searchFor)||vt(u.name||"",o.searchFor)):!0).sort((u,c)=>{let f=e().isTokenPinned(u,o.type),d=e().isTokenPinned(c,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let g=o.getBalanceFor(u),C=o.getBalanceFor(c),k=Il(g,C);if(k!==0)return k}let m=r.get(u.blockchain),h=r.get(c.blockchain),S=_i(u,m),T=_i(c,h);if(S!==T)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let g=hl(u,c,o.searchFor);if(g)return g}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:m&&h?m.sort-h.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Pe(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Ul)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await $t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=[],s=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),a.push(c)}),n.blockchains.sort((c,f)=>c.sort-f.sort).forEach(c=>{c.enabled&&p.has(c.name)&&r.set(c.name,c)}),t({_blockchainsMapByName:r,_tokens:a,_popularTokens:s,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as yg,English as Sg,Finland as Cg,French as Tg,German as kg,Greece as wg,Italian as vg,Japanese as xg,Netherlands as bg,Poland as Ig,Portuguese as Eg,Russian as Ag,Spanish as Ng,Swedish as Wg,Ukrainian as Lg}from"@rango-dev/ui";var Ql=[{title:"English",label:"English",local:"en",SVGFlag:Sg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ng},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Tg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:xg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Eg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:yg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ag},{title:"German",label:"Deutsch",local:"de",SVGFlag:kg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Lg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Wg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Cg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:bg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:wg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:vg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ig}],Uo="en";var Hl=[.5,1,3],Gl=1,Vl=5,Xl=100,jl=0;var Kl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Gl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},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 a=uo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),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,a=Xe("theme",n),s=Xe("language",n),l=Xe("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Uo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Yl(t){return Mg()(Bg((...e)=>({...ql(...e),...Kl(...e),...Ol(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(Yl,"createAppStore");var Zl=Pg(null);function y(){let t=$g(Zl);if(Dg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function Jl(t){let e=Fg();return e.current||(e.current=Yl(t.config)),_g.createElement(Zl.Provider,{value:e.current},t.children)}i(Jl,"AppStoreProvider");import{create as Ug}from"zustand";var Rl="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Rl),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 re=Dt(Ug()((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})}}))),Zt=new zo({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});var Fn=Qg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Gg(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Fl(s.wallets,l),{connectWallet:u,disconnectWallet:c}=ee(),f=op(),d=op();tp(()=>{n().catch(console.log)},[]),tp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let m=r.filter(qg).map(g=>g.name),h=i((g,C,k,v,E)=>{if(C===$i.ACCOUNTS)if(k){let b=En(E.supportedBlockchains),x=wl(g,k,m,b,E.isContractWallet);x.length&&u(x,a)}else c(g),d.current?d.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(C===$i.ACCOUNTS&&v.connected){let b=`${g}-${v.network}-${k}`;v.connected&&(f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(C===$i.NETWORK&&v.network){let b=`${g}-${v.network}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(g,C,k,v,E)},"onUpdateState"),S=re.use.isActiveTab(),T=Hg(()=>({onConnectWallet:g=>{f.current=g},onDisconnectWallet:g=>{d.current=g}}),[]);return Dn.createElement(Fn.Provider,{value:T},Dn.createElement(zg,{allBlockChains:r,providers:p,onUpdateState:h,autoConnect:!!S},t.children))}i(Gg,"Main");function On(t){let{config:e,...o}=t;return Dn.createElement(Jl,{config:e},Dn.createElement(Gg,{...o,config:e}))}i(On,"WidgetWallets");import Ci from"react";import Vg,{Fragment as Xg}from"react";import{MemoryRouter as jg,useInRouterContext as Kg}from"react-router";function np({children:t}){let o=Kg()?Xg:jg;return Vg.createElement(o,null,t)}i(np,"AppRouter");import{I18nManager as nv}from"@rango-dev/ui";import nl from"react";import qe from"react";import{useRoutes as zw}from"react-router-dom";var Q={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 go,useRef as Kn}from"react";import It from"bignumber.js";import{create as Rg}from"zustand";import{subscribeWithSelector as eh}from"zustand/middleware";import{getLastSuccessfulStep as Jg}from"@rango-dev/queue-manager-rango-preset";import kI from"bignumber.js";import{i18n as qo}from"@lingui/core";var Di={"Network Fee":qo.t("Network Fee"),"Swapper Fee":qo.t("Protocol Fee"),"Affiliate Fee":qo.t("Affiliate Fee"),"Outbound network fee":qo.t("Outbound Fee"),"Rango Fee":qo.t("Rango Fee")},Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],rp=30;import{i18n as nt}from"@lingui/core";import{RouteEventType as iI}from"@rango-dev/queue-manager-rango-preset";import $e from"bignumber.js";import{PendingSwapNetworkStatus as qn}from"rango-types";function Un(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Un,"isValidAddress");import{i18n as Me}from"@lingui/core";var te=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.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:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function ip(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(ip,"getQuoteErrorMessage");import{i18n as zn}from"@lingui/core";var Jt=i(()=>({connectWallet:zn.t("Connect Wallet"),swap:zn.t("Swap"),swapAnyway:zn.t("Swap anyway"),ethWarning:zn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ap(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(ap,"hasHighValueLoss");function sp(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(sp,"hasLimitError");function lp(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",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=nt.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=nt.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=nt.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=nt.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(lp,"getLimitErrorMessage");function pp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Jt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Jt().swap,action:"confirm-swap",disabled:!0}:s?{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(pp,"getSwapButtonState");function Oi(t,e,o){return!((!o||o.lte(_e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");var Yg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function Ui(t,e){let o=_e;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=Yg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new $e(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Qn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),_e)}i(Qn,"getTotalFeeInUsd");function zi(t){let e=_e;return e=e.plus(new $e(t.amount).multipliedBy(t.price||0)),e}i(zi,"getUsdFee");function cp(t){return t.reduce((e,o)=>e.plus(zi(o)),_e)}i(cp,"getTotalFeesInUsd");function up(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(up,"getFeesGroup");function mp(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(mp,"checkSlippageErrors");function dp(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(dp,"checkSlippageWarnings");function Hn(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(Hn,"getMinRequiredSlippage");function fp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(fp,"hasProperSlippage");function gp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:f,affiliateWallets:d,destination:m,enableCentralizedSwappers:h}=t,S=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:f??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:T,selectedWallets:S??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:h}}i(gp,"createQuoteRequestBody");function hp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(hp,"getWalletsForNewSwap");function mo(t){return t?.outputAmount||null}i(mo,"getQuoteOutputAmount");function yp(t,e){return new $e(e).div(new $e(t)).minus(1).multipliedBy(100).toNumber()}i(yp,"getPercentageChange");function Sp(t,e){let o=mo(t),n=mo(e);if(!o||!n)return!1;let r=je(o,n);return r?r<=-1:!0}i(Sp,"isOutputAmountChangedALot");function Cp(t,e,o){let n=t.validationStatus,r=Yt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>bp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new $e(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new $e(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=nt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=nt.t(" for swap")),s.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:Ve(s.asset.blockchain,o)}})})}i(Cp,"generateBalanceWarnings");function Gn(t,e){return(t?new $e(t):_e).multipliedBy(e||0)}i(Gn,"calcOutputUsdValue");function Qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==qn.NetworkChanged}i(Qo,"isNetworkStatusInWarningState");function Tp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case qn.WaitingForConnectingWallet:n=n||nt.t("Waiting for connecting wallet");break;case qn.WaitingForQueue:n=n||nt.t("Waiting for other running tasks to be finished");break;case qn.WaitingForNetworkChange:n=n||nt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Tp,"getSwapMessages");function kp(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(kp,"getLastConvertedTokenInFailedSwap");function wp(t){return t.status==="failed"}i(wp,"shouldRetrySwap");function vp(t,e,o,n,r,a){if(!n||t)return!0;let s=Yt({filter:"all",quote:n}),l=Yt({filter:"required",quote:n}),p=s.every(f=>r.some(d=>d.chain===f)),u=l.every(f=>r.some(d=>d.chain===f)),c=o&&a?Un(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(vp,"isConfirmSwapDisabled");function xp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(xp,"isTokensIdentical");function Xn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Xn,"getQuoteToTokenUsdPrice");function qi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(qi,"isNumberOfSwapsChanged");function Qi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!xi(o,n)}i(Qi,"isQuoteSwappersUpdated");function Hi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!xi(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Ep(t,e){return qi(t,e)||Qi(t,e)||Hi(t,e)}i(Ep,"isQuoteChanged");function bp(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(bp,"getRequiredBalanceOfWallet");function bt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(bt,"getPriceImpactLevel");function Ap(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Jg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Bi(a?a.toBlockchain:n.fromBlockchain,e),p=Bi(r.toBlockchain,e),u=Mi(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Mi(s,o),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:f}}i(Ap,"createRetryQuote");function fo(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Rt(o,t.requestAmount),l=Rt(n,t?.outputAmount??"");if(t&&s&&l){let c=je(s.toString(),l.toString());if(!!c&&ap(s,c)){let d=Qn(t?.swaps,r),m=bt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Hn(t.swaps),u=a>Vl;if(fp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:dp(t,a),minRequiredSlippage:p};return null}i(fo,"generateQuoteWarnings");function je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:yp(t.toString(),e.toString());return n&&n<0?n:null}i(je,"getPriceImpact");var Np=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"),jn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Wp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Lp=i(t=>{let e=i((o,n)=>{let r=Fi.indexOf(o.value),a=Fi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Rt=i((t,e)=>t?.usdPrice?new It(e||_e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),X=Dt(Rg()(eh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(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=_e;return Do(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Gn(e?.outputAmount,Xn(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 It(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:Rt(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 It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Rt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Ap(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Rt(s??null,u),outputUsdValue:new It(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?Rt(e.toToken,e.outputAmount?.toString()||""):new It(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 Mp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=X(),c=y().config,f=y().fetchStatus,d=y().blockchains(),m=y().tokens(),{setAffiliateRef:h,setAffiliatePercent:S,setAffiliateWallets:T}=y(),g=c?.from?.tokens,C=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Kn(void 0),b=Kn(void 0),x=Kn(void 0),w=Kn(void 0);go(()=>{t(c?.amount?.toString()||"")},[c?.amount]),go(()=>{if(f==="success"){r();let I=d.find(L=>L.name===c?.from?.blockchain),W=m.find(L=>Pe(L,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),W?a({token:W,meta:{blockchains:d,tokens:m}}):!W&&E.current&&a({token:null}),x.current=c?.from?.blockchain,E.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,f]),go(()=>{Fo(s,g)&&a({token:null}),Wi(p,C)&&n(null)},[g,C]),go(()=>{Fo(l,k)&&a({token:null}),Wi(u,v)&&o(null)},[k,v]),go(()=>{if(f==="success"){r();let I=d.find(L=>L.name===c?.to?.blockchain),W=m.find(L=>Pe(L,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),W?e({token:W,meta:{blockchains:d,tokens:m}}):!W&&b.current&&e({token:null}),w.current=c?.to?.blockchain,b.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,f]),go(()=>{h(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),T(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Mp,"useSyncStoresWithConfig");import{useEffect as Xi,useRef as th}from"react";import{useInRouterContext as oh,useLocation as nh,useSearchParams as rh}from"react-router-dom";function Gi(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(Gi,"searchParamToToken");function Vi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vi,"tokenToSearchParam");function ji(){let t=nh(),[e,o]=rh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:f,setInputAmount:d}=X(),m=y().fetchStatus,h=y().blockchains(),S=y().tokens(),T=oh(),{updateIframe:g,updateCampaignMode:C}=y(),k=y().isInCampaignMode(),v=th(),E=i(()=>{let x={};for(let[me,z]of e.entries())me.startsWith("utm_")&&(x[me]=z);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),W=e.get("fromToken"),L=e.get("toBlockchain"),j=e.get("toToken"),M=e.get("autoConnect"),U=e.get("clientUrl"),J=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:W,toBlockchain:L,toToken:j,autoConnect:M,clientUrl:U,liquiditySources:J,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();T&&m==="success"&&b({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:x??void 0,clientUrl:w??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!T)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&d(x.fromAmount),m==="success"){let w=h.find(j=>j.name===x.fromBlockchain),I=Gi(S,x.fromToken,w??null),W=h.find(j=>j.name===x.toBlockchain),L=Gi(S,x.toToken,W??null);w&&(p(w),I&&c({token:I,meta:{blockchains:h,tokens:S}})),W&&(u(W),L&&f({token:L,meta:{blockchains:h,tokens:S}}))}},[m]),Xi(()=>{let{clientUrl:x,liquiditySources:w}=E();g("clientUrl",x||void 0),C("liquiditySources",w?.split(",")??void 0)},[])}i(ji,"useSyncUrlAndStore");import{i18n as ja}from"@lingui/core";import{useManager as TC}from"@rango-dev/queue-manager-react";import{Alert as ym,Button as kC,css as Ya,Divider as Ka,IconButton as Sm,styled as wC,Typography as vC,WalletIcon as xC}from"@rango-dev/ui";import xe,{useEffect as qr,useLayoutEffect as bC,useRef as IC,useState as rn}from"react";import{useNavigate as EC}from"react-router-dom";import{i18n as gt}from"@lingui/core";import{Alert as Ea,BalanceErrors as iS,Button as Yc,ChevronDownIcon as aS,ChevronLeftIcon as sS,CloseIcon as lS,Divider as Xo,IconButton as Zc,MessageBox as pS,PasteIcon as cS,Typography as kr,WalletIcon as uS}from"@rango-dev/ui";import _,{useEffect as mS,useRef as dS,useState as xo}from"react";import{useNavigate as fS}from"react-router-dom";import{i18n as Yn}from"@lingui/core";function Zn(t){switch(t.type){case 0:return Yn.t("Route has been updated.");case 3:return Yn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Yn.t("Route swappers has been updated.");case 2:return Yn.t("Route internal coins has been updated.");default:return""}}i(Zn,"getQuoteUpdateWarningMessage");import{Modal as ah}from"@rango-dev/ui";import sh from"react";function ne(t){let{watermark:e}=re();return sh.createElement(ah,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import tr,{useRef as ch}from"react";import*as ho from"@radix-ui/react-collapsible";import{keyframes as _p,styled as Jn}from"@rango-dev/ui";var Ki=300,lh=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),ph=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Pp=Jn(ho.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=Jn(ho.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Rn=Jn(ho.Content,{overflow:"hidden",variants:{open:{true:{animation:`${lh} ${Ki}ms ease-out`},false:{animation:`${ph} ${Ki}ms ease-out`}}}}),er=Jn("div",{transition:`all ${Ki}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function or(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ch(null);return tr.createElement(Pp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&tr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),tr.createElement(Rn,{className:"collapsible_content",open:e},r),l==="bottom"&&tr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(or,"CustomCollapsible");import{css as $p,darkTheme as Ho,IconButton as uh,styled as Ke,TextField as mh}from"@rango-dev/ui";var Dp=Ke("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Fp=Ke("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),dh=Ke("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Op=Ke(dh,{alignSelf:"stretch",minHeight:"93px"}),Up=Ke("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=Ke(uh,{position:"absolute",left:"$20"}),qp=Ke("div",{paddingTop:"$20"}),Qp=$p({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Hp=Ke("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Gp=$p({paddingTop:"$5"}),Vp=Ke("div",{display:"flex"}),Xp=Ke(mh,{backgroundColor:"$neutral100",padding:"$15"}),jp=Ke("div",{overflow:"visible",width:"100%"}),Kp=Ke("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Ho} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as it}from"@lingui/core";import{Button as tS,Divider as ba,Image as oS,MessageBox as Cr,SelectableWallet as nS,Typography as Xc,WalletState as jc}from"@rango-dev/ui";import pe,{useEffect as Kc,useState as vo}from"react";import{WalletState as nr}from"@rango-dev/ui";import{useWallets as fh}from"@rango-dev/wallets-react";import{detectMobileScreens as gh,KEPLR_COMPATIBLE_WALLETS as hh,WalletTypes as yo}from"@rango-dev/wallets-shared";import{useCallback as yh,useEffect as Sh,useState as Ch}from"react";var Th=Object.values(yo);function So(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=fh(),{connectedWallets:u}=ee(),c=y().blockchains(),f=Dl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Th,d=kl(a,l,f,e);d=gh()?d.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):d;let m=El(d),[h,S]=Ch(""),T=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),g=i(async(b,x)=>{let w=a(b);try{if(h&&S(""),w.connected)await s(b);else{let I=!!d.find(W=>W.state===nr.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),C=yh(()=>{let b=d?.filter(x=>x.state===nr.CONNECTING)||[];for(let x of b)s(x.type)},[Wl(d)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");Sh(()=>()=>{C()},[]);let v=i(b=>{let x=b.find(I=>I.type===yo.DEFAULT);return!x||x.state===nr.NOT_INSTALLED?!1:b.filter(I=>I.state!=nr.NOT_INSTALLED&&![yo.DEFAULT,yo.WALLET_CONNECT_2,yo.LEDGER].includes(I.type)&&l(I.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>Nn(w,x)&&T(b)&&!hh.includes(b)||b==yo.DEFAULT&&!v(d),"shouldExcludeWallet");return{list:m.filter(b=>!E(b.type,e??"",c)),error:h,handleClick:g,disconnectConnectingWallets:C,disconnectWallet:k}}i(So,"useWalletList");import{i18n as Uc}from"@lingui/core";import{Divider as Vy,getCategoriesCount as Xy,SelectableCategoryList as jy,styled as qc,Typography as Ky,Wallet as Yy,WalletState as zc}from"@rango-dev/ui";import rt,{useState as yr}from"react";import{useManager as xy}from"@rango-dev/queue-manager-react";import{BottomLogo as by,Divider as Bc,Header as Iy}from"@rango-dev/ui";import Ce,{useEffect as Ca,useRef as _c,useState as Ey}from"react";import{useRef as kh}from"react";function rr(){return window.self!==window.top}i(rr,"isAppLoadedIntoIframe");function Zi(){let t=kh(null),{iframe:e}=y(),o=rr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Zi,"useIframe");import{useNavigate as wh}from"react-router-dom";function Ye(){let t=wh();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as na,darkTheme as Ah,lightTheme as Nh}from"@rango-dev/ui";import{useEffect as Wh,useState as Lh}from"react";import{theme as Ih,darkColors as Eh}from"@rango-dev/ui";import ta from"react";function vh(t,e,o){let p=[],u=90;for(let d=0;d<9;d++)p.push(u),d+1===4?u=0:u-=d>=4?6:10;let c=o?p.slice().reverse():p,f={};for(let d=0;d<9;d++){let m=100+d*100,h=c[d],S={[`${e}${m}`]:ir(t,h)};Object.assign(f,S)}return{...f,[e]:t}}i(vh,"generateShades");function ir(t,e){let[o,n,r]=Yp(t);return`#${Ji(o+e)}${Ji(n+e)}${Ji(r+e)}`}i(ir,"generateShade");function Yp(t){let r=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return[r,a,s]}i(Yp,"convertToRGB");function Ji(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Ji,"clamp");function Zp(t){let[s,l,p]=Yp(t);return(s*299+l*587+p*114)/1e3>188}i(Zp,"isBright");var Ri=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let a in o){let s=o[a];s&&s!==t[a]&&(n=!0,a==="background"||a==="foreground"?r={...r,[a]:s}:r={...r,...vh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),xh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Jp(o%52)+e;return Jp(o%52)+e},"toAlphabeticName"),bh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ea=i(t=>xh(bh(5381,JSON.stringify(t))>>>0),"toHash");function oa(t){let e=Ih.colors,o=Ri({...e,...Eh},!0,t?.dark),n=Ri(e,!1,t?.light),r=Object.keys(o).length>0,a=Object.keys(n).length>0,s,l;if(a){let p={colors:n};s={id:`${Ni}-light-${ea(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ni}-dark-${ea(p)}`,tokens:p}}return{light:s,dark:l}}i(oa,"customizedThemeTokens");function Rp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ta.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ta.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ta.cloneElement(e,{key:l}))}}),o}i(Rp,"joinList");function ar(t){let{colors:e,fontFamily:o=ll,borderRadius:n=_l,secondaryBorderRadius:r=Pl}=t,[a,s]=Lh("light"),{theme:l}=y(),{dark:p,light:u}=oa(e),c=na({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[c.className,Nh.className],d=[c.className,Ah.className];if(u){let h=na(u.id,u.tokens);f.push(h.className)}if(p){let h=na(p.id,p.tokens);d.push(h.className)}return Wh(()=>{let h=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",h),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",h)}},[]),{activeTheme:i(()=>{let h=f.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:h:l==="dark"?S:h},"getActiveTheme")}}i(ar,"useTheme");var Ze=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 ec}from"@lingui/core";import{Alert as Mh,Button as Bh}from"@rango-dev/ui";import tc from"react";function ra(t){return tc.createElement(Mh,{action:tc.createElement(Bh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ec.t("Activate this tab")),type:"warning",variant:"alarm",title:ec.t("Another tab is open and handles transactions.")})}i(ra,"ActivateTabAlert");import{i18n as ia}from"@lingui/core";import{Button as _h,Divider as Ph,MessageBox as $h}from"@rango-dev/ui";import sr from"react";function aa(t){let{open:e,onClose:o,onConfirm:n}=t;return sr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},sr.createElement($h,{title:ia.t("Activate current tab"),type:"warning",description:ia.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.")},sr.createElement(Ph,{size:20}),sr.createElement(_h,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ia.t("Confirm"))))}i(aa,"ActivateTabModal");import{ChevronLeftIcon as Oh}from"@rango-dev/ui";import lc from"react";import{css as Dh,darkTheme as oc,IconButton as Fh,styled as eo}from"@rango-dev/ui";var ft=eo(Fh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=eo("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Co=eo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=eo("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"}}}}),ic=eo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=eo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=Dh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),lr=eo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function sa(t){return lc.createElement(ft,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(Oh,{color:"black",size:16}))}i(sa,"BackButton");import{i18n as Uh}from"@lingui/core";import{Button as zh,Typography as qh}from"@rango-dev/ui";import la from"react";function pa(t){return la.createElement(Co,null,la.createElement(zh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},la.createElement(qh,{variant:"label",size:"medium",color:"error500"},Uh.t("Cancel"))))}i(pa,"CancelButton");import{i18n as Qh}from"@lingui/core";import{Image as Hh,Tooltip as Gh,WalletIcon as Vh}from"@rango-dev/ui";import to from"react";function ca(t){let{list:e}=So({}),o=e.filter(r=>r.state==="connected"),n=o.length?to.createElement("div",{className:sc()},o.map(r=>to.createElement(lr,{key:r.title},to.createElement(Hh,{src:r.image,size:14})))):Qh.t("Connect Wallet");return to.createElement(Gh,{container:t.container,side:"bottom",content:n},to.createElement(ft,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&to.createElement(nc,null),to.createElement(Vh,{size:18,color:"black"})))}i(ca,"WalletButton");import{i18n as ur}from"@lingui/core";import{NotificationsIcon as gy,Popover as hy,SettingsIcon as yy,Tooltip as mr,TransactionIcon as Sy}from"@rango-dev/ui";import Ne from"react";import{i18n as ua}from"@lingui/core";import{EventSeverity as Sc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Cc,ChevronRightIcon as ny,Divider as Tc,Typography as ma}from"@rango-dev/ui";import de from"react";import{useNavigate as ry}from"react-router-dom";import{create as Xh}from"zustand";import{persist as jh,subscribeWithSelector as Kh}from"zustand/middleware";var Ae=Dt(Xh()(jh(Kh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n:[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));import{Button as Yh,darkTheme as Zh,ListItemButton as Jh,styled as Ot}from"@rango-dev/ui";var pc=Ot("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),cc=Ot("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),uc=Ot(Yh,{padding:"$5 !important"}),mc=Ot("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),dc=Ot(Jh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Zh} &`]:{backgroundColor:"$error600"}}}}}),fc=Ot("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),gc=Ot("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),hc=Ot("span",{paddingRight:"$8"});import{i18n as Rh}from"@lingui/core";import{Divider as ey,NoNotificationIcon as ty,Typography as oy}from"@rango-dev/ui";import pr from"react";function yc(){return pr.createElement(gc,null,pr.createElement(ty,{color:"secondary",size:26}),pr.createElement(ey,{size:12}),pr.createElement(oy,{variant:"body",size:"medium",color:"neutral700"},Rh.t("There are no notifications.")))}i(yc,"NotificationNotFound");var iy=4;function da(){let t=ry(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,iy),l=i(p=>{t(`${Q.swaps}/${p}`)},"handleOnClick");return de.createElement(pc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(cc,null,de.createElement(ma,{variant:"label",size:"medium"},ua.t("Notifications")),de.createElement(uc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(ma,{variant:"body",size:"xsmall"},ua.t("Clear all")))),de.createElement(Tc,{direction:"vertical",size:4})),s.length?de.createElement(mc,null,s.map((p,u)=>{let{route:c,requestId:f,event:d}=p,m=a.find(g=>Pe(g,c.from)),h=r.find(g=>g.name===c.from.blockchain),S=a.find(g=>Pe(g,c.to)),T=r.find(g=>g.name===c.to.blockchain);return de.createElement(de.Fragment,{key:f},u>0&&de.createElement(Tc,{size:4}),de.createElement(dc,{onClick:()=>l(f),actionRequired:d.messageSeverity===Sc.WARNING,title:de.createElement(ma,{variant:"body",size:"small",color:d.messageSeverity===Sc.WARNING?"$foreground":"$neutral700"},ua.t(d.message)),id:f,start:de.createElement(fc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Cc,{tokenImage:m?m.image:"",chainImage:h?h.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Cc,{tokenImage:S?S.image:"",chainImage:T?T.logo:"",size:"small"}))),end:de.createElement(hc,null,de.createElement(ny,{size:12,color:"gray"}))}))})):de.createElement(yc,null))}i(da,"NotificationContent");import{useManager as ay}from"@rango-dev/queue-manager-react";import{InProgressIcon as sy}from"@rango-dev/ui";import kc from"react";var ly=i(()=>{let{manager:t}=ay();return Ze(t).map(({swap:o})=>o).find(o=>o.status==="running")?kc.createElement(ac,null,kc.createElement(sy,{color:"info",size:6})):null},"InProgressTransactionBadge"),wc=ly;import{EventSeverity as py}from"@rango-dev/queue-manager-rango-preset";import{Typography as cy}from"@rango-dev/ui";import vc from"react";function xc(){let{getNotifications:t}=Ae(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===py.WARNING);return o?vc.createElement(rc,{isSever:n},vc.createElement(cy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(xc,"NotificationsBadge");import{RefreshProgressButton as uy}from"@rango-dev/ui";import fa,{useEffect as my,useState as bc}from"react";var dy=1e3,Ic=60,fy=100;function cr({onClick:t}){let[e,o]=bc(0),[n,r]=bc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");my(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},dy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return fa.createElement(ft,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},fa.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},fa.createElement(uy,{size:22,color:t?"black":"gray",progress:e/Ic*fy})))}i(cr,"RefreshButton");function oo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Xe("notification",s)||r.includes("notifications");return Ne.createElement(Ne.Fragment,null,!r.includes("refresh")&&Ne.createElement(mr,{container:a||B(),side:"top",content:ur.t("Refresh")},Ne.createElement(cr,{onClick:e})),!l&&Ne.createElement(hy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ne.createElement(da,null)},Ne.createElement("div",null,Ne.createElement(mr,{container:B(),side:"top",content:ur.t("Notifications")},Ne.createElement(ft,{size:"small",variant:"ghost"},Ne.createElement(gy,{size:18,color:"black"}),Ne.createElement(xc,null))))),!r.includes("settings")&&Ne.createElement(mr,{container:B(),side:"top",content:ur.t("Settings")},Ne.createElement(ft,{size:"small",variant:"ghost",onClick:n},Ne.createElement(yy,{size:18,color:"black"}))),!r.includes("history")&&Ne.createElement(mr,{container:B(),side:"top",content:ur.t("Transactions History")},Ne.createElement(ft,{size:"small",variant:"ghost",onClick:o},Ne.createElement(Sy,{size:18,color:"black"}),Ne.createElement(wc,null))))}i(oo,"HeaderButtons");import{i18n as ga}from"@lingui/core";import{Divider as Ac,MessageBox as ky,RefreshIcon as wy}from"@rango-dev/ui";import To from"react";import{Button as Cy,styled as Ty}from"@rango-dev/ui";var Ec=Ty(Cy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ha(t){let{open:e,onClose:o}=t;return To.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},To.createElement(ky,{title:ga.t("Something went wrong"),type:"error",description:ga.t("Something went wrong. Please refresh the app.")},To.createElement(Ac,{size:30}),To.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},To.createElement(wy,{size:20,color:"primary"}),To.createElement(Ac,{size:4,direction:"horizontal"}),ga.t("Refresh"))))}i(ha,"RefreshModal");function ya(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ya,"onScrollContentAttachStatusToContainer");import{css as vy,styled as Sa}from"@rango-dev/ui";var Nc="700px",dr=vy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Wc=Sa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Lc=Sa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Mc=Sa("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 se(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Zi(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Ey(!1),c=ee.use.connectedWallets(),{config:{features:f,theme:d}}=y(),{watermark:m}=re(),h=m==="FULL",{activeTheme:S}=ar(d||{}),T=Xe("connectWalletButton",f),{isActiveTab:g,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=re(),b=Ye(),{manager:x}=xy(),I=Ze(x).map(({swap:J})=>J).some(J=>J.status==="running"),W=i(()=>E(Zt.forceClaim,I),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),j=typeof r.hasBackButton>"u"||r.hasBackButton,M=_c(null),U=_c(null);return Ca(()=>(rr()&&U.current&&e(U.current),()=>{o()}),[]),Ca(()=>(M.current?.addEventListener("scroll",ya),()=>{M.current?.removeEventListener("scroll",ya)}),[]),Ca(()=>{u(l==="failed")},[l]),Ce.createElement(Wc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${dr()}`,ref:U},Ce.createElement(Iy,{prefix:Ce.createElement(Ce.Fragment,null,j&&Ce.createElement(sa,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!T&&Ce.createElement(ca,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(pa,{onClick:r.onCancel}))}),Ce.createElement(Lc,{ref:M},n),Ce.createElement(aa,{open:k,onClose:()=>v(!1),onConfirm:W}),Ce.createElement(Mc,null,Ce.createElement("div",{className:"footer__content"},C&&!g&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(ra,{onActivateTab:W}),Ce.createElement(Bc,{size:10})),a),Ce.createElement(Bc,{size:12}),Ce.createElement("div",{className:`footer__logo ${h?"logo__show":"logo__hidden"}`},Ce.createElement(by,null))),Ce.createElement(ha,{open:p,onClose:()=>u(!1)}))}i(se,"Layout");import{styled as Ay}from"@rango-dev/ui";var Pc="$20 $20 $10 $20",Go=Ay("div",{padding:Pc,overflowY:"auto",flexGrow:1});import{styled as Ny}from"@rango-dev/ui";var ue=Ny("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 _y}from"@rango-dev/ui";import ka from"react";import{i18n as ko}from"@lingui/core";import{Image as My,MessageBox as Ta,WalletState as By}from"@rango-dev/ui";import no from"react";import{keyframes as Wy,styled as fr}from"@rango-dev/ui";var oW=fr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),gr=fr("div",{position:"relative"}),Ly=Wy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),hr=fr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ly} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=fr("div",{"& img":{borderRadius:"50%"}});function Dc(t){let{state:e,image:o,error:n}=t;return e===By.CONNECTED?no.createElement(Ta,{type:"success",title:ko.t("Wallet Connected"),description:ko.t("Your wallet is connected, you can use it to swap.")}):n?no.createElement(Ta,{type:"error",title:ko.t("Failed to Connect"),description:n||ko.t("Your wallet is not connected. Please try again.")}):no.createElement(Ta,{type:"loading",title:ko.t("Connecting to your wallet"),description:ko.t("Click connect in your wallet popup."),icon:no.createElement(gr,null,no.createElement($c,null,no.createElement(My,{src:o,size:45})),no.createElement(hr,null))})}i(Dc,"ModalContent");function Vo(t){let{open:e,onClose:o,...n}=t;return ka.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},ka.createElement(Dc,{...n}),ka.createElement(_y,{direction:"vertical",size:32}))}i(Vo,"WalletModal");import{i18n as wa}from"@lingui/core";import{Button as $y,Checkbox as Dy,Image as Oc,ListItemButton as Fy,MessageBox as Oy,Radio as Uy,RadioRoot as zy}from"@rango-dev/ui";import{Namespace as wo}from"@rango-dev/wallets-shared";import Le,{useMemo as qy,useState as Qy}from"react";import{styled as Py}from"@rango-dev/ui";var Fc=Py("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Hy={[wo.Evm]:"ETH",[wo.Solana]:"SOLANA",[wo.Cosmos]:"COSMOS",[wo.Utxo]:"BTC",[wo.Starknet]:"STARKNET",[wo.Tron]:"TRON"},Gy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function ro(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Qy([]),a=y().blockchains(),s=qy(()=>o?.map(u=>({name:u,logo:Gy(a,Hy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(f=>f!==u):c.concat(u))},"onSelect"),p=i(u=>e?Le.createElement(zy,{value:n?.[0]},u):Le.createElement(Le.Fragment,null,u),"wrapRadioRoot");return Le.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Le.createElement(Oy,{type:"info",title:wa.t("Select chain types"),description:wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Le.createElement(gr,null,Le.createElement(lr,null,Le.createElement(Oc,{src:t.image,size:45})),Le.createElement(hr,null))}),Le.createElement(Fc,null,p(Le.createElement(Le.Fragment,null,s?.map(u=>Le.createElement(Fy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Le.createElement(Oc,{src:u.logo,size:22}),end:e?Le.createElement(Uy,{value:u.name}):Le.createElement(Dy,{checked:n.includes(u.name)})}))))),Le.createElement($y,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},wa.t("Confirm")))}i(ro,"WalletNamespacesModal");var Zy=qc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Jy=qc(ue,{textAlign:"center"}),Sr=3e3,va=300;function Qc(){let{fetchStatus:t}=y(),[e,o]=yr("ALL"),n=y().blockchains(),[r,a]=yr(!1),[s,l]=yr(null),[p,u]=yr(""),c=null,f=re.use.isActiveTab(),{list:d,handleClick:m,error:h,disconnectConnectingWallets:S}=So({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},va)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},Sr)}}),T=i(()=>{S(),a(!1)},"handleCloseWalletModal"),g=d.find(w=>w.type===p),C=g?.image||"",k=g?.state||zc.NOT_INSTALLED,v=Ll(d,n),b=Xy(v)!==1,x=Ml(d,e);return rt.createElement(se,{header:{title:Uc.t("Connect Wallets")}},rt.createElement(Jy,null,b&&rt.createElement(rt.Fragment,null,rt.createElement(jy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),rt.createElement(Vy,{size:24})),rt.createElement(Ky,{variant:"title",size:"xmedium",align:"center"},Uc.t("Choose a wallet to connect.")),rt.createElement(Zy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return rt.createElement(Yy,{key:W,...w,container:B(),onClick:L=>{w.namespaces&&w.state===zc.DISCONNECTED?l({providerType:L,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):m(L)},isLoading:t==="loading",disabled:!f})}),rt.createElement(Vo,{open:!!r,onClose:T,image:C,state:k,error:h}),rt.createElement(ro,{open:!!s,onClose:()=>l(null),onConfirm:w=>{m(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Qc,"WalletsPage");import{keyframes as Ry,styled as xa}from"@rango-dev/ui";var Hc=xa("div",{position:"relative"}),eS=Ry({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Gc=xa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${eS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Vc=xa("div",{"& img":{borderRadius:"50%"}});var rS=7;function Ia(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),l=ee.use.connectedWallets(),{blockchains:p}=y(),[u,c]=vo(""),[f,d]=vo(null),[m,h]=vo(!1),[S,T]=vo(null),[g,C]=vo(null),{suggestAndConnect:k}=Tr(),v=null,{list:E,error:b,handleClick:x,disconnectWallet:w,disconnectConnectingWallets:I}=So({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},va)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},Sr)}}),[W,L]=vo(E),j=E.length,M=r&&j-r>0,U=i(async A=>{h(!1),T("in-progress");try{await k(A.walletType,A.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain"),J=i(A=>{C({providerType:A.type,providerImage:A.image,availableNamespaces:A.namespaces,singleNamespace:A.singleNamespace})},"handleOpenNamespacesModal");Kc(()=>{L(A=>{let oe=E.findIndex(q=>o(q.type,e));return M&&oe>1?[E[oe]].concat(E.filter((q,R)=>R!==oe)):A.map(q=>E.find(R=>R.type===q.type)??q)})},[JSON.stringify(E)]);let me=document.getElementById(Se.SWAP_BOX_ID);Kc(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>T(null),Sr)),()=>{A&&clearTimeout(A)}},[S]);let z=i(()=>{I(),c("")},"handleCloseWalletModal");return pe.createElement(pe.Fragment,null,W.slice(0,r).map(A=>{let oe=Al({connectedWallets:l,walletType:A.type,chain:e}),q=oe?Ln(oe,rS):"",R=Nn(p(),e),fe=!l.find(be=>be.walletType===A.type&&be.chain===e),ye=R&&fe&&A.state===jc.CONNECTED,P=ye?it.t({id:"Add {chain} chain",values:{chain:e}}):q,Ue=i(async()=>{A.state===jc.DISCONNECTED?A.namespaces?J(A):x(A.type):A.namespaces&&!q?(await w(A.type),J(A)):ye?(d({walletType:A.type,chain:e,address:oe??""}),h(!0)):n({walletType:A.type,chain:e,address:oe??""})},"onClick"),ke=f?.chain?Pn(f.chain,p()):void 0;return pe.createElement(pe.Fragment,{key:`${A.title}_${ke}`},pe.createElement(Vo,{open:u===A.type,onClose:z,image:A.image,state:A.state,error:b}),pe.createElement(ro,{open:!!g,onClose:()=>C(null),onConfirm:be=>{x(g?.providerType,be),C(null)},image:g?.providerImage,namespaces:g?.availableNamespaces,singleNamespace:g?.singleNamespace}),!!f&&pe.createElement(ne,{open:!!f&&m,container:me,onClose:()=>{d(null)}},pe.createElement(Cr,{title:it.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ke}}),type:"warning",description:it.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ke}})},pe.createElement(ba,{size:18}),pe.createElement(ba,{size:32}),pe.createElement(tS,{onClick:U.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},it.t("Confirm")))),S&&pe.createElement(ne,{open:!!S,onClose:T.bind(null,null),container:me},S==="in-progress"&&pe.createElement(Cr,{type:"loading",title:it.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ke}}),description:it.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ke}}),icon:pe.createElement(Hc,null,pe.createElement(Vc,null,pe.createElement(oS,{src:A.image,size:45})),pe.createElement(Gc,null))}),S==="completed"&&pe.createElement(Cr,{type:"success",title:it.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ke}}),description:it.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ke}})}),S==="rejected"&&pe.createElement(Cr,{type:"error",title:it.t("Request Rejected"),description:it.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ke}})}),pe.createElement(ba,{direction:"vertical",size:32})),pe.createElement(nS,{key:A.type,description:P,onClick:Ue,selected:o(A.type,e),disabled:!s,...A}))}),M&&pe.createElement(Op,{selected:!1,onClick:a},pe.createElement(Xc,{variant:"label",size:"medium"},it.t("Show more wallets"),pe.createElement(Xc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(Ia,"WalletList");var gS=2;function Jc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=y().config,l=dS(null),p=y().blockchains(),{selectedQuote:u,setSelectedWallets:c,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:h}=X(),{connectedWallets:S,selectWallets:T}=ee(),[g,C]=xo(""),[k,v]=xo([]),[E,b]=xo(""),[x,w]=xo(null),[I,W]=xo(!!m),L=navigator?.userAgent.includes("Firefox"),j=Yt({filter:"all",quote:u}),M=Yt({filter:"required",quote:u}),U=p.find(D=>D.name===u?.swaps[u?.swaps.length-1].to.blockchain),J=i(D=>M.includes(D),"isWalletRequiredFor"),me=i(()=>S.filter(D=>D.selected&&j.includes(D.chain)),"getInitialSelectableWallets"),[z,A]=xo(me()),oe=k.length>0,q=i((D,K)=>!!z.find(V=>V.walletType===D&&V.chain===K&&V.selected&&(J(K)||!J(K)&&!m)),"isSelected"),R=!!m&&I&&U&&!Un(U,m),fe=i(()=>{W(!1),h(null),A(D=>{let K=!1;return D.map(V=>!K&&V.chain===U?.name?(K=!0,{...V,selected:!0}):V)})},"resetCustomDestination"),ye=i(()=>h(""),"handleClearCustomDestination"),P=i(async D=>{if(D.preventDefault(),navigator.clipboard!==void 0){let K=await navigator.clipboard.readText();h(K),l?.current?.focus()}},"handlePasteCustomDestination"),Ue=i(D=>{D?J(U?.name??"")||A(K=>K.map(V=>V.chain===U?.name?{...V,selected:!1}:V)):fe()},"handleCustomDestinationCollapsibleOpenChange"),ke=i(D=>{if(g&&C(""),q(D.walletType,D.chain))return;let V=S.find(ce=>ce.walletType===D.walletType&&ce.chain===D.chain);V&&(n(),D.chain===U?.name&&I&&(W(!1),h(null)),A(ce=>ce.filter(wt=>wt.chain!==D.chain).concat({...V,selected:!0})))},"onChange"),be=i(()=>{let D=z.filter(K=>K.selected);T(D),c(D),d(!0),o()},"onConfirmBalance"),Tt=i(async()=>{v([]),b(""),w(null);let D=await r?.({selectedWallets:z.filter(V=>V.selected),customDestination:m}),K=D.warnings;K?.balance?.messages&&v(K.balance.messages),K?.quoteUpdate&&w(K.quoteUpdate),D.error&&b(ip(D.error)),!D.error&&!K?.balance?.messages.length?be():v(K?.balance?.messages??[])},"onConfirmWallets"),kt=i(()=>m?_.createElement(Zc,{onClick:ye,variant:"ghost"},_.createElement(lS,{size:12,color:"gray"})):L?null:_.createElement(Zc,{onClick:P,variant:"ghost"},_.createElement(cS,{size:16})),"renderCustomDestinationSuffix");mS(()=>{A(D=>D.concat(S.filter(K=>!!!D.find(ce=>ce.chain===K.chain)&&K.selected&&j.includes(K.chain))))},[S.length]);let tt=document.getElementById(Se.SWAP_BOX_ID),ut=fS();return _.createElement(ne,{open:e,onClose:()=>{f||ut("../",{replace:!0}),o()},dismissible:!g,container:tt,...!g&&{footer:_.createElement(Vp,null,_.createElement(Yc,{loading:a,disabled:vp(a,I,m,u,z,U),onClick:Tt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},gt.t("Confirm")))},...g&&{styles:{container:{padding:"$0"}},header:_.createElement(Up,null,_.createElement(zp,{variant:"ghost",onClick:C.bind(null,"")},_.createElement(sS,{size:16})),_.createElement(kr,{variant:"headline",size:"small"},gt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ve(g,p)}})))},anchor:"center"},_.createElement(ne,{open:oe,onClose:v.bind(null,[]),container:tt},_.createElement(pS,{title:gt.t("Insufficient account balance"),type:"error",description:_.createElement(iS,{messages:k??[]})},_.createElement(Yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:be},gt.t("Proceed anyway")))),g&&_.createElement(qp,null,_.createElement("div",{className:Qp()},_.createElement(Ia,{chain:g,isSelected:q,selectWallet:ke,onShowMore:C.bind(null,g)}))),!g&&_.createElement(_.Fragment,null,E&&_.createElement(_.Fragment,null,_.createElement(Ea,{variant:"alarm",type:"error",title:gt.t(E)}),_.createElement(Xo,{size:12})),x&&_.createElement(_.Fragment,null,_.createElement(Ea,{variant:"alarm",type:"warning",title:Zn(x)}),_.createElement(Xo,{size:12})),_.createElement(jp,null,j.map((D,K)=>{let V=p.find(ot=>ot.name===D),ce=`wallet-${K}`,wt=K===j.length-1;return _.createElement("div",{key:ce},_.createElement(Dp,null,_.createElement(kr,{variant:"title",size:"xmedium"},gt.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),_.createElement(kr,{variant:"label",color:"$neutral700",size:"medium"},gt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),_.createElement(Xo,{size:24}),_.createElement(Fp,null,_.createElement(Ia,{chain:D,isSelected:q,selectWallet:ke,limit:gS,onShowMore:()=>C(V?.name??"")})),!wt&&_.createElement(Xo,{size:32}),wt&&s?.customDestination&&_.createElement(Hp,null,_.createElement(or,{onOpenChange:Ue,hasSelected:!0,open:I,triggerAnchor:"top",trigger:_.createElement(Kp,null,_.createElement("div",{className:"button__content"},_.createElement(uS,{size:18,color:"info"}),_.createElement(Xo,{size:4,direction:"horizontal"}),_.createElement(kr,{variant:"label",size:"medium",color:I?"$neutral600":void 0},gt.t("Send to a different address"))),_.createElement(er,{orientation:I?"up":"down"},_.createElement(aS,{size:10,color:"secondary"}))),onClickTrigger:()=>W(ot=>!ot)},_.createElement(Xp,{ref:l,style:{padding:0,paddingRight:m?"8px":"5px"},autoFocus:!0,placeholder:gt.t("Enter {blockchainName} address",{blockchainName:Pn(D,p)}),value:m||"",suffix:kt(),onChange:ot=>{let _o=ot.target.value;_o.length?h(_o.length?_o:null):(W(!1),h(null))},...!m&&{autoFocus:!0}})),R&&_.createElement("div",{className:Gp()},_.createElement(Ea,{variant:"alarm",type:"error",title:gt.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Jc,"ConfirmWalletsModal");import{i18n as _S}from"@lingui/core";import{Alert as PS,Button as $S,InfoIcon as DS}from"@rango-dev/ui";import He from"react";import{Alert as SS,Button as CS,Divider as Wa,NoRouteIcon as TS,RefreshIcon as kS,Typography as iu}from"@rango-dev/ui";import Qe from"react";import{i18n as Rc}from"@lingui/core";var hS=24,yS=60;function eu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:Rc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Rc.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(eu,"makeInfo");var Aa=(o=>(o[o.small=hS]="small",o[o.large=yS]="large",o))(Aa||{}),Na=(o=>(o.small="small",o.large="medium",o))(Na||{});import{styled as wr}from"@rango-dev/ui";var tu=wr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ou=wr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),nu=wr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),ru=wr("div",{padding:"$6 $0"});function jo(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=eu(o,r,()=>a(s,!0),e);return Qe.createElement(tu,null,Qe.createElement(TS,{size:Aa[n],color:"gray"}),Qe.createElement(Wa,{size:4}),Qe.createElement(iu,{variant:"title",size:Na[n]},te().noResultError.title),n==="large"&&Qe.createElement(Wa,{size:4}),!!l.description&&Qe.createElement(ou,{size:n},Qe.createElement(iu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Qe.createElement(Wa,{size:n==="large"?"24":"4"}),!!l.alert&&Qe.createElement(nu,{size:n},Qe.createElement(SS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Qe.createElement(CS,{size:"xsmall",type:l.alert.type,prefix:Qe.createElement(ru,null,Qe.createElement(kS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(jo,"NoResult");import{i18n as Ko}from"@lingui/core";import{Button as vS,Divider as xS,MessageBox as bS,Typography as IS,WarningIcon as ES}from"@rango-dev/ui";import Et from"react";import{Typography as pu}from"@rango-dev/ui";import Ma from"react";import{darkTheme as wS,styled as vr}from"@rango-dev/ui";var au=vr("div",{width:"100%"}),La=vr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),su=vr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${wS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lu=vr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function cu(t){let{title:e,value:o,valueColor:n}=t;return Ma.createElement(su,null,Ma.createElement(pu,{size:"medium",variant:"label",className:"_title"},e),Ma.createElement(pu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(cu,"QuoteErrorsModalItem");function uu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Ko.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Ko.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Ko.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Ko.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return Et.createElement(ne,{footer:Et.createElement(vS,{type:"primary",size:"large",prefix:Et.createElement(ES,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Et.createElement(bS,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),Et.createElement(La,null,Et.createElement(xS,{size:"4"}),Et.createElement(IS,{size:"small",variant:"title"},Ko.t("Details")),Et.createElement(La,null,l.map((p,u)=>Et.createElement(cu,{key:u,...p})))))}i(uu,"HighValueLossWarningModal");import{i18n as Ba}from"@lingui/core";function mu(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=Ba.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&&(bt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=te().highValueLossError.title),t.type===1&&(o.title=te().unknownPriceError.title),t.type===2&&(o.title=Ba.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=Ba.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(mu,"makeAlerts");import{i18n as bo}from"@lingui/core";import{Button as du,Divider as fu,MessageBox as AS,Typography as NS}from"@rango-dev/ui";import io from"react";import{useNavigate as WS}from"react-router-dom";function gu(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=WS(),u=e??o;return io.createElement(ne,{anchor:"bottom",open:n,prefix:io.createElement(du,{size:"small",variant:"ghost",onClick:()=>p("../"+Q.settings)},io.createElement(NS,{variant:"label",size:"medium",color:"$neutral900"},bo.t("Change settings"))),container:B(),onClose:r},io.createElement(AS,{type:"warning",title:s.type===3?bo.t("High slippage"):bo.t("Low slippage"),description:s.type===3?bo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):bo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},io.createElement(fu,{size:18}),io.createElement(fu,{size:32}),io.createElement(du,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},bo.t("Confirm anyway"))))}i(gu,"SlippageWarningModal");import{Button as LS,MessageBox as MS,WarningIcon as BS}from"@rango-dev/ui";import xr from"react";function hu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return xr.createElement(ne,{footer:xr.createElement(LS,{type:"primary",size:"large",prefix:xr.createElement(BS,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},xr.createElement(MS,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(hu,"UnknownPriceWarningModal");function Yo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,f={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=mu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),He.createElement(He.Fragment,null,d&&He.createElement(jo,{error:o,fetch:s}),!!m&&He.createElement(au,null,He.createElement(PS,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:He.createElement(lu,{onClick:l},He.createElement(DS,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:He.createElement($S,{size:"xxsmall",type:m.alertType,onClick:c},_S.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(uu,{...f,warning:e}),(e.type===3||e.type===2)&&He.createElement(gu,{...f,warning:e}),e.type===1&&He.createElement(hu,{...f,warning:e})))}i(Yo,"QuoteWarningsAndErrors");import fC from"bignumber.js";import Fr from"react";import{i18n as ao}from"@lingui/core";import{Alert as tC,Divider as Eo,FullExpandedQuote as oC,InfoIcon as nC,QuoteTag as rC,StepDetails as iC,TokenAmount as aC,Tooltip as Ku,Typography as Ao}from"@rango-dev/ui";import za from"bignumber.js";import $,{useRef as sC,useState as lC}from"react";import{styled as _a}from"@rango-dev/ui";var Pa=_a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),yu=_a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Su=_a("div",{width:"100%",display:"flex"});import*as br from"@radix-ui/react-collapsible";import{Button as FS,css as Zo,darkTheme as we,Image as Cu,styled as De,Typography as OS}from"@rango-dev/ui";var US=300,Tu=De(br.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ku=Zo({padding:"$10 $15"}),wu=De(FS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),vu=De("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",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),xu=Zo({width:"100%",padding:"$15 $15 $10 $15"}),bu=Zo({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Io=Zo({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Iu=Zo({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Eu=De(br.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:{[`& ${Cu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Cu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Au=De("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"}}}}),Nu=De(Rn,{width:"100%",background:"inherit"}),$a=De("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${US}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),aB=De("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Wu=De("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Lu=De("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Da=De(OS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Mu=De("div",{display:"flex",flexWrap:"wrap"}),Fa=De("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"}}}}),Bu=De("div",{display:"flex"}),Ir=De("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ht}from"@lingui/core";import{ChevronDownIcon as qS,CloseIcon as QS,Divider as Nr,IconButton as HS,QuoteCost as GS,Tooltip as VS,Typography as at}from"@rango-dev/ui";import Y,{useState as Du}from"react";import{css as zS,styled as Er}from"@rango-dev/ui";var Ar=Er("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Oa=Er("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),_u=Er("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Pu=Er("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),$u=zS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var XS=i(t=>t.fee.isZero()?null:Y.createElement(Ar,null,Y.createElement(at,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(at,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Fu(t){let[e,o]=Du(!1),[n,r]=Du(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,f=s?.swaps??[],d=B(),m=up(f);return Y.createElement(Y.Fragment,null,Y.createElement(GS,{onClickFee:c?h=>{h.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Ht.t("View more info"):void 0,tooltipContainer:d}),Y.createElement(ne,{container:d,open:e,header:Y.createElement(Pu,null,Y.createElement(at,{variant:"title",size:"medium"},Ht.t("Gas & Fee Explanation")),Y.createElement(HS,{onClick:()=>o(!1),variant:"ghost"},Y.createElement(QS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(_u,null,Y.createElement(at,{variant:"title",size:"small"},Ht.t("Details")),Y.createElement(Nr,{size:10}),Object.entries(m.payable).flatMap(([h,S])=>S.map((T,g)=>{let C=`payable-fee-${g}`,k=zi(T);return Y.createElement(Ar,{key:C},Y.createElement(at,{variant:"label",size:"medium",color:"neutral600"},Di[h]),Y.createElement(VS,{content:le(T.amount),container:d},Y.createElement(at,{variant:"label",size:"medium"},N(T.amount,2,2)," ",T.asset.symbol," ($",N(k,4,4),")")))})),Y.createElement(Ar,{className:"total_payable_fee"},Y.createElement(at,{variant:"label",size:"medium"},Ht.t("Total Payable Fee")),Y.createElement(at,{variant:"label",size:"medium"},"$",N(l,4,4))),Y.createElement(Oa,null),Object.keys(m.nonePayable).length&&Y.createElement(or,{triggerAnchor:"bottom",onClickTrigger:()=>r(h=>!h),trigger:Y.createElement("div",{className:$u()},Y.createElement(at,{size:"small",variant:"body",color:"neutral700"},n?Ht.t("Hide non-payable fees"):Ht.t("Show non-payable fees")),Y.createElement(Nr,{size:4,direction:"horizontal"}),Y.createElement(er,{orientation:n?"up":"down"},Y.createElement(qS,{size:12,color:"gray"}))),open:n},Y.createElement(at,{size:"small",variant:"title"},Ht.t("Description")),Y.createElement(Nr,{size:4}),Y.createElement(at,{size:"small",variant:"body",color:"neutral700"},Ht.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Y.createElement(Nr,{size:10}),Object.entries(m.nonePayable).map(([h,S],T)=>{let g=cp(S),C=Di[h],k=`non-payable-fee-${T}`;return Y.createElement(XS,{key:k,fee:g,label:C})}),Y.createElement(Oa,null)))))}i(Fu,"QuoteCostDetails");import{i18n as zu}from"@lingui/core";import{TokenAmount as qu}from"@rango-dev/ui";import Wr from"react";import{css as jS,styled as KS}from"@rango-dev/ui";var Ou=KS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Uu=jS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Jo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Wr.createElement(Ou,null,Wr.createElement(qu,{direction:"horizontal",label:zu.t("Swap input"),type:"input",tooltipContainer:B(),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}}),Wr.createElement("div",{className:Uu()}),Wr.createElement(qu,{direction:"horizontal",tooltipContainer:B(),label:zu.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(Jo,"QuoteSummary");import{i18n as Xu}from"@lingui/core";import{ChevronDownIcon as JS,ChevronRightIcon as RS,Divider as Ua,Image as eC,Tooltip as Pr,Typography as Mr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as YS,useState as Ro}from"react";var Qu=480,Hu=768,Gu=1024,Vu=1200,ZS=i(()=>{let[t,e]=Ro(!1),[o,n]=Ro(!1),[r,a]=Ro(!1),[s,l]=Ro(!1),[p,u]=Ro(!1),c=i(()=>{e(window.innerWidth<=Qu),n(window.innerWidth>Qu&&window.innerWidth<=Hu),a(window.innerWidth>Hu&&window.innerWidth<=Gu),l(window.innerWidth>Gu&&window.innerWidth<=Vu),u(window.innerWidth>Vu)},"handleResize");return YS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Lr=ZS;var Br=4,_r=6,en=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return F.createElement(Pr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Au,{className:n,state:a},F.createElement(eC,{src:o,size:16})))},"ImageComponent");function ju(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Np(r),{isTablet:f,isMobile:d}=Lr();return F.createElement(Eu,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(h=>!h)}},F.createElement("div",{className:Io()},F.createElement(Mr,{variant:"body",size:"xsmall"},Xu.t("Via:")),F.createElement(Ua,{direction:"horizontal",size:4}),r.map((m,h)=>{let S=`item-${h}`,T=F.createElement($a,null,F.createElement(RS,{size:12,color:"black"}));return d||f?F.createElement(F.Fragment,{key:S},F.createElement(en,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),h!==u-1&&F.createElement(F.Fragment,null,T)):F.createElement(F.Fragment,{key:S},u<=Br||u>Br&&h<Br-1?F.createElement(F.Fragment,null,F.createElement(en,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),h!==u-1&&F.createElement(F.Fragment,null,T)):h===Br-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Io()},T,r.map((g,C)=>{let k=`image-${C}`;return C>=h&&F.createElement(F.Fragment,{key:k},F.createElement(en,{content:g.swapper.displayName,src:g.swapper.image,state:g.state,open:!1}),C!==u-1&&F.createElement(F.Fragment,null,T))}))},F.createElement(Fa,{state:r.find((g,C)=>C>=h&&(g.state==="error"||g.state==="warning"))?.state},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",u-h))))})),F.createElement("div",{className:Io()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Io()},F.createElement(Mr,{variant:"body",size:"xsmall"},Xu.t("Chains:")),F.createElement(Ua,{direction:"horizontal",size:4}),c.map((m,h)=>F.createElement(F.Fragment,{key:m.displayName},c.length<=_r||c.length>_r&&h<_r-1?F.createElement(Pr,{container:p,side:"bottom",content:m.displayName,sideOffset:4},F.createElement(en,{content:"",src:m.image,open:!1,className:h!==0?"blockchainImage":""})):h===_r-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Io()},c.map((S,T)=>T>=h&&F.createElement(en,{key:S.displayName,content:"",src:S.image,open:!1,className:T>h?"blockchainImage":"",container:l})))},F.createElement(Fa,{className:"blockchainImage"},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",c.length-h))))),F.createElement(Ua,{direction:"horizontal",size:32}))),F.createElement($a,{orientation:a?"up":"down"},F.createElement(JS,{size:12,color:"black"}))))}i(ju,"QuoteTrigger");function qa(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:f=!1,container:d}=t,m=y().blockchains(),h=y().tokens(),S=y().swappers(),{customSlippage:T,slippage:g}=y(),C=T||g,[k,v]=lC(t.expanded),E=sC(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=je(o.usdValue,n.usdValue??null),W=N(I,2,2),L=bt(I??0),j=i((fe,ye)=>fe.map((P,Ue)=>{let ke,be=r?.type===3&&r.swap.swapperId===P.swapperId,Tt=r?.type===4&&r.recommendedSlippages?.has(Ue),kt=a?.type===2&&a.recommendedSlippages?.has(Ue),tt=be||Tt,ut=kt;tt?ke="error":ut&&(ke="warning");let D=tt?ao.t("Slippage Error"):ao.t("Slippage Warning");return be&&(D=ao.t("Bridge Limit Error")),{swapper:{displayName:Oo(P.swapperId,S),image:P.swapperLogo},from:{token:{displayName:P.from.symbol,image:P.from.logo},chain:{displayName:Ve(P.from.blockchain,m),image:P.from.blockchainLogo},price:{value:Ue===0&&!ye?N(o.value,6,6):N(P.fromAmount,6,6),usdValue:N((P.from.usdPrice??0)*parseFloat(P.fromAmount),4,4),realValue:le(Ue===0?o.value:P.fromAmount),realUsdValue:le(new za(P.from.usdPrice??0).multipliedBy(P.fromAmount))}},to:{token:{displayName:P.to.symbol,image:P.to.logo},chain:{displayName:Ve(P.to.blockchain,m),image:P.to.blockchainLogo},price:{value:N(P.toAmount,6,6),usdValue:N((P.to.usdPrice??0)*parseFloat(P.toAmount),4,4),realValue:le(P.toAmount),realUsdValue:le(new za(P.to.usdPrice??0).multipliedBy(P.toAmount))}},state:ke,alerts:tt||ut?$.createElement(yu,{dense:f},$.createElement(tC,{variant:"alarm",type:tt?"error":"warning",title:D,footer:$.createElement(Su,null,be&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ao.t({id:"Yours: {amount} {symbol}",values:{amount:N(P.fromAmount,6,6),symbol:P?.from.symbol}}))),(Tt||kt)&&!be&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ao.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Ue)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Ue)}}})),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ao.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:$o(P.estimatedTimeInSeconds),fee:N(Ui(P,h),2,2),internalSwaps:P.internalSwaps?j(P.internalSwaps):void 0}}),"getQuoteSteps"),M=j(e?.swaps??[]),U=M.length,J=d||B(),me=Lp(t.quote.tags||[]),z=!!c,A=$o(xn(e?.swaps)),oe=Qn(e?.swaps??[],h),q=N(oe,2,2),R=oe.gte(new za(rp));return f?$.createElement(oC,{selected:l,fee:q,time:A,tooltipContainer:Po(),steps:M,tags:me,feeWarning:R,percentageChange:W,warningLevel:L,outputPrice:{value:x,usdValue:w,realValue:le(n.value),realUsdValue:le(n.usdValue)}}):$.createElement(vu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:xu()},!p&&me.length?$.createElement($.Fragment,null,$.createElement(Bu,null,me.map((fe,ye)=>{let P=`${fe.value}_${ye}`;return $.createElement($.Fragment,{key:P},$.createElement(rC,{label:fe.label,value:fe.value}),$.createElement(Eo,{size:4,direction:"horizontal"}))})),$.createElement(Ir,null),!z&&$.createElement(Eo,{size:4})):null,$.createElement("div",{id:"portal-root",className:bu()},$.createElement(Fu,{quote:e,time:A,fee:q,feeWarning:R,showModalFee:u,steps:U}),z&&$.createElement(wu,{onClick:fe=>{fe.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Ao,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},ao.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:Iu()},$.createElement(Lu,null,$.createElement(nC,{size:12,color:"gray"})),$.createElement(Mu,null,$.createElement(Da,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(Ku,{content:le(n.value),container:J,open:n.value?void 0:!1},$.createElement(Da,{size:"small",variant:"body"},"\xA0",`${x} ${M[M.length-1].to.token.displayName}`))),$.createElement(Ku,{content:le(n.usdValue),container:J},$.createElement(Eo,{size:2,direction:"horizontal"}),$.createElement(Ao,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(aC,{tooltipContainer:J,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:le(n.value),realUsdValue:le(n.usdValue)},token:{displayName:M[U-1].to.token.displayName,image:M[U-1].to.token.image},chain:{image:M[U-1].to.chain.image},percentageChange:W,warningLevel:L}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Jo,{from:M[0].from,to:M[U-1].to,percentageChange:W,warningLevel:L}),$.createElement(Eo,{size:4}))),$.createElement(Tu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(ju,{type:s,quoteRef:E,selected:l,setExpanded:v,container:J,expanded:k,steps:M}),$.createElement(Nu,{open:k},$.createElement(Wu,null),$.createElement("div",{className:ku()},M.map((fe,ye)=>{let P=`item-${ye}`;return $.createElement(iC,{type:"quote-details",key:P,tooltipContainer:J,step:fe,hasSeparator:ye!==M.length-1,state:fe.state})})))))}i(qa,"Quote");import{Divider as mC,Skeleton as dC}from"@rango-dev/ui";import Nt from"react";import{darkTheme as pC,styled as $r}from"@rango-dev/ui";var Yu=$r("div",{$$color:"$colors$neutral100",[`.${pC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Zu=$r("div",{paddingTop:"$2"}),Ju=$r("div",{paddingLeft:"$8"}),Ru=$r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as pm,Divider as st,Skeleton as Ge}from"@rango-dev/ui";import H from"react";import{css as cC,styled as At}from"@rango-dev/ui";var Qa=At("div",{display:"flex"}),em=At("div",{padding:"$10 $0 $20"}),tm=At("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),om=At("div",{display:"flex",justifyContent:"start",alignItems:"center"}),nm=At("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),rm=At("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),im=At("div",{width:"65%",display:"flex",justifyContent:"start"}),am=At("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),sm=At("div",{padding:"$15 $0 $15 $0"}),lm=cC({display:"flex",justifyContent:"space-between",alignItems:"center"});function tn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(nm,null,H.createElement(im,null,H.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(st,{size:8,direction:"horizontal"}),H.createElement(am,null,H.createElement(Ge,{height:10,width:60,variant:"rounded"}),H.createElement(st,{size:4}),H.createElement(Ge,{height:15,variant:"rounded"}))),H.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Qa,null,H.createElement(Ge,{width:65,height:20,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:65,height:20,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:65,height:20,variant:"rounded"})),H.createElement(Ir,null),!r&&H.createElement(st,{size:4})),H.createElement("div",{className:lm()},H.createElement(Qa,null,H.createElement(Ge,{width:60,height:10,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:60,height:10,variant:"rounded"}),H.createElement(st,{size:4,direction:"horizontal"}),H.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(em,null,H.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(tm,null,H.createElement(om,null,H.createElement(pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(st,{direction:"horizontal",size:4}),H.createElement(Ge,{height:15,width:150,variant:"rounded"})),H.createElement(st,{size:10}),H.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(st,{size:4}),H.createElement(sm,null,n,H.createElement(rm,null),n),H.createElement(st,{size:12})))}i(tn,"QuoteSummarySkeleton");import{ChainToken as fm,Divider as Ga,NextIcon as uC,Skeleton as Dr}from"@rango-dev/ui";import ve from"react";import{styled as on}from"@rango-dev/ui";var cm=on("div",{display:"flex",alignItems:"start"}),um=on("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ha=on("div",{display:"flex",alignItems:"center",flexGrow:1}),mm=on("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dm=on("div",{display:"flex",alignItems:"center"});function ht(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(dm,null,ve.createElement(Dr,{height:22,width:22,variant:"circular"}),ve.createElement(Ga,{direction:"horizontal",size:8}),ve.createElement(Dr,{height:15,width:148,variant:"rounded"})),ve.createElement(cm,null,ve.createElement(Ru,{hideSeparator:!e}),ve.createElement(um,{extraSpace:e},ve.createElement(Ha,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Ga,{direction:"horizontal",size:8}),ve.createElement(Dr,{height:12,variant:"rounded"})),ve.createElement(mm,null,ve.createElement(uC,{color:"gray",size:16})),ve.createElement(Ha,null,ve.createElement(fm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Ga,{direction:"horizontal",size:8}),ve.createElement(Dr,{height:12,variant:"rounded"})))))}i(ht,"StepSkeleton");function nn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Nt.createElement(Yu,{expanded:o,rounded:e!=="basic"},Nt.createElement(tn,{type:e,tagHidden:n}),Nt.createElement(Zu,null,Nt.createElement(dC,{height:15,variant:"rounded"})),o&&Nt.createElement(Ju,null,Nt.createElement(mC,{size:24}),Nt.createElement(ht,null),Nt.createElement(ht,null),Nt.createElement(ht,{separator:!1})))}i(nn,"QuoteSkeleton");function so(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:f,fullExpandedMode:d=!1,container:m}=t,{inputAmount:h,inputUsdValue:S,toToken:T}=X(),g=e?.outputAmount?new fC(e?.outputAmount):null,C=e?.outputAmount?Gn(e?.outputAmount,Xn(e)||T?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Fr.createElement(Pa,null,Fr.createElement(nn,{tagHidden:l,type:o,expanded:s})):v?Fr.createElement(Pa,{onClick:()=>p?.(e)},Fr.createElement(qa,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:d,input:{value:h,usdValue:S?.toString()??""},output:{value:g?.toString()??"",usdValue:C?.toString()??""}})):null}i(so,"QuoteInfo");import{calculatePendingSwap as SC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as CC}from"react";import{useRef as gC,useState as hC}from"react";var yC=2e3;function Or({request:t}){let[e,o]=hC(!1),n=gC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,yC)),await s(l,!1)),"retryFetch"),s=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 a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Or,"useFetch");function gm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await $t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(gm,"useFetchConfirmQuote");function Ur(t){if(!t.swaps)throw new Error(te().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Va(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ur,"throwErrorIfResponseIsNotValid");function Va(t){if(sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=lp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=mp(t);if(o){let n=Hn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Va,"getQuoteError");function hm(t,e,o){let n=!1;t&&(n=Ep(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=fo(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Sp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(mo(e)),percentageChange:N(je(mo(t)??"",mo(e)??""),null,2)}:qi(t,e)?r.quoteUpdate={type:0}:Qi(t,e)?r.quoteUpdate={type:1}:Hi(t,e)&&(r.quoteUpdate={type:2}));let s=Cp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(hm,"generateWarnings");function zr(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(zr,"handleQuoteErrors");function Xa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=X(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),f=y().blockchains(),d=y().tokens(),m=u||p,{fetch:h,cancelFetch:S,loading:T}=gm();return CC(()=>S,[]),{loading:T,fetch:i(async C=>{let k=C.selectedWallets,v=C?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await h(b,!0).then(x=>{let{result:w}=x;Ur({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let I={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(I);let W={slippage:m.toString(),disabledSwappersGroups:c},L=hm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:f,tokens:d},selectedWallets:k,userSlippage:m});L.quoteUpdate&&s(!1),l();let j=!!L.balance,M=SC(o.toString(),w,hp(k),W,!j,{blockchains:f,tokens:d});return{quote:I,swap:M,error:null,warnings:L}})}catch(x){return zr(x)}},"fetch"),cancelFetch:S}}i(Xa,"useConfirmSwap");var AC=wC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Sm}`]:{width:"$48",height:"$48"}}),NC=Ya({flexGrow:1,paddingRight:"$10"}),WC=Ya({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),LC=Ya({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=X(),s=EC(),[l,p]=rn(""),u=!n,[c,f]=rn(!1),[d,m]=rn(!1),{isActiveTab:h}=re(),S=y().getDisabledLiquiditySources(),T=IC(S),{manager:g}=TC(),{fetch:C,loading:k,cancelFetch:v}=Xa(),[E,b]=rn({swap:null,error:null,warnings:null}),[x,w]=rn(!1),I=i(async({selectedWallets:z,customDestination:A})=>{let oe=await C?.({selectedWallets:z,customDestination:A});return b(oe),oe},"onConfirmSwap"),W=i(async()=>{if(E.swap&&n)try{await g?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let z=`../${Q.swaps}/${E.swap.requestId}`;s(z,{replace:!0}),setTimeout(()=>{e("")},0)}catch(z){p("Error: "+z?.message)}},"addNewSwap"),L=i(async()=>{m(!0),await W(),m(!1)},"onConfirm"),j=i(async()=>{E?.warnings?.quote&&!a?w(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{b({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(z=>{b(z)}).catch(z=>console.error(z))},"onRefresh");qr(()=>{!!T.current.length&&!S.length&&M(),T.current=S},[S.length]),qr(()=>{u&&v()},[u]),qr(()=>{u&&f(u)},[u]),qr(()=>{u||C({selectedWallets:o,customDestination:r}).then(z=>b(z)).catch(z=>console.error(z))},[]),bC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let U=E.warnings?.quote??null,J=E.error,me=[];if(l&&me.push(xe.createElement(ym,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&me.push(xe.createElement(ym,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Zn(E.warnings.quoteUpdate)})),U||J){let z=`../${Q.settings}`;me.push(xe.createElement(Yo,{warning:U,error:J,couldChangeSettings:!1,refetchQuote:M,showWarningModal:x,confirmationDisabled:!h,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(z)}))}return xe.createElement(se,{header:{title:ja.t("Confirm Swap"),onWallet:()=>{let z=`../${Q.wallets}`;s(z)}},footer:xe.createElement(AC,null,xe.createElement("div",{className:NC()},xe.createElement(kC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!E.error||!h,onClick:j},ja.t("Start Swap"))),xe.createElement(Sm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!h,onClick:f.bind(null,!0)},xe.createElement(xC,{size:24})))},c&&xe.createElement(Jc,{open:c,onClose:()=>f(!1),onCancel:v,loading:k,onCheckBalance:I}),xe.createElement(ue,null,xe.createElement("div",{className:LC()},xe.createElement(vC,{variant:"title",size:"small"},ja.t("You get")),xe.createElement("div",{className:WC()},xe.createElement(cr,{onClick:!k&&!c&&!x?M:void 0}))),xe.createElement(Ka,{size:"12"}),Rp(me.map((z,A)=>({element:z,key:`alert-${A}`})),xe.createElement(Ka,{size:10})),me.length>0?xe.createElement(Ka,{size:10}):null,xe.createElement(so,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(Cm,"ConfirmSwapPage");import{i18n as Hr}from"@lingui/core";import{useManager as XC}from"@rango-dev/queue-manager-react";import{Divider as Wm,NotFound as jC,styled as KC}from"@rango-dev/ui";import Lt,{useState as YC}from"react";import{useNavigate as ZC}from"react-router-dom";import{i18n as _C}from"@lingui/core";import{Divider as xm,GroupedVirtualizedList as PC,Skeleton as $C,SwapListItem as bm,Typography as DC}from"@rango-dev/ui";import Fe,{useCallback as Im,useEffect as FC,useRef as OC,useState as UC}from"react";function Tm(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(Tm,"calculateGroupsSoFar");import{css as MC,darkTheme as BC,styled as an}from"@rango-dev/ui";var Za=MC(),km=an("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ja=an("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Za}`]:{$$color:"$colors$neutral600",[`.${BC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ra=an("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),wm=an("div",{gap:"$10",display:"flex",flexDirection:"column"}),vm=an("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var zC=10;function es(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=UC([]),l=OC(0),{swaps:p,groupCounts:u,groups:c}=n(e),f=Im(Tm,[]),d=Im(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,zC),s(f(u,l.current)))},[e.length]);if(FC(()=>{r||d()},[r,d]),r){let m=[1,2];return Fe.createElement(Fe.Fragment,null,[m,m].map((S,T)=>Fe.createElement(Ja,{key:T},Fe.createElement(Ra,null,Fe.createElement($C,{variant:"text",width:60,size:"small"}),Fe.createElement(xm,{size:16})),Fe.createElement(xm,{size:4}),Fe.createElement(wm,null,S.map((C,k)=>Fe.createElement(bm,{isLoading:!0,key:k}))))))}return Fe.createElement(PC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>Fe.createElement(Ja,null,Fe.createElement(Ra,null,Fe.createElement(DC,{variant:"label",size:"medium",className:Za()},c[m]))),itemContent:(m,h)=>{let S=p[m];if(!S)return null;let T=S.steps[0],g=S.steps[S.steps.length-1];return Fe.createElement(km,{key:S.requestId},Fe.createElement(bm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[h]===_C.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:le(S.inputAmount)},to:{token:{image:g.toLogo,displayName:g.toSymbol},blockchain:{image:g.toBlockchainLogo||""},amount:N(g.outputAmount||g.expectedOutputAmountHumanReadable||"",6,6),realAmount:le(g.outputAmount||g.expectedOutputAmountHumanReadable)}}}))}})}i(es,"HistoryGroupedList");import{CloseIcon as QC,IconButton as HC,SearchIcon as GC,TextField as VC}from"@rango-dev/ui";import sn from"react";import{styled as qC}from"@rango-dev/ui";var Em=qC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Wt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return sn.createElement(VC,{prefix:sn.createElement(Em,null,sn.createElement(GC,{color:"black"})),suffix:!!s.length&&sn.createElement(HC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},sn.createElement(QC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Wt,"SearchInput");import{i18n as Qr}from"@lingui/core";import Am from"dayjs";var Nm=i(t=>{let e=new Map([["today",{title:Qr.t("Today"),swaps:[]}],["week",{title:Qr.t("This week"),swaps:[]}],["month",{title:Qr.t("This month"),swaps:[]}],["year",{title:Qr.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 f=new Date(u).getFullYear().toString();o(f,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var JC=KC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),RC=i((t,e)=>t?.length?t.filter(o=>mt(o.fromBlockchain,e)||mt(o.toBlockchain,e)||mt(o.toSymbol,e)||mt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Lm(){let t=ZC(),{manager:e,state:o}=XC(),n=Ze(e).map(({swap:c})=>c),[r,a]=YC(""),s=!o.loadedFromPersistor,l=i(c=>{let f=c.target.value;a(f)},"searchHandler"),p=n;r&&(p=n.filter(c=>mt(c.inputAmount,r)||mt(c.status,r)||RC(c.steps,r)||mt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(se,{header:{title:Hr.t("History")}},Lt.createElement(ue,null,Lt.createElement(Wt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Hr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Wm,{size:"16"}),Lt.createElement(JC,null,u&&Lt.createElement(vm,null,Lt.createElement(Wm,{size:32}),Lt.createElement(jC,{title:Hr.t("No results found"),description:r?Hr.t("Try using different keywords"):""})),!u&&Lt.createElement(es,{list:p,onSwapClick:t,groupBy:Nm,isLoading:s}))))}i(Lm,"HistoryPage");import{i18n as ST}from"@lingui/core";import{Button as CT,Divider as Km,styled as TT,WarningIcon as kT}from"@rango-dev/ui";import wT from"bignumber.js";import ze,{useEffect as Ym,useState as Zm}from"react";import{useNavigate as vT}from"react-router-dom";import{i18n as iT}from"@lingui/core";import{Header as aT}from"@rango-dev/ui";import Gt,{useEffect as sT,useState as lT}from"react";import{i18n as tT}from"@lingui/core";import{Divider as os,FullExpandedQuote as oT,Typography as nT}from"@rango-dev/ui";import ge from"react";import{styled as ts}from"@rango-dev/ui";var Mm=ts("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bm=ts("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),_m=ts("div",{width:"146px"});import{i18n as ln}from"@lingui/core";import{Select as eT}from"@rango-dev/ui";import Pm from"react";function Gr(t){let{updateQuotePartialState:e,sortStrategy:o}=X(),n=[{value:"SMART",label:ln.t("Smart Routing")},{value:"FEE",label:ln.t("Lowest Fee")},{value:"SPEED",label:ln.t("Fastest Transfer")},{value:"NET_OUTPUT",label:ln.t("Maximum Return")},{value:"PRICE",label:ln.t("Maximum Output")}];return Pm.createElement(_m,null,Pm.createElement(eT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Gr,"SelectStrategy");var $m=3;function pn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:f,toToken:d,sortStrategy:m,error:h}=X(),{slippage:S,customSlippage:T}=y(),g=y().tokens(),C=l||B(),k=!!u&&u.results.length,v=T??S,E=i(w=>{if(!f||!d||!u)return null;let I={requestAmount:u.requestAmount,...w};return fo(I,{fromToken:f,toToken:d,userSlippage:v,tokens:g})},"getQuoteWarning"),b=h?.type===0||h?.type===1,x=u?.results?jn(m,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement(Bm,null,ge.createElement(nT,{size:"xmedium",variant:"title"},tT.t("Sort by")),ge.createElement(Gr,{container:C})),ge.createElement(os,{size:"10"})),e&&Array.from({length:$m},(w,I)=>ge.createElement(ge.Fragment,{key:I},s?ge.createElement(oT,{loading:!0}):ge.createElement(nn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==$m-1&&ge.createElement(os,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?x.map((w,I)=>{let W=E(w),L=Va(w.swaps),j=x.length-1===I;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(so,{showModalFee:r,container:C,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:L?.options||null,warning:W,fullExpandedMode:s,onClick:M=>{L||c("warning",W),c("error",L?.options||null),o(M)},type:"list-item"}),!j&&ge.createElement(os,{size:16}))}):b&&ge.createElement(Mm,null,ge.createElement(jo,{size:s?"large":"small",error:h,fetch:n}))))}i(pn,"Quotes");import{darkTheme as rT,styled as Dm}from"@rango-dev/ui";var Fm=Dm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${rT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Om=Dm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var pT=100;function ns(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=lT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",f=Po();return sT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},pT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Gt.createElement(Fm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${dr()}`,id:Se.EXPANDED_BOX_ID},Gt.createElement(aT,{title:iT.t("Routes"),suffix:Gt.createElement(Gt.Fragment,null,Gt.createElement(Gr,{container:f}),Gt.createElement(oo,{container:f,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Gt.createElement(Om,null,Gt.createElement(pn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Po(),onClickOnQuote:n,fullExpandedMode:c})))}i(ns,"ExpandedQuotes");import{i18n as Vm}from"@lingui/core";import{SwapInput as Xm}from"@rango-dev/ui";import cn from"react";import{ReverseIcon as mT}from"@rango-dev/ui";import is from"react";import{keyframes as cT,styled as Um}from"@rango-dev/ui";var rs=450,uT=cT({"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)"}}),zm=Um("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),qm=Um("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${uT} ${rs}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 as(){let t=X.use.switchFromAndTo();return is.createElement(zm,null,is.createElement(qm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},rs),t()}},is.createElement(mT,{size:12})))}i(as,"SwitchFromAndToButton");import{styled as Qm}from"@rango-dev/ui";var Hm=Qm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Gm=Qm("div",{position:"relative"});function ss(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:f,outputAmount:d,outputUsdValue:m,selectedQuote:h}=X(),{connectedWallets:S,getBalanceFor:T}=ee(),g=a?T(a):null,C=Wn(g)?.amount??"0",k=s&&a?N(g?.amount,g?.decimals):"0",v=!!s&&Nl(S,s.name),E=!Oi(h,c,f),b=!Oi(h,c,m),x=!f||!m||!m.gt(0)?null:je(f.toString(),m.toString());return cn.createElement(Hm,null,cn.createElement(Gm,null,cn.createElement(Xm,{label:Vm.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(f,4,4),realUsdValue:E?void 0:le(f),error:E?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),cn.createElement(as,null)),cn.createElement(Xm,{sharpBottomStyle:!r&&(!!h||e),label:Vm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(je(f,m),2,2),warningLevel:bt(x??0),price:{value:N(d,6,6),usdValue:b?void 0:N(m,4,4),realValue:le(d),realUsdValue:b?void 0:le(m),error:b?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ss,"Inputs");import{useCallback as dT,useEffect as fT,useRef as gT,useState as hT}from"react";function jm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await $t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(jm,"useFetchAllQuotes");var yT=600;function Vr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=jm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=ee.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:f,selectedQuote:d,sortStrategy:m,resetQuote:h,error:S,warning:T,setSelectedQuote:g,updateQuotePartialState:C}=X(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=y(),I=y().getLiquiditySources(),W=y().getDisabledLiquiditySources(),L=y().excludeLiquiditySources(),[j,M]=hT(!0),U=gT(c),J=v??k,z=!p||!u||Pe(p,u)||!Do(c),A=i(R=>{M(R)},"resetState"),oe=i(R=>{let{fromToken:fe,toToken:ye,inputAmount:P,liquiditySources:Ue,excludeLiquiditySources:ke,disabledLiquiditySources:be,slippage:Tt,affiliateRef:kt,affiliatePercent:tt,affiliateWallets:ut}=R;if(j||A(!0),!z&&fe&&ye){h();let D=gp({fromToken:fe,toToken:ye,inputAmount:P,liquiditySources:Ue,excludeLiquiditySources:ke,disabledLiquiditySources:be,wallets:s,slippage:Tt,affiliateRef:kt,affiliatePercent:tt,affiliateWallets:ut,enableCentralizedSwappers:a});zl("experimentalRoute",r)&&(D.experimental=!0),e(D).then(K=>{let V=jn(m,K.results),ce=Wp(d,V,K.requestAmount);M(!1),C("quotes",K),g(ce),Ur({diagnosisMessages:K.diagnosisMessages,requestId:ce?.requestId||"",swaps:ce?.swaps});let wt=ce&&fo(ce,{fromToken:fe,toToken:ye,userSlippage:J,tokens:l});C("warning",wt)}).catch(K=>{let{error:V}=zr(K);(V?.type===0||V?.type===1)&&h(),V?.type!==2&&(C("error",V),M(!1))})}},"fetch"),q=dT(gl(R=>{oe(R)},yT),[z]);return fT(()=>{if(!t){M(!1);return}if(w!=="success")return;if(z){M(!1),(d||S||T)&&h();return}if(!Do(c)||f?.eq(0)){A(!1),o();return}h(),A(!0);let R=oe;return U.current&&U.current!=c&&(R=q),U.current=c,R({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:J,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,z,I?.length,n,W.length,J,b,E,JSON.stringify(x)]),{fetch:()=>oe({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:J,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:j}}i(Vr,"useSwapInput");var xT=TT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),bT=300;function Jm(){let t=vT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:f,updateQuotePartialState:d}=X(),[m,h]=Zm(!1),{isLargeScreen:S,isExtraLargeScreen:T}=Lr(),{fetch:g,loading:C}=Vr({refetchQuote:a}),{config:k,fetchStatus:v}=y(),{connectedWallets:E}=ee(),{isActiveTab:b}=re(),[x,w]=Zm(!1),W=pp({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=$l(S,T,k?.variant),j=!!n&&!!e&&!!o&&new wT(n).gt(0)&&!xp(e,o),M=j&&v==="success"&&C,me=(!L||L&&p?.results.length)&&(l||s);Ym(()=>{c(),d("refetchQuote",!0)},[]),Ym(()=>{h(j)},[j]);let z=(r||s)&&!x?g:void 0,A=i(q=>{L&&m?(h(!1),setTimeout(()=>{t(q)},bT)):t(q)},"onHandleNavigation"),oe=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return ze.createElement(xT,null,ze.createElement(se,{height:"auto",footer:ze.createElement(CT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&ze.createElement(kT,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?A(Q.wallets):W.action==="confirm-warning"?w(!0):A(Q.confirmSwap)}},W.title),header:{onWallet:()=>{A(Q.wallets)},hasBackButton:!1,title:k.title||ST.t("Swap"),suffix:ze.createElement(oo,{hidden:L?["refresh"]:void 0,onClickRefresh:z,onClickHistory:()=>A(Q.swaps),onClickSettings:()=>{A(Q.settings)}})}},ze.createElement(ue,null,ze.createElement(ss,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:L,onClickToken:q=>{A(q==="from"?Q.fromSwap:Q.toSwap)}}),ze.createElement(Km,{size:"2"}),L?null:ze.createElement(so,{quote:r,loading:M,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),A(Q.routes)}:void 0}),me?ze.createElement(ze.Fragment,null,ze.createElement(Km,{size:"10"}),ze.createElement(Yo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:g,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),f(!0),A(Q.confirmSwap)},onChangeSettings:()=>A(Q.settings)})):null)),L?ze.createElement(ns,{loading:M,onClickOnQuote:oe,fetch:g,onClickRefresh:z,isVisible:m}):null)}i(Jm,"Home");import{i18n as Rm}from"@lingui/core";import{Alert as IT,Divider as ET,List as AT,ListItemButton as NT,Radio as WT,RadioRoot as LT,Typography as MT}from"@rango-dev/ui";import yt from"react";function Vt(){let{setLanguage:t,language:e,config:o}=y(),n=Ql,r=o?.language||Uo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Uo),resetLanguage:()=>t(null)}}i(Vt,"useLanguage");function ed(){let{activeLanguage:t,changeLanguage:e,languages:o}=Vt(),n=Ye(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:yt.createElement(MT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:yt.createElement(WT,{value:s}),start:yt.createElement(p,null)}});return yt.createElement(se,{header:{title:Rm.t("Language")}},yt.createElement(ue,null,yt.createElement(IT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),yt.createElement(ET,{size:"8"}),yt.createElement(LT,{value:t},yt.createElement(AT,{type:yt.createElement(NT,{title:Rm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(ed,"LanguagePage");import{i18n as Mt}from"@lingui/core";import{Button as DT,Checkbox as FT,Image as OT,ListItemButton as UT,NotFound as zT,Typography as qT}from"@rango-dev/ui";import Oe,{useState as QT}from"react";import{Checkbox as PT,Skeleton as od}from"@rango-dev/ui";import mn from"react";import{styled as ls}from"@rango-dev/ui";var un=ls("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ps=ls("div",{width:80,display:"flex",justifyContent:"flex-end"}),cs=ls("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as BT,styled as _T}from"@rango-dev/ui";var td=_T(BT,{height:61});var $T=30;function us(){return mn.createElement(un,null,Array.from(Array($T),(t,e)=>mn.createElement(td,{hasDivider:!0,key:e,start:mn.createElement(od,{variant:"circular",width:35,height:35}),title:mn.createElement(od,{variant:"text",size:"large",width:90}),end:mn.createElement(PT,{checked:!1})})))}i(us,"LoadingLiquiditySourceList");function ms({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=QT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=$n(o,n),u={Exchanges:Mt.t("Exchanges"),Bridges:Mt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=p.filter(g=>c.includes(g.type)),d=f.length===f.filter(g=>g.selected).length,m=i(()=>{f.forEach(g=>{d?s(g.groupTitle):g.selected||s(g.groupTitle)})},"toggleAllSources"),h=f.map(g=>{let{selected:C,groupTitle:k,logo:v}=g;return{start:Oe.createElement(OT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Oe.createElement(FT,{checked:C,disabled:l}),title:Oe.createElement(qT,{variant:"title",size:"xmedium"},Mt.t(k)),...g}}),S=i(g=>{let C=g.target.value;a(C)},"searchHandler"),T=h;return r&&(T=h.filter(g=>mt(g.groupTitle,r))),Oe.createElement(se,{header:{title:Mt.t(t),suffix:Oe.createElement(ps,null,Oe.createElement(DT,{variant:"ghost",size:"xsmall",onClick:m},d?Mt.t("Deselect all"):Mt.t("Select all")))}},Oe.createElement(ue,{view:!0},Oe.createElement(Wt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Mt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Oe.createElement(us,null),!T.length&&r?Oe.createElement(cs,null,Oe.createElement(zT,{title:Mt.t("No results found"),description:Mt.t("Try using different keywords")})):e==="success"&&Oe.createElement(un,{disabled:l},T.map(g=>{let{groupTitle:C,...k}=g;return Oe.createElement(Oe.Fragment,{key:g.id},Oe.createElement(UT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ms,"LiquiditySourcePage");import{i18n as HT}from"@lingui/core";import Xr from"react";import{useNavigate as GT}from"react-router-dom";function nd(){let t=GT(),e=Ye(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=X(),{fetch:l,loading:p}=Vr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${Q.settings}`,f=`../${Q.wallets}`;return Xr.createElement(se,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:HT.t("Routes"),suffix:Xr.createElement(oo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Xr.createElement(ue,null,Xr.createElement(pn,{fetch:l,loading:p,onClickOnQuote:u})))}i(nd,"RoutesPage");import{i18n as ud}from"@lingui/core";import{Divider as md,getCategoriesCount as ek,SelectableCategoryList as tk}from"@rango-dev/ui";import Bt,{useState as dd}from"react";import{i18n as ds}from"@lingui/core";import{Divider as pd,Image as KT,ListItemButton as YT,NotFound as ZT,Typography as cd}from"@rango-dev/ui";import Je,{useEffect as JT,useState as RT}from"react";var rd=i((t,e,o)=>t.filter(n=>vn(n.type,o)).filter(n=>vt(n.name,e)||vt(n.displayName,e)),"filterBlockchains");import{ImageContainer as VT,styled as id}from"@rango-dev/ui";var ad=id("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),jr=id(Go,{padding:0,margin:0,listStyle:"none",[`& ${VT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as XT,Skeleton as sd}from"@rango-dev/ui";import Kr from"react";var jT=20;function ld(){return Kr.createElement(jr,null,Array.from(Array(jT),t=>Kr.createElement(XT,{key:t,hasDivider:!0,start:Kr.createElement(sd,{variant:"circular",width:35,height:35}),title:Kr.createElement(sd,{variant:"text",size:"large",width:90})})))}i(ld,"LoadingBlockchainList");function fs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=RT(e),{fetchStatus:l}=y();JT(()=>{s([...rd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Je.createElement(Je.Fragment,null,Je.createElement(pd,{size:32}),Je.createElement(ZT,{title:ds.t("No results found"),description:ds.t("Try using different keywords")})):Je.createElement(jr,{as:"ul",key:`${r}-${o}`},a.map(u=>Je.createElement(YT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Je.createElement(KT,{src:u.logo,size:30}),title:Je.createElement(cd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Je.createElement(ad,null,Je.createElement(cd,{variant:"label",size:"large"},ds.t("Select Blockchain")),Je.createElement(pd,{size:4}),l==="loading"&&Je.createElement(ld,null),l==="success"&&p())}i(fs,"BlockchainList");function gs(t){let{type:e}=t,o=Ye(),[n,r]=dd(""),[a,s]=dd("ALL"),l=X.use.setToBlockchain(),p=X.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),d=ek(c)!==1;return Bt.createElement(se,{header:{title:ud.t("Select Blockchain")}},Bt.createElement(ue,{view:!0},d&&Bt.createElement(Bt.Fragment,null,Bt.createElement(tk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Bt.createElement(md,{size:24})),Bt.createElement(Wt,{value:n,autoFocus:!0,placeholder:ud.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Bt.createElement(md,{size:16}),Bt.createElement(fs,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(gs,"SelectBlockchainPage");import{i18n as ei}from"@lingui/core";import{Divider as _d}from"@rango-dev/ui";import lo,{useState as Sk}from"react";import{useNavigate as Ck}from"react-router-dom";import{i18n as Ss}from"@lingui/core";import{BlockchainsChip as Yr,Divider as yd,Image as Sd,Skeleton as ak,Tooltip as sk,Typography as Cs}from"@rango-dev/ui";import We from"react";import{useEffect as rk}from"react";var fd=["ETH","COSMOS","OSMOSIS"];function hs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ok),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(nk(s)),r=n.splice(a)}return{list:n,more:r}}i(hs,"prepare");function ok(t,e){let o=fd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(ok,"sortByMostUsedBlockchains");function nk(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(nk,"generateSortByPreferredBlockchainsFor");function gd(t,e){return!!e.list.find(o=>o.name===t)}i(gd,"isInVisibleList");function ys(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();rk(()=>{if(e?.selected){let a=hs(t,o,e);gd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=hs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ys,"usePrepareBlockchainList");import{styled as ik}from"@rango-dev/ui";var hd=ik("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var lk=12;function Ts(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ys(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=X.use.resetToBlockchain(),u=X.use.resetFromBlockchain(),c=s.more.length>0,f=s.more.length===1,d=!f&&c;return We.createElement(We.Fragment,null,We.createElement(yd,{size:12}),We.createElement(Cs,{variant:"label",size:"large"},Ss.t("Select Blockchain")),We.createElement(yd,{size:12}),We.createElement(hd,null,l==="loading"&&Array.from(Array(lk),m=>We.createElement(ak,{key:m,variant:"rounded",height:50})),l==="success"&&We.createElement(We.Fragment,null,We.createElement(Yr,{selected:!n,onClick:()=>{o==="from"?u():p()}},We.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss.t("All"))),s.list.map(m=>We.createElement(sk,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},We.createElement(Yr,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},We.createElement(Sd,{src:m.logo,size:30})))),f?We.createElement(Yr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},We.createElement(Sd,{src:s.more[0].logo,size:30})):null,d?We.createElement(Yr,{onClick:a,key:"more-blockchains"},We.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss._("More +{count}",{count:s.more.length}))):null)))}i(Ts,"BlockchainsSection");import{i18n as Ws}from"@lingui/core";import{darkTheme as Nd,Divider as Wo,ExternalLinkIcon as uk,Image as mk,ListItemButton as dk,NotFound as fk,PinIcon as gk,Skeleton as Wd,Typography as Rr,VirtualizedList as hk}from"@rango-dev/ui";import G,{useEffect as Ld,useState as Md}from"react";import{Divider as Ed,ListItem as ck,Skeleton as dn}from"@rango-dev/ui";import lt from"react";import{css as No,darkTheme as Cd,ImageContainer as pk,styled as Re,Typography as Td}from"@rango-dev/ui";var ks=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ws=No({position:"relative",height:12,width:"30%",maxWidth:"150px"}),vs=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),xs=No({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Cd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),bs=No({}),Is=No(),kd=Re("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Es=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Zr=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ws}`]:{[`& .${xs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${bs}`]:{bottom:"-15px"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${vs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),As=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ns=Re(Td,{}),wd=Re("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Is}`]:{$$color:"$colors$neutral600",[`.${Cd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jr=Re("div",{display:"flex",alignItems:"end",flexDirection:"column"}),HO=Re("div",{display:"flex",alignItems:"center"}),vd=Re("div",{position:"relative",[`& ${pk}`]:{borderRadius:"$xm",overflow:"hidden"}}),xd=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),bd=Re(Td,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Id=Re("a",{"& svg:hover":{color:"$colors$info"}});function Ad(t){return lt.createElement(Zr,null,Array.from(Array(t.size),e=>lt.createElement(ck,{key:e,hasDivider:!0,start:lt.createElement(dn,{variant:"circular",width:35,height:35}),end:lt.createElement(Jr,null,lt.createElement(dn,{variant:"text",size:"large",width:70}),lt.createElement(Ed,{size:4}),lt.createElement(dn,{variant:"text",size:"medium",width:50})),title:lt.createElement("div",null,lt.createElement(dn,{variant:"text",size:"large",width:90}),lt.createElement(Ed,{size:4}),lt.createElement(dn,{variant:"text",size:"medium",width:90}))})))}i(Ad,"LoadingTokenList");var Ls=20,yk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:ws()},o?G.createElement("div",{className:ks()},o):G.createElement(Es,{className:vs()},G.createElement(Rr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(As,{css:a},G.createElement(Ns,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${xs()} ${!o&&bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Wo,{size:4,direction:"horizontal"}),G.createElement(Id,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(uk,{size:12}))))},"renderDesc");function Bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Md(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Md(!0),{getBalanceFor:f,loading:d}=ee(),{isTokenPinned:m}=y(),h=i(()=>{s(e.slice(0,a.length+Ls))},"loadNextPage");Ld(()=>{c(e.length>a.length)},[a.length]),Ld(()=>{s(e.slice(0,Ls))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Wo,{size:32}),G.createElement(fk,{title:Ws.t("No results found"),description:Ws.t("Try using different keywords")})):G.createElement(hk,{endReached:u?h:void 0,itemContent:T=>{let g=a[T],C=Wn(f(g)),k=g.address||"",v=p.find(I=>I.name===g.blockchain),E=ir(v?.color||"",Zp(v?.color||"")?5:125),b=ir(v?.color||"",-100),x={$$color:E,[`.${Nd} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Nd} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(dk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":T,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,hasDivider:!0,onClick:()=>n(a[T]),start:G.createElement(vd,null,G.createElement(mk,{src:g.image,size:30}),m(g,t.type)&&G.createElement(xd,null,G.createElement(gk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||g.name||!g.name&&!k?G.createElement(Es,null,G.createElement(Rr,{variant:"title",size:"xmedium"},g.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(As,{css:x},G.createElement(Ns,{variant:"body",size:"xsmall",css:w},g.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?yk({address:k,token:a[T],customCssForTag:x,customCssForTagTitle:w,name:g.name,url:v.info.addressUrl.split("{wallet}").join(k)}):g.name||void 0,end:d?G.createElement(Jr,null,G.createElement(Wd,{variant:"text",size:"large",width:70}),G.createElement(Wo,{size:4}),G.createElement(Wd,{variant:"text",size:"medium",width:50})):C&&G.createElement(wd,null,G.createElement(bd,{variant:"title",size:"small"},C.amount),G.createElement("div",null),C.usdValue&&G.createElement(Rr,{variant:"body",className:Is(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(kd,null,G.createElement(Rr,{variant:"label",size:"large"},Ws.t("Select Token")),G.createElement(Wo,{size:4}),l==="loading"&&G.createElement(Ad,{size:Ls}),l==="success"&&G.createElement(Zr,{as:"ul"},S()))}i(Bd,"TokenList");function Ms(t){let{type:e}=t,o=Ck(),n=Ye(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=X(),c=ee.use.getBalanceFor(),[f,d]=Sk(""),h=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),T=y().tokens({type:e,blockchain:h,searchFor:f,getBalanceFor:c}),g=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:T}}):l({token:v,meta:{blockchains:S,tokens:T}})},"updateToken"),k={source:ei.t("Source"),destination:ei.t("Destination")};return lo.createElement(se,{header:{title:ei.t("Swap {type}",{type:k[e]})}},lo.createElement(ue,null,lo.createElement(Ts,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(Q.blockchains),onChange:v=>{g(v)}}),lo.createElement(_d,{size:24}),lo.createElement(Wt,{value:f,autoFocus:!0,placeholder:ei.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),lo.createElement(_d,{size:16}),lo.createElement(Bd,{list:T,selectedBlockchain:h,searchedFor:f,type:e,onChange:v=>{C(v);let E=S.find(b=>v.blockchain===b.name);E&&g(E),n()}})))}i(Ms,"SelectSwapItemsPage");import{i18n as $s}from"@lingui/core";import{Alert as Hk,Button as Gk,styled as Vk}from"@rango-dev/ui";import po from"react";import{useInRouterContext as Xk,useSearchParams as jk}from"react-router-dom";import{i18n as Ud}from"@lingui/core";import{Divider as vk,InfoIcon as xk,TextField as bk,Tooltip as Ik,Typography as zd}from"@rango-dev/ui";import pt from"react";import{Chip as Tk,styled as fn,TextField as kk}from"@rango-dev/ui";var Pd=fn("div",{paddingTop:"$5",padding:"$10 $5"}),$d=fn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${kk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Dd=fn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ti=fn("div",{maxWidth:"280px",padding:"$10"}),Fd=fn(Tk,{width:"61px",flexShrink:0});import{i18n as Bs}from"@lingui/core";import{Typography as wk}from"@rango-dev/ui";import gn from"react";function Od(){return gn.createElement(ti,null,gn.createElement(wk,{variant:"label",size:"medium",color:"neutral700"},Bs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),gn.createElement("br",null),gn.createElement("br",null),gn.createElement("b",null,Bs.t("Warning")),":",Bs.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(Od,"SlippageTooltipContent");function _s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return pt.createElement(Pd,null,pt.createElement(Dd,null,pt.createElement(zd,{variant:"title",size:"xmedium"},Ud.t("Slippage tolerance per swap")),pt.createElement(vk,{direction:"horizontal",size:4}),pt.createElement(Ik,{container:B(),side:"top",sideOffset:4,content:pt.createElement(Od,null)},pt.createElement(xk,{color:"gray"}))),pt.createElement($d,null,Hl.map((r,a)=>{let s=`slippage-${a}`;return pt.createElement(Fd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),pt.createElement(bk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=jl&&s<=Xl?n(s):n(null)},suffix:o&&pt.createElement(zd,{variant:"body",size:"small"},"%"),placeholder:Ud.t("Custom")})))}i(_s,"Slippage");import{i18n as St}from"@lingui/core";import{AutoThemeIcon as qd,BridgesIcon as Ek,ChevronRightIcon as Ps,DarkModeIcon as Qd,Divider as oi,ExchangeIcon as Ak,InfinityIcon as Nk,InfoIcon as Wk,LanguageIcon as Lk,LightModeIcon as Hd,List as Mk,ListItem as Bk,ListItemButton as _k,Skeleton as Pk,styled as $k,Switch as Dk,Tabs as Fk,Tooltip as Ok,Typography as et}from"@rango-dev/ui";import O from"react";import{useNavigate as Uk}from"react-router-dom";var zk=$k("div",{width:"202px",height:"$40"}),qk=[{id:"light",icon:O.createElement(Hd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},St.t("Light"))},{id:"dark",icon:O.createElement(Qd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},St.t("Dark"))},{id:"auto",icon:O.createElement(qd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},St.t("Auto"))}],Qk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(qd,{...e});case"dark":return O.createElement(Qd,{...e});default:return O.createElement(Hd,{...e})}},"getThemeIcon");function Gd(){let t=Uk(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Vt(),s=a.find(U=>U.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),f=Xe("theme",c),d=Xe("liquiditySource",c),m=Xe("language",c),h=y().infiniteApprove,S=y().toggleInfiniteApprove,T=$n(p,u),g=T.filter(U=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(U.type)),C=g.length,k=g.filter(U=>U.selected).length,v=T.filter(U=>U.type==="DEX"),E=v.length,b=v.filter(U=>U.selected).length,x=i((U,J)=>{switch(l){case"loading":return O.createElement(Pk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(et,{variant:"body",size:"medium",color:"$error500"},St.t("Loading failed"));default:return O.createElement(et,{variant:"body",size:"medium"},`${U} / ${J}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Bridges")),end:O.createElement(O.Fragment,null,x(k,C),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Ps,{color:"black"})),onClick:()=>t(Q.bridges),start:O.createElement(Ek,{color:"gray",size:16})},I={id:"exchange-item",title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Exchanges")),end:O.createElement(O.Fragment,null,x(b,E),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Ps,{color:"black"})),start:O.createElement(Ak,{color:"gray",size:16}),onClick:()=>t(Q.exchanges)},W={id:"language-item",title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Language")),start:O.createElement(Lk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(et,{variant:"body",size:"medium"},s),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Ps,{color:"black"})),onClick:()=>t(Q.languages)},L={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(et,{variant:"title",size:"xmedium"},St.t("Infinite approval")),O.createElement(oi,{direction:"horizontal",size:4}),O.createElement(Ok,{side:"top",sideOffset:4,container:B(),content:O.createElement(ti,null,O.createElement(et,{variant:"label",size:"medium",color:"neutral700"},St.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.")))},O.createElement(Wk,{color:"gray"}))),start:O.createElement(Nk,{color:"gray",size:16}),end:O.createElement(Dk,{checked:h}),onClick:S},j={id:"theme-item",type:O.createElement(Bk,null),title:O.createElement(et,{variant:"title",size:"xmedium"},St.t("Theme")),end:O.createElement(zk,null,O.createElement(Fk,{container:B(),items:qk,value:n,onChange:U=>o(U.id),type:"primary",borderRadius:"small"})),start:Qk(n)},M=d?[]:[w,I];return m||M.push(W),M.push(L),!e?.singleTheme&&!f&&M.push(j),O.createElement(Mk,{type:O.createElement(_k,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(Gd,"SettingsLists");var Kk=Vk("div",{paddingLeft:"$8"});function Vd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=jk(),r=Xk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return po.createElement(se,{header:{title:$s.t("Settings")}},po.createElement(ue,null,o&&po.createElement(Hk,{type:"info",variant:"alarm",title:$s.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:po.createElement(Kk,null,po.createElement(Gk,{type:"secondary",size:"small",onClick:a},$s.t("Reset")))}),po.createElement(_s,null),po.createElement(Gd,null)))}i(Vd,"SettingsPage");import{i18n as $w}from"@lingui/core";import{cancelSwap as Dw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Fw}from"@rango-dev/queue-manager-react";import{Alert as Ow}from"@rango-dev/ui";import Rs from"react";import{useParams as Uw}from"react-router-dom";import{i18n as Ct}from"@lingui/core";import{getCurrentBlockchainOfOrNull as yw,getCurrentStep as Sw,getRelatedWalletOrNull as Cw}from"@rango-dev/queue-manager-rango-preset";import{Button as xf,CopyIcon as Tw,Divider as kw,IconButton as ww,QuoteCost as vw,RangoExplorerIcon as xw,StepDetails as bw,Tooltip as Iw,Typography as co,useCopyToClipboard as Ew}from"@rango-dev/ui";import{useWallets as Aw}from"@rango-dev/wallets-react";import bf from"bignumber.js";import{PendingSwapNetworkStatus as ui}from"rango-types";import Z,{useEffect as If,useRef as Nw,useState as Ef}from"react";import{useNavigate as Ww}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Yk=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.t("Saturday")];function Xd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Xt.t("Today"):`${Yk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Xd,"timeSince");function jd(t){return t.finishTime?Xd(parseInt(t.finishTime)):Xd(parseInt(t.creationTime))}i(jd,"getSwapDate");import{PendingSwapNetworkStatus as ii}from"rango-types";import ai from"react";import{i18n as ni}from"@lingui/core";import{Button as Kd,Divider as Ds,MessageBox as Zk}from"@rango-dev/ui";import jt from"react";var Yd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Ds,{size:20}),jt.createElement(Zk,{type:"error",title:ni.t("Cancel Swap"),description:ni.t("Are you sure you want to cancel this swap?")}),jt.createElement(Ds,{size:32}),jt.createElement(Kd,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Cancel it")),jt.createElement(Ds,{size:12}),jt.createElement(Kd,{variant:"outlined",type:"primary",size:"large",onClick:e},ni.t("No, Continue"))),"CancelContent");import{i18n as ri}from"@lingui/core";import{Button as Zd,Divider as Fs,MessageBox as Jk,Typography as Rk}from"@rango-dev/ui";import _t from"react";var Jd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Fs,{size:20}),_t.createElement(Jk,{type:"error",title:ri.t("Delete Transaction"),description:ri.t("Are you sure you want to delete this swap?")}),_t.createElement(Fs,{size:32}),_t.createElement(Zd,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Delete it")),_t.createElement(Fs,{size:12}),_t.createElement(Zd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Rk,{variant:"title",size:"medium",color:"primary"},ri.t("No, Cancel")))),"DeleteContent");import{i18n as Os}from"@lingui/core";import{PendingSwapNetworkStatus as Us}from"rango-types";var zs={[Us.WaitingForNetworkChange]:{type:"loading",title:Os.t("Change Network")},[Us.WaitingForConnectingWallet]:{type:"warning",title:Os.t("Connect Wallet")},[Us.NetworkChanged]:{type:"success",title:Os.t("Network Changed")}};import{debug as tf}from"@rango-dev/logging-core";import{MessageBox as ew,Wallet as tw}from"@rango-dev/ui";import{useWallets as ow}from"@rango-dev/wallets-react";import Lo,{useState as nw}from"react";import{styled as Rd}from"@rango-dev/ui";var ef=Rd("div",{display:"flex",justifyContent:"center"}),Mz=Rd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var of=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=ow(),[c,f]=nw(null),d=n?.walletType,m=d?Ii(u(d)):null,h=d?p(d):null;return Lo.createElement(Lo.Fragment,null,Lo.createElement(ew,{type:e,title:o,description:r}),a&&!!d&&!!m&&!!h&&Lo.createElement(ef,null,Lo.createElement(tw,{container:B(),title:h.name,image:h.img,type:d,state:m,link:h.installLink,disabled:s,onClick:async()=>{h.namespaces?f({providerType:d,providerImage:h.img,availableNamespaces:h.namespaces,singleNamespace:h.singleNamespace}):l(d).catch(T=>tf(T))}})),Lo.createElement(ro,{open:!!c,onClose:()=>f(null),onConfirm:T=>{l(c?.providerType,void 0,T).catch(g=>tf(g)),f(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function qs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ii.WaitingForNetworkChange||e===ii.WaitingForConnectingWallet||e===ii.NetworkChanged;return ai.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&ai.createElement(of,{type:zs[e].type,title:zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ii.WaitingForNetworkChange}),e==="delete"&&ai.createElement(Jd,{onClose:o,onDelete:n}),e==="cancel"&&ai.createElement(Yd,{onClose:o,onCancel:r}))}i(qs,"SwapDetailsModal");import{i18n as hn}from"@lingui/core";import{Button as Qs,Divider as si,MessageBox as nf,TokenAmount as rw,Typography as Hs}from"@rango-dev/ui";import Be from"react";import{useNavigate as iw}from"react-router-dom";function Gs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:f,diagnosisUrl:d}=t,m=iw();return Be.createElement(ne,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Be.createElement(nf,{type:"success",title:hn.t("Swap Successful")},Be.createElement(rw,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Be.createElement(si,{size:12}),Be.createElement(Hs,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Be.createElement(nf,{type:"error",title:hn.t("Transaction Failed"),description:f}),Be.createElement(si,{size:32}),n==="success"&&Be.createElement(Qs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Be.createElement(Hs,{variant:"title",size:"medium",color:"neutral100"},hn.t("Done"))),Be.createElement(si,{size:12}),d&&Be.createElement(Be.Fragment,null,Be.createElement(Qs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},hn.t("Diagnosis")),Be.createElement(si,{size:12})),Be.createElement(Qs,{variant:"outlined",type:"primary",size:"large",onClick:o},Be.createElement(Hs,{variant:"title",size:"medium",color:"primary"},hn.t("See Details"))))}i(Gs,"SwapDetailsCompleteModal");import hw from"react";import{i18n as mw}from"@lingui/core";import{Alert as Tf,IconButton as dw,LinkIcon as fw}from"@rango-dev/ui";import Kt,{Fragment as gw}from"react";import{Alert as lw,ChevronDownIcon as pw,IconButton as cw}from"@rango-dev/ui";import Bo,{useState as uw}from"react";import{css as yn,darkTheme as aw,styled as Pt,Typography as sw}from"@rango-dev/ui";var rf=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),li=Pt("div",{width:"100%"}),af=Pt(Go,{padding:"$0 $20 $20 $20"}),fq=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),sf=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),gq=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Mo=yn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${aw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lf=yn({padding:"$5 0"}),pi=yn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),pf=yn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),cf=yn({width:"100%",padding:"0 $20 $10"}),uf=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),mf=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ci=Pt(sw,{wordBreak:"break-word"});import{styled as Vs}from"@rango-dev/ui";var df=Vs("div",{display:"flex",flexDirection:"column",gap:"$10"}),ff=Vs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gf=Vs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function hf(t){let{message:e}=t,[o,n]=uw(!1);return Bo.createElement(lw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Bo.createElement(cw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Bo.createElement(ff,{rotated:o},Bo.createElement(pw,{size:12,color:"gray"}))),footer:Bo.createElement(gf,{open:o},Bo.createElement(ci,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hf,"FailedAlert");import{i18n as yf}from"@lingui/core";import{Alert as Xs,Button as Sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as js}from"rango-types";import Sn from"react";function Cf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(js.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},yf.t("Change"))}):r===js.WaitingForConnectingWallet?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(Sf,{size:"xxsmall",type:"warning",onClick:()=>{o(js.WaitingForConnectingWallet)}},yf.t("Connect"))}):Sn.createElement(Xs,{type:"warning",title:n.shortMessage})}i(Cf,"WarningAlert");function Ks(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Kt.createElement(df,null,a.explorerUrl?.map((f,d,m)=>{let h=d+f.url,S=d===m.length-1,T=(S&&u||p)&&!c,g=S&&a.status==="failed";return Kt.createElement(gw,{key:h},Kt.createElement(Tf,{type:S&&(T&&"loading"||g&&"error")||"success",title:f.description?`${f.description} Tx`:mw.t("View transaction"),action:f.url&&Kt.createElement(dw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Kt.createElement(fw,{size:12}))}))}),c&&Kt.createElement(Tf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Kt.createElement(Cf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Kt.createElement(hf,{message:r}))}i(Ks,"SwapDetailsAlerts");var kf=2e3;var wf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ve(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ve(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Oo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ve(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ve(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:hw.createElement(Ks,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vf(t){if(Qo(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(vf,"getStepState");function Ys(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Aw(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),f=X.use.retry(),d=re.use.isActiveTab(),m=Ww(),[h,S]=Ew(kf),T=Nw(null),[g,C]=Ef(null),[k,v]=Ef(null),E=i(()=>{r(),C(null)},"onCancel"),b=Ae.use.getNotifications(),x=Ae.use.removeNotification(),w=b(),I=Sw(e),W=I?.networkStatus;If(()=>{w.find(ce=>ce.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),If(()=>{z?C(ui.WaitingForNetworkChange):W===ui.WaitingForConnectingWallet||W===ui.NetworkChanged?C(W):C(null)},[W]);let L=kp(e),j=I?yw(e,I):null,M=I?Cw(e,I):null,U=jd(e),J=wp(e),me=i(V=>!!l(V)?.mobileWallet,"isMobileWallet"),z=W===ui.WaitingForNetworkChange&&!!j&&!!M?.walletType&&(me(M.walletType)||a(M.walletType,j)),A=z?s.bind(null,M.walletType,j):void 0,oe=Tp(e,I),q=wf({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:C,message:oe,blockchains:p,swappers:u}),R=q.length,[fe,ye]=[e.steps[0],e.steps[R-1]],P=ye.outputAmount||ye.expectedOutputAmountHumanReadable,Ue=e.steps.reduce((V,ce)=>V+parseFloat(ce.feeInUsd||""),0),ke=e.steps.find(V=>V.diagnosisUrl)?.diagnosisUrl,be=N(parseFloat(N(P,6,6))*(ye.toUsdPrice||0),4,4),Tt=N(parseFloat(e.inputAmount)*(fe.fromUsdPrice||0),4,4),kt=P?le(new bf(P).multipliedBy(ye.toUsdPrice||0)):"",tt=le(new bf(e.inputAmount).multipliedBy(fe.fromUsdPrice||0)),ut=je(Tt,be),D=oe.detailedMessage.content||oe.shortMessage,K=e.status==="success"?Ct.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(P,6,6),token:q[R-1].to.token.displayName,conciseAddress:Ln(e.wallets[q[R-1].to.chain.displayName]?.address||""),chain:q[R-1].to.chain.displayName}}):Z.createElement(mf,null,Z.createElement(co,{variant:"body",size:"medium",color:"neutral700",align:"center"},D?"":Ct.t("Transaction was not sent."),L?`${Ct.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),D&&Z.createElement(ci,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",D));return Z.createElement(se,{header:{title:Ct.t("Swap and Bridge"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(Co,null,Z.createElement(xf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},Z.createElement(co,{size:"medium",variant:"label",color:"error"},Ct.t("Delete"))))},footer:J&&!k&&Z.createElement(xf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{f(e,{blockchains:p,tokens:c}),setTimeout(()=>{m("../../")},0)}},Ct.t("Try again"))},Z.createElement(ue,{compact:!0,view:!0},Z.createElement(li,null,Z.createElement("div",{className:Mo()},Z.createElement(co,{variant:"label",size:"large",color:"neutral700"},`${Ct.t("Request ID")}:`),Z.createElement("div",{className:pi()},Z.createElement(co,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(ww,{variant:"ghost",onClick:S.bind(null,o||"")},Z.createElement(Tw,{size:16,color:"gray"})),Z.createElement(uf,{target:"_blank",href:`${sl}/swap/${o}`},Z.createElement(Iw,{container:B(),content:Ct.t("View on Rango Explorer"),side:"bottom"},Z.createElement(xw,{size:20}))))),Z.createElement("div",{className:Mo()},Z.createElement(co,{variant:"label",size:"large",color:"neutral700"},`${Ct.t(e.finishTime?"Finished at":"Created at")}:`),Z.createElement(co,{variant:"label",size:"small",color:"neutral700"},U))),Z.createElement("div",{className:pf()},Z.createElement(vw,{fee:N(String(Ue),2,2),time:$o(xn(e.steps)),steps:R}),Z.createElement(Jo,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Tt,realUsdValue:tt,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(P,6,6),usdValue:be,realUsdValue:kt,realValue:P},token:{displayName:q[R-1].to.token.displayName,image:q[R-1].to.token.image},chain:{image:q[R-1].to.chain.image,displayName:q[R-1].to.chain.displayName}},percentageChange:N(ut,2,2),warningLevel:bt(ut??0)})),Z.createElement("div",{className:cf()},Z.createElement(co,{variant:"title",size:"small"},Ct.t("Swaps steps"))),Z.createElement(kw,{size:8}),Z.createElement(af,{ref:T},q.map((V,ce)=>{let wt=ce,ot=vf(e.steps[ce]),_o=ot==="error"||ot==="in-progress"||ot==="warning"||ot==="completed"&&ce===q.length-1;return Z.createElement(bw,{key:wt,step:V,type:"swap-progress",ref:T,state:ot,hasSeparator:ce!==0,tabIndex:wt,isFocused:_o,tooltipContainer:B()})}))),Z.createElement(qs,{state:g,onClose:()=>C(null),onCancel:E,onDelete:n,message:oe.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!d}),Z.createElement(Gs,{open:!!k,diagnosisUrl:ke,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(P,6,6),usdValue:be,realUsdValue:kt,realValue:le(P),percentageChange:N(ut,2,2),token:{displayName:q[R-1].to.token.displayName,image:q[R-1].to.token.image},chain:{image:q[R-1].to.chain.image},description:K}))}i(Ys,"SwapDetails");import{i18n as di}from"@lingui/core";import{Divider as Wf,NotFound as Pw,Skeleton as Tn,Typography as fi}from"@rango-dev/ui";import he from"react";import{i18n as Lw}from"@lingui/core";import{Divider as Mw,Skeleton as Bw,Typography as _w}from"@rango-dev/ui";import Te from"react";import{css as ct,styled as Zs}from"@rango-dev/ui";var Af=Zs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Cn=Zs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),mi=Zs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),EQ=ct({display:"flex",justifyContent:"space-between",alignItems:"center"}),AQ=ct({display:"flex",justifyContent:"space-between",alignItems:"center"}),NQ=ct({paddingTop:"$15",display:"flex"}),WQ=ct({padding:"$15 $0"}),LQ=ct({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),MQ=ct({paddingBottom:"$10"}),BQ=ct({display:"flex",justifyContent:"start",alignItems:"center"}),_Q=ct({paddingTop:"$5",display:"flex",alignItems:"center"}),PQ=ct({display:"flex",alignItems:"center"}),$Q=ct({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Nf=ct({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Js(){return Te.createElement(Af,null,Te.createElement(tn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(_w,{variant:"title",size:"small"},Lw.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(Cn,null,Te.createElement(ht,{separator:!1}),Te.createElement("div",{className:Nf()},Te.createElement(Mw,{direction:"horizontal",size:20}),Te.createElement(Bw,{height:22,variant:"rectangular"}))),Te.createElement(mi,null),Te.createElement(Cn,null,Te.createElement(ht,{separator:!1})),Te.createElement(mi,null),Te.createElement(Cn,null,Te.createElement(ht,{separator:!1})),Te.createElement(mi,null),Te.createElement(Cn,null,Te.createElement(ht,{separator:!1}))))}i(Js,"LoadingSwapDetails");function Lf(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(se,{header:{title:di.t("Swap and Bridge"),suffix:he.createElement(Co,null)}},o&&he.createElement(rf,null,he.createElement(li,null,he.createElement("div",{className:Mo()},he.createElement(fi,{variant:"label",size:"large",color:"neutral700"},`${di.t("Request ID")}:`),he.createElement("div",{className:pi()},he.createElement(fi,{variant:"label",size:"small",color:"neutral700"},he.createElement(Tn,{width:60,height:10,variant:"rounded"})),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(Tn,{width:16,height:16,variant:"rectangular"}),he.createElement(Wf,{direction:"horizontal",size:4}),he.createElement(Tn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:Mo()},he.createElement(fi,{className:lf(),variant:"label",size:"large",color:"neutral700"},he.createElement(Tn,{width:60,height:10,variant:"rounded"})),he.createElement(fi,{variant:"label",size:"small",color:"neutral700"},he.createElement(Tn,{width:60,height:10,variant:"rounded"})))),he.createElement(Js,null)),!o&&he.createElement(sf,null,he.createElement(Pw,{title:di.t("Not found"),description:di.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Lf,"SwapDetailsPlaceholder");function Mf(){let{manager:t,state:e}=Fw(),o=!e.loadedFromPersistor,n=Ze(t),{requestId:r}=Uw(),a=Ye(),{fetchStatus:s}=y();if(!r)return Rs.createElement(Ow,{containerStyles:{margin:"20px"},type:"error",title:$w.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&Dw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),f=p?.swap;return!f||l?Rs.createElement(Lf,{requestId:r,showSkeleton:l}):Rs.createElement(Ys,{swap:f,requestId:r,onCancel:u,onDelete:c})}i(Mf,"SwapDetailsPage");function Bf(){return Mp(),ji(),zw([{path:Q.home,element:qe.createElement(Jm,null)},{path:Q.routes,element:qe.createElement(nd,null)},{path:Q.fromSwap,children:[{index:!0,element:qe.createElement(Ms,{type:"source"})},{path:Q.blockchains,element:qe.createElement(gs,{type:"source"})}]},{path:Q.toSwap,children:[{index:!0,element:qe.createElement(Ms,{type:"destination"})},{path:Q.blockchains,element:qe.createElement(gs,{type:"destination"})}]},{path:Q.settings,children:[{index:!0,element:qe.createElement(Vd,null)},{path:Q.languages,element:qe.createElement(ed,null)},{path:Q.exchanges,element:qe.createElement(ms,{sourceType:"Exchanges"})},{path:Q.bridges,element:qe.createElement(ms,{sourceType:"Bridges"})}]},{path:Q.swaps,children:[{index:!0,element:qe.createElement(Lm,null)},{path:Q.swapDetails,element:qe.createElement(Mf,null)}]},{path:Q.wallets,element:qe.createElement(Qc,null)},{path:Q.confirmSwap,element:qe.createElement(Cm,null)}])}i(Bf,"AppRoutes");import{useQueueManager as Zw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Jw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Rw}from"rango-sdk";import{useContext as ev,useEffect as tv,useState as Uf}from"react";import{globalCss as qw}from"@rango-dev/ui";var _f=i(()=>qw({"@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')"})(),"globalFont");function Pf(){let{setWatermark:t}=re();return{fetchApiConfig:i(async()=>{let o=await fetch(`${xt("BASE_URL")}/meta/dapp/config?apiKey=${xt("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(Pf,"useFetchApiConfig");import{useWallets as Qw}from"@rango-dev/wallets-react";import{useEffect as Hw,useRef as Gw}from"react";function $f(){let{connect:t,state:e}=Qw(),o=Gw({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Hw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i($f,"useForceAutoConnect");import{isApprovalTX as Vw,MainEvents as gi,RouteEventType as Df,StepEventType as Ff,StepExecutionEventStatus as Xw,useEvents as jw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Of}from"react";function el(){let t=y().tokens(),e=ee.use.connectedWallets(),o=ee.use.getWalletsDetails(),n=Ae.use.setNotification(),r=jw();Of(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Ff.TX_EXECUTION&&l.status===Xw.TX_SENT&&!Vw(p)||l.type===Ff.SUCCEEDED){let f=e.find(m=>m.chain===p?.fromBlockchain),d=p?.fromBlockchain!==p?.toBlockchain&&e.find(m=>m.chain===p?.toBlockchain);f&&o([f],t),d&&o([d],t)}n(l,u)},"handleStepEvent");return r.on(gi.StepEvent,a),()=>r.off(gi.StepEvent,a)},[r,e.length]),Of(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Df.FAILED||l.type===Df.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(gi.RouteEvent,a),()=>r.off(gi.RouteEvent,a)},[r,e.length])}i(el,"useSubscribeToWidgetEvents");import{useManager as Kw}from"@rango-dev/queue-manager-react";import{useEffect as Yw}from"react";function tl(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=Kw();Yw(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ze(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(tl,"useSyncNotifications");function ol(){$f(),_f(),el(),tl();let t=y().blockchains(),{canSwitchNetworkTo:e}=Tr(),[o,n]=Uf(""),[r,a]=Uf(),s=ev(Fn),l=t.filter(Rw),{fetchApiConfig:p}=Pf();Zw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),tv(()=>(Zt.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Jw(o)?.[0]&&n("")}),p().catch(console.log),Zt.destroy),[])}i(ol,"useBootstrap");import{styled as ov}from"@rango-dev/ui";var zf=ov("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function hi(){ol();let{config:t}=y(),{activeTheme:e}=ar(t?.theme||{}),{activeLanguage:o}=Vt();return nl.createElement(nv,{language:o},nl.createElement(zf,{id:"swap-container",className:e()},nl.createElement(Bf,null)))}i(hi,"Main");import{setSolanaSignerConfig as vv}from"@rango-dev/signer-solana";import il,{useEffect as Vf,useMemo as xv}from"react";import{useState as rv}from"react";var iv=i(()=>{let[t,e]=rv(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=yl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),qf=iv;import{checkWaitingForNetworkChange as av,makeQueueDefinition as sv}from"@rango-dev/queue-manager-rango-preset";import{Provider as lv}from"@rango-dev/queue-manager-react";import{useWallets as pv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as cv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as uv}from"rango-types";import mv,{useMemo as dv}from"react";function fv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=pv(),l=dv(()=>sv({API_KEY:t.apiKey||xt("API_KEY"),BASE_URL:xt("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:ee.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},f=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),h=p.filter(uv),S=i(k=>{let{supportedChains:v}=s(k);return En(v)},"getSupportedChainNames"),T=e(),g={meta:{blockchains:m,evmBasedChains:h,evmNetworkChainInfo:cv(h),getSupportedChainNames:S},getSigners:o,wallets:c,providers:T,switchNetwork:f,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},C=re.use.isActiveTab();return mv.createElement(lv,{queuesDefs:[l],context:g,onPersistedDataLoaded:k=>{av(k)},isPaused:!C},t.children)}i(fv,"QueueManager");var Qf=fv;import{useManager as Cv}from"@rango-dev/queue-manager-react";import Tv,{createContext as kv,useContext as wv}from"react";import{cancelSwap as gv,getCurrentBlockchainOfOrNull as hv,getCurrentStep as yv,getRelatedWalletOrNull as Sv}from"@rango-dev/queue-manager-rango-preset";var yi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ze(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&&gv(o)}getCurrentStepInfo(e){let o=yv(e);return{step:o,wallet:o?Sv(e,o):null,network:o?hv(e,o):null}}};var Hf=kv(void 0);function rl(t){let{manager:e}=Cv(),o=re.use.isActiveTab(),n=X.use.retry(),r=new yi(e,{retrySwap:n}),a=ee.use.connectedWallets(),s=ee.use.loading(),l=bl(a),p=ee.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),f=y().swappers(),d=y().fetchStatus,m=Vt().resetLanguage,h=Ae().getNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Zt.forceClaim,history:r,wallets:{isLoading:s,details:a,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:f,loadingStatus:d},resetLanguage:m,notifications:{list:h}};return Tv.createElement(Hf.Provider,{value:S},t.children)}i(rl,"WidgetInfo");function Gf(){let t=wv(Hf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Gf,"useWidget");function Si(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qf();return Vf(()=>{n&&r(n)},[n]),xv(()=>{Bl({API_KEY:o?.apiKey||kn,BASE_URL:o?.apiUrl||al})},[o.apiKey,o.apiUrl]),Vf(()=>{t.config?.signers?.customSolanaRPC&&vv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),il.createElement(On,{config:o,onUpdateState:e},il.createElement(Qf,{apiKey:o.apiKey},il.createElement(rl,null,t.children)))}i(Si,"WidgetProvider");function Xf(t){let e=t.config?.externalWallets;return Ci.createElement(np,null,e?Ci.createElement(hi,null):Ci.createElement(Si,{config:t.config??Li},Ci.createElement(hi,null)))}i(Xf,"Widget");export{HV as EventSeverity,GV as MainEvents,t2 as Networks,r2 as PendingSwapNetworkStatus,VV as RouteEventType,Ti as SUPPORTED_FONTS,XV as StepEventType,jV as StepExecutionBlockedEventStatus,KV as StepExecutionEventStatus,Se as UI_ID,RV as WalletEvents,o2 as WalletTypes,Xf as Widget,Si as WidgetProvider,On as WidgetWallets,oa as customizedThemeTokens,JV as readAccountAddress,Tr as useWallets,Gf as useWidget,YV as useWidgetEvents};
3
3
  //# sourceMappingURL=index.js.map