@rango-dev/widget-embedded 0.28.1-next.1 → 0.28.1-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/fonts.d.ts +5 -0
- package/dist/constants/fonts.d.ts.map +1 -1
- package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -1
- package/dist/globalStyles.d.ts.map +1 -1
- package/dist/hooks/useFontLoader.d.ts +5 -0
- package/dist/hooks/useFontLoader.d.ts.map +1 -0
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/types/config.d.ts +1 -1
- package/dist/utils/common.d.ts +1 -0
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/configs.d.ts +0 -1
- package/dist/utils/configs.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/constants/fonts.ts +84 -0
- package/src/containers/WidgetProvider/WidgetProvider.tsx +12 -1
- package/src/globalStyles.ts +1 -3
- package/src/hooks/useBootstrap/useBootstrap.ts +1 -1
- package/src/hooks/useFontLoader.ts +40 -0
- package/src/hooks/useTheme.ts +1 -1
- package/src/index.ts +2 -0
- package/src/types/config.ts +1 -1
- package/src/utils/common.ts +6 -0
- package/src/utils/configs.ts +0 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var $f=Object.defineProperty;var i=(t,e)=>$f(t,"name",{value:e,configurable:!0});import{EventSeverity as iV,MainEvents as aV,RouteEventType as sV,StepEventType as lV,StepExecutionBlockedEventStatus as pV,StepExecutionEventStatus as cV,useEvents as uV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as dV,useWallets as Sr,Events as fV}from"@rango-dev/wallets-react";import{Networks as hV,WalletTypes as yV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as CV}from"rango-types";import{UI_ID as Df}from"@rango-dev/ui";var Tn="c6381a79-2817-4602-83bf-6a641a409e32",el="https://api.rango.exchange",tl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Df};import{Events as Bi,Provider as Ng}from"@rango-dev/wallets-react";import{isEvmBlockchain as Wg}from"rango-sdk";import Pn,{createContext as Mg,useEffect as Kl,useMemo as Lg,useRef as Yl}from"react";import{useEffect as og}from"react";import{create as Rf}from"zustand";import{subscribeWithSelector as eg}from"zustand/middleware";import{RangoClient as Zf}from"rango-sdk";import{BlockchainCategories as Qf,WalletState as dt}from"@rango-dev/ui";import{readAccountAddress as Hf}from"@rango-dev/wallets-react";import{detectInstallLink as Gf,getCosmosExperimentalChainInfo as Vf,isEvmAddress as Xf,KEPLR_COMPATIBLE_WALLETS as Av,Networks as ml}from"@rango-dev/wallets-shared";import xi from"bignumber.js";import{isCosmosBlockchain as jf}from"rango-types";import Ff from"bignumber.js";var Be=new Ff(0);import{WalletTypes as Of}from"@rango-dev/wallets-shared";var ol=[Of.LEAP];import{BlockchainCategories as Si}from"@rango-dev/ui";import{TransactionType as kn}from"rango-sdk";function lo(t){return Array.from(new Set(t))}i(lo,"removeDuplicateFrom");function ki(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(ki,"areEqual");function ll(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ll,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function il(t,e){return t.toLowerCase()===e.toLowerCase()}i(il,"exactText");function al(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(al,"startWithText");var B=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function sl(t,e,o){let n=!!e&&il(e,t),r=!!o&&il(o,t);return n!==r?n?-1:1:0}i(sl,"compareExactMatchText");function Ci(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(Ci,"compareContainsText");function Ti(t,e,o){let n=!!e&&al(e,t),r=!!o&&al(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ti,"compareStartWithText");function pl(t,e,o){if(!o)return 0;let n=sl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=sl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ti(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ci(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ti(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ci(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ti(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ci(o,t.address,e.address);if(r!==0)return r}return 0}i(pl,"compareWithSearchFor");var xn=i((t,e)=>{switch(e){case Si.ALL:return!0;case Si.UTXO:return t===kn.TRANSFER;case Si.OTHER:return t!==kn.TRANSFER&&t!==kn.COSMOS&&t!==kn.EVM;default:return t===e}},"isBlockchainTypeInCategory");import{BigNumber as ul}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 ul(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new ul(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 mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Po=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function vi(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(vi,"mapStatusToWalletState");function dl(t,e,o,n){return o.filter(r=>!ol.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=lo(d.map(g=>g.type)),f=vi(t(r));return{title:a,image:s,link:Gf(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(dl,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function fl(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}=Hf(p),d=l.length>0,m=l.includes(c),f=c===ml.Unknown;if(d&&!m&&!f)return;let S=c===ml.Unknown&&Xf(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(fl,"prepareAccountsForWalletStore");function Xt(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(Xt,"getQuoteWallets");function En(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(En,"isAccountAndWalletMatched");function gl(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 xi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:Yf(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(gl,"makeBalanceFor");function hl(t){return{...t,loading:!1,error:!0}}i(hl,"resetConnectedWalletState");var yl=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 xi(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return Kf(r)},"calculateWalletUsdValue");function Kf(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Kf,"numberWithThousandSeparator");var Yf=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=Vf(Object.entries(t).map(([,n])=>n).filter(jf));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 Sl(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(Sl,"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 Cl(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(Cl,"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 Tl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Tl,"getAddress");function wi(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(wi,"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 xi(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?wi({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 kl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function xl(t){return t.map(e=>e.state).join("-")}i(xl,"hashWalletsState");function vl(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(vl,"filterBlockchainsByWalletTypes");function wl(t,e){return e===Qf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(xn(n,e))return!0;return!1})}i(wl,"filterWalletsByCategory");var bi={API_KEY:Tn};function kt(t){return bi[t]||""}i(kt,"getConfig");function bl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),bi=e,bi}i(bl,"initConfig");var Il=20,El=25,Al="Roboto",Ii="theme-widget",$o=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"),Ei=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Nl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Ln,_t=i(()=>Ln||(Ln=new Zf(kt("API_KEY"),kt("BASE_URL")),Ln),"httpService");var Jf=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=Jf;var R=Pt(Rf()(eg((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=>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:gl(g,n),loading:!1}:m});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(d=>En(d,c))?hl(c):c);return{loading:!1,balances:Mn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=wi(o);return n[r]??null}}))));import{allProviders as tg}from"@rango-dev/provider-all";function Bn(t,e){let o=tg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""},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 Wl(t,e){return Bn(t,e).map(r=>r.config.type)}i(Wl,"configWalletsToWalletName");function Ml(t,e){let o=R.use.clearConnectedWallet(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId});return og(()=>{o(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Ml,"useWalletProviders");import xg,{createContext as vg,useContext as wg,useEffect as bg,useRef as Ig}from"react";import{create as Tg}from"zustand";import{persist as kg}from"zustand/middleware";var Ai={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},ng={clientUrl:void 0},rg={liquiditySources:void 0},Ll=i((t,e,o)=>({config:{...Ai,...t},iframe:ng,campaignMode:rg,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 Bl(t,e){return e.find(o=>o.name===t)?.displayName}i(Bl,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function Do(t,e){return e.find(o=>o.id===t)?.title}i(Do,"getSwapperDisplayName");function Ni(t,e){return e.find(o=>_e(o,t))??null}i(Ni,"findToken");function Wi(t,e){return e.find(o=>o.name===t)??null}i(Wi,"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 lo(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 _l(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(_l,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Pl(t,e){return e?.[t]==="enabled"}i(Pl,"isFeatureEnabled");var $l=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&&$o(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 y=o.getBalanceFor(u),T=o.getBalanceFor(c),k=Sl(y,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 y=pl(u,c,o.searchFor);if(y)return y}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(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(_l)},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 ig,English as ag,Finland as sg,French as lg,German as pg,Greece as cg,Italian as ug,Japanese as mg,Netherlands as dg,Poland as fg,Portuguese as gg,Russian as hg,Spanish as yg,Swedish as Sg,Ukrainian as Cg}from"@rango-dev/ui";var Dl=[{title:"English",label:"English",local:"en",SVGFlag:ag},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:yg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:lg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:mg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:gg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:ig},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:hg},{title:"German",label:"Deutsch",local:"de",SVGFlag:pg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Cg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Sg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:sg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:dg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:cg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:ug},{title:"Polish",label:"Polski",local:"pl",SVGFlag:fg}],Fo="en";var Fl=[.5,1,3],Ol=1,Ul=5,zl=100,ql=0;var Ql=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Ol,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=lo(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||Fo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Hl(t){return Tg()(kg((...e)=>({...$l(...e),...Ql(...e),...Ll(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(Hl,"createAppStore");var Gl=vg(null);function h(){let t=wg(Gl);if(bg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Vl(t){let e=Ig();return e.current||(e.current=Hl(t.config)),xg.createElement(Gl.Provider,{value:e.current},t.children)}i(Vl,"AppStoreProvider");import{create as Ag}from"zustand";var Xl="rango-widget";var Oo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Xl),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(Ag()((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})}}))),jt=new Oo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var $n=Mg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Bg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),a=h().tokens(),s=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:p}=Ml(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=Yl(),m=Yl();Kl(()=>{n().catch(console.log)},[]),Kl(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(Wg).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===Bi.ACCOUNTS)if(k){let b=In(E.supportedBlockchains),w=fl(y,k,f,b,E.isContractWallet);w.length&&u(w,a)}else c(y),m.current?m.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Bi.ACCOUNTS&&v.connected){let b=`${y}-${v.network}-${k}`;v.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Bi.NETWORK&&v.network){let b=`${y}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,E)},"onUpdateState"),S=ne.use.isActiveTab(),C=Lg(()=>({onConnectWallet:y=>{d.current=y},onDisconnectWallet:y=>{m.current=y}}),[]);return Pn.createElement($n.Provider,{value:C},Pn.createElement(Ng,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Bg,"Main");function Dn(t){let{config:e,...o}=t;return Pn.createElement(Vl,{config:e},Pn.createElement(Bg,{...o,config:e}))}i(Dn,"WidgetWallets");import yi from"react";import _g,{Fragment as Pg}from"react";import{MemoryRouter as $g,useInRouterContext as Dg}from"react-router";function Zl({children:t}){let o=Dg()?Pg:$g;return _g.createElement(o,null,t)}i(Zl,"AppRouter");import{I18nManager as zx}from"@rango-dev/ui";import Zs from"react";import He from"react";import{useRoutes as Ex}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 uo,useRef as Xn}from"react";import vt from"bignumber.js";import{create as zg}from"zustand";import{subscribeWithSelector as qg}from"zustand/middleware";import{getLastSuccessfulStep as Ug}from"@rango-dev/queue-manager-rango-preset";import Jb from"bignumber.js";import{i18n as Uo}from"@lingui/core";var _i={"Network Fee":Uo.t("Network Fee"),"Swapper Fee":Uo.t("Protocol Fee"),"Affiliate Fee":Uo.t("Affiliate Fee"),"Outbound network fee":Uo.t("Outbound Fee"),"Rango Fee":Uo.t("Rango Fee")},Pi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Jl=30;import{i18n as rt}from"@lingui/core";import Pe 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 We}from"@lingui/core";var ee=i(()=>({genericServerError:We.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:We.t("Please reset your liquidity sources."),description:We.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:We.t("No Routes Found."),description:We.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:We.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:We.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:We.t("High Price Impact"),title:We.t("Price impact is too high!"),description:We.t("The price impact is significantly higher than the allowed amount."),confirmMessage:We.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:We.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:We.t("USD Price Unknown"),title:We.t("USD Price Unknown, Cannot calculate Price Impact."),description:We.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:We.t("Confirm USD Price Unknown")}}),"errorMessages");function Rl(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(Rl,"getQuoteErrorMessage");import{i18n as On}from"@lingui/core";var Kt=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 ep(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(ep,"hasHighValueLoss");function tp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(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(tp,"hasLimitError");function op(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(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 Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=rt.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=rt.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=rt.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=rt.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(op,"getLimitErrorMessage");function np(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Kt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Kt().swap,action:"confirm-swap",disabled:!0}:s?{title:Kt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Kt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Kt().swap,action:"confirm-swap",disabled:!1}:{title:Kt().connectWallet,action:"connect-wallet",disabled:!1}}i(np,"getSwapButtonState");function $i(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i($i,"canComputePriceImpact");var Fg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function Di(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=Fg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Di,"getUsdFeeOfStep");function zn(t,e){return t.reduce((o,n)=>o.plus(Di(n,e)),Be)}i(zn,"getTotalFeeInUsd");function Fi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(Fi,"getUsdFee");function rp(t){return t.reduce((e,o)=>e.plus(Fi(o)),Be)}i(rp,"getTotalFeesInUsd");function ip(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(ip,"getFeesGroup");function ap(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(ap,"checkSlippageErrors");function sp(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(sp,"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 lp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(lp,"hasProperSlippage");function pp(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(pp,"createQuoteRequestBody");function cp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(cp,"getWalletsForNewSwap");function po(t){return t?.outputAmount||null}i(po,"getQuoteOutputAmount");function up(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(up,"getPercentageChange");function mp(t,e){let o=po(t),n=po(e);if(!o||!n)return!1;let r=Je(o,n);return r?r<=-1:!0}i(mp,"isOutputAmountChangedALot");function dp(t,e,o){let n=t.validationStatus,r=Xt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Cp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=rt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=rt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=rt.t(" for input and network fee")),rt.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(dp,"generateBalanceWarnings");function Qn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Qn,"calcOutputUsdValue");function zo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Un.NetworkChanged}i(zo,"isNetworkStatusInWarningState");function fp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),zo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Un.WaitingForConnectingWallet:n=n||rt.t("Waiting for connecting wallet");break;case Un.WaitingForQueue:n=n||rt.t("Waiting for other running tasks to be finished");break;case Un.WaitingForNetworkChange:n=n||rt.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(fp,"getSwapMessages");function gp(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(gp,"getLastConvertedTokenInFailedSwap");function hp(t){return t.status==="failed"}i(hp,"shouldRetrySwap");function yp(t,e,o,n,r,a){if(!n||t)return!0;let s=Xt({filter:"all",quote:n}),l=Xt({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(yp,"isConfirmSwapDisabled");function Sp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Sp,"isTokensIdentical");function Gn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Gn,"getQuoteToTokenUsdPrice");function Oi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Oi,"isNumberOfSwapsChanged");function Ui(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!ki(o,n)}i(Ui,"isQuoteSwappersUpdated");function zi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!ki(o,n)}i(zi,"isQuoteInternalCoinsUpdated");function kp(t,e){return Oi(t,e)||Ui(t,e)||zi(t,e)}i(kp,"isQuoteChanged");function Cp(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(Cp,"getRequiredBalanceOfWallet");function xt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(xt,"getPriceImpactLevel");function xp(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Ug(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Wi(a?a.toBlockchain:n.fromBlockchain,e),p=Wi(r.toBlockchain,e),u=Ni(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Ni(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(xp,"createRetryQuote");function co(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Yt(o,t.requestAmount),l=Yt(n,t?.outputAmount??"");if(t&&s&&l){let c=Je(s.toString(),l.toString());if(!!c&&ep(s,c)){let m=zn(t?.swaps,r),f=xt(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>Ul;if(lp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:sp(t,a),minRequiredSlippage:p};return null}i(co,"generateQuoteWarnings");function Je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:up(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var vp=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"),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"),bp=i(t=>{let e=i((o,n)=>{let r=Pi.indexOf(o.value),a=Pi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Yt=i((t,e)=>t?.usdPrice?new vt(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Pt(zg()(qg(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=Be;return Po(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:Yt(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:Yt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=xp(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Yt(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?Yt(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 Ip(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,d=h().fetchStatus,m=h().blockchains(),f=h().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:C}=h(),y=c?.from?.tokens,T=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Xn(void 0),b=Xn(void 0),w=Xn(void 0),x=Xn(void 0);uo(()=>{t(c?.amount?.toString()||"")},[c?.amount]),uo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.from?.blockchain),W=f.find(L=>_e(L,c?.from?.token||null));(I||!I&&w.current)&&n(I??null),W?a({token:W,meta:{blockchains:m,tokens:f}}):!W&&E.current&&a({token:null}),w.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]),uo(()=>{$o(s,y)&&a({token:null}),Ei(p,T)&&n(null)},[y,T]),uo(()=>{$o(l,k)&&a({token:null}),Ei(u,v)&&o(null)},[k,v]),uo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.to?.blockchain),W=f.find(L=>_e(L,c?.to?.token||null));(I||!I&&x.current)&&o(I??null),W?e({token:W,meta:{blockchains:m,tokens:f}}):!W&&b.current&&e({token:null}),x.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]),uo(()=>{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(Ip,"useSyncStoresWithConfig");import{useEffect as Hi,useRef as Qg}from"react";import{useInRouterContext as Hg,useLocation as Gg,useSearchParams as Vg}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 Qi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qi,"tokenToSearchParam");function Gi(){let t=Gg(),[e,o]=Vg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=Hg(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=Qg(),E=i(()=>{let w={};for(let[re,H]of e.entries())re.startsWith("utm_")&&(w[re]=H);let x=e.get("fromAmount"),I=e.get("fromBlockchain"),W=e.get("fromToken"),L=e.get("toBlockchain"),Q=e.get("toToken"),M=e.get("autoConnect"),V=e.get("clientUrl"),Y=e.get("liquiditySources");return{fromAmount:x,fromBlockchain:I,fromToken:W,toBlockchain:L,toToken:Q,autoConnect:M,clientUrl:V,liquiditySources:Y,utmQueryParams:w}},"getUrlSearchParams"),b=i(w=>{for(let x in w)w[x]||delete w[x];o(w,{replace:!0})},"updateUrlSearchParams");Hi(()=>{let{autoConnect:w,clientUrl:x,utmQueryParams:I}=E();C&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Qi(a),toBlockchain:r?.name,toToken:Qi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:x??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Hi(()=>{if(!C)return;let w=E();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&m(w.fromAmount),f==="success"){let x=g.find(Q=>Q.name===w.fromBlockchain),I=qi(S,w.fromToken,x??null),W=g.find(Q=>Q.name===w.toBlockchain),L=qi(S,w.toToken,W??null);x&&(p(x),I&&c({token:I,meta:{blockchains:g,tokens:S}})),W&&(u(W),L&&d({token:L,meta:{blockchains:g,tokens:S}}))}},[f]),Hi(()=>{let{clientUrl:w,liquiditySources:x}=E();y("clientUrl",w||void 0),T("liquiditySources",x?.split(",")??void 0)},[])}i(Gi,"useSyncUrlAndStore");import{i18n as Qa}from"@lingui/core";import{useManager as sC}from"@rango-dev/queue-manager-react";import{Alert as am,Button as lC,css as Ga,Divider as Ha,IconButton as sm,styled as pC,Typography as cC,WalletIcon as uC}from"@rango-dev/ui";import ke,{useEffect as Ur,useLayoutEffect as mC,useRef as dC,useState as on}from"react";import{useNavigate as fC}from"react-router-dom";import{i18n as ht}from"@lingui/core";import{Alert as xa,BalanceErrors as Ky,Button as Uc,ChevronDownIcon as Yy,ChevronLeftIcon as Zy,Divider as ko,MessageBox as Jy,Typography as Cr,WalletIcon as Ry}from"@rango-dev/ui";import O,{useEffect as eS,useState as xo}from"react";import{useNavigate as tS}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 jg}from"@rango-dev/ui";import Kg from"react";function oe(t){let{watermark:e}=ne();return Kg.createElement(jg,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Rn,{useRef as Jg}from"react";import*as mo from"@radix-ui/react-collapsible";import{keyframes as Ap,styled as Yn}from"@rango-dev/ui";var Vi=300,Yg=Ap({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Zg=Ap({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Np=Yn(mo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Xi=Yn(mo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Zn=Yn(mo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Yg} ${Vi}ms ease-out`},false:{animation:`${Zg} ${Vi}ms ease-out`}}}}),Jn=Yn("div",{transition:`all ${Vi}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=Jg(null);return Rn.createElement(Np,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Rn.createElement(Xi,{className:"collapsible_trigger",onClick:a},s),Rn.createElement(Zn,{className:"collapsible_content",open:e},r),l==="bottom"&&Rn.createElement(Xi,{className:"collapsible_trigger",onClick:a},s))}i(er,"CustomCollapsible");import{css as Wp,darkTheme as fo,IconButton as Rg,styled as Re,TextField as eh}from"@rango-dev/ui";var Mp=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Lp=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),th=Re("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${fo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Bp=Re(th,{alignSelf:"stretch",minHeight:"93px"}),_p=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Pp=Re(Rg,{position:"absolute",left:"$20"}),$p=Re("div",{paddingTop:"$20"}),Dp=Wp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fp=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Op=Wp({paddingTop:"$5"}),Up=Re("div",{display:"flex"}),zp=Re(eh,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),qp=Re("div",{overflow:"visible",width:"100%"}),Qp=Re("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${fo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$secondary100",[`.${fo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as at}from"@lingui/core";import{Button as Gy,Divider as Ta,Image as Vy,MessageBox as yr,SelectableWallet as Xy,Typography as Dc,WalletState as Fc}from"@rango-dev/ui";import ce,{useEffect as Oc,useState as To}from"react";import{WalletState as tr}from"@rango-dev/ui";import{useWallets as oh}from"@rango-dev/wallets-react";import{detectMobileScreens as nh,KEPLR_COMPATIBLE_WALLETS as rh,WalletTypes as qo}from"@rango-dev/wallets-shared";import{useCallback as ih,useEffect as ah,useState as sh}from"react";var lh=Object.values(qo);function go(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=oh(),{connectedWallets:u}=R(),c=h().blockchains(),d=Wl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||lh,m=dl(a,l,d,e);m=nh()?m.filter(b=>b.showOnMobile||a(b.type).installed):m;let f=Cl(m),[g,S]=sh(""),C=i(b=>!u.find(w=>w.walletType===b&&w.chain===e),"isExperimentalChainNotAdded"),y=i(async(b,w)=>{let x=a(b);try{if(g&&S(""),x.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,w),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),T=ih(()=>{let b=m?.filter(w=>w.state===tr.CONNECTING)||[];for(let w of b)s(w.type)},[xl(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");ah(()=>()=>{T()},[]);let v=i(b=>{let w=b.find(I=>I.type===qo.DEFAULT);return!w||w.state===tr.NOT_INSTALLED?!1:b.filter(I=>I.state!=tr.NOT_INSTALLED&&![qo.DEFAULT,qo.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,w,x)=>An(x,w)&&C(b)&&!rh.includes(b)||b==qo.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(go,"useWalletList");import{i18n as Wc}from"@lingui/core";import{Divider as $y,getCategoriesCount as Dy,SelectableCategoryList as Fy,styled as Lc,Typography as Oy,Wallet as Uy,WalletState as Mc}from"@rango-dev/ui";import it,{useState as gr}from"react";import{useManager as fy}from"@rango-dev/queue-manager-react";import{BottomLogo as gy,Divider as vc,Header as hy}from"@rango-dev/ui";import ye,{useEffect as fa,useRef as wc,useState as yy}from"react";import{useRef as ph}from"react";function or(){return window.self!==window.top}i(or,"isAppLoadedIntoIframe");function ji(){let t=ph(null),{iframe:e}=h(),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(ji,"useIframe");import{useNavigate as ch}from"react-router-dom";function et(){let t=ch();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as ea,darkTheme as hh,lightTheme as yh}from"@rango-dev/ui";import{useEffect as Sh,useState as Ch}from"react";import{theme as fh,darkColors as gh}from"@rango-dev/ui";import Ji from"react";function uh(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(uh,"generateShades");function nr(t,e){let[o,n,r]=Hp(t);return`#${Ki(o+e)}${Ki(n+e)}${Ki(r+e)}`}i(nr,"generateShade");function Hp(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(Hp,"convertToRGB");function Ki(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Ki,"clamp");function Gp(t){let[s,l,p]=Hp(t);return(s*299+l*587+p*114)/1e3>188}i(Gp,"isBright");var Yi=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,...uh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Vp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),mh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Vp(o%52)+e;return Vp(o%52)+e},"toAlphabeticName"),dh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Zi=i(t=>mh(dh(5381,JSON.stringify(t))>>>0),"toHash");function Ri(t){let e=fh.colors,o=Yi({...e,...gh},!0,t?.dark),n=Yi(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:`${Ii}-light-${Zi(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ii}-dark-${Zi(p)}`,tokens:p}}return{light:s,dark:l}}i(Ri,"customizedThemeTokens");function Xp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ji.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ji.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ji.cloneElement(e,{key:l}))}}),o}i(Xp,"joinList");function rr(t){let{colors:e,fontFamily:o=Al,borderRadius:n=Il,secondaryBorderRadius:r=El}=t,[a,s]=Ch("light"),{theme:l}=h(),{dark:p,light:u}=Ri(e),c=ea({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,yh.className],m=[c.className,hh.className];if(u){let g=ea(u.id,u.tokens);d.push(g.className)}if(p){let g=ea(p.id,p.tokens);m.push(g.className)}return Sh(()=>{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 ft=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 jp}from"@lingui/core";import{Alert as Th,Button as kh}from"@rango-dev/ui";import Kp from"react";function ta(t){return Kp.createElement(Th,{action:Kp.createElement(kh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},jp.t("Activate this tab")),type:"warning",variant:"alarm",title:jp.t("Another tab is open and handles transactions.")})}i(ta,"ActivateTabAlert");import{i18n as oa}from"@lingui/core";import{Button as xh,Divider as vh,MessageBox as wh}from"@rango-dev/ui";import ir from"react";function na(t){let{open:e,onClose:o,onConfirm:n}=t;return ir.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},ir.createElement(wh,{title:oa.t("Activate current tab"),type:"warning",description:oa.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(vh,{size:20}),ir.createElement(xh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},oa.t("Confirm"))))}i(na,"ActivateTabModal");import{ChevronLeftIcon as Eh}from"@rango-dev/ui";import oc from"react";import{css as bh,darkTheme as Yp,IconButton as Ih,styled as Zt}from"@rango-dev/ui";var gt=Zt(Ih,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Yp} &`]:{backgroundColor:"$neutral"}}}),Zp=Zt("div",{position:"absolute",background:"$secondary500",[`.${Yp} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ho=Zt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Jp=Zt("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"}}}}),Rp=Zt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ec=Zt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),tc=bh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ar=Zt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ra(t){return oc.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},oc.createElement(Eh,{color:"black",size:16}))}i(ra,"BackButton");import{i18n as Ah}from"@lingui/core";import{Button as Nh,Typography as Wh}from"@rango-dev/ui";import ia from"react";function aa(t){return ia.createElement(ho,null,ia.createElement(Nh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ia.createElement(Wh,{variant:"label",size:"medium",color:"error500"},Ah.t("Cancel"))))}i(aa,"CancelButton");import{i18n as Mh}from"@lingui/core";import{Image as Lh,Tooltip as Bh,WalletIcon as _h}from"@rango-dev/ui";import Jt from"react";function sa(t){let{list:e}=go({}),o=e.filter(r=>r.state==="connected"),n=o.length?Jt.createElement("div",{className:tc()},o.map(r=>Jt.createElement(ar,{key:r.title},Jt.createElement(Lh,{src:r.image,size:14})))):Mh.t("Connect Wallet");return Jt.createElement(Bh,{container:t.container,side:"bottom",content:n},Jt.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Jt.createElement(Zp,null),Jt.createElement(_h,{size:18,color:"black"})))}i(sa,"WalletButton");import{i18n as pr}from"@lingui/core";import{NotificationsIcon as iy,Popover as ay,SettingsIcon as sy,Tooltip as cr,TransactionIcon as ly}from"@rango-dev/ui";import we from"react";import{i18n as Hh}from"@lingui/core";import{EventSeverity as pc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as cc,ChevronRightIcon as Gh,Divider as Vh,Typography as Xh}from"@rango-dev/ui";import qe from"react";import{useNavigate as jh}from"react-router-dom";import{create as Ph}from"zustand";import{persist as $h,subscribeWithSelector as Dh}from"zustand/middleware";var ze=Pt(Ph()($h(Dh((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),read:!1,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]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{darkTheme as Fh,ListItemButton as Oh,styled as Qo}from"@rango-dev/ui";var nc=Qo("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),rc=Qo("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),ic=Qo(Oh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Fh} &`]:{backgroundColor:"$error600"}}}}}),ac=Qo("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),sc=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Uh}from"@lingui/core";import{Divider as zh,NoNotificationIcon as qh,Typography as Qh}from"@rango-dev/ui";import sr from"react";function lc(){return sr.createElement(sc,null,sr.createElement(qh,{color:"secondary",size:26}),sr.createElement(zh,{size:12}),sr.createElement(Qh,{variant:"body",size:"medium",color:"neutral700"},Uh.t("There are no notifications.")))}i(lc,"NotificationNotFound");var Kh=4;function la(){let t=jh(),{getUnreadNotifications:e}=ze(),o=e(),n=h().blockchains(),r=h().tokens(),a=o.sort((l,p)=>p.creationTime-l.creationTime).slice(0,Kh),s=i(l=>{t(`${U.swaps}/${l}`)},"handleOnClick");return qe.createElement(nc,null,a.length?qe.createElement(rc,null,a.map((l,p)=>{let{route:u,requestId:c,event:d}=l,m=r.find(C=>_e(C,u.from)),f=n.find(C=>C.name===u.from.blockchain),g=r.find(C=>_e(C,u.to)),S=n.find(C=>C.name===u.to.blockchain);return qe.createElement(qe.Fragment,{key:c},p>0&&qe.createElement(Vh,{size:4}),qe.createElement(ic,{onClick:()=>s(c),actionRequired:d.messageSeverity===pc.WARNING,title:qe.createElement(Xh,{variant:"body",size:"small",color:d.messageSeverity===pc.WARNING?"$foreground":"$neutral700"},Hh.t(d.message)),id:c,start:qe.createElement(ac,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(cc,{tokenImage:m?m.image:"",chainImage:f?f.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(cc,{tokenImage:g?g.image:"",chainImage:S?S.logo:"",size:"small"}))),end:qe.createElement(Gh,{size:12,color:"gray"})}))})):qe.createElement(lc,null))}i(la,"NotificationContent");import{useManager as Yh}from"@rango-dev/queue-manager-react";import{InProgressIcon as Zh}from"@rango-dev/ui";import uc from"react";var Jh=i(()=>{let{manager:t}=Yh();return ft(t).map(({swap:o})=>o).find(o=>o.status==="running")?uc.createElement(ec,null,uc.createElement(Zh,{color:"info",size:6})):null},"InProgressTransactionBadge"),mc=Jh;import{RefreshProgressButton as Rh}from"@rango-dev/ui";import pa,{useEffect as ey,useState as dc}from"react";var ty=1e3,fc=60,oy=100;function lr({onClick:t}){let[e,o]=dc(0),[n,r]=dc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ey(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===fc&&l()},ty):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 pa.createElement(gt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},pa.createElement(Rp,{onTransitionEnd:()=>r(!1),isRefetched:n},pa.createElement(Rh,{size:22,color:t?"black":"gray",progress:e/fc*oy})))}i(lr,"RefreshButton");import{EventSeverity as ny}from"@rango-dev/queue-manager-rango-preset";import{Typography as ry}from"@rango-dev/ui";import gc from"react";function hc(){let{getUnreadNotifications:t}=ze(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ny.WARNING);return o?gc.createElement(Jp,{isSever:n},gc.createElement(ry,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(hc,"UnreadNotificationsBadge");function Rt(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ze("notification",s)||r.includes("notifications");return we.createElement(we.Fragment,null,!r.includes("refresh")&&we.createElement(cr,{container:a||B(),side:"top",content:pr.t("Refresh")},we.createElement(lr,{onClick:e})),!l&&we.createElement(ay,{align:"end",alignOffset:-88,collisionPadding:{right:20,left:20},container:B(),content:we.createElement(la,null)},we.createElement("div",null,we.createElement(cr,{container:B(),side:"top",content:pr.t("Notifications")},we.createElement(gt,{size:"small",variant:"ghost"},we.createElement(iy,{size:18,color:"black"}),we.createElement(hc,null))))),!r.includes("settings")&&we.createElement(cr,{container:B(),side:"top",content:pr.t("Settings")},we.createElement(gt,{size:"small",variant:"ghost",onClick:n},we.createElement(sy,{size:18,color:"black"}))),!r.includes("history")&&we.createElement(cr,{container:B(),side:"top",content:pr.t("Transactions History")},we.createElement(gt,{size:"small",variant:"ghost",onClick:o},we.createElement(ly,{size:18,color:"black"}),we.createElement(mc,null))))}i(Rt,"HeaderButtons");import{i18n as ca}from"@lingui/core";import{Divider as Sc,MessageBox as uy,RefreshIcon as my}from"@rango-dev/ui";import yo from"react";import{Button as py,styled as cy}from"@rango-dev/ui";var yc=cy(py,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ua(t){let{open:e,onClose:o}=t;return yo.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},yo.createElement(uy,{title:ca.t("Something went wrong"),type:"error",description:ca.t("Something went wrong. Please refresh the app.")},yo.createElement(Sc,{size:30}),yo.createElement(yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},yo.createElement(my,{size:20,color:"primary"}),yo.createElement(Sc,{size:4,direction:"horizontal"}),ca.t("Refresh"))))}i(ua,"RefreshModal");function ma(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(ma,"onScrollContentAttachStatusToContainer");import{css as dy,styled as da}from"@rango-dev/ui";var Cc="700px",ur=dy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Tc=da("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Cc},fixed:{height:Cc}}}}),kc=da("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),xc=da("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}=ji(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=yy(!1),c=R.use.connectedWallets(),{config:{features:d,theme:m}}=h(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:S}=rr(m||{}),C=Ze("connectWalletButton",d),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ne(),b=et(),{manager:w}=fy(),I=ft(w).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),W=i(()=>E(jt.forceClaim,I),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,M=wc(null),V=wc(null);return fa(()=>(or()&&V.current&&e(V.current),()=>{o()}),[]),fa(()=>(M.current?.addEventListener("scroll",ma),()=>{M.current?.removeEventListener("scroll",ma)}),[]),fa(()=>{u(l==="failed")},[l]),ye.createElement(Tc,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${ur()}`,ref:V},ye.createElement(hy,{prefix:ye.createElement(ye.Fragment,null,Q&&ye.createElement(ra,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:ye.createElement(ye.Fragment,null,r.suffix,r.onWallet&&!C&&ye.createElement(sa,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&ye.createElement(aa,{onClick:r.onCancel}))}),ye.createElement(kc,{ref:M},n),ye.createElement(na,{open:k,onClose:()=>v(!1),onConfirm:W}),ye.createElement(xc,null,ye.createElement("div",{className:"footer__content"},T&&!y&&ye.createElement("div",{className:"footer__alert"},ye.createElement(ta,{onActivateTab:W}),ye.createElement(vc,{size:10})),a),ye.createElement(vc,{size:12}),ye.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ye.createElement(gy,null))),ye.createElement(ua,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as Sy}from"@rango-dev/ui";var bc="$20 $20 $10 $20",Ho=Sy("div",{padding:bc,overflowY:"auto",flexGrow:1});import{styled as Cy}from"@rango-dev/ui";var ue=Cy("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 wy}from"@rango-dev/ui";import ha from"react";import{i18n as So}from"@lingui/core";import{Image as xy,MessageBox as ga,WalletState as vy}from"@rango-dev/ui";import eo from"react";import{keyframes as Ty,styled as mr}from"@rango-dev/ui";var LN=mr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),dr=mr("div",{position:"relative"}),ky=Ty({"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:`${ky} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ic=mr("div",{"& img":{borderRadius:"50%"}});function Ec(t){let{state:e,image:o,error:n}=t;return e===vy.CONNECTED?eo.createElement(ga,{type:"success",title:So.t("Wallet Connected"),description:So.t("Your wallet is connected, you can use it to swap.")}):n?eo.createElement(ga,{type:"error",title:So.t("Failed to Connect"),description:n||So.t("Your wallet is not connected. Please try again.")}):eo.createElement(ga,{type:"loading",title:So.t("Connecting to your wallet"),description:So.t("Click connect in your wallet popup."),icon:eo.createElement(dr,null,eo.createElement(Ic,null,eo.createElement(xy,{src:o,size:45})),eo.createElement(fr,null))})}i(Ec,"ModalContent");function Go(t){let{open:e,onClose:o,...n}=t;return ha.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ha.createElement(Ec,{...n}),ha.createElement(wy,{direction:"vertical",size:32}))}i(Go,"WalletModal");import{i18n as ya}from"@lingui/core";import{Button as Iy,Checkbox as Ey,Image as Nc,ListItemButton as Ay,MessageBox as Ny,Radio as Wy,RadioRoot as My}from"@rango-dev/ui";import{Namespace as Co}from"@rango-dev/wallets-shared";import Ie,{useMemo as Ly,useState as By}from"react";import{styled as by}from"@rango-dev/ui";var Ac=by("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var _y={[Co.Evm]:"ETH",[Co.Solana]:"SOLANA",[Co.Cosmos]:"COSMOS",[Co.Utxo]:"BTC",[Co.Starknet]:"STARKNET",[Co.Tron]:"TRON"},Py=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function to(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=By([]),a=h().blockchains(),s=Ly(()=>o?.map(u=>({name:u,logo:Py(a,_y[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?Ie.createElement(My,{value:n?.[0]},u):Ie.createElement(Ie.Fragment,null,u),"wrapRadioRoot");return Ie.createElement(oe,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ie.createElement(Ny,{type:"info",title:ya.t("Select chain types"),description:ya.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ie.createElement(dr,null,Ie.createElement(ar,null,Ie.createElement(Nc,{src:t.image,size:45})),Ie.createElement(fr,null))}),Ie.createElement(Ac,null,p(Ie.createElement(Ie.Fragment,null,s?.map(u=>Ie.createElement(Ay,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ie.createElement(Nc,{src:u.logo,size:22}),end:e?Ie.createElement(Wy,{value:u.name}):Ie.createElement(Ey,{checked:n.includes(u.name)})}))))),Ie.createElement(Iy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},ya.t("Confirm")))}i(to,"WalletNamespacesModal");var zy=Lc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),qy=Lc(ue,{textAlign:"center"}),hr=3e3,Sa=300;function Bc(){let{fetchStatus:t}=h(),[e,o]=gr("ALL"),n=h().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}=go({onBeforeConnect:x=>{c=setTimeout(()=>{a(!0),u(x)},Sa)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},hr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),y=m.find(x=>x.type===p),T=y?.image||"",k=y?.state||Mc.NOT_INSTALLED,v=vl(m,n),b=Dy(v)!==1,w=wl(m,e);return it.createElement(le,{header:{title:Wc.t("Connect Wallets")}},it.createElement(qy,null,b&&it.createElement(it.Fragment,null,it.createElement(Fy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),it.createElement($y,{size:24})),it.createElement(Oy,{variant:"title",size:"xmedium",align:"center"},Wc.t("Choose a wallet to connect.")),it.createElement(zy,null,w.map((x,I)=>{let W=`wallet-${I}-${x.type}`;return it.createElement(Uy,{key:W,...x,container:B(),onClick:L=>{x.namespaces&&x.state===Mc.DISCONNECTED?l({providerType:L,providerImage:x.image,availableNamespaces:x.namespaces,singleNamespace:x.singleNamespace}):f(L)},isLoading:t==="loading",disabled:!d})}),it.createElement(Go,{open:!!r,onClose:C,image:T,state:k,error:g}),it.createElement(to,{open:!!s,onClose:()=>l(null),onConfirm:x=>{f(s?.providerType,x),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Bc,"WalletsPage");import{keyframes as Qy,styled as Ca}from"@rango-dev/ui";var _c=Ca("div",{position:"relative"}),Hy=Qy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Pc=Ca("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Hy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=Ca("div",{"& img":{borderRadius:"50%"}});var jy=7;function ka(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=h(),[u,c]=To(""),[d,m]=To(null),[f,g]=To(!1),[S,C]=To(null),[y,T]=To(null),{suggestAndConnect:k}=Sr(),v=null,{list:E,error:b,handleClick:w,disconnectWallet:x,disconnectConnectingWallets:I}=go({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},Sa)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},hr)}}),[W,L]=To(E),Q=E.length,M=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");Oc(()=>{L(A=>{let te=E.findIndex(q=>o(q.type,e));return M&&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(he.SWAP_BOX_ID);Oc(()=>{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=Tl({connectedWallets:l,walletType:A.type,chain:e}),q=te?Wn(te,jy):"",Z=An(p(),e),me=!l.find(X=>X.walletType===A.type&&X.chain===e),ge=Z&&me&&A.state===Fc.CONNECTED,_=ge?at.t({id:"Add {chain} chain",values:{chain:e}}):q,Oe=i(async()=>{A.state===Fc.DISCONNECTED?A.namespaces?Y(A):w(A.type):A.namespaces&&!q?(await x(A.type),Y(A)):ge?(m({walletType:A.type,chain:e,address:te??""}),g(!0)):n({walletType:A.type,chain:e,address:te??""})},"onClick"),P=d?.chain?Bl(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(to,{open:!!y,onClose:()=>T(null),onConfirm:X=>{w(y?.providerType,X),T(null)},image:y?.providerImage,namespaces:y?.availableNamespaces,singleNamespace:y?.singleNamespace}),!!d&&ce.createElement(oe,{open:!!d&&f,container:re,onClose:()=>{m(null)}},ce.createElement(yr,{title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),type:"warning",description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}})},ce.createElement(Ta,{size:18}),ce.createElement(Ta,{size:32}),ce.createElement(Gy,{onClick:V.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},at.t("Confirm")))),S&&ce.createElement(oe,{open:!!S,onClose:C.bind(null,null),container:re},S==="in-progress"&&ce.createElement(yr,{type:"loading",title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}}),icon:ce.createElement(_c,null,ce.createElement($c,null,ce.createElement(Vy,{src:A.image,size:45})),ce.createElement(Pc,null))}),S==="completed"&&ce.createElement(yr,{type:"success",title:at.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:P}}),description:at.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:at.t("Request Rejected"),description:at.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:P}})}),ce.createElement(Ta,{direction:"vertical",size:32})),ce.createElement(Xy,{key:A.type,description:_,onClick:Oe,selected:o(A.type,e),disabled:!s,...A}))}),M&&ce.createElement(Bp,{selected:!1,onClick:a},ce.createElement(Dc,{variant:"label",size:"medium"},at.t("Show more wallets"),ce.createElement(Dc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(ka,"WalletList");var oS=2;function zc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=h().config,l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=j(),{connectedWallets:g,selectWallets:S}=R(),[C,y]=xo(""),[T,k]=xo([]),[v,E]=xo(""),[b,w]=xo(null),[x,I]=xo(!!m),W=Xt({filter:"all",quote:p}),L=Xt({filter:"required",quote:p}),Q=l.find(P=>P.name===p?.swaps[p?.swaps.length-1].to.blockchain),M=i(P=>L.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&&(M(X)||!M(X)&&!m)),"isSelected"),te=!!m&&x&&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&&y(""),A(P.walletType,P.chain))return;let ie=g.find(Ee=>Ee.walletType===P.walletType&&Ee.chain===P.chain);ie&&(n(),P.chain===Q?.name&&x&&(I(!1),f(null)),re(Ee=>Ee.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"),ge=i(async()=>{k([]),E(""),w(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&&w(X.quoteUpdate),P.error&&E(Rl(P.error)),!P.error&&!X?.balance?.messages.length?me():k(X?.balance?.messages??[])},"onConfirmWallets");eS(()=>{re(P=>P.concat(g.filter(X=>!!!P.find(Ee=>Ee.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[g.length]);let _=document.getElementById(he.SWAP_BOX_ID),Oe=tS();return O.createElement(oe,{open:e,onClose:()=>{c||Oe("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:O.createElement(Up,null,O.createElement(Uc,{loading:a,disabled:yp(a,x,m,p,Y,Q),onClick:ge,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ht.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:O.createElement(_p,null,O.createElement(Pp,{variant:"ghost",onClick:y.bind(null,"")},O.createElement(Zy,{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(Jy,{title:ht.t("Insufficient account balance"),type:"error",description:O.createElement(Ky,{messages:T??[]})},O.createElement(Uc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},ht.t("Proceed anyway")))),C&&O.createElement($p,null,O.createElement("div",{className:Dp()},O.createElement(ka,{chain:C,isSelected:A,selectWallet:Z,onShowMore:y.bind(null,C)}))),!C&&O.createElement(O.Fragment,null,v&&O.createElement(O.Fragment,null,O.createElement(xa,{variant:"alarm",type:"error",title:ht.t(v)}),O.createElement(ko,{size:12})),b&&O.createElement(O.Fragment,null,O.createElement(xa,{variant:"alarm",type:"warning",title:Kn(b)}),O.createElement(ko,{size:12})),O.createElement(qp,null,W.map((P,X)=>{let ie=l.find(Ae=>Ae.name===P),Ee=`wallet-${X}`,Ge=X===W.length-1;return O.createElement("div",{key:Ee},O.createElement(Mp,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(ko,{size:24}),O.createElement(Lp,null,O.createElement(ka,{chain:P,isSelected:A,selectWallet:Z,limit:oS,onShowMore:()=>y(ie?.name??"")})),!Ge&&O.createElement(ko,{size:32}),Ge&&s?.customDestination&&O.createElement(Fp,null,O.createElement(er,{onOpenChange:Ae=>{Ae?M(Q?.name??"")||re(Le=>Le.map(Ke=>Ke.chain===Q?.name?{...Ke,selected:!1}:Ke)):q()},hasSelected:!0,open:x,triggerAnchor:"top",trigger:O.createElement(Qp,null,O.createElement("div",{className:"button__content"},O.createElement(Ry,{size:18,color:"info"}),O.createElement(ko,{size:4,direction:"horizontal"}),O.createElement(Cr,{variant:"label",size:"medium"},ht.t("Send to a different address"))),O.createElement(Jn,{orientation:x?"up":"down"},O.createElement(Yy,{size:10,color:"gray"}))),onClickTrigger:()=>I(Ae=>!Ae)},O.createElement(ko,{size:4}),O.createElement(zp,{placeholder:ht.t("Your destination address"),value:m||"",onChange:Ae=>{let Le=Ae.target.value;Le.length?f(Le.length?Le:null):(I(!1),f(null))},...!m&&{autoFocus:!0}})),te&&O.createElement("div",{className:Op()},O.createElement(xa,{variant:"alarm",type:"error",title:ht.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(zc,"ConfirmWalletsModal");import{i18n as kS}from"@lingui/core";import{Alert as xS,Button as vS,InfoIcon as wS}from"@rango-dev/ui";import Xe from"react";import{Alert as iS,Button as aS,Divider as ba,NoRouteIcon as sS,RefreshIcon as lS,Typography as jc}from"@rango-dev/ui";import Ve from"react";import{i18n as qc}from"@lingui/core";var nS=24,rS=60;function Qc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:qc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:qc.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(Qc,"makeInfo");var va=(o=>(o[o.small=nS]="small",o[o.large=rS]="large",o))(va||{}),wa=(o=>(o.small="small",o.large="medium",o))(wa||{});import{styled as Tr}from"@rango-dev/ui";var Hc=Tr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Gc=Tr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Vc=Tr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Xc=Tr("div",{padding:"$6 $0"});function Vo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Qc(o,r,()=>a(s,!0),e);return Ve.createElement(Hc,null,Ve.createElement(sS,{size:va[n],color:"gray"}),Ve.createElement(ba,{size:4}),Ve.createElement(jc,{variant:"title",size:wa[n]},ee().noResultError.title),n==="large"&&Ve.createElement(ba,{size:4}),!!l.description&&Ve.createElement(Gc,{size:n},Ve.createElement(jc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(ba,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(Vc,{size:n},Ve.createElement(iS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(aS,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(Xc,null,Ve.createElement(lS,{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 uS,MessageBox as mS,Typography as dS,WarningIcon as fS}from"@rango-dev/ui";import wt from"react";import{Typography as Jc}from"@rango-dev/ui";import Ea from"react";import{darkTheme as pS,styled as kr}from"@rango-dev/ui";var Kc=kr("div",{width:"100%"}),Ia=kr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Yc=kr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${pS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zc=kr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Rc(t){let{title:e,value:o,valueColor:n}=t;return Ea.createElement(Yc,null,Ea.createElement(Jc,{size:"medium",variant:"label",className:"_title"},e),Ea.createElement(Jc,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Rc,"QuoteErrorsModalItem");function eu(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 wt.createElement(oe,{footer:wt.createElement(cS,{type:"primary",size:"large",prefix:wt.createElement(fS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},wt.createElement(mS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),wt.createElement(Ia,null,wt.createElement(uS,{size:"4"}),wt.createElement(dS,{size:"small",variant:"title"},Xo.t("Details")),wt.createElement(Ia,null,l.map((p,u)=>wt.createElement(Rc,{key:u,...p})))))}i(eu,"HighValueLossWarningModal");import{i18n as Aa}from"@lingui/core";function tu(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=Aa.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&&(xt(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=Aa.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=Aa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(tu,"makeAlerts");import{i18n as vo}from"@lingui/core";import{Button as ou,Divider as nu,MessageBox as gS,Typography as hS}from"@rango-dev/ui";import oo from"react";import{useNavigate as yS}from"react-router-dom";function ru(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=yS(),u=e??o;return oo.createElement(oe,{anchor:"bottom",open:n,prefix:oo.createElement(ou,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},oo.createElement(hS,{variant:"label",size:"medium",color:"$neutral900"},vo.t("Change settings"))),container:B(),onClose:r},oo.createElement(gS,{type:"warning",title:s.type===3?vo.t("High slippage"):vo.t("Low slippage"),description:s.type===3?vo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):vo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},oo.createElement(nu,{size:18}),oo.createElement(nu,{size:32}),oo.createElement(ou,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},vo.t("Confirm anyway"))))}i(ru,"SlippageWarningModal");import{Button as SS,MessageBox as CS,WarningIcon as TS}from"@rango-dev/ui";import xr from"react";function iu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return xr.createElement(oe,{footer:xr.createElement(SS,{type:"primary",size:"large",prefix:xr.createElement(TS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},xr.createElement(CS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(iu,"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=tu(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(Kc,null,Xe.createElement(xS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Xe.createElement(Zc,{onClick:l},Xe.createElement(wS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Xe.createElement(vS,{size:"xxsmall",type:f.alertType,onClick:c},kS.t("Change"))}})),e&&Xe.createElement(Xe.Fragment,null,e.type===0&&Xe.createElement(eu,{...d,warning:e}),(e.type===3||e.type===2)&&Xe.createElement(ru,{...d,warning:e}),e.type===1&&Xe.createElement(iu,{...d,warning:e})))}i(jo,"QuoteWarningsAndErrors");import tC from"bignumber.js";import $r from"react";import{i18n as no}from"@lingui/core";import{Alert as qS,Divider as bo,FullExpandedQuote as QS,InfoIcon as HS,QuoteTag as GS,StepDetails as VS,TokenAmount as XS,Tooltip as Fu,Typography as Io}from"@rango-dev/ui";import $a from"bignumber.js";import $,{useRef as jS,useState as KS}from"react";import{styled as Na}from"@rango-dev/ui";var Wa=Na("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),au=Na("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),su=Na("div",{width:"100%",display:"flex"});import*as vr from"@radix-ui/react-collapsible";import{Button as bS,css as Ko,darkTheme as Ce,Image as lu,styled as $e,Typography as IS}from"@rango-dev/ui";var ES=300,pu=$e(vr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Ce} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),cu=Ko({padding:"$10 $15"}),uu=$e(bS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Ce} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Ce} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ce} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),mu=$e("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",[`.${Ce} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ce} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ce} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ce} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ce} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ce} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ce} &`]:{backgroundColor:"$neutral400"}}}}]}),du=Ko({width:"100%",padding:"$15 $15 $10 $15"}),fu=Ko({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),wo=Ko({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),gu=Ko({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ce} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=$e(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:{[`& ${lu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${lu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Ce} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),yu=$e("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"}}}}),Su=$e(Zn,{width:"100%",background:"inherit"}),Ma=$e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ES}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),$L=$e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Cu=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ce} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Tu=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),La=$e(IS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ku=$e("div",{display:"flex",flexWrap:"wrap"}),Ba=$e("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"}}}}),xu=$e("div",{display:"flex"}),wr=$e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ce} &`]:{borderTopColor:"$neutral800"}});import{i18n as zt}from"@lingui/core";import{ChevronDownIcon as NS,CloseIcon as WS,Divider as Er,IconButton as MS,QuoteCost as LS,Tooltip as BS,Typography as st}from"@rango-dev/ui";import K,{useState as Iu}from"react";import{css as AS,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"}}),_a=br("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),vu=br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),wu=br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),bu=AS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var _S=i(t=>t.fee.isZero()?null:K.createElement(Ir,null,K.createElement(st,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(st,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Eu(t){let[e,o]=Iu(!1),[n,r]=Iu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=B(),f=ip(d);return K.createElement(K.Fragment,null,K.createElement(LS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?zt.t("View more info"):void 0,tooltipContainer:m}),K.createElement(oe,{container:m,open:e,header:K.createElement(wu,null,K.createElement(st,{variant:"title",size:"medium"},zt.t("Gas & Fee Explanation")),K.createElement(MS,{onClick:()=>o(!1),variant:"ghost"},K.createElement(WS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(vu,null,K.createElement(st,{variant:"title",size:"small"},zt.t("Details")),K.createElement(Er,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Fi(C);return K.createElement(Ir,{key:T},K.createElement(st,{variant:"label",size:"medium",color:"neutral600"},_i[g]),K.createElement(BS,{content:pe(C.amount),container:m},K.createElement(st,{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(st,{variant:"label",size:"medium"},zt.t("Total Payable Fee")),K.createElement(st,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(_a,null),Object.keys(f.nonePayable).length&&K.createElement(er,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:bu()},K.createElement(st,{size:"small",variant:"body",color:"neutral700"},n?zt.t("Hide non-payable fees"):zt.t("Show non-payable fees")),K.createElement(Er,{size:4,direction:"horizontal"}),K.createElement(Jn,{orientation:n?"up":"down"},K.createElement(NS,{size:12,color:"gray"}))),open:n},K.createElement(st,{size:"small",variant:"title"},zt.t("Description")),K.createElement(Er,{size:4}),K.createElement(st,{size:"small",variant:"body",color:"neutral700"},zt.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 y=rp(S),T=_i[g],k=`non-payable-fee-${C}`;return K.createElement(_S,{key:k,fee:y,label:T})}),K.createElement(_a,null)))))}i(Eu,"QuoteCostDetails");import{i18n as Wu}from"@lingui/core";import{TokenAmount as Mu}from"@rango-dev/ui";import Ar from"react";import{css as PS,styled as $S}from"@rango-dev/ui";var Au=$S("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Nu=PS({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(Au,null,Ar.createElement(Mu,{direction:"horizontal",label:Wu.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:Nu()}),Ar.createElement(Mu,{direction:"horizontal",tooltipContainer:B(),label:Wu.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 $u}from"@lingui/core";import{ChevronDownIcon as OS,ChevronRightIcon as US,Divider as Pa,Image as zS,Tooltip as Br,Typography as Wr}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as DS,useState as Zo}from"react";var Lu=480,Bu=768,_u=1024,Pu=1200,FS=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<=Lu),n(window.innerWidth>Lu&&window.innerWidth<=Bu),a(window.innerWidth>Bu&&window.innerWidth<=_u),l(window.innerWidth>_u&&window.innerWidth<=Pu),u(window.innerWidth>Pu)},"handleResize");return DS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Nr=FS;var Mr=4,Lr=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(yu,{className:n,state:a},D.createElement(zS,{src:o,size:16})))},"ImageComponent");function Du(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=vp(r),{isTablet:d,isMobile:m}=Nr();return D.createElement(hu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},D.createElement("div",{className:wo()},D.createElement(Wr,{variant:"body",size:"xsmall"},$u.t("Via:")),D.createElement(Pa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=D.createElement(Ma,null,D.createElement(US,{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<=Mr||u>Mr&&g<Mr-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===Mr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:wo()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&D.createElement(D.Fragment,{key:k},D.createElement(Jo,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&D.createElement(D.Fragment,null,C))}))},D.createElement(Ba,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",u-g))))})),D.createElement("div",{className:wo()},D.createElement("div",{className:"blockchains_section"},D.createElement("div",{className:wo()},D.createElement(Wr,{variant:"body",size:"xsmall"},$u.t("Chains:")),D.createElement(Pa,{direction:"horizontal",size:4}),c.map((f,g)=>D.createElement(D.Fragment,{key:f.displayName},c.length<=Lr||c.length>Lr&&g<Lr-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===Lr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:wo()},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(Ba,{className:"blockchainImage"},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",c.length-g))))),D.createElement(Pa,{direction:"horizontal",size:32}))),D.createElement(Ma,{orientation:a?"up":"down"},D.createElement(OS,{size:12,color:"black"}))))}i(Du,"QuoteTrigger");function Da(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=h().blockchains(),g=h().tokens(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=KS(t.expanded),E=jS(null),b=N(o.value,6,6),w=N(n.value,6,6),x=n.usdValue?N(n.usdValue,4,4):"",I=Je(o.usdValue,n.usdValue??null),W=N(I,2,2),L=xt(I??0),Q=i((me,ge)=>me.map((_,Oe)=>{let P,X=r?.type===3&&r.swap.swapperId===_.swapperId,ie=r?.type===4&&r.recommendedSlippages?.has(Oe),Ee=a?.type===2&&a.recommendedSlippages?.has(Oe),Ge=X||ie,Ae=Ee;Ge?P="error":Ae&&(P="warning");let Le=Ge?no.t("Slippage Error"):no.t("Slippage Warning");return X&&(Le=no.t("Bridge Limit Error")),{swapper:{displayName:Do(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ye(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Oe===0&&!ge?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:pe(Oe===0?o.value:_.fromAmount),realUsdValue:pe(new $a(_.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 $a(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:P,alerts:Ge||Ae?$.createElement(au,{dense:d},$.createElement(qS,{variant:"alarm",type:Ge?"error":"warning",title:Le,footer:$.createElement(su,null,X&&$.createElement("div",null,$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(bo,{direction:"vertical",size:2}),$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(ie||Ee)&&!X&&$.createElement("div",null,$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Oe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Oe)}}})),$.createElement(bo,{direction:"vertical",size:2}),$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:_o(_.estimatedTimeInSeconds),fee:N(Di(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),M=Q(e?.swaps??[]),V=M.length,Y=m||B(),re=bp(t.quote.tags||[]),H=!!c,A=_o(vn(e?.swaps)),te=zn(e?.swaps??[],g),q=N(te,2,2),Z=te.gte(new $a(Jl));return d?$.createElement(QS,{selected:l,fee:q,time:A,tooltipContainer:Bo(),steps:M,tags:re,feeWarning:Z,percentageChange:W,warningLevel:L,outputPrice:{value:w,usdValue:x,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):$.createElement(mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:du()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(xu,null,re.map((me,ge)=>{let _=`${me.value}_${ge}`;return $.createElement($.Fragment,{key:_},$.createElement(GS,{label:me.label,value:me.value}),$.createElement(bo,{size:4,direction:"horizontal"}))})),$.createElement(wr,null),!H&&$.createElement(bo,{size:4})):null,$.createElement("div",{id:"portal-root",className:fu()},$.createElement(Eu,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(uu,{onClick:me=>{me.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Io,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},no.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:gu()},$.createElement(Tu,null,$.createElement(HS,{size:12,color:"gray"})),$.createElement(ku,null,$.createElement(La,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(Fu,{content:pe(n.value),container:Y,open:n.value?void 0:!1},$.createElement(La,{size:"small",variant:"body"},"\xA0",`${w} ${M[M.length-1].to.token.displayName}`))),$.createElement(Fu,{content:pe(n.usdValue),container:Y},$.createElement(bo,{size:2,direction:"horizontal"}),$.createElement(Io,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),s==="list-item"&&$.createElement(XS,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:w,usdValue:x,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:M[V-1].to.token.displayName,image:M[V-1].to.token.image},chain:{image:M[V-1].to.chain.image},percentageChange:W,warningLevel:L}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Yo,{from:M[0].from,to:M[V-1].to,percentageChange:W,warningLevel:L}),$.createElement(bo,{size:4}))),$.createElement(pu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Du,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:M}),$.createElement(Su,{open:k},$.createElement(Cu,null),$.createElement("div",{className:cu()},M.map((me,ge)=>{let _=`item-${ge}`;return $.createElement(VS,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:ge!==M.length-1,state:me.state})})))))}i(Da,"Quote");import{Divider as RS,Skeleton as eC}from"@rango-dev/ui";import It from"react";import{darkTheme as YS,styled as _r}from"@rango-dev/ui";var Ou=_r("div",{$$color:"$colors$neutral100",[`.${YS} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Uu=_r("div",{paddingTop:"$2"}),zu=_r("div",{paddingLeft:"$8"}),qu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ju,Divider as lt,Skeleton as je}from"@rango-dev/ui";import z from"react";import{css as ZS,styled as bt}from"@rango-dev/ui";var Fa=bt("div",{display:"flex"}),Qu=bt("div",{padding:"$10 $0 $20"}),Hu=bt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Gu=bt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Vu=bt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Xu=bt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),ju=bt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ku=bt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Yu=bt("div",{padding:"$15 $0 $15 $0"}),Zu=ZS({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ro(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(Vu,null,z.createElement(ju,null,z.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(lt,{size:8,direction:"horizontal"}),z.createElement(Ku,null,z.createElement(je,{height:10,width:60,variant:"rounded"}),z.createElement(lt,{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(Fa,null,z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"})),z.createElement(wr,null),!r&&z.createElement(lt,{size:4})),z.createElement("div",{className:Zu()},z.createElement(Fa,null,z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(lt,{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(Qu,null,z.createElement(je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Hu,null,z.createElement(Gu,null,z.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(lt,{direction:"horizontal",size:4}),z.createElement(je,{height:15,width:150,variant:"rounded"})),z.createElement(lt,{size:10}),z.createElement(je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(lt,{size:4}),z.createElement(Yu,null,n,z.createElement(Xu,null),n),z.createElement(lt,{size:12})))}i(Ro,"QuoteSummarySkeleton");import{ChainToken as nm,Divider as Ua,NextIcon as JS,Skeleton as Pr}from"@rango-dev/ui";import Te from"react";import{styled as en}from"@rango-dev/ui";var Ru=en("div",{display:"flex",alignItems:"start"}),em=en("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Oa=en("div",{display:"flex",alignItems:"center",flexGrow:1}),tm=en("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),om=en("div",{display:"flex",alignItems:"center"});function yt(t){let{separator:e=!0}=t;return Te.createElement(Te.Fragment,null,Te.createElement(om,null,Te.createElement(Pr,{height:22,width:22,variant:"circular"}),Te.createElement(Ua,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:15,width:148,variant:"rounded"})),Te.createElement(Ru,null,Te.createElement(qu,{hideSeparator:!e}),Te.createElement(em,{extraSpace:e},Te.createElement(Oa,null,Te.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(Ua,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:12,variant:"rounded"})),Te.createElement(tm,null,Te.createElement(JS,{color:"gray",size:16})),Te.createElement(Oa,null,Te.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(Ua,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:12,variant:"rounded"})))))}i(yt,"StepSkeleton");function tn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return It.createElement(Ou,{expanded:o,rounded:e!=="basic"},It.createElement(Ro,{type:e,tagHidden:n}),It.createElement(Uu,null,It.createElement(eC,{height:15,variant:"rounded"})),o&&It.createElement(zu,null,It.createElement(RS,{size:24}),It.createElement(yt,null),It.createElement(yt,null),It.createElement(yt,{separator:!1})))}i(tn,"QuoteSkeleton");function ro(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(),y=e?.outputAmount?new tC(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(Wa,null,$r.createElement(tn,{tagHidden:l,type:o,expanded:s})):v?$r.createElement(Wa,{onClick:()=>p?.(e)},$r.createElement(Da,{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:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(ro,"QuoteInfo");import{calculatePendingSwap as iC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as aC}from"react";import{useRef as oC,useState as nC}from"react";var rC=2e3;function Dr({request:t}){let[e,o]=nC(!1),n=oC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,rC)),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 rm(){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(rm,"useFetchConfirmQuote");function Fr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=za(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Fr,"throwErrorIfResponseIsNotValid");function za(t){if(tp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=op(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=ap(t);if(o){let n=qn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(za,"getQuoteError");function im(t,e,o){let n=!1;t&&(n=kp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=co(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(mp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(po(e)),percentageChange:N(Je(po(t)??"",po(e)??""),null,2)}:Oi(t,e)?r.quoteUpdate={type:0}:Ui(t,e)?r.quoteUpdate={type:1}:zi(t,e)&&(r.quoteUpdate={type:2}));let s=dp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(im,"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 qa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),d=h().blockchains(),m=h().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:C}=rm();return aC(()=>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((w,x)=>(w[x.chain]=x.address,w),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await g(b,!0).then(w=>{let{result:x}=w;Fr({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let I={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};n(I);let W={slippage:f.toString(),disabledSwappersGroups:c},L=im(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});L.quoteUpdate&&s(!1),l();let Q=!!L.balance,M=iC(o.toString(),x,cp(k),W,!Q,{blockchains:d,tokens:m});return{quote:I,swap:M,error:null,warnings:L}})}catch(w){return Or(w)}},"fetch"),cancelFetch:S}}i(qa,"useConfirmSwap");var gC=pC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${sm}`]:{width:"$48",height:"$48"}}),hC=Ga({flexGrow:1,paddingRight:"$10"}),yC=Ga({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),SC=Ga({display:"flex",justifyContent:"space-between",alignItems:"center"});function lm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=fC(),[l,p]=on(""),u=!n,[c,d]=on(!1),[m,f]=on(!1),{isActiveTab:g}=ne(),S=h().getDisabledLiquiditySources(),C=dC(S),{manager:y}=sC(),{fetch:T,loading:k,cancelFetch:v}=qa(),[E,b]=on({swap:null,error:null,warnings:null}),[w,x]=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 y?.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"),L=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?x(!0):await L()},"onStartConfirmSwap"),M=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&&M(),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))},[]),mC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=E.warnings?.quote??null,Y=E.error,re=[];if(l&&re.push(ke.createElement(am,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&re.push(ke.createElement(am,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Kn(E.warnings.quoteUpdate)})),V||Y){let H=`../${U.settings}`;re.push(ke.createElement(jo,{warning:V,error:Y,couldChangeSettings:!1,refetchQuote:M,showWarningModal:w,confirmationDisabled:!g,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await W()},onChangeSettings:()=>s(H)}))}return ke.createElement(le,{header:{title:Qa.t("Confirm Swap"),onWallet:()=>{let H=`../${U.wallets}`;s(H)}},footer:ke.createElement(gC,null,ke.createElement("div",{className:hC()},ke.createElement(lC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:Q},Qa.t("Start Swap"))),ke.createElement(sm,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},ke.createElement(uC,{size:24})))},c&&ke.createElement(zc,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),ke.createElement(ue,null,ke.createElement("div",{className:SC()},ke.createElement(cC,{variant:"title",size:"small"},Qa.t("You get")),ke.createElement("div",{className:yC()},ke.createElement(lr,{onClick:!k&&!c&&!w?M:void 0}))),ke.createElement(Ha,{size:"12"}),Xp(re.map((H,A)=>({element:H,key:`alert-${A}`})),ke.createElement(Ha,{size:10})),re.length>0?ke.createElement(Ha,{size:10}):null,ke.createElement(ro,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(lm,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as _C}from"@rango-dev/queue-manager-react";import{Divider as Cm,NotFound as PC,styled as $C}from"@rango-dev/ui";import At,{useState as DC}from"react";import{useNavigate as FC}from"react-router-dom";import{i18n as kC}from"@lingui/core";import{Divider as dm,GroupedVirtualizedList as xC,Skeleton as vC,SwapListItem as fm,Typography as wC}from"@rango-dev/ui";import De,{useCallback as gm,useEffect as bC,useRef as IC,useState as EC}from"react";function pm(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(pm,"calculateGroupsSoFar");import{css as CC,darkTheme as TC,styled as nn}from"@rango-dev/ui";var Va=CC(),cm=nn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Xa=nn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Va}`]:{$$color:"$colors$neutral600",[`.${TC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ja=nn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),um=nn("div",{gap:"$10",display:"flex",flexDirection:"column"}),mm=nn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var AC=10;function Ka(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=EC([]),l=IC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=gm(pm,[]),m=gm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,AC),s(d(u,l.current)))},[e.length]);if(bC(()=>{r||m()},[r,m]),r){let f=[1,2];return De.createElement(De.Fragment,null,[f,f].map((S,C)=>De.createElement(Xa,{key:C},De.createElement(ja,null,De.createElement(vC,{variant:"text",width:60,size:"small"}),De.createElement(dm,{size:16})),De.createElement(dm,{size:4}),De.createElement(um,null,S.map((T,k)=>De.createElement(fm,{isLoading:!0,key:k}))))))}return De.createElement(xC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>De.createElement(Xa,null,De.createElement(ja,null,De.createElement(wC,{variant:"label",size:"medium",className:Va()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return De.createElement(cm,{key:S.requestId},De.createElement(fm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===kC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:pe(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(Ka,"HistoryGroupedList");import{CloseIcon as WC,IconButton as MC,SearchIcon as LC,TextField as BC}from"@rango-dev/ui";import rn from"react";import{styled as NC}from"@rango-dev/ui";var hm=NC("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(BC,{prefix:rn.createElement(hm,null,rn.createElement(LC,{color:"black"})),suffix:!!s.length&&rn.createElement(MC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},rn.createElement(WC,{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 ym from"dayjs";var Sm=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=ym();t.forEach(p=>{let u=Number(p.creationTime),c=ym(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 OC=$C("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),UC=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 Tm(){let t=FC(),{manager:e,state:o}=_C(),n=ft(e).map(({swap:c})=>c),[r,a]=DC(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>mt(c.inputAmount,r)||mt(c.status,r)||UC(c.steps,r)||mt(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(Cm,{size:"16"}),At.createElement(OC,null,u&&At.createElement(mm,null,At.createElement(Cm,{size:32}),At.createElement(PC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&At.createElement(Ka,{list:p,onSwapClick:t,groupBy:Sm,isLoading:s}))))}i(Tm,"HistoryPage");import{i18n as iT}from"@lingui/core";import{Button as aT,Divider as Fm,styled as sT,WarningIcon as lT}from"@rango-dev/ui";import pT from"bignumber.js";import Qe,{useEffect as Om,useState as Um}from"react";import{useNavigate as cT}from"react-router-dom";import{i18n as VC}from"@lingui/core";import{Header as XC}from"@rango-dev/ui";import qt,{useEffect as jC,useState as KC}from"react";import{i18n as qC}from"@lingui/core";import{Divider as Za,FullExpandedQuote as QC,Typography as HC}from"@rango-dev/ui";import de from"react";import{styled as Ya}from"@rango-dev/ui";var km=Ya("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),xm=Ya("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),vm=Ya("div",{width:"146px"});import{i18n as an}from"@lingui/core";import{Select as zC}from"@rango-dev/ui";import wm 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 wm.createElement(vm,null,wm.createElement(zC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Qr,"SelectStrategy");var bm=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}=h(),y=h().tokens(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(x=>{if(!d||!m||!u)return null;let I={requestAmount:u.requestAmount,...x};return co(I,{fromToken:d,toToken:m,userSlippage:v,tokens:y})},"getQuoteWarning"),b=g?.type===0||g?.type===1,w=u?.results?Vn(f,u?.results):[];return de.createElement(de.Fragment,null,a&&de.createElement(de.Fragment,null,de.createElement(xm,null,de.createElement(HC,{size:"xmedium",variant:"title"},qC.t("Sort by")),de.createElement(Qr,{container:T})),de.createElement(Za,{size:"10"})),e&&Array.from({length:bm},(x,I)=>de.createElement(de.Fragment,{key:I},s?de.createElement(QC,{loading:!0}):de.createElement(tn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==bm-1&&de.createElement(Za,{size:16}))),!e&&de.createElement(de.Fragment,null,k?w.map((x,I)=>{let W=E(x),L=za(x.swaps),Q=w.length-1===I;return de.createElement(de.Fragment,{key:x.requestId},de.createElement(ro,{showModalFee:r,container:T,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,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"}),!Q&&de.createElement(Za,{size:16}))}):b&&de.createElement(km,null,de.createElement(Vo,{size:s?"large":"small",error:g,fetch:n}))))}i(sn,"Quotes");import{darkTheme as GC,styled as Im}from"@rango-dev/ui";var Em=Im("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${GC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Am=Im("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var YC=100;function Ja(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=KC(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",d=Bo();return jC(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},YC):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),qt.createElement(Em,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ur()}`,id:he.EXPANDED_BOX_ID},qt.createElement(XC,{title:VC.t("Routes"),suffix:qt.createElement(qt.Fragment,null,qt.createElement(Qr,{container:d}),qt.createElement(Rt,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),qt.createElement(Am,null,qt.createElement(sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:c})))}i(Ja,"ExpandedQuotes");import{i18n as Pm}from"@lingui/core";import{SwapInput as $m}from"@rango-dev/ui";import ln from"react";import{ReverseIcon as RC}from"@rango-dev/ui";import es from"react";import{keyframes as ZC,styled as Nm}from"@rango-dev/ui";var Ra=450,JC=ZC({"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)"}}),Wm=Nm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Mm=Nm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${JC} ${Ra}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 ts(){let t=j.use.switchFromAndTo();return es.createElement(Wm,null,es.createElement(Mm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Ra),t()}},es.createElement(RC,{size:12})))}i(ts,"SwitchFromAndToButton");import{styled as Lm}from"@rango-dev/ui";var Bm=Lm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),_m=Lm("div",{position:"relative"});function os(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(),y=a?C(a):null,T=Nn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",v=!!s&&kl(S,s.name),E=!$i(g,c,d),b=!$i(g,c,f),w=!d||!f||!f.gt(0)?null:Je(d.toString(),f.toString());return ln.createElement(Bm,null,ln.createElement(_m,null,ln.createElement($m,{label:Pm.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(ts,null)),ln.createElement($m,{sharpBottomStyle:!r&&(!!g||e),label:Pm.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:xt(w??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(os,"Inputs");import{useCallback as eT,useEffect as tT,useRef as oT,useState as nT}from"react";function Dm(){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(Dm,"useFetchAllQuotes");var rT=600;function Hr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Dm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=R.use.connectedWallets(),l=h().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:y,updateQuotePartialState:T}=j(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:w,fetchStatus:x}=h(),I=h().getLiquiditySources(),W=h().getDisabledLiquiditySources(),L=h().excludeLiquiditySources(),[Q,M]=nT(!0),V=oT(c),Y=v??k,H=!p||!u||_e(p,u)||!Po(c),A=i(Z=>{M(Z)},"resetState"),te=i(Z=>{let{fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae}=Z;if(Q||A(!0),!H&&me&&ge){g();let Le=pp({fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,wallets:s,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae,enableCentralizedSwappers:a});Pl("experimentalRoute",r)&&(Le.experimental=!0),e(Le).then(Ke=>{let Ne=Vn(f,Ke.results),Ue=wp(m,Ne,Ke.requestAmount);M(!1),T("quotes",Ke),y(Ue),Fr({diagnosisMessages:Ke.diagnosisMessages,requestId:Ue?.requestId||"",swaps:Ue?.swaps});let Cn=Ue&&co(Ue,{fromToken:me,toToken:ge,userSlippage:Y,tokens:l});T("warning",Cn)}).catch(Ke=>{let{error:Ne}=Or(Ke);(Ne?.type===0||Ne?.type===1)&&g(),Ne?.type!==2&&(T("error",Ne),M(!1))})}},"fetch"),q=eT(ll(Z=>{te(Z)},rT),[H]);return tT(()=>{if(!t){M(!1);return}if(x!=="success")return;if(H){M(!1),(m||S||C)&&g();return}if(!Po(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:L,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:w}),o},[x,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,H,I?.length,n,W.length,Y,b,E,JSON.stringify(w)]),{fetch:()=>te({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:w}),loading:Q}}i(Hr,"useSwapInput");var uT=sT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),mT=300;function zm(){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]=Um(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Nr(),{fetch:y,loading:T}=Hr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:E}=R(),{isActiveTab:b}=ne(),[w,x]=Um(!1),W=np({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Nl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new pT(n).gt(0)&&!Sp(e,o),M=Q&&v==="success"&&T,re=(!L||L&&p?.results.length)&&(l||s);Om(()=>{c(),m("refetchQuote",!0)},[]),Om(()=>{g(Q)},[Q]);let H=(r||s)&&!w?y:void 0,A=i(q=>{L&&f?(g(!1),setTimeout(()=>{t(q)},mT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(x(!1),u(q))},"onClickOnQuote");return Qe.createElement(uT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(aT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(lT,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?A(U.wallets):W.action==="confirm-warning"?x(!0):A(U.confirmSwap)}},W.title),header:{onWallet:()=>{A(U.wallets)},hasBackButton:!1,title:k.title||iT.t("Swap"),suffix:Qe.createElement(Rt,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>A(U.swaps),onClickSettings:()=>{A(U.settings)}})}},Qe.createElement(ue,null,Qe.createElement(os,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:L,onClickToken:q=>{A(q==="from"?U.fromSwap:U.toSwap)}}),Qe.createElement(Fm,{size:"2"}),L?null:Qe.createElement(ro,{quote:r,loading:M,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(Fm,{size:"10"}),Qe.createElement(jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:w,confirmationDisabled:!b,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),d(!0),A(U.confirmSwap)},onChangeSettings:()=>A(U.settings)})):null)),L?Qe.createElement(Ja,{loading:M,onClickOnQuote:te,fetch:y,onClickRefresh:H,isVisible:f}):null)}i(zm,"Home");import{i18n as qm}from"@lingui/core";import{Alert as dT,Divider as fT,List as gT,ListItemButton as hT,Radio as yT,RadioRoot as ST,Typography as CT}from"@rango-dev/ui";import St from"react";function Qt(){let{setLanguage:t,language:e,config:o}=h(),n=Dl,r=o?.language||Fo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Fo),resetLanguage:()=>t(null)}}i(Qt,"useLanguage");function Qm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Qt(),n=et(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:St.createElement(CT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:St.createElement(yT,{value:s}),start:St.createElement(p,null)}});return St.createElement(le,{header:{title:qm.t("Language")}},St.createElement(ue,null,St.createElement(dT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),St.createElement(fT,{size:"8"}),St.createElement(ST,{value:t},St.createElement(gT,{type:St.createElement(hT,{title:qm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Qm,"LanguagePage");import{i18n as Nt}from"@lingui/core";import{Button as wT,Checkbox as bT,Image as IT,ListItemButton as ET,NotFound as AT,Typography as NT}from"@rango-dev/ui";import Fe,{useState as WT}from"react";import{Checkbox as xT,Skeleton as Gm}from"@rango-dev/ui";import cn from"react";import{styled as ns}from"@rango-dev/ui";var pn=ns("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),rs=ns("div",{width:80,display:"flex",justifyContent:"flex-end"}),is=ns("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as TT,styled as kT}from"@rango-dev/ui";var Hm=kT(TT,{height:61});var vT=30;function as(){return cn.createElement(pn,null,Array.from(Array(vT),(t,e)=>cn.createElement(Hm,{hasDivider:!0,key:e,start:cn.createElement(Gm,{variant:"circular",width:35,height:35}),title:cn.createElement(Gm,{variant:"text",size:"large",width:90}),end:cn.createElement(xT,{checked:!1})})))}i(as,"LoadingLiquiditySourceList");function ss({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=WT(""),s=h().toggleLiquiditySource,l=h().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(y=>c.includes(y.type)),m=d.length===d.filter(y=>y.selected).length,f=i(()=>{d.forEach(y=>{m?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:Fe.createElement(IT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(bT,{checked:T,disabled:l}),title:Fe.createElement(NT,{variant:"title",size:"xmedium"},Nt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>mt(y.groupTitle,r))),Fe.createElement(le,{header:{title:Nt.t(t),suffix:Fe.createElement(rs,null,Fe.createElement(wT,{variant:"ghost",size:"xsmall",onClick:f},m?Nt.t("Deselect all"):Nt.t("Select all")))}},Fe.createElement(ue,{view:!0},Fe.createElement(Et,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Nt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Fe.createElement(as,null),!C.length&&r?Fe.createElement(is,null,Fe.createElement(AT,{title:Nt.t("No results found"),description:Nt.t("Try using different keywords")})):e==="success"&&Fe.createElement(pn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return Fe.createElement(Fe.Fragment,{key:y.id},Fe.createElement(ET,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ss,"LiquiditySourcePage");import{i18n as MT}from"@lingui/core";import Gr from"react";import{useNavigate as LT}from"react-router-dom";function Vm(){let t=LT(),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:MT.t("Routes"),suffix:Gr.createElement(Rt,{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(Vm,"RoutesPage");import{i18n as ed}from"@lingui/core";import{Divider as td,getCategoriesCount as zT,SelectableCategoryList as qT}from"@rango-dev/ui";import Wt,{useState as od}from"react";import{i18n as ls}from"@lingui/core";import{Divider as Jm,Image as $T,ListItemButton as DT,NotFound as FT,Typography as Rm}from"@rango-dev/ui";import tt,{useEffect as OT,useState as UT}from"react";var Xm=i((t,e,o)=>t.filter(n=>xn(n.type,o)).filter(n=>Tt(n.name,e)||Tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as BT,styled as jm}from"@rango-dev/ui";var Km=jm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vr=jm(Ho,{padding:0,margin:0,listStyle:"none",[`& ${BT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as _T,Skeleton as Ym}from"@rango-dev/ui";import Xr from"react";var PT=20;function Zm(){return Xr.createElement(Vr,null,Array.from(Array(PT),t=>Xr.createElement(_T,{key:t,hasDivider:!0,start:Xr.createElement(Ym,{variant:"circular",width:35,height:35}),title:Xr.createElement(Ym,{variant:"text",size:"large",width:90})})))}i(Zm,"LoadingBlockchainList");function ps(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=UT(e),{fetchStatus:l}=h();OT(()=>{s([...Xm(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?tt.createElement(tt.Fragment,null,tt.createElement(Jm,{size:32}),tt.createElement(FT,{title:ls.t("No results found"),description:ls.t("Try using different keywords")})):tt.createElement(Vr,{as:"ul",key:`${r}-${o}`},a.map(u=>tt.createElement(DT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:tt.createElement($T,{src:u.logo,size:30}),title:tt.createElement(Rm,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return tt.createElement(Km,null,tt.createElement(Rm,{variant:"label",size:"large"},ls.t("Select Blockchain")),tt.createElement(Jm,{size:4}),l==="loading"&&tt.createElement(Zm,null),l==="success"&&p())}i(ps,"BlockchainList");function cs(t){let{type:e}=t,o=et(),[n,r]=od(""),[a,s]=od("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),m=zT(c)!==1;return Wt.createElement(le,{header:{title:ed.t("Select Blockchain")}},Wt.createElement(ue,{view:!0},m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(qT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Wt.createElement(td,{size:24})),Wt.createElement(Et,{value:n,autoFocus:!0,placeholder:ed.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Wt.createElement(td,{size:16}),Wt.createElement(ps,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(cs,"SelectBlockchainPage");import{i18n as Jr}from"@lingui/core";import{Divider as vd}from"@rango-dev/ui";import io,{useState as ik}from"react";import{useNavigate as ak}from"react-router-dom";import{i18n as ds}from"@lingui/core";import{BlockchainsChip as jr,Divider as ad,Image as sd,Skeleton as XT,Tooltip as jT,Typography as fs}from"@rango-dev/ui";import be from"react";import{useEffect as GT}from"react";var nd=["ETH","COSMOS","OSMOSIS"];function us(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(QT),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(HT(s)),r=n.splice(a)}return{list:n,more:r}}i(us,"prepare");function QT(t,e){let o=nd,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(QT,"sortByMostUsedBlockchains");function HT(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(HT,"generateSortByPreferredBlockchainsFor");function rd(t,e){return!!e.list.find(o=>o.name===t)}i(rd,"isInVisibleList");function ms(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();GT(()=>{if(e?.selected){let a=us(t,o,e);rd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=us(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ms,"usePrepareBlockchainList");import{styled as VT}from"@rango-dev/ui";var id=VT("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var KT=12;function gs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ms(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return be.createElement(be.Fragment,null,be.createElement(ad,{size:12}),be.createElement(fs,{variant:"label",size:"large"},ds.t("Select Blockchain")),be.createElement(ad,{size:12}),be.createElement(id,null,l==="loading"&&Array.from(Array(KT),f=>be.createElement(XT,{key:f,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(fs,{variant:"body",size:"xsmall",color:"secondary500"},ds.t("All"))),s.list.map(f=>be.createElement(jT,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},be.createElement(jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(sd,{src:f.logo,size:30})))),d?be.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},be.createElement(sd,{src:s.more[0].logo,size:30})):null,m?be.createElement(jr,{onClick:a,key:"more-blockchains"},be.createElement(fs,{variant:"body",size:"xsmall",color:"secondary500"},ds._("More +{count}",{count:s.more.length}))):null)))}i(gs,"BlockchainsSection");import{i18n as bs}from"@lingui/core";import{darkTheme as Sd,Divider as Ao,ExternalLinkIcon as JT,Image as RT,ListItemButton as ek,NotFound as tk,PinIcon as ok,Skeleton as Cd,Typography as Zr,VirtualizedList as nk}from"@rango-dev/ui";import G,{useEffect as Td,useState as kd}from"react";import{Divider as hd,ListItem as ZT,Skeleton as un}from"@rango-dev/ui";import pt from"react";import{css as Eo,darkTheme as ld,ImageContainer as YT,styled as ot,Typography as pd}from"@rango-dev/ui";var hs=Eo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ys=Eo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ss=Eo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Cs=Eo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ts=Eo({}),ks=Eo(),cd=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),xs=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kr=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ys}`]:{[`& .${Cs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ts}`]:{bottom:"-15px"},[`& .${hs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ss}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),vs=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ws=ot(pd,{}),ud=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ks}`]:{$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),TO=ot("div",{display:"flex",alignItems:"center"}),md=ot("div",{position:"relative",[`& ${YT}`]:{borderRadius:"$xm",overflow:"hidden"}}),dd=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),fd=ot(pd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),gd=ot("a",{"& svg:hover":{color:"$colors$info"}});function yd(t){return pt.createElement(Kr,null,Array.from(Array(t.size),e=>pt.createElement(ZT,{key:e,hasDivider:!0,start:pt.createElement(un,{variant:"circular",width:35,height:35}),end:pt.createElement(Yr,null,pt.createElement(un,{variant:"text",size:"large",width:70}),pt.createElement(hd,{size:4}),pt.createElement(un,{variant:"text",size:"medium",width:50})),title:pt.createElement("div",null,pt.createElement(un,{variant:"text",size:"large",width:90}),pt.createElement(hd,{size:4}),pt.createElement(un,{variant:"text",size:"medium",width:90}))})))}i(yd,"LoadingTokenList");var Is=20,rk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:ys()},o?G.createElement("div",{className:hs()},o):G.createElement(xs,{className:Ss()},G.createElement(Zr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Ao,{direction:"horizontal",size:4}),G.createElement(vs,{css:a},G.createElement(ws,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${Cs()} ${!o&&Ts()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Ao,{size:4,direction:"horizontal"}),G.createElement(gd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(JT,{size:12}))))},"renderDesc");function xd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=kd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=kd(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Is))},"loadNextPage");Td(()=>{c(e.length>a.length)},[a.length]),Td(()=>{s(e.slice(0,Is))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Ao,{size:32}),G.createElement(tk,{title:bs.t("No results found"),description:bs.t("Try using different keywords")})):G.createElement(nk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Nn(d(y)),k=y.address||"",v=p.find(I=>I.name===y.blockchain),E=nr(v?.color||"",Gp(v?.color||"")?5:125),b=nr(v?.color||"",-100),w={$$color:E,[`.${Sd} &`]:{$$color:b},backgroundColor:"$$color"},x={$$color:b,[`.${Sd} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(ek,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:G.createElement(md,null,G.createElement(RT,{src:y.image,size:30}),f(y,t.type)&&G.createElement(dd,null,G.createElement(ok,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?G.createElement(xs,null,G.createElement(Zr,{variant:"title",size:"xmedium"},y.symbol),G.createElement(Ao,{direction:"horizontal",size:4}),G.createElement(vs,{css:w},G.createElement(ws,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?rk({address:k,token:a[C],customCssForTag:w,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:m?G.createElement(Yr,null,G.createElement(Cd,{variant:"text",size:"large",width:70}),G.createElement(Ao,{size:4}),G.createElement(Cd,{variant:"text",size:"medium",width:50})):T&&G.createElement(ud,null,G.createElement(fd,{variant:"title",size:"small"},T.amount),G.createElement("div",null),T.usdValue&&G.createElement(Zr,{variant:"body",className:ks(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(cd,null,G.createElement(Zr,{variant:"label",size:"large"},bs.t("Select Token")),G.createElement(Ao,{size:4}),l==="loading"&&G.createElement(yd,{size:Is}),l==="success"&&G.createElement(Kr,{as:"ul"},S()))}i(xd,"TokenList");function Es(t){let{type:e}=t,o=ak(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=R.use.getBalanceFor(),[d,m]=ik(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),y=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 io.createElement(le,{header:{title:Jr.t("Swap {type}",{type:k[e]})}},io.createElement(ue,null,io.createElement(gs,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(U.blockchains),onChange:v=>{y(v)}}),io.createElement(vd,{size:24}),io.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)}),io.createElement(vd,{size:16}),io.createElement(xd,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{T(v);let E=S.find(b=>v.blockchain===b.name);E&&y(E),n()}})))}i(Es,"SelectSwapItemsPage");import{i18n as Ms}from"@lingui/core";import{Alert as Mk,Button as Lk,styled as Bk}from"@rango-dev/ui";import ao from"react";import{useInRouterContext as _k,useSearchParams as Pk}from"react-router-dom";import{i18n as Nd}from"@lingui/core";import{Divider as ck,InfoIcon as uk,TextField as mk,Tooltip as dk,Typography as Wd}from"@rango-dev/ui";import ct from"react";import{Chip as sk,styled as mn,TextField as lk}from"@rango-dev/ui";var wd=mn("div",{paddingTop:"$5",padding:"$10 $5"}),bd=mn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${lk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Id=mn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rr=mn("div",{maxWidth:"280px",padding:"$10"}),Ed=mn(sk,{width:"61px",flexShrink:0});import{i18n as As}from"@lingui/core";import{Typography as pk}from"@rango-dev/ui";import dn from"react";function Ad(){return dn.createElement(Rr,null,dn.createElement(pk,{variant:"label",size:"medium",color:"neutral700"},As.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,As.t("Warning")),":",As.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(Ad,"SlippageTooltipContent");function Ns(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ct.createElement(wd,null,ct.createElement(Id,null,ct.createElement(Wd,{variant:"title",size:"xmedium"},Nd.t("Slippage tolerance per swap")),ct.createElement(ck,{direction:"horizontal",size:4}),ct.createElement(dk,{container:B(),side:"top",sideOffset:4,content:ct.createElement(Ad,null)},ct.createElement(uk,{color:"gray"}))),ct.createElement(bd,null,Fl.map((r,a)=>{let s=`slippage-${a}`;return ct.createElement(Ed,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ct.createElement(mk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=ql&&s<=zl?n(s):n(null)},suffix:o&&ct.createElement(Wd,{variant:"body",size:"small"},"%"),placeholder:Nd.t("Custom")})))}i(Ns,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as Md,BridgesIcon as fk,ChevronRightIcon as Ws,DarkModeIcon as Ld,Divider as ei,ExchangeIcon as gk,InfinityIcon as hk,InfoIcon as yk,LanguageIcon as Sk,LightModeIcon as Bd,List as Ck,ListItem as Tk,ListItemButton as kk,Skeleton as xk,styled as vk,Switch as wk,Tabs as bk,Tooltip as Ik,Typography as nt}from"@rango-dev/ui";import F from"react";import{useNavigate as Ek}from"react-router-dom";var Ak=vk("div",{width:"202px",height:"$40"}),Nk=[{id:"light",icon:F.createElement(Bd,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:F.createElement(Ld,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:F.createElement(Md,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],Wk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Md,{...e});case"dark":return F.createElement(Ld,{...e});default:return F.createElement(Bd,{...e})}},"getThemeIcon");function _d(){let t=Ek(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Qt(),s=a.find(V=>V.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),d=Ze("theme",c),m=Ze("liquiditySource",c),f=Ze("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=_n(p,u),y=C.filter(V=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(V.type)),T=y.length,k=y.filter(V=>V.selected).length,v=C.filter(V=>V.type==="DEX"),E=v.length,b=v.filter(V=>V.selected).length,w=i((V,Y)=>{switch(l){case"loading":return F.createElement(xk,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return F.createElement(nt,{variant:"body",size:"medium"},`${V} / ${Y}`)}},"handleSwapperEndItem"),x={id:"bridge-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:F.createElement(F.Fragment,null,w(k,T),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Ws,{color:"black"})),onClick:()=>t(U.bridges),start:F.createElement(fk,{color:"gray",size:16})},I={id:"exchange-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:F.createElement(F.Fragment,null,w(b,E),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Ws,{color:"black"})),start:F.createElement(gk,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:F.createElement(Sk,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"body",size:"medium"},s),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Ws,{color:"black"})),onClick:()=>t(U.languages)},L={id:"infinite-approval-item",title:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),F.createElement(ei,{direction:"horizontal",size:4}),F.createElement(Ik,{side:"top",sideOffset:4,container:B(),content:F.createElement(Rr,null,F.createElement(nt,{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(yk,{color:"gray"}))),start:F.createElement(hk,{color:"gray",size:16}),end:F.createElement(wk,{checked:g}),onClick:S},Q={id:"theme-item",type:F.createElement(Tk,null),title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:F.createElement(Ak,null,F.createElement(bk,{container:B(),items:Nk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:Wk(n)},M=m?[]:[x,I];return f||M.push(W),M.push(L),!e?.singleTheme&&!d&&M.push(Q),F.createElement(Ck,{type:F.createElement(kk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(_d,"SettingsLists");var $k=Bk("div",{paddingLeft:"$8"});function Pd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Pk(),r=_k(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return ao.createElement(le,{header:{title:Ms.t("Settings")}},ao.createElement(ue,null,o&&ao.createElement(Mk,{type:"info",variant:"alarm",title:Ms.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:ao.createElement($k,null,ao.createElement(Lk,{type:"secondary",size:"small",onClick:a},Ms.t("Reset")))}),ao.createElement(Ns,null),ao.createElement(_d,null)))}i(Pd,"SettingsPage");import{i18n as xx}from"@lingui/core";import{cancelSwap as vx}from"@rango-dev/queue-manager-rango-preset";import{useManager as wx}from"@rango-dev/queue-manager-react";import{Alert as bx}from"@rango-dev/ui";import js from"react";import{useParams as Ix}from"react-router-dom";import{i18n as Bt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as rx,getCurrentStep as ix,getRelatedWalletOrNull as ax}from"@rango-dev/queue-manager-rango-preset";import{Button as df,CopyIcon as sx,Divider as lx,IconButton as px,LinkIcon as cx,QuoteCost as ux,StepDetails as mx,Typography as so,useCopyToClipboard as dx}from"@rango-dev/ui";import{useWallets as fx}from"@rango-dev/wallets-react";import ff from"bignumber.js";import{PendingSwapNetworkStatus as pi}from"rango-types";import J,{useEffect as gf,useRef as gx,useState as hf}from"react";import{useNavigate as hx}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var Dk=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function $d(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ht.t("Today"):`${Dk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($d,"timeSince");function Dd(t){return t.finishTime?$d(parseInt(t.finishTime)):$d(parseInt(t.creationTime))}i(Dd,"getSwapDate");import{PendingSwapNetworkStatus as ni}from"rango-types";import ri from"react";import{i18n as ti}from"@lingui/core";import{Button as Fd,Divider as Ls,MessageBox as Fk}from"@rango-dev/ui";import Gt from"react";var Od=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Ls,{size:20}),Gt.createElement(Fk,{type:"error",title:ti.t("Cancel Swap"),description:ti.t("Are you sure you want to cancel this swap?")}),Gt.createElement(Ls,{size:32}),Gt.createElement(Fd,{variant:"contained",type:"primary",size:"large",onClick:t},ti.t("Yes, Cancel it")),Gt.createElement(Ls,{size:12}),Gt.createElement(Fd,{variant:"outlined",type:"primary",size:"large",onClick:e},ti.t("No, Continue"))),"CancelContent");import{i18n as oi}from"@lingui/core";import{Button as Ud,Divider as Bs,MessageBox as Ok,Typography as Uk}from"@rango-dev/ui";import Mt from"react";var zd=i(({onDelete:t,onClose:e})=>Mt.createElement(Mt.Fragment,null,Mt.createElement(Bs,{size:20}),Mt.createElement(Ok,{type:"error",title:oi.t("Delete Transaction"),description:oi.t("Are you sure you want to delete this swap?")}),Mt.createElement(Bs,{size:32}),Mt.createElement(Ud,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Delete it")),Mt.createElement(Bs,{size:12}),Mt.createElement(Ud,{variant:"outlined",type:"primary",size:"large",onClick:e},Mt.createElement(Uk,{variant:"title",size:"medium",color:"primary"},oi.t("No, Cancel")))),"DeleteContent");import{i18n as _s}from"@lingui/core";import{PendingSwapNetworkStatus as Ps}from"rango-types";var $s={[Ps.WaitingForNetworkChange]:{type:"loading",title:_s.t("Change Network")},[Ps.WaitingForConnectingWallet]:{type:"warning",title:_s.t("Connect Wallet")},[Ps.NetworkChanged]:{type:"success",title:_s.t("Network Changed")}};import{debug as Hd}from"@rango-dev/logging-core";import{MessageBox as zk,Wallet as qk}from"@rango-dev/ui";import{useWallets as Qk}from"@rango-dev/wallets-react";import No,{useState as Hk}from"react";import{styled as qd}from"@rango-dev/ui";var Qd=qd("div",{display:"flex",justifyContent:"center"}),lz=qd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Gd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Qk(),[c,d]=Hk(null),m=n?.walletType,f=m?vi(u(m)):null,g=m?p(m):null;return No.createElement(No.Fragment,null,No.createElement(zk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&No.createElement(Qd,null,No.createElement(qk,{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=>Hd(C))}})),No.createElement(to,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Hd(y)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Ds(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(he.SWAP_BOX_ID)||document.body},p&&ri.createElement(Gd,{type:$s[e].type,title:$s[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ni.WaitingForNetworkChange}),e==="delete"&&ri.createElement(zd,{onClose:o,onDelete:n}),e==="cancel"&&ri.createElement(Od,{onClose:o,onCancel:r}))}i(Ds,"SwapDetailsModal");import{i18n as fn}from"@lingui/core";import{Button as Fs,Divider as ii,MessageBox as Vd,TokenAmount as Gk,Typography as Os}from"@rango-dev/ui";import Me from"react";import{useNavigate as Vk}from"react-router-dom";function Us(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=Vk();return Me.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(Vd,{type:"success",title:fn.t("Swap Successful")},Me.createElement(Gk,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(ii,{size:12}),Me.createElement(Os,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Me.createElement(Vd,{type:"error",title:fn.t("Transaction Failed"),description:d}),Me.createElement(ii,{size:32}),n==="success"&&Me.createElement(Fs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Me.createElement(Os,{variant:"title",size:"medium",color:"neutral100"},fn.t("Done"))),Me.createElement(ii,{size:12}),m&&Me.createElement(Me.Fragment,null,Me.createElement(Fs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},fn.t("Diagnosis")),Me.createElement(ii,{size:12})),Me.createElement(Fs,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Os,{variant:"title",size:"medium",color:"primary"},fn.t("See Details"))))}i(Us,"SwapDetailsCompleteModal");import nx from"react";import{i18n as Rk}from"@lingui/core";import{Alert as pf,IconButton as ex,LinkIcon as tx}from"@rango-dev/ui";import Vt,{Fragment as ox}from"react";import{Alert as Kk,ChevronDownIcon as Yk,IconButton as Zk}from"@rango-dev/ui";import Mo,{useState as Jk}from"react";import{css as gn,darkTheme as Xk,styled as Lt,Typography as jk}from"@rango-dev/ui";var Xd=Lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ai=Lt("div",{width:"100%"}),jd=Lt(Ho,{padding:"$0 $20 $20 $20"}),Hz=Lt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Kd=Lt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Gz=Lt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Wo=gn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Xk} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Yd=gn({padding:"$5 0"}),si=gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Zd=gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Jd=gn({width:"100%",padding:"0 $20 $10"}),Rd=Lt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),ef=Lt("div",{display:"flex",flexDirection:"column",gap:"$5"}),li=Lt(jk,{wordBreak:"break-word"});import{styled as zs}from"@rango-dev/ui";var tf=zs("div",{display:"flex",flexDirection:"column",gap:"$10"}),of=zs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),nf=zs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function rf(t){let{message:e}=t,[o,n]=Jk(!1);return Mo.createElement(Kk,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Mo.createElement(Zk,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Mo.createElement(of,{rotated:o},Mo.createElement(Yk,{size:12,color:"gray"}))),footer:Mo.createElement(nf,{open:o},Mo.createElement(li,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(rf,"FailedAlert");import{i18n as af}from"@lingui/core";import{Alert as qs,Button as sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Qs}from"rango-types";import hn from"react";function lf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?hn.createElement(qs,{type:"warning",title:n.shortMessage,action:hn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Qs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},af.t("Change"))}):r===Qs.WaitingForConnectingWallet?hn.createElement(qs,{type:"warning",title:n.shortMessage,action:hn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Qs.WaitingForConnectingWallet)}},af.t("Connect"))}):hn.createElement(qs,{type:"warning",title:n.shortMessage})}i(lf,"WarningAlert");function Hs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=zo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Vt.createElement(tf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Vt.createElement(ox,{key:g},Vt.createElement(pf,{type:S&&(C&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:Rk.t("View transaction"),action:d.url&&Vt.createElement(ex,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Vt.createElement(tx,{size:12}))}))}),c&&Vt.createElement(pf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(lf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(rf,{message:r}))}i(Hs,"SwapDetailsAlerts");var cf=2e3;var uf=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:Do(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:Do(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:nx.createElement(Hs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function mf(t){if(zo(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(mf,"getStepState");function Gs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=fx(),p=h().blockchains(),u=h().swappers(),c=h().tokens(),d=j.use.retry(),m=ne.use.isActiveTab(),f=hx(),[g,S]=dx(cf),C=gx(null),[y,T]=hf(null),[k,v]=hf(null),E=i(()=>{r(),T(null)},"onCancel"),b=ze.use.getUnreadNotifications(),w=ze.use.setAsRead(),x=b(),I=ix(e),W=I?.networkStatus;gf(()=>{x.find(Ue=>Ue.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),w(e.requestId)):k&&v(null))},[e.status,e.requestId]),gf(()=>{H?T(pi.WaitingForNetworkChange):W===pi.WaitingForConnectingWallet||W===pi.NetworkChanged?T(W):T(null)},[W]);let L=gp(e),Q=I?rx(e,I):null,M=I?ax(e,I):null,V=Dd(e),Y=hp(e),re=i(Ne=>!!l(Ne)?.mobileWallet,"isMobileWallet"),H=W===pi.WaitingForNetworkChange&&!!Q&&!!M?.walletType&&(re(M.walletType)||a(M.walletType,Q)),A=H?s.bind(null,M.walletType,Q):void 0,te=fp(e,I),q=uf({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:T,message:te,blockchains:p,swappers:u}),Z=q.length,[me,ge]=[e.steps[0],e.steps[Z-1]],_=ge.outputAmount||ge.expectedOutputAmountHumanReadable,Oe=e.steps.reduce((Ne,Ue)=>Ne+parseFloat(Ue.feeInUsd||""),0),P=e.steps.find(Ne=>Ne.diagnosisUrl)?.diagnosisUrl,X=N(parseFloat(N(_,6,6))*(ge.toUsdPrice||0),4,4),ie=N(parseFloat(e.inputAmount)*(me.fromUsdPrice||0),4,4),Ee=_?pe(new ff(_).multipliedBy(ge.toUsdPrice||0)):"",Ge=pe(new ff(e.inputAmount).multipliedBy(me.fromUsdPrice||0)),Ae=Je(ie,X),Le=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(ef,null,J.createElement(so,{variant:"body",size:"medium",color:"neutral700",align:"center"},Le?"":Bt.t("Transaction was not sent."),L?`${Bt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),Le&&J.createElement(li,{align:"center",variant:"body",size:"medium",color:"neutral700"},J.createElement("b",null,"Reason:")," ",Le));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(ho,null,J.createElement(df,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},J.createElement(so,{size:"medium",variant:"label",color:"error"},Bt.t("Delete"))))},footer:Y&&!k&&J.createElement(df,{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:Wo()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Bt.t("Request ID")}:`),J.createElement("div",{className:si()},J.createElement(so,{variant:"label",size:"small",color:"neutral700"},o),J.createElement(px,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(sx,{size:16,color:"gray"})),J.createElement(Rd,{target:"_blank",href:`${tl}/swap/${o}`},J.createElement(cx,{size:16})))),J.createElement("div",{className:Wo()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Bt.t(e.finishTime?"Finished at":"Created at")}:`),J.createElement(so,{variant:"label",size:"small",color:"neutral700"},V))),J.createElement("div",{className:Zd()},J.createElement(ux,{fee:N(String(Oe),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:Ee,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(Ae,2,2),warningLevel:xt(Ae??0)})),J.createElement("div",{className:Jd()},J.createElement(so,{variant:"title",size:"small"},Bt.t("Swaps steps"))),J.createElement(lx,{size:8}),J.createElement(jd,{ref:C},q.map((Ne,Ue)=>{let Cn=Ue,Lo=mf(e.steps[Ue]),Pf=Lo==="error"||Lo==="in-progress"||Lo==="warning"||Lo==="completed"&&Ue===q.length-1;return J.createElement(mx,{key:Cn,step:Ne,type:"swap-progress",ref:C,state:Lo,hasSeparator:Ue!==0,tabIndex:Cn,isFocused:Pf,tooltipContainer:B()})}))),J.createElement(Ds,{state:y,onClose:()=>T(null),onCancel:E,onDelete:n,message:te.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),J.createElement(Us,{open:!!k,diagnosisUrl:P,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:X,realUsdValue:Ee,realValue:pe(_),percentageChange:N(Ae,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(Gs,"SwapDetails");import{i18n as ui}from"@lingui/core";import{Divider as Cf,NotFound as kx,Skeleton as Sn,Typography as mi}from"@rango-dev/ui";import fe from"react";import{i18n as yx}from"@lingui/core";import{Divider as Sx,Skeleton as Cx,Typography as Tx}from"@rango-dev/ui";import Se from"react";import{css as ut,styled as Vs}from"@rango-dev/ui";var yf=Vs("div",{width:"100%",height:"100%",padding:"$10 $20"}),yn=Vs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ci=Vs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),nQ=ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),rQ=ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),iQ=ut({paddingTop:"$15",display:"flex"}),aQ=ut({padding:"$15 $0"}),sQ=ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),lQ=ut({paddingBottom:"$10"}),pQ=ut({display:"flex",justifyContent:"start",alignItems:"center"}),cQ=ut({paddingTop:"$5",display:"flex",alignItems:"center"}),uQ=ut({display:"flex",alignItems:"center"}),mQ=ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Sf=ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Xs(){return Se.createElement(yf,null,Se.createElement(Ro,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(Tx,{variant:"title",size:"small"},yx.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(yn,null,Se.createElement(yt,{separator:!1}),Se.createElement("div",{className:Sf()},Se.createElement(Sx,{direction:"horizontal",size:20}),Se.createElement(Cx,{height:22,variant:"rectangular"}))),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1})),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1})),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1}))))}i(Xs,"LoadingSwapDetails");function Tf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:ui.t("Swap and Bridge"),suffix:fe.createElement(ho,null)}},o&&fe.createElement(Xd,null,fe.createElement(ai,null,fe.createElement("div",{className:Wo()},fe.createElement(mi,{variant:"label",size:"large",color:"neutral700"},`${ui.t("Request ID")}:`),fe.createElement("div",{className:si()},fe.createElement(mi,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:Wo()},fe.createElement(mi,{className:Yd(),variant:"label",size:"large",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})),fe.createElement(mi,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})))),fe.createElement(Xs,null)),!o&&fe.createElement(Kd,null,fe.createElement(kx,{title:ui.t("Not found"),description:ui.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Tf,"SwapDetailsPlaceholder");function kf(){let{manager:t,state:e}=wx(),o=!e.loadedFromPersistor,n=ft(t),{requestId:r}=Ix(),a=et(),{fetchStatus:s}=h();if(!r)return js.createElement(bx,{containerStyles:{margin:"20px"},type:"error",title:xx.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&&vx(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?js.createElement(Tf,{requestId:r,showSkeleton:l}):js.createElement(Gs,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(kf,"SwapDetailsPage");function xf(){return Ip(),Gi(),Ex([{path:U.home,element:He.createElement(zm,null)},{path:U.routes,element:He.createElement(Vm,null)},{path:U.fromSwap,children:[{index:!0,element:He.createElement(Es,{type:"source"})},{path:U.blockchains,element:He.createElement(cs,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:He.createElement(Es,{type:"destination"})},{path:U.blockchains,element:He.createElement(cs,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:He.createElement(Pd,null)},{path:U.languages,element:He.createElement(Qm,null)},{path:U.exchanges,element:He.createElement(ss,{sourceType:"Exchanges"})},{path:U.bridges,element:He.createElement(ss,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:He.createElement(Tm,null)},{path:U.swapDetails,element:He.createElement(kf,null)}]},{path:U.wallets,element:He.createElement(Bc,null)},{path:U.confirmSwap,element:He.createElement(lm,null)}])}i(xf,"AppRoutes");import{useQueueManager as Px}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as $x}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Dx}from"rango-sdk";import{useContext as Fx,useEffect as Ox,useState as Nf}from"react";import{globalCss as Ax}from"@rango-dev/ui";var vf=i(()=>Ax({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");function wf(){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(wf,"useFetchApiConfig");import{useWallets as Nx}from"@rango-dev/wallets-react";import{useEffect as Wx,useRef as Mx}from"react";function bf(){let{connect:t,state:e}=Nx(),o=Mx({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Wx(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(bf,"useForceAutoConnect");import{isApprovalTX as Lx,MainEvents as di,RouteEventType as If,StepEventType as Ef,StepExecutionEventStatus as Bx,useEvents as _x}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Af}from"react";function Ks(){let t=h().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=ze.use.setNotification(),r=_x();Af(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Ef.TX_EXECUTION&&l.status===Bx.TX_SENT&&!Lx(p)||l.type===Ef.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]),Af(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===If.FAILED||l.type===If.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(di.RouteEvent,a),()=>r.off(di.RouteEvent,a)},[r,e.length])}i(Ks,"useSubscribeToWidgetEvents");function Ys(){vf(),bf(),Ks();let t=h().blockchains(),{canSwitchNetworkTo:e}=Sr(),[o,n]=Nf(""),[r,a]=Nf(),s=Fx($n),l=t.filter(Dx),{fetchApiConfig:p}=wf();Px({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Ox(()=>(jt.init(),ze.persist.hasHydrated()||ze.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===$x(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(Ys,"useBootstrap");import{styled as Ux}from"@rango-dev/ui";var Wf=Ux("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(){Ys();let{config:t}=h(),{activeTheme:e}=rr(t?.theme||{}),{activeLanguage:o}=Qt();return Zs.createElement(zx,{language:o},Zs.createElement(Wf,{id:"swap-container",className:e()},Zs.createElement(xf,null)))}i(fi,"Main");import Rs,{useMemo as iv}from"react";import{checkWaitingForNetworkChange as qx,makeQueueDefinition as Qx}from"@rango-dev/queue-manager-rango-preset";import{Provider as Hx}from"@rango-dev/queue-manager-react";import{useWallets as Gx}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Vx}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Xx}from"rango-types";import jx,{useMemo as Kx}from"react";function Yx(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Gx(),l=Kx(()=>Qx({API_KEY:t.apiKey||kt("API_KEY"),BASE_URL:kt("BASE_URL")}),[t.apiKey]),p=h().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(Xx),S=i(k=>{let{supportedChains:v}=s(k);return In(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:Vx(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return jx.createElement(Hx,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{qx(k)},isPaused:!T},t.children)}i(Yx,"QueueManager");var Mf=Yx;import{useManager as tv}from"@rango-dev/queue-manager-react";import ov,{createContext as nv,useContext as rv}from"react";import{cancelSwap as Zx,getCurrentBlockchainOfOrNull as Jx,getCurrentStep as Rx,getRelatedWalletOrNull as ev}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 ft(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&&Zx(o)}getCurrentStepInfo(e){let o=Rx(e);return{step:o,wallet:o?ev(e,o):null,network:o?Jx(e,o):null}}};var Lf=nv(void 0);function Js(t){let{manager:e}=tv(),o=ne.use.isActiveTab(),n=j.use.retry(),r=new gi(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=yl(a),p=R.use.getWalletsDetails(),u=h().blockchains(),c=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Qt().resetLanguage,g=ze().getUnreadNotifications(),S={isActiveTab:o,setCurrentTabAsActive:jt.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 ov.createElement(Lf.Provider,{value:S},t.children)}i(Js,"WidgetInfo");function Bf(){let t=rv(Lf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Bf,"useWidget");function hi(t){let{onUpdateState:e,config:o}=t;return iv(()=>{bl({API_KEY:o?.apiKey||Tn,BASE_URL:o?.apiUrl||el})},[o.apiKey,o.apiUrl]),Rs.createElement(Dn,{config:o,onUpdateState:e},Rs.createElement(Mf,{apiKey:o.apiKey},Rs.createElement(Js,null,t.children)))}i(hi,"WidgetProvider");function _f(t){let e=t.config?.externalWallets;return yi.createElement(Zl,null,e?yi.createElement(fi,null):yi.createElement(hi,{config:t.config??Ai},yi.createElement(fi,null)))}i(_f,"Widget");export{iV as EventSeverity,aV as MainEvents,hV as Networks,CV as PendingSwapNetworkStatus,sV as RouteEventType,lV as StepEventType,pV as StepExecutionBlockedEventStatus,cV as StepExecutionEventStatus,he as UI_ID,fV as WalletEvents,yV as WalletTypes,_f as Widget,hi as WidgetProvider,Dn as WidgetWallets,Ri as customizedThemeTokens,dV as readAccountAddress,Sr as useWallets,Bf as useWidget,uV as useWidgetEvents};
|
|
1
|
+
var Of=Object.defineProperty;var i=(t,e)=>Of(t,"name",{value:e,configurable:!0});import{EventSeverity as CV,MainEvents as TV,RouteEventType as kV,StepEventType as wV,StepExecutionBlockedEventStatus as vV,StepExecutionEventStatus as xV,useEvents as bV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as EV,useWallets as Sr,Events as AV}from"@rango-dev/wallets-react";import{Networks as WV,WalletTypes as MV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as BV}from"rango-types";import{UI_ID as Uf}from"@rango-dev/ui";var Tn="c6381a79-2817-4602-83bf-6a641a409e32",tl="https://api.rango.exchange",ol="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Uf};var nl="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 Lg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Bg}from"rango-sdk";import Pn,{createContext as _g,useEffect as Zl,useMemo as Pg,useRef as Jl}from"react";import{useEffect as ig}from"react";import{create as og}from"zustand";import{subscribeWithSelector as ng}from"zustand/middleware";import{RangoClient as eg}from"rango-sdk";import{BlockchainCategories as Vf,WalletState as dt}from"@rango-dev/ui";import{readAccountAddress as Xf}from"@rango-dev/wallets-react";import{detectInstallLink as jf,getCosmosExperimentalChainInfo as Kf,isEvmAddress as Yf,KEPLR_COMPATIBLE_WALLETS as $v,Networks as gl}from"@rango-dev/wallets-shared";import vi from"bignumber.js";import{isCosmosBlockchain as Zf}from"rango-types";import zf from"bignumber.js";var Be=new zf(0);import{WalletTypes as qf}from"@rango-dev/wallets-shared";var rl=[qf.LEAP];import{BlockchainCategories as Ci}from"@rango-dev/ui";import{TransactionType as kn}from"rango-sdk";function lo(t){return Array.from(new Set(t))}i(lo,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function cl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(cl,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function sl(t,e){return t.toLowerCase()===e.toLowerCase()}i(sl,"exactText");function ll(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ll,"startWithText");var B=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function pl(t,e,o){let n=!!e&&sl(e,t),r=!!o&&sl(o,t);return n!==r?n?-1:1:0}i(pl,"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&&ll(e,t),r=!!o&&ll(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareStartWithText");function ul(t,e,o){if(!o)return 0;let n=pl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=pl(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(ul,"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"),ml=i(t=>Si.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as fl}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 fl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new fl(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 mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Po=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 dt.CONNECTED;case t.connecting:return dt.CONNECTING;case!t.installed:return dt.NOT_INSTALLED;default:return dt.DISCONNECTED}}i(xi,"mapStatusToWalletState");function hl(t,e,o,n){return o.filter(r=>!rl.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=lo(d.map(g=>g.type)),f=xi(t(r));return{title:a,image:s,link:jf(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(hl,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function yl(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}=Xf(p),d=l.length>0,m=l.includes(c),f=c===gl.Unknown;if(d&&!m&&!f)return;let S=c===gl.Unknown&&Yf(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(yl,"prepareAccountsForWalletStore");function Xt(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(Xt,"getQuoteWallets");function En(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(En,"isAccountAndWalletMatched");function Sl(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:Rf(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Sl,"makeBalanceFor");function Cl(t){return{...t,loading:!1,error:!0}}i(Cl,"resetConnectedWalletState");var Tl=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||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return Jf(r)},"calculateWalletUsdValue");function Jf(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Jf,"numberWithThousandSeparator");var Rf=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=Kf(Object.entries(t).map(([,n])=>n).filter(Zf));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 kl(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(kl,"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 wl(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(wl,"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 vl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(vl,"getAddress");function bi(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(bi,"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 vi(o?.usdPrice??Be).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(Mn,"makeTokensBalance");var xl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function bl(t){return t.map(e=>e.state).join("-")}i(bl,"hashWalletsState");function Il(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(Il,"filterBlockchainsByWalletTypes");function El(t,e){return e===Vf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(El,"filterWalletsByCategory");var Ii={API_KEY:Tn};function kt(t){return Ii[t]||""}i(kt,"getConfig");function Al(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ii=e,Ii}i(Al,"initConfig");var Nl=20,Wl=25,Ei="theme-widget",$o=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"),Ml=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Ln,_t=i(()=>Ln||(Ln=new eg(kt("API_KEY"),kt("BASE_URL")),Ln),"httpService");var tg=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=tg;var R=Pt(og()(ng((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=>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:Sl(g,n),loading:!1}:m});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(d=>En(d,c))?Cl(c):c);return{loading:!1,balances:Mn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=bi(o);return n[r]??null}}))));import{allProviders as rg}from"@rango-dev/provider-all";function Bn(t,e){let o=rg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""},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 Ll(t,e){return Bn(t,e).map(r=>r.config.type)}i(Ll,"configWalletsToWalletName");function Bl(t,e){let o=R.use.clearConnectedWallet(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId});return ig(()=>{o(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Bl,"useWalletProviders");import bg,{createContext as Ig,useContext as Eg,useEffect as Ag,useRef as Ng}from"react";import{create as vg}from"zustand";import{persist as xg}from"zustand/middleware";var Ni={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},ag={clientUrl:void 0},sg={liquiditySources:void 0},_l=i((t,e,o)=>({config:{...Ni,...t},iframe:ag,campaignMode:sg,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 Pl(t,e){return e.find(o=>o.name===t)?.displayName}i(Pl,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function Do(t,e){return e.find(o=>o.id===t)?.title}i(Do,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>_e(o,t))??null}i(Wi,"findToken");function Mi(t,e){return e.find(o=>o.name===t)??null}i(Mi,"findBlockchain");function Li(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(Li,"isTokenNative");function _n(t,e){let o=t.map(a=>a.swapperGroup),n=[];return lo(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 $l(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i($l,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Dl(t,e){return e?.[t]==="enabled"}i(Dl,"isFeatureEnabled");var Fl=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&&$o(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 y=o.getBalanceFor(u),T=o.getBalanceFor(c),k=kl(y,T);if(k!==0)return k}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=Li(u,f),C=Li(c,g);if(S!==C)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let y=ul(u,c,o.searchFor);if(y)return y}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(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($l)},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 lg,English as pg,Finland as cg,French as ug,German as mg,Greece as dg,Italian as fg,Japanese as gg,Netherlands as hg,Poland as yg,Portuguese as Sg,Russian as Cg,Spanish as Tg,Swedish as kg,Ukrainian as wg}from"@rango-dev/ui";var Ol=[{title:"English",label:"English",local:"en",SVGFlag:pg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Tg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ug},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:gg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Sg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:lg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Cg},{title:"German",label:"Deutsch",local:"de",SVGFlag:mg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:wg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:kg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:cg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:hg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:dg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:fg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:yg}],Fo="en";var Ul=[.5,1,3],zl=1,ql=5,Ql=100,Hl=0;var Gl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:zl,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=lo(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||Fo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Vl(t){return vg()(xg((...e)=>({...Fl(...e),...Gl(...e),..._l(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(Vl,"createAppStore");var Xl=Ig(null);function h(){let t=Eg(Xl);if(Ag(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function jl(t){let e=Ng();return e.current||(e.current=Vl(t.config)),bg.createElement(Xl.Provider,{value:e.current},t.children)}i(jl,"AppStoreProvider");import{create as Mg}from"zustand";var Kl="rango-widget";var Oo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Kl),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(Mg()((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})}}))),jt=new Oo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var $n=_g({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function $g(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),a=h().tokens(),s=h().config,l={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:p}=Bl(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=Jl(),m=Jl();Zl(()=>{n().catch(console.log)},[]),Zl(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(Bg).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===_i.ACCOUNTS)if(k){let b=In(E.supportedBlockchains),x=yl(y,k,f,b,E.isContractWallet);x.length&&u(x,a)}else c(y),m.current?m.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===_i.ACCOUNTS&&v.connected){let b=`${y}-${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=`${y}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,E)},"onUpdateState"),S=ne.use.isActiveTab(),C=Pg(()=>({onConnectWallet:y=>{d.current=y},onDisconnectWallet:y=>{m.current=y}}),[]);return Pn.createElement($n.Provider,{value:C},Pn.createElement(Lg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i($g,"Main");function Dn(t){let{config:e,...o}=t;return Pn.createElement(jl,{config:e},Pn.createElement($g,{...o,config:e}))}i(Dn,"WidgetWallets");import yi from"react";import Dg,{Fragment as Fg}from"react";import{MemoryRouter as Og,useInRouterContext as Ug}from"react-router";function Rl({children:t}){let o=Ug()?Fg:Og;return Dg.createElement(o,null,t)}i(Rl,"AppRouter");import{I18nManager as Hw}from"@rango-dev/ui";import Js from"react";import He from"react";import{useRoutes as Ww}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 uo,useRef as Xn}from"react";import vt from"bignumber.js";import{create as Hg}from"zustand";import{subscribeWithSelector as Gg}from"zustand/middleware";import{getLastSuccessfulStep as Qg}from"@rango-dev/queue-manager-rango-preset";import aI from"bignumber.js";import{i18n as Uo}from"@lingui/core";var Pi={"Network Fee":Uo.t("Network Fee"),"Swapper Fee":Uo.t("Protocol Fee"),"Affiliate Fee":Uo.t("Affiliate Fee"),"Outbound network fee":Uo.t("Outbound Fee"),"Rango Fee":Uo.t("Rango Fee")},$i=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ep=30;import{i18n as rt}from"@lingui/core";import Pe 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 We}from"@lingui/core";var ee=i(()=>({genericServerError:We.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:We.t("Please reset your liquidity sources."),description:We.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:We.t("No Routes Found."),description:We.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:We.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:We.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:We.t("High Price Impact"),title:We.t("Price impact is too high!"),description:We.t("The price impact is significantly higher than the allowed amount."),confirmMessage:We.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:We.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:We.t("USD Price Unknown"),title:We.t("USD Price Unknown, Cannot calculate Price Impact."),description:We.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:We.t("Confirm USD Price Unknown")}}),"errorMessages");function tp(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(tp,"getQuoteErrorMessage");import{i18n as On}from"@lingui/core";var Kt=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 op(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(op,"hasHighValueLoss");function np(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(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(np,"hasLimitError");function rp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(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 Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=rt.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=rt.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=rt.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=rt.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(rp,"getLimitErrorMessage");function ip(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Kt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Kt().swap,action:"confirm-swap",disabled:!0}:s?{title:Kt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Kt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Kt().swap,action:"confirm-swap",disabled:!1}:{title:Kt().connectWallet,action:"connect-wallet",disabled:!1}}i(ip,"getSwapButtonState");function Di(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Di,"canComputePriceImpact");var zg=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=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=zg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Fi,"getUsdFeeOfStep");function zn(t,e){return t.reduce((o,n)=>o.plus(Fi(n,e)),Be)}i(zn,"getTotalFeeInUsd");function Oi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(Oi,"getUsdFee");function ap(t){return t.reduce((e,o)=>e.plus(Oi(o)),Be)}i(ap,"getTotalFeesInUsd");function sp(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(sp,"getFeesGroup");function lp(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(lp,"checkSlippageErrors");function pp(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(pp,"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 cp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(cp,"hasProperSlippage");function up(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(up,"createQuoteRequestBody");function mp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(mp,"getWalletsForNewSwap");function po(t){return t?.outputAmount||null}i(po,"getQuoteOutputAmount");function dp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(dp,"getPercentageChange");function fp(t,e){let o=po(t),n=po(e);if(!o||!n)return!1;let r=Je(o,n);return r?r<=-1:!0}i(fp,"isOutputAmountChangedALot");function gp(t,e,o){let n=t.validationStatus,r=Xt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>kp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=rt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=rt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=rt.t(" for input and network fee")),rt.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(gp,"generateBalanceWarnings");function Qn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Qn,"calcOutputUsdValue");function zo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Un.NetworkChanged}i(zo,"isNetworkStatusInWarningState");function hp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),zo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Un.WaitingForConnectingWallet:n=n||rt.t("Waiting for connecting wallet");break;case Un.WaitingForQueue:n=n||rt.t("Waiting for other running tasks to be finished");break;case Un.WaitingForNetworkChange:n=n||rt.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(hp,"getSwapMessages");function yp(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(yp,"getLastConvertedTokenInFailedSwap");function Sp(t){return t.status==="failed"}i(Sp,"shouldRetrySwap");function Cp(t,e,o,n,r,a){if(!n||t)return!0;let s=Xt({filter:"all",quote:n}),l=Xt({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(Cp,"isConfirmSwapDisabled");function Tp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Tp,"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 vp(t,e){return Ui(t,e)||zi(t,e)||qi(t,e)}i(vp,"isQuoteChanged");function kp(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(kp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function xp(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Qg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Mi(a?a.toBlockchain:n.fromBlockchain,e),p=Mi(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(xp,"createRetryQuote");function co(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Yt(o,t.requestAmount),l=Yt(n,t?.outputAmount??"");if(t&&s&&l){let c=Je(s.toString(),l.toString());if(!!c&&op(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>ql;if(cp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:pp(t,a),minRequiredSlippage:p};return null}i(co,"generateQuoteWarnings");function Je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:dp(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var bp=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"),Ip=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"),Ep=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 Yt=i((t,e)=>t?.usdPrice?new vt(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Pt(Hg()(Gg(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=Be;return Po(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:Yt(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:Yt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=xp(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Yt(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?Yt(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 Ap(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,d=h().fetchStatus,m=h().blockchains(),f=h().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:C}=h(),y=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);uo(()=>{t(c?.amount?.toString()||"")},[c?.amount]),uo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.from?.blockchain),W=f.find(L=>_e(L,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]),uo(()=>{$o(s,y)&&a({token:null}),Ai(p,T)&&n(null)},[y,T]),uo(()=>{$o(l,k)&&a({token:null}),Ai(u,v)&&o(null)},[k,v]),uo(()=>{if(d==="success"){r();let I=m.find(L=>L.name===c?.to?.blockchain),W=f.find(L=>_e(L,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]),uo(()=>{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(Ap,"useSyncStoresWithConfig");import{useEffect as Gi,useRef as Vg}from"react";import{useInRouterContext as Xg,useLocation as jg,useSearchParams as Kg}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=jg(),[e,o]=Kg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=Xg(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=Vg(),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"),L=e.get("toBlockchain"),Q=e.get("toToken"),M=e.get("autoConnect"),V=e.get("clientUrl"),Y=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:W,toBlockchain:L,toToken:Q,autoConnect:M,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),L=Qi(S,x.toToken,W??null);w&&(p(w),I&&c({token:I,meta:{blockchains:g,tokens:S}})),W&&(u(W),L&&d({token:L,meta:{blockchains:g,tokens:S}}))}},[f]),Gi(()=>{let{clientUrl:x,liquiditySources:w}=E();y("clientUrl",x||void 0),T("liquiditySources",w?.split(",")??void 0)},[])}i(Vi,"useSyncUrlAndStore");import{i18n as Ha}from"@lingui/core";import{useManager as cC}from"@rango-dev/queue-manager-react";import{Alert as lm,Button as uC,css as Va,Divider as Ga,IconButton as pm,styled as mC,Typography as dC,WalletIcon as fC}from"@rango-dev/ui";import ke,{useEffect as Ur,useLayoutEffect as gC,useRef as hC,useState as on}from"react";import{useNavigate as yC}from"react-router-dom";import{i18n as ht}from"@lingui/core";import{Alert as va,BalanceErrors as Jy,Button as qc,ChevronDownIcon as Ry,ChevronLeftIcon as eS,Divider as ko,MessageBox as tS,Typography as Cr,WalletIcon as oS}from"@rango-dev/ui";import O,{useEffect as nS,useState as wo}from"react";import{useNavigate as rS}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 Zg}from"@rango-dev/ui";import Jg from"react";function oe(t){let{watermark:e}=ne();return Jg.createElement(Zg,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Rn,{useRef as th}from"react";import*as mo from"@radix-ui/react-collapsible";import{keyframes as Wp,styled as Yn}from"@rango-dev/ui";var Xi=300,Rg=Wp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),eh=Wp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Mp=Yn(mo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ji=Yn(mo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Zn=Yn(mo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Rg} ${Xi}ms ease-out`},false:{animation:`${eh} ${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=th(null);return Rn.createElement(Mp,{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 Lp,darkTheme as fo,IconButton as oh,styled as Re,TextField as nh}from"@rango-dev/ui";var Bp=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),_p=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),rh=Re("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${fo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Pp=Re(rh,{alignSelf:"stretch",minHeight:"93px"}),$p=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Dp=Re(oh,{position:"absolute",left:"$20"}),Fp=Re("div",{paddingTop:"$20"}),Op=Lp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Up=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),zp=Lp({paddingTop:"$5"}),qp=Re("div",{display:"flex"}),Qp=Re(nh,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Hp=Re("div",{overflow:"visible",width:"100%"}),Gp=Re("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${fo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$secondary100",[`.${fo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$secondary100",[`.${fo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as at}from"@lingui/core";import{Button as jy,Divider as ka,Image as Ky,MessageBox as yr,SelectableWallet as Yy,Typography as Oc,WalletState as Uc}from"@rango-dev/ui";import ce,{useEffect as zc,useState as To}from"react";import{WalletState as tr}from"@rango-dev/ui";import{useWallets as ih}from"@rango-dev/wallets-react";import{detectMobileScreens as ah,KEPLR_COMPATIBLE_WALLETS as sh,WalletTypes as qo}from"@rango-dev/wallets-shared";import{useCallback as lh,useEffect as ph,useState as ch}from"react";var uh=Object.values(qo);function go(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=h(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=ih(),{connectedWallets:u}=R(),c=h().blockchains(),d=Ll(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||uh,m=hl(a,l,d,e);m=ah()?m.filter(b=>b.showOnMobile||a(b.type).installed):m;let f=wl(m),[g,S]=ch(""),C=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),y=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=lh(()=>{let b=m?.filter(x=>x.state===tr.CONNECTING)||[];for(let x of b)s(x.type)},[bl(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");ph(()=>()=>{T()},[]);let v=i(b=>{let x=b.find(I=>I.type===qo.DEFAULT);return!x||x.state===tr.NOT_INSTALLED?!1:b.filter(I=>I.state!=tr.NOT_INSTALLED&&![qo.DEFAULT,qo.WALLET_CONNECT_2].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)&&!sh.includes(b)||b==qo.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:y,disconnectConnectingWallets:T,disconnectWallet:k}}i(go,"useWalletList");import{i18n as Lc}from"@lingui/core";import{Divider as Oy,getCategoriesCount as Uy,SelectableCategoryList as zy,styled as _c,Typography as qy,Wallet as Qy,WalletState as Bc}from"@rango-dev/ui";import it,{useState as gr}from"react";import{useManager as yy}from"@rango-dev/queue-manager-react";import{BottomLogo as Sy,Divider as bc,Header as Cy}from"@rango-dev/ui";import ye,{useEffect as ga,useRef as Ic,useState as Ty}from"react";import{useRef as mh}from"react";function or(){return window.self!==window.top}i(or,"isAppLoadedIntoIframe");function Ki(){let t=mh(null),{iframe:e}=h(),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 dh}from"react-router-dom";function et(){let t=dh();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as ta,darkTheme as Ch,lightTheme as Th}from"@rango-dev/ui";import{useEffect as kh,useState as wh}from"react";import{theme as yh,darkColors as Sh}from"@rango-dev/ui";import Ri from"react";function fh(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(fh,"generateShades");function nr(t,e){let[o,n,r]=Vp(t);return`#${Yi(o+e)}${Yi(n+e)}${Yi(r+e)}`}i(nr,"generateShade");function Vp(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(Vp,"convertToRGB");function Yi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Yi,"clamp");function Xp(t){let[s,l,p]=Vp(t);return(s*299+l*587+p*114)/1e3>188}i(Xp,"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,...fh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),gh=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"),hh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ji=i(t=>gh(hh(5381,JSON.stringify(t))>>>0),"toHash");function ea(t){let e=yh.colors,o=Zi({...e,...Sh},!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 Kp(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(Kp,"joinList");function rr(t){let{colors:e,fontFamily:o=nl,borderRadius:n=Nl,secondaryBorderRadius:r=Wl}=t,[a,s]=wh("light"),{theme:l}=h(),{dark:p,light:u}=ea(e),c=ta({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,Th.className],m=[c.className,Ch.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 kh(()=>{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 ft=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 Yp}from"@lingui/core";import{Alert as vh,Button as xh}from"@rango-dev/ui";import Zp from"react";function oa(t){return Zp.createElement(vh,{action:Zp.createElement(xh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Yp.t("Activate this tab")),type:"warning",variant:"alarm",title:Yp.t("Another tab is open and handles transactions.")})}i(oa,"ActivateTabAlert");import{i18n as na}from"@lingui/core";import{Button as bh,Divider as Ih,MessageBox as Eh}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(Eh,{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(Ih,{size:20}),ir.createElement(bh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},na.t("Confirm"))))}i(ra,"ActivateTabModal");import{ChevronLeftIcon as Wh}from"@rango-dev/ui";import rc from"react";import{css as Ah,darkTheme as Jp,IconButton as Nh,styled as Zt}from"@rango-dev/ui";var gt=Zt(Nh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Jp} &`]:{backgroundColor:"$neutral"}}}),Rp=Zt("div",{position:"absolute",background:"$secondary500",[`.${Jp} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ho=Zt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),ec=Zt("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"}}}}),tc=Zt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),oc=Zt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),nc=Ah({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ar=Zt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ia(t){return rc.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},rc.createElement(Wh,{color:"black",size:16}))}i(ia,"BackButton");import{i18n as Mh}from"@lingui/core";import{Button as Lh,Typography as Bh}from"@rango-dev/ui";import aa from"react";function sa(t){return aa.createElement(ho,null,aa.createElement(Lh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},aa.createElement(Bh,{variant:"label",size:"medium",color:"error500"},Mh.t("Cancel"))))}i(sa,"CancelButton");import{i18n as _h}from"@lingui/core";import{Image as Ph,Tooltip as $h,WalletIcon as Dh}from"@rango-dev/ui";import Jt from"react";function la(t){let{list:e}=go({}),o=e.filter(r=>r.state==="connected"),n=o.length?Jt.createElement("div",{className:nc()},o.map(r=>Jt.createElement(ar,{key:r.title},Jt.createElement(Ph,{src:r.image,size:14})))):_h.t("Connect Wallet");return Jt.createElement($h,{container:t.container,side:"bottom",content:n},Jt.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Jt.createElement(Rp,null),Jt.createElement(Dh,{size:18,color:"black"})))}i(la,"WalletButton");import{i18n as pr}from"@lingui/core";import{NotificationsIcon as ly,Popover as py,SettingsIcon as cy,Tooltip as cr,TransactionIcon as uy}from"@rango-dev/ui";import xe from"react";import{i18n as Xh}from"@lingui/core";import{EventSeverity as uc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as mc,ChevronRightIcon as jh,Divider as Kh,Typography as Yh}from"@rango-dev/ui";import qe from"react";import{useNavigate as Zh}from"react-router-dom";import{create as Fh}from"zustand";import{persist as Oh,subscribeWithSelector as Uh}from"zustand/middleware";var ze=Pt(Fh()(Oh(Uh((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),read:!1,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]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{darkTheme as zh,ListItemButton as qh,styled as Qo}from"@rango-dev/ui";var ic=Qo("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),ac=Qo("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),sc=Qo(qh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${zh} &`]:{backgroundColor:"$error600"}}}}}),lc=Qo("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),pc=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Qh}from"@lingui/core";import{Divider as Hh,NoNotificationIcon as Gh,Typography as Vh}from"@rango-dev/ui";import sr from"react";function cc(){return sr.createElement(pc,null,sr.createElement(Gh,{color:"secondary",size:26}),sr.createElement(Hh,{size:12}),sr.createElement(Vh,{variant:"body",size:"medium",color:"neutral700"},Qh.t("There are no notifications.")))}i(cc,"NotificationNotFound");var Jh=4;function pa(){let t=Zh(),{getUnreadNotifications:e}=ze(),o=e(),n=h().blockchains(),r=h().tokens(),a=o.sort((l,p)=>p.creationTime-l.creationTime).slice(0,Jh),s=i(l=>{t(`${U.swaps}/${l}`)},"handleOnClick");return qe.createElement(ic,null,a.length?qe.createElement(ac,null,a.map((l,p)=>{let{route:u,requestId:c,event:d}=l,m=r.find(C=>_e(C,u.from)),f=n.find(C=>C.name===u.from.blockchain),g=r.find(C=>_e(C,u.to)),S=n.find(C=>C.name===u.to.blockchain);return qe.createElement(qe.Fragment,{key:c},p>0&&qe.createElement(Kh,{size:4}),qe.createElement(sc,{onClick:()=>s(c),actionRequired:d.messageSeverity===uc.WARNING,title:qe.createElement(Yh,{variant:"body",size:"small",color:d.messageSeverity===uc.WARNING?"$foreground":"$neutral700"},Xh.t(d.message)),id:c,start:qe.createElement(lc,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(mc,{tokenImage:m?m.image:"",chainImage:f?f.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(mc,{tokenImage:g?g.image:"",chainImage:S?S.logo:"",size:"small"}))),end:qe.createElement(jh,{size:12,color:"gray"})}))})):qe.createElement(cc,null))}i(pa,"NotificationContent");import{useManager as Rh}from"@rango-dev/queue-manager-react";import{InProgressIcon as ey}from"@rango-dev/ui";import dc from"react";var ty=i(()=>{let{manager:t}=Rh();return ft(t).map(({swap:o})=>o).find(o=>o.status==="running")?dc.createElement(oc,null,dc.createElement(ey,{color:"info",size:6})):null},"InProgressTransactionBadge"),fc=ty;import{RefreshProgressButton as oy}from"@rango-dev/ui";import ca,{useEffect as ny,useState as gc}from"react";var ry=1e3,hc=60,iy=100;function lr({onClick:t}){let[e,o]=gc(0),[n,r]=gc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ny(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===hc&&l()},ry):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 ca.createElement(gt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ca.createElement(tc,{onTransitionEnd:()=>r(!1),isRefetched:n},ca.createElement(oy,{size:22,color:t?"black":"gray",progress:e/hc*iy})))}i(lr,"RefreshButton");import{EventSeverity as ay}from"@rango-dev/queue-manager-rango-preset";import{Typography as sy}from"@rango-dev/ui";import yc from"react";function Sc(){let{getUnreadNotifications:t}=ze(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ay.WARNING);return o?yc.createElement(ec,{isSever:n},yc.createElement(sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Sc,"UnreadNotificationsBadge");function Rt(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ze("notification",s)||r.includes("notifications");return xe.createElement(xe.Fragment,null,!r.includes("refresh")&&xe.createElement(cr,{container:a||B(),side:"top",content:pr.t("Refresh")},xe.createElement(lr,{onClick:e})),!l&&xe.createElement(py,{align:"end",alignOffset:-88,collisionPadding:{right:20,left:20},container:B(),content:xe.createElement(pa,null)},xe.createElement("div",null,xe.createElement(cr,{container:B(),side:"top",content:pr.t("Notifications")},xe.createElement(gt,{size:"small",variant:"ghost"},xe.createElement(ly,{size:18,color:"black"}),xe.createElement(Sc,null))))),!r.includes("settings")&&xe.createElement(cr,{container:B(),side:"top",content:pr.t("Settings")},xe.createElement(gt,{size:"small",variant:"ghost",onClick:n},xe.createElement(cy,{size:18,color:"black"}))),!r.includes("history")&&xe.createElement(cr,{container:B(),side:"top",content:pr.t("Transactions History")},xe.createElement(gt,{size:"small",variant:"ghost",onClick:o},xe.createElement(uy,{size:18,color:"black"}),xe.createElement(fc,null))))}i(Rt,"HeaderButtons");import{i18n as ua}from"@lingui/core";import{Divider as Tc,MessageBox as fy,RefreshIcon as gy}from"@rango-dev/ui";import yo from"react";import{Button as my,styled as dy}from"@rango-dev/ui";var Cc=dy(my,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ma(t){let{open:e,onClose:o}=t;return yo.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},yo.createElement(fy,{title:ua.t("Something went wrong"),type:"error",description:ua.t("Something went wrong. Please refresh the app.")},yo.createElement(Tc,{size:30}),yo.createElement(Cc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},yo.createElement(gy,{size:20,color:"primary"}),yo.createElement(Tc,{size:4,direction:"horizontal"}),ua.t("Refresh"))))}i(ma,"RefreshModal");function da(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(da,"onScrollContentAttachStatusToContainer");import{css as hy,styled as fa}from"@rango-dev/ui";var kc="700px",ur=hy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),wc=fa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:kc},fixed:{height:kc}}}}),vc=fa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),xc=fa("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}=h(),[p,u]=Ty(!1),c=R.use.connectedWallets(),{config:{features:d,theme:m}}=h(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:S}=rr(m||{}),C=Ze("connectWalletButton",d),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ne(),b=et(),{manager:x}=yy(),I=ft(x).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),W=i(()=>E(jt.forceClaim,I),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,M=Ic(null),V=Ic(null);return ga(()=>(or()&&V.current&&e(V.current),()=>{o()}),[]),ga(()=>(M.current?.addEventListener("scroll",da),()=>{M.current?.removeEventListener("scroll",da)}),[]),ga(()=>{u(l==="failed")},[l]),ye.createElement(wc,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${ur()}`,ref:V},ye.createElement(Cy,{prefix:ye.createElement(ye.Fragment,null,Q&&ye.createElement(ia,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:ye.createElement(ye.Fragment,null,r.suffix,r.onWallet&&!C&&ye.createElement(la,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&ye.createElement(sa,{onClick:r.onCancel}))}),ye.createElement(vc,{ref:M},n),ye.createElement(ra,{open:k,onClose:()=>v(!1),onConfirm:W}),ye.createElement(xc,null,ye.createElement("div",{className:"footer__content"},T&&!y&&ye.createElement("div",{className:"footer__alert"},ye.createElement(oa,{onActivateTab:W}),ye.createElement(bc,{size:10})),a),ye.createElement(bc,{size:12}),ye.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ye.createElement(Sy,null))),ye.createElement(ma,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as ky}from"@rango-dev/ui";var Ec="$20 $20 $10 $20",Ho=ky("div",{padding:Ec,overflowY:"auto",flexGrow:1});import{styled as wy}from"@rango-dev/ui";var ue=wy("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 Ey}from"@rango-dev/ui";import ya from"react";import{i18n as So}from"@lingui/core";import{Image as by,MessageBox as ha,WalletState as Iy}from"@rango-dev/ui";import eo from"react";import{keyframes as vy,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"}),xy=vy({"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:`${xy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ac=mr("div",{"& img":{borderRadius:"50%"}});function Nc(t){let{state:e,image:o,error:n}=t;return e===Iy.CONNECTED?eo.createElement(ha,{type:"success",title:So.t("Wallet Connected"),description:So.t("Your wallet is connected, you can use it to swap.")}):n?eo.createElement(ha,{type:"error",title:So.t("Failed to Connect"),description:n||So.t("Your wallet is not connected. Please try again.")}):eo.createElement(ha,{type:"loading",title:So.t("Connecting to your wallet"),description:So.t("Click connect in your wallet popup."),icon:eo.createElement(dr,null,eo.createElement(Ac,null,eo.createElement(by,{src:o,size:45})),eo.createElement(fr,null))})}i(Nc,"ModalContent");function Go(t){let{open:e,onClose:o,...n}=t;return ya.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ya.createElement(Nc,{...n}),ya.createElement(Ey,{direction:"vertical",size:32}))}i(Go,"WalletModal");import{i18n as Sa}from"@lingui/core";import{Button as Ny,Checkbox as Wy,Image as Mc,ListItemButton as My,MessageBox as Ly,Radio as By,RadioRoot as _y}from"@rango-dev/ui";import{Namespace as Co}from"@rango-dev/wallets-shared";import Ie,{useMemo as Py,useState as $y}from"react";import{styled as Ay}from"@rango-dev/ui";var Wc=Ay("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Dy={[Co.Evm]:"ETH",[Co.Solana]:"SOLANA",[Co.Cosmos]:"COSMOS",[Co.Utxo]:"BTC",[Co.Starknet]:"STARKNET",[Co.Tron]:"TRON"},Fy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function to(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=$y([]),a=h().blockchains(),s=Py(()=>o?.map(u=>({name:u,logo:Fy(a,Dy[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?Ie.createElement(_y,{value:n?.[0]},u):Ie.createElement(Ie.Fragment,null,u),"wrapRadioRoot");return Ie.createElement(oe,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ie.createElement(Ly,{type:"info",title:Sa.t("Select chain types"),description:Sa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ie.createElement(dr,null,Ie.createElement(ar,null,Ie.createElement(Mc,{src:t.image,size:45})),Ie.createElement(fr,null))}),Ie.createElement(Wc,null,p(Ie.createElement(Ie.Fragment,null,s?.map(u=>Ie.createElement(My,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ie.createElement(Mc,{src:u.logo,size:22}),end:e?Ie.createElement(By,{value:u.name}):Ie.createElement(Wy,{checked:n.includes(u.name)})}))))),Ie.createElement(Ny,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Sa.t("Confirm")))}i(to,"WalletNamespacesModal");var Hy=_c("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Gy=_c(ue,{textAlign:"center"}),hr=3e3,Ca=300;function Pc(){let{fetchStatus:t}=h(),[e,o]=gr("ALL"),n=h().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}=go({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},Ca)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},hr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),y=m.find(w=>w.type===p),T=y?.image||"",k=y?.state||Bc.NOT_INSTALLED,v=Il(m,n),b=Uy(v)!==1,x=El(m,e);return it.createElement(le,{header:{title:Lc.t("Connect Wallets")}},it.createElement(Gy,null,b&&it.createElement(it.Fragment,null,it.createElement(zy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),it.createElement(Oy,{size:24})),it.createElement(qy,{variant:"title",size:"xmedium",align:"center"},Lc.t("Choose a wallet to connect.")),it.createElement(Hy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return it.createElement(Qy,{key:W,...w,container:B(),onClick:L=>{w.namespaces&&w.state===Bc.DISCONNECTED?l({providerType:L,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(L)},isLoading:t==="loading",disabled:!d})}),it.createElement(Go,{open:!!r,onClose:C,image:T,state:k,error:g}),it.createElement(to,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Pc,"WalletsPage");import{keyframes as Vy,styled as Ta}from"@rango-dev/ui";var $c=Ta("div",{position:"relative"}),Xy=Vy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Dc=Ta("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Xy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Fc=Ta("div",{"& img":{borderRadius:"50%"}});var Zy=7;function wa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=h(),[u,c]=To(""),[d,m]=To(null),[f,g]=To(!1),[S,C]=To(null),[y,T]=To(null),{suggestAndConnect:k}=Sr(),v=null,{list:E,error:b,handleClick:x,disconnectWallet:w,disconnectConnectingWallets:I}=go({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},Ca)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},hr)}}),[W,L]=To(E),Q=E.length,M=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");zc(()=>{L(A=>{let te=E.findIndex(q=>o(q.type,e));return M&&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(he.SWAP_BOX_ID);zc(()=>{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=vl({connectedWallets:l,walletType:A.type,chain:e}),q=te?Wn(te,Zy):"",Z=An(p(),e),me=!l.find(X=>X.walletType===A.type&&X.chain===e),ge=Z&&me&&A.state===Uc.CONNECTED,_=ge?at.t({id:"Add {chain} chain",values:{chain:e}}):q,Oe=i(async()=>{A.state===Uc.DISCONNECTED?A.namespaces?Y(A):x(A.type):A.namespaces&&!q?(await w(A.type),Y(A)):ge?(m({walletType:A.type,chain:e,address:te??""}),g(!0)):n({walletType:A.type,chain:e,address:te??""})},"onClick"),P=d?.chain?Pl(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(to,{open:!!y,onClose:()=>T(null),onConfirm:X=>{x(y?.providerType,X),T(null)},image:y?.providerImage,namespaces:y?.availableNamespaces,singleNamespace:y?.singleNamespace}),!!d&&ce.createElement(oe,{open:!!d&&f,container:re,onClose:()=>{m(null)}},ce.createElement(yr,{title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),type:"warning",description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}})},ce.createElement(ka,{size:18}),ce.createElement(ka,{size:32}),ce.createElement(jy,{onClick:V.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},at.t("Confirm")))),S&&ce.createElement(oe,{open:!!S,onClose:C.bind(null,null),container:re},S==="in-progress"&&ce.createElement(yr,{type:"loading",title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}}),icon:ce.createElement($c,null,ce.createElement(Fc,null,ce.createElement(Ky,{src:A.image,size:45})),ce.createElement(Dc,null))}),S==="completed"&&ce.createElement(yr,{type:"success",title:at.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:P}}),description:at.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:at.t("Request Rejected"),description:at.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:P}})}),ce.createElement(ka,{direction:"vertical",size:32})),ce.createElement(Yy,{key:A.type,description:_,onClick:Oe,selected:o(A.type,e),disabled:!s,...A}))}),M&&ce.createElement(Pp,{selected:!1,onClick:a},ce.createElement(Oc,{variant:"label",size:"medium"},at.t("Show more wallets"),ce.createElement(Oc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(wa,"WalletList");var iS=2;function Qc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=h().config,l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=j(),{connectedWallets:g,selectWallets:S}=R(),[C,y]=wo(""),[T,k]=wo([]),[v,E]=wo(""),[b,x]=wo(null),[w,I]=wo(!!m),W=Xt({filter:"all",quote:p}),L=Xt({filter:"required",quote:p}),Q=l.find(P=>P.name===p?.swaps[p?.swaps.length-1].to.blockchain),M=i(P=>L.includes(P),"isWalletRequiredFor"),V=i(()=>g.filter(P=>P.selected&&W.includes(P.chain)),"getInitialSelectableWallets"),[Y,re]=wo(V()),H=T.length>0,A=i((P,X)=>!!Y.find(ie=>ie.walletType===P&&ie.chain===X&&ie.selected&&(M(X)||!M(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&&y(""),A(P.walletType,P.chain))return;let ie=g.find(Ee=>Ee.walletType===P.walletType&&Ee.chain===P.chain);ie&&(n(),P.chain===Q?.name&&w&&(I(!1),f(null)),re(Ee=>Ee.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"),ge=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(tp(P.error)),!P.error&&!X?.balance?.messages.length?me():k(X?.balance?.messages??[])},"onConfirmWallets");nS(()=>{re(P=>P.concat(g.filter(X=>!!!P.find(Ee=>Ee.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[g.length]);let _=document.getElementById(he.SWAP_BOX_ID),Oe=rS();return O.createElement(oe,{open:e,onClose:()=>{c||Oe("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:O.createElement(qp,null,O.createElement(qc,{loading:a,disabled:Cp(a,w,m,p,Y,Q),onClick:ge,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ht.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:O.createElement($p,null,O.createElement(Dp,{variant:"ghost",onClick:y.bind(null,"")},O.createElement(eS,{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(tS,{title:ht.t("Insufficient account balance"),type:"error",description:O.createElement(Jy,{messages:T??[]})},O.createElement(qc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},ht.t("Proceed anyway")))),C&&O.createElement(Fp,null,O.createElement("div",{className:Op()},O.createElement(wa,{chain:C,isSelected:A,selectWallet:Z,onShowMore:y.bind(null,C)}))),!C&&O.createElement(O.Fragment,null,v&&O.createElement(O.Fragment,null,O.createElement(va,{variant:"alarm",type:"error",title:ht.t(v)}),O.createElement(ko,{size:12})),b&&O.createElement(O.Fragment,null,O.createElement(va,{variant:"alarm",type:"warning",title:Kn(b)}),O.createElement(ko,{size:12})),O.createElement(Hp,null,W.map((P,X)=>{let ie=l.find(Ae=>Ae.name===P),Ee=`wallet-${X}`,Ge=X===W.length-1;return O.createElement("div",{key:Ee},O.createElement(Bp,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(ko,{size:24}),O.createElement(_p,null,O.createElement(wa,{chain:P,isSelected:A,selectWallet:Z,limit:iS,onShowMore:()=>y(ie?.name??"")})),!Ge&&O.createElement(ko,{size:32}),Ge&&s?.customDestination&&O.createElement(Up,null,O.createElement(er,{onOpenChange:Ae=>{Ae?M(Q?.name??"")||re(Le=>Le.map(Ke=>Ke.chain===Q?.name?{...Ke,selected:!1}:Ke)):q()},hasSelected:!0,open:w,triggerAnchor:"top",trigger:O.createElement(Gp,null,O.createElement("div",{className:"button__content"},O.createElement(oS,{size:18,color:"info"}),O.createElement(ko,{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(Ry,{size:10,color:"gray"}))),onClickTrigger:()=>I(Ae=>!Ae)},O.createElement(ko,{size:4}),O.createElement(Qp,{placeholder:ht.t("Your destination address"),value:m||"",onChange:Ae=>{let Le=Ae.target.value;Le.length?f(Le.length?Le:null):(I(!1),f(null))},...!m&&{autoFocus:!0}})),te&&O.createElement("div",{className:zp()},O.createElement(va,{variant:"alarm",type:"error",title:ht.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Qc,"ConfirmWalletsModal");import{i18n as xS}from"@lingui/core";import{Alert as bS,Button as IS,InfoIcon as ES}from"@rango-dev/ui";import Xe from"react";import{Alert as lS,Button as pS,Divider as Ia,NoRouteIcon as cS,RefreshIcon as uS,Typography as Yc}from"@rango-dev/ui";import Ve from"react";import{i18n as Hc}from"@lingui/core";var aS=24,sS=60;function Gc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Hc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Hc.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(Gc,"makeInfo");var xa=(o=>(o[o.small=aS]="small",o[o.large=sS]="large",o))(xa||{}),ba=(o=>(o.small="small",o.large="medium",o))(ba||{});import{styled as Tr}from"@rango-dev/ui";var Vc=Tr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Xc=Tr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),jc=Tr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Kc=Tr("div",{padding:"$6 $0"});function Vo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Gc(o,r,()=>a(s,!0),e);return Ve.createElement(Vc,null,Ve.createElement(cS,{size:xa[n],color:"gray"}),Ve.createElement(Ia,{size:4}),Ve.createElement(Yc,{variant:"title",size:ba[n]},ee().noResultError.title),n==="large"&&Ve.createElement(Ia,{size:4}),!!l.description&&Ve.createElement(Xc,{size:n},Ve.createElement(Yc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(Ia,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(jc,{size:n},Ve.createElement(lS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(pS,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(Kc,null,Ve.createElement(uS,{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 dS,Divider as fS,MessageBox as gS,Typography as hS,WarningIcon as yS}from"@rango-dev/ui";import xt from"react";import{Typography as eu}from"@rango-dev/ui";import Aa from"react";import{darkTheme as mS,styled as kr}from"@rango-dev/ui";var Zc=kr("div",{width:"100%"}),Ea=kr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Jc=kr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${mS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rc=kr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function tu(t){let{title:e,value:o,valueColor:n}=t;return Aa.createElement(Jc,null,Aa.createElement(eu,{size:"medium",variant:"label",className:"_title"},e),Aa.createElement(eu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(tu,"QuoteErrorsModalItem");function ou(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(dS,{type:"primary",size:"large",prefix:xt.createElement(yS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},xt.createElement(gS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),xt.createElement(Ea,null,xt.createElement(fS,{size:"4"}),xt.createElement(hS,{size:"small",variant:"title"},Xo.t("Details")),xt.createElement(Ea,null,l.map((p,u)=>xt.createElement(tu,{key:u,...p})))))}i(ou,"HighValueLossWarningModal");import{i18n as Na}from"@lingui/core";function nu(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=Na.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=Na.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=Na.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(nu,"makeAlerts");import{i18n as vo}from"@lingui/core";import{Button as ru,Divider as iu,MessageBox as SS,Typography as CS}from"@rango-dev/ui";import oo from"react";import{useNavigate as TS}from"react-router-dom";function au(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=TS(),u=e??o;return oo.createElement(oe,{anchor:"bottom",open:n,prefix:oo.createElement(ru,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},oo.createElement(CS,{variant:"label",size:"medium",color:"$neutral900"},vo.t("Change settings"))),container:B(),onClose:r},oo.createElement(SS,{type:"warning",title:s.type===3?vo.t("High slippage"):vo.t("Low slippage"),description:s.type===3?vo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):vo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},oo.createElement(iu,{size:18}),oo.createElement(iu,{size:32}),oo.createElement(ru,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},vo.t("Confirm anyway"))))}i(au,"SlippageWarningModal");import{Button as kS,MessageBox as wS,WarningIcon as vS}from"@rango-dev/ui";import wr from"react";function su(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(oe,{footer:wr.createElement(kS,{type:"primary",size:"large",prefix:wr.createElement(vS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(wS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(su,"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=nu(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(Zc,null,Xe.createElement(bS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Xe.createElement(Rc,{onClick:l},Xe.createElement(ES,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Xe.createElement(IS,{size:"xxsmall",type:f.alertType,onClick:c},xS.t("Change"))}})),e&&Xe.createElement(Xe.Fragment,null,e.type===0&&Xe.createElement(ou,{...d,warning:e}),(e.type===3||e.type===2)&&Xe.createElement(au,{...d,warning:e}),e.type===1&&Xe.createElement(su,{...d,warning:e})))}i(jo,"QuoteWarningsAndErrors");import rC from"bignumber.js";import $r from"react";import{i18n as no}from"@lingui/core";import{Alert as GS,Divider as bo,FullExpandedQuote as VS,InfoIcon as XS,QuoteTag as jS,StepDetails as KS,TokenAmount as YS,Tooltip as Uu,Typography as Io}from"@rango-dev/ui";import Da from"bignumber.js";import $,{useRef as ZS,useState as JS}from"react";import{styled as Wa}from"@rango-dev/ui";var Ma=Wa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),lu=Wa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),pu=Wa("div",{width:"100%",display:"flex"});import*as vr from"@radix-ui/react-collapsible";import{Button as AS,css as Ko,darkTheme as Ce,Image as cu,styled as $e,Typography as NS}from"@rango-dev/ui";var WS=300,uu=$e(vr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Ce} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),mu=Ko({padding:"$10 $15"}),du=$e(AS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Ce} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Ce} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ce} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),fu=$e("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",[`.${Ce} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ce} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ce} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ce} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ce} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ce} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ce} &`]:{backgroundColor:"$neutral400"}}}}]}),gu=Ko({width:"100%",padding:"$15 $15 $10 $15"}),hu=Ko({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),xo=Ko({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),yu=Ko({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ce} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Su=$e(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:{[`& ${cu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${cu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ce} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Ce} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Cu=$e("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"}}}}),Tu=$e(Zn,{width:"100%",background:"inherit"}),La=$e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${WS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),GL=$e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ku=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ce} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),wu=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ba=$e(NS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),vu=$e("div",{display:"flex",flexWrap:"wrap"}),_a=$e("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"}}}}),xu=$e("div",{display:"flex"}),xr=$e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ce} &`]:{borderTopColor:"$neutral800"}});import{i18n as zt}from"@lingui/core";import{ChevronDownIcon as LS,CloseIcon as BS,Divider as Er,IconButton as _S,QuoteCost as PS,Tooltip as $S,Typography as st}from"@rango-dev/ui";import K,{useState as Au}from"react";import{css as MS,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"}}),Pa=br("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),bu=br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Iu=br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Eu=MS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var DS=i(t=>t.fee.isZero()?null:K.createElement(Ir,null,K.createElement(st,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(st,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Nu(t){let[e,o]=Au(!1),[n,r]=Au(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=B(),f=sp(d);return K.createElement(K.Fragment,null,K.createElement(PS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?zt.t("View more info"):void 0,tooltipContainer:m}),K.createElement(oe,{container:m,open:e,header:K.createElement(Iu,null,K.createElement(st,{variant:"title",size:"medium"},zt.t("Gas & Fee Explanation")),K.createElement(_S,{onClick:()=>o(!1),variant:"ghost"},K.createElement(BS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(bu,null,K.createElement(st,{variant:"title",size:"small"},zt.t("Details")),K.createElement(Er,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Oi(C);return K.createElement(Ir,{key:T},K.createElement(st,{variant:"label",size:"medium",color:"neutral600"},Pi[g]),K.createElement($S,{content:pe(C.amount),container:m},K.createElement(st,{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(st,{variant:"label",size:"medium"},zt.t("Total Payable Fee")),K.createElement(st,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(Pa,null),Object.keys(f.nonePayable).length&&K.createElement(er,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:Eu()},K.createElement(st,{size:"small",variant:"body",color:"neutral700"},n?zt.t("Hide non-payable fees"):zt.t("Show non-payable fees")),K.createElement(Er,{size:4,direction:"horizontal"}),K.createElement(Jn,{orientation:n?"up":"down"},K.createElement(LS,{size:12,color:"gray"}))),open:n},K.createElement(st,{size:"small",variant:"title"},zt.t("Description")),K.createElement(Er,{size:4}),K.createElement(st,{size:"small",variant:"body",color:"neutral700"},zt.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 y=ap(S),T=Pi[g],k=`non-payable-fee-${C}`;return K.createElement(DS,{key:k,fee:y,label:T})}),K.createElement(Pa,null)))))}i(Nu,"QuoteCostDetails");import{i18n as Lu}from"@lingui/core";import{TokenAmount as Bu}from"@rango-dev/ui";import Ar from"react";import{css as FS,styled as OS}from"@rango-dev/ui";var Wu=OS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Mu=FS({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(Wu,null,Ar.createElement(Bu,{direction:"horizontal",label:Lu.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:Mu()}),Ar.createElement(Bu,{direction:"horizontal",tooltipContainer:B(),label:Lu.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 Fu}from"@lingui/core";import{ChevronDownIcon as qS,ChevronRightIcon as QS,Divider as $a,Image as HS,Tooltip as Br,Typography as Wr}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as US,useState as Zo}from"react";var _u=480,Pu=768,$u=1024,Du=1200,zS=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<=_u),n(window.innerWidth>_u&&window.innerWidth<=Pu),a(window.innerWidth>Pu&&window.innerWidth<=$u),l(window.innerWidth>$u&&window.innerWidth<=Du),u(window.innerWidth>Du)},"handleResize");return US(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Nr=zS;var Mr=4,Lr=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(Cu,{className:n,state:a},D.createElement(HS,{src:o,size:16})))},"ImageComponent");function Ou(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=bp(r),{isTablet:d,isMobile:m}=Nr();return D.createElement(Su,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},D.createElement("div",{className:xo()},D.createElement(Wr,{variant:"body",size:"xsmall"},Fu.t("Via:")),D.createElement($a,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=D.createElement(La,null,D.createElement(QS,{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<=Mr||u>Mr&&g<Mr-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===Mr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:xo()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&D.createElement(D.Fragment,{key:k},D.createElement(Jo,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&D.createElement(D.Fragment,null,C))}))},D.createElement(_a,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",u-g))))})),D.createElement("div",{className:xo()},D.createElement("div",{className:"blockchains_section"},D.createElement("div",{className:xo()},D.createElement(Wr,{variant:"body",size:"xsmall"},Fu.t("Chains:")),D.createElement($a,{direction:"horizontal",size:4}),c.map((f,g)=>D.createElement(D.Fragment,{key:f.displayName},c.length<=Lr||c.length>Lr&&g<Lr-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===Lr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:xo()},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($a,{direction:"horizontal",size:32}))),D.createElement(La,{orientation:a?"up":"down"},D.createElement(qS,{size:12,color:"black"}))))}i(Ou,"QuoteTrigger");function Fa(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=h().blockchains(),g=h().tokens(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=JS(t.expanded),E=ZS(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=wt(I??0),Q=i((me,ge)=>me.map((_,Oe)=>{let P,X=r?.type===3&&r.swap.swapperId===_.swapperId,ie=r?.type===4&&r.recommendedSlippages?.has(Oe),Ee=a?.type===2&&a.recommendedSlippages?.has(Oe),Ge=X||ie,Ae=Ee;Ge?P="error":Ae&&(P="warning");let Le=Ge?no.t("Slippage Error"):no.t("Slippage Warning");return X&&(Le=no.t("Bridge Limit Error")),{swapper:{displayName:Do(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ye(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:Oe===0&&!ge?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:pe(Oe===0?o.value:_.fromAmount),realUsdValue:pe(new Da(_.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 Da(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:P,alerts:Ge||Ae?$.createElement(lu,{dense:d},$.createElement(GS,{variant:"alarm",type:Ge?"error":"warning",title:Le,footer:$.createElement(pu,null,X&&$.createElement("div",null,$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(bo,{direction:"vertical",size:2}),$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(ie||Ee)&&!X&&$.createElement("div",null,$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Oe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Oe)}}})),$.createElement(bo,{direction:"vertical",size:2}),$.createElement(Io,{size:"xsmall",variant:"body",color:"neutral900"},no.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"),M=Q(e?.swaps??[]),V=M.length,Y=m||B(),re=Ep(t.quote.tags||[]),H=!!c,A=_o(vn(e?.swaps)),te=zn(e?.swaps??[],g),q=N(te,2,2),Z=te.gte(new Da(ep));return d?$.createElement(VS,{selected:l,fee:q,time:A,tooltipContainer:Bo(),steps:M,tags:re,feeWarning:Z,percentageChange:W,warningLevel:L,outputPrice:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):$.createElement(fu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:gu()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(xu,null,re.map((me,ge)=>{let _=`${me.value}_${ge}`;return $.createElement($.Fragment,{key:_},$.createElement(jS,{label:me.label,value:me.value}),$.createElement(bo,{size:4,direction:"horizontal"}))})),$.createElement(xr,null),!H&&$.createElement(bo,{size:4})):null,$.createElement("div",{id:"portal-root",className:hu()},$.createElement(Nu,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(du,{onClick:me=>{me.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Io,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},no.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:yu()},$.createElement(wu,null,$.createElement(XS,{size:12,color:"gray"})),$.createElement(vu,null,$.createElement(Ba,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(Uu,{content:pe(n.value),container:Y,open:n.value?void 0:!1},$.createElement(Ba,{size:"small",variant:"body"},"\xA0",`${x} ${M[M.length-1].to.token.displayName}`))),$.createElement(Uu,{content:pe(n.usdValue),container:Y},$.createElement(bo,{size:2,direction:"horizontal"}),$.createElement(Io,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(YS,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:M[V-1].to.token.displayName,image:M[V-1].to.token.image},chain:{image:M[V-1].to.chain.image},percentageChange:W,warningLevel:L}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Yo,{from:M[0].from,to:M[V-1].to,percentageChange:W,warningLevel:L}),$.createElement(bo,{size:4}))),$.createElement(uu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Ou,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:M}),$.createElement(Tu,{open:k},$.createElement(ku,null),$.createElement("div",{className:mu()},M.map((me,ge)=>{let _=`item-${ge}`;return $.createElement(KS,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:ge!==M.length-1,state:me.state})})))))}i(Fa,"Quote");import{Divider as oC,Skeleton as nC}from"@rango-dev/ui";import It from"react";import{darkTheme as RS,styled as _r}from"@rango-dev/ui";var zu=_r("div",{$$color:"$colors$neutral100",[`.${RS} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),qu=_r("div",{paddingTop:"$2"}),Qu=_r("div",{paddingLeft:"$8"}),Hu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as em,Divider as lt,Skeleton as je}from"@rango-dev/ui";import z from"react";import{css as eC,styled as bt}from"@rango-dev/ui";var Oa=bt("div",{display:"flex"}),Gu=bt("div",{padding:"$10 $0 $20"}),Vu=bt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Xu=bt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),ju=bt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ku=bt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Yu=bt("div",{width:"65%",display:"flex",justifyContent:"start"}),Zu=bt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Ju=bt("div",{padding:"$15 $0 $15 $0"}),Ru=eC({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ro(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(ju,null,z.createElement(Yu,null,z.createElement(em,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(lt,{size:8,direction:"horizontal"}),z.createElement(Zu,null,z.createElement(je,{height:10,width:60,variant:"rounded"}),z.createElement(lt,{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(Oa,null,z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"})),z.createElement(xr,null),!r&&z.createElement(lt,{size:4})),z.createElement("div",{className:Ru()},z.createElement(Oa,null,z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(lt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(lt,{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(Gu,null,z.createElement(je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Vu,null,z.createElement(Xu,null,z.createElement(em,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(lt,{direction:"horizontal",size:4}),z.createElement(je,{height:15,width:150,variant:"rounded"})),z.createElement(lt,{size:10}),z.createElement(je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(lt,{size:4}),z.createElement(Ju,null,n,z.createElement(Ku,null),n),z.createElement(lt,{size:12})))}i(Ro,"QuoteSummarySkeleton");import{ChainToken as im,Divider as za,NextIcon as tC,Skeleton as Pr}from"@rango-dev/ui";import Te from"react";import{styled as en}from"@rango-dev/ui";var tm=en("div",{display:"flex",alignItems:"start"}),om=en("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ua=en("div",{display:"flex",alignItems:"center",flexGrow:1}),nm=en("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),rm=en("div",{display:"flex",alignItems:"center"});function yt(t){let{separator:e=!0}=t;return Te.createElement(Te.Fragment,null,Te.createElement(rm,null,Te.createElement(Pr,{height:22,width:22,variant:"circular"}),Te.createElement(za,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:15,width:148,variant:"rounded"})),Te.createElement(tm,null,Te.createElement(Hu,{hideSeparator:!e}),Te.createElement(om,{extraSpace:e},Te.createElement(Ua,null,Te.createElement(im,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(za,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:12,variant:"rounded"})),Te.createElement(nm,null,Te.createElement(tC,{color:"gray",size:16})),Te.createElement(Ua,null,Te.createElement(im,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(za,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:12,variant:"rounded"})))))}i(yt,"StepSkeleton");function tn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return It.createElement(zu,{expanded:o,rounded:e!=="basic"},It.createElement(Ro,{type:e,tagHidden:n}),It.createElement(qu,null,It.createElement(nC,{height:15,variant:"rounded"})),o&&It.createElement(Qu,null,It.createElement(oC,{size:24}),It.createElement(yt,null),It.createElement(yt,null),It.createElement(yt,{separator:!1})))}i(tn,"QuoteSkeleton");function ro(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(),y=e?.outputAmount?new rC(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(Ma,null,$r.createElement(tn,{tagHidden:l,type:o,expanded:s})):v?$r.createElement(Ma,{onClick:()=>p?.(e)},$r.createElement(Fa,{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:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(ro,"QuoteInfo");import{calculatePendingSwap as lC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as pC}from"react";import{useRef as iC,useState as aC}from"react";var sC=2e3;function Dr({request:t}){let[e,o]=aC(!1),n=iC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,sC)),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 am(){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(am,"useFetchConfirmQuote");function Fr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=qa(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Fr,"throwErrorIfResponseIsNotValid");function qa(t){if(np(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=rp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=lp(t);if(o){let n=qn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(qa,"getQuoteError");function sm(t,e,o){let n=!1;t&&(n=vp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=co(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(fp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(po(e)),percentageChange:N(Je(po(t)??"",po(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=gp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(sm,"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 Qa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),d=h().blockchains(),m=h().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:C}=am();return pC(()=>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},L=sm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});L.quoteUpdate&&s(!1),l();let Q=!!L.balance,M=lC(o.toString(),w,mp(k),W,!Q,{blockchains:d,tokens:m});return{quote:I,swap:M,error:null,warnings:L}})}catch(x){return Or(x)}},"fetch"),cancelFetch:S}}i(Qa,"useConfirmSwap");var SC=mC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${pm}`]:{width:"$48",height:"$48"}}),CC=Va({flexGrow:1,paddingRight:"$10"}),TC=Va({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),kC=Va({display:"flex",justifyContent:"space-between",alignItems:"center"});function cm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=yC(),[l,p]=on(""),u=!n,[c,d]=on(!1),[m,f]=on(!1),{isActiveTab:g}=ne(),S=h().getDisabledLiquiditySources(),C=hC(S),{manager:y}=cC(),{fetch:T,loading:k,cancelFetch:v}=Qa(),[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 y?.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"),L=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await L()},"onStartConfirmSwap"),M=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&&M(),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))},[]),gC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=E.warnings?.quote??null,Y=E.error,re=[];if(l&&re.push(ke.createElement(lm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&re.push(ke.createElement(lm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Kn(E.warnings.quoteUpdate)})),V||Y){let H=`../${U.settings}`;re.push(ke.createElement(jo,{warning:V,error:Y,couldChangeSettings:!1,refetchQuote:M,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(H)}))}return ke.createElement(le,{header:{title:Ha.t("Confirm Swap"),onWallet:()=>{let H=`../${U.wallets}`;s(H)}},footer:ke.createElement(SC,null,ke.createElement("div",{className:CC()},ke.createElement(uC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:Q},Ha.t("Start Swap"))),ke.createElement(pm,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},ke.createElement(fC,{size:24})))},c&&ke.createElement(Qc,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),ke.createElement(ue,null,ke.createElement("div",{className:kC()},ke.createElement(dC,{variant:"title",size:"small"},Ha.t("You get")),ke.createElement("div",{className:TC()},ke.createElement(lr,{onClick:!k&&!c&&!x?M:void 0}))),ke.createElement(Ga,{size:"12"}),Kp(re.map((H,A)=>({element:H,key:`alert-${A}`})),ke.createElement(Ga,{size:10})),re.length>0?ke.createElement(Ga,{size:10}):null,ke.createElement(ro,{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 qr}from"@lingui/core";import{useManager as DC}from"@rango-dev/queue-manager-react";import{Divider as km,NotFound as FC,styled as OC}from"@rango-dev/ui";import At,{useState as UC}from"react";import{useNavigate as zC}from"react-router-dom";import{i18n as xC}from"@lingui/core";import{Divider as gm,GroupedVirtualizedList as bC,Skeleton as IC,SwapListItem as hm,Typography as EC}from"@rango-dev/ui";import De,{useCallback as ym,useEffect as AC,useRef as NC,useState as WC}from"react";function um(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(um,"calculateGroupsSoFar");import{css as wC,darkTheme as vC,styled as nn}from"@rango-dev/ui";var Xa=wC(),mm=nn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ja=nn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Xa}`]:{$$color:"$colors$neutral600",[`.${vC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ka=nn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),dm=nn("div",{gap:"$10",display:"flex",flexDirection:"column"}),fm=nn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var MC=10;function Ya(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=WC([]),l=NC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=ym(um,[]),m=ym(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,MC),s(d(u,l.current)))},[e.length]);if(AC(()=>{r||m()},[r,m]),r){let f=[1,2];return De.createElement(De.Fragment,null,[f,f].map((S,C)=>De.createElement(ja,{key:C},De.createElement(Ka,null,De.createElement(IC,{variant:"text",width:60,size:"small"}),De.createElement(gm,{size:16})),De.createElement(gm,{size:4}),De.createElement(dm,null,S.map((T,k)=>De.createElement(hm,{isLoading:!0,key:k}))))))}return De.createElement(bC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>De.createElement(ja,null,De.createElement(Ka,null,De.createElement(EC,{variant:"label",size:"medium",className:Xa()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return De.createElement(mm,{key:S.requestId},De.createElement(hm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===xC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:pe(S.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(Ya,"HistoryGroupedList");import{CloseIcon as BC,IconButton as _C,SearchIcon as PC,TextField as $C}from"@rango-dev/ui";import rn from"react";import{styled as LC}from"@rango-dev/ui";var Sm=LC("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($C,{prefix:rn.createElement(Sm,null,rn.createElement(PC,{color:"black"})),suffix:!!s.length&&rn.createElement(_C,{variant:"ghost",onClick:()=>l?.(""),size:"small"},rn.createElement(BC,{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 Cm from"dayjs";var Tm=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=Cm();t.forEach(p=>{let u=Number(p.creationTime),c=Cm(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 qC=OC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),QC=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 wm(){let t=zC(),{manager:e,state:o}=DC(),n=ft(e).map(({swap:c})=>c),[r,a]=UC(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>mt(c.inputAmount,r)||mt(c.status,r)||QC(c.steps,r)||mt(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(km,{size:"16"}),At.createElement(qC,null,u&&At.createElement(fm,null,At.createElement(km,{size:32}),At.createElement(FC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&At.createElement(Ya,{list:p,onSwapClick:t,groupBy:Tm,isLoading:s}))))}i(wm,"HistoryPage");import{i18n as lT}from"@lingui/core";import{Button as pT,Divider as Um,styled as cT,WarningIcon as uT}from"@rango-dev/ui";import mT from"bignumber.js";import Qe,{useEffect as zm,useState as qm}from"react";import{useNavigate as dT}from"react-router-dom";import{i18n as KC}from"@lingui/core";import{Header as YC}from"@rango-dev/ui";import qt,{useEffect as ZC,useState as JC}from"react";import{i18n as GC}from"@lingui/core";import{Divider as Ja,FullExpandedQuote as VC,Typography as XC}from"@rango-dev/ui";import de from"react";import{styled as Za}from"@rango-dev/ui";var vm=Za("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),xm=Za("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),bm=Za("div",{width:"146px"});import{i18n as an}from"@lingui/core";import{Select as HC}from"@rango-dev/ui";import Im 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 Im.createElement(bm,null,Im.createElement(HC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Qr,"SelectStrategy");var Em=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}=h(),y=h().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 co(I,{fromToken:d,toToken:m,userSlippage:v,tokens:y})},"getQuoteWarning"),b=g?.type===0||g?.type===1,x=u?.results?Vn(f,u?.results):[];return de.createElement(de.Fragment,null,a&&de.createElement(de.Fragment,null,de.createElement(xm,null,de.createElement(XC,{size:"xmedium",variant:"title"},GC.t("Sort by")),de.createElement(Qr,{container:T})),de.createElement(Ja,{size:"10"})),e&&Array.from({length:Em},(w,I)=>de.createElement(de.Fragment,{key:I},s?de.createElement(VC,{loading:!0}):de.createElement(tn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==Em-1&&de.createElement(Ja,{size:16}))),!e&&de.createElement(de.Fragment,null,k?x.map((w,I)=>{let W=E(w),L=qa(w.swaps),Q=x.length-1===I;return de.createElement(de.Fragment,{key:w.requestId},de.createElement(ro,{showModalFee:r,container:T,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"}),!Q&&de.createElement(Ja,{size:16}))}):b&&de.createElement(vm,null,de.createElement(Vo,{size:s?"large":"small",error:g,fetch:n}))))}i(sn,"Quotes");import{darkTheme as jC,styled as Am}from"@rango-dev/ui";var Nm=Am("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${jC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Wm=Am("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var RC=100;function Ra(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=JC(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",d=Bo();return ZC(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},RC):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),qt.createElement(Nm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ur()}`,id:he.EXPANDED_BOX_ID},qt.createElement(YC,{title:KC.t("Routes"),suffix:qt.createElement(qt.Fragment,null,qt.createElement(Qr,{container:d}),qt.createElement(Rt,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),qt.createElement(Wm,null,qt.createElement(sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:c})))}i(Ra,"ExpandedQuotes");import{i18n as Dm}from"@lingui/core";import{SwapInput as Fm}from"@rango-dev/ui";import ln from"react";import{ReverseIcon as oT}from"@rango-dev/ui";import ts from"react";import{keyframes as eT,styled as Mm}from"@rango-dev/ui";var es=450,tT=eT({"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)"}}),Lm=Mm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Bm=Mm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${tT} ${es}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 os(){let t=j.use.switchFromAndTo();return ts.createElement(Lm,null,ts.createElement(Bm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},es),t()}},ts.createElement(oT,{size:12})))}i(os,"SwitchFromAndToButton");import{styled as _m}from"@rango-dev/ui";var Pm=_m("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),$m=_m("div",{position:"relative"});function ns(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(),y=a?C(a):null,T=Nn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",v=!!s&&xl(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(Pm,null,ln.createElement($m,null,ln.createElement(Fm,{label:Dm.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(os,null)),ln.createElement(Fm,{sharpBottomStyle:!r&&(!!g||e),label:Dm.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(ns,"Inputs");import{useCallback as nT,useEffect as rT,useRef as iT,useState as aT}from"react";function Om(){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(Om,"useFetchAllQuotes");var sT=600;function Hr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Om(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=R.use.connectedWallets(),l=h().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:y,updateQuotePartialState:T}=j(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=h(),I=h().getLiquiditySources(),W=h().getDisabledLiquiditySources(),L=h().excludeLiquiditySources(),[Q,M]=aT(!0),V=iT(c),Y=v??k,H=!p||!u||_e(p,u)||!Po(c),A=i(Z=>{M(Z)},"resetState"),te=i(Z=>{let{fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae}=Z;if(Q||A(!0),!H&&me&&ge){g();let Le=up({fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,wallets:s,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae,enableCentralizedSwappers:a});Dl("experimentalRoute",r)&&(Le.experimental=!0),e(Le).then(Ke=>{let Ne=Vn(f,Ke.results),Ue=Ip(m,Ne,Ke.requestAmount);M(!1),T("quotes",Ke),y(Ue),Fr({diagnosisMessages:Ke.diagnosisMessages,requestId:Ue?.requestId||"",swaps:Ue?.swaps});let Cn=Ue&&co(Ue,{fromToken:me,toToken:ge,userSlippage:Y,tokens:l});T("warning",Cn)}).catch(Ke=>{let{error:Ne}=Or(Ke);(Ne?.type===0||Ne?.type===1)&&g(),Ne?.type!==2&&(T("error",Ne),M(!1))})}},"fetch"),q=nT(cl(Z=>{te(Z)},sT),[H]);return rT(()=>{if(!t){M(!1);return}if(w!=="success")return;if(H){M(!1),(m||S||C)&&g();return}if(!Po(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:L,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:L,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:Q}}i(Hr,"useSwapInput");var fT=cT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),gT=300;function Qm(){let t=dT(),{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]=qm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Nr(),{fetch:y,loading:T}=Hr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:E}=R(),{isActiveTab:b}=ne(),[x,w]=qm(!1),W=ip({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Ml(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new mT(n).gt(0)&&!Tp(e,o),M=Q&&v==="success"&&T,re=(!L||L&&p?.results.length)&&(l||s);zm(()=>{c(),m("refetchQuote",!0)},[]),zm(()=>{g(Q)},[Q]);let H=(r||s)&&!x?y:void 0,A=i(q=>{L&&f?(g(!1),setTimeout(()=>{t(q)},gT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return Qe.createElement(fT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(pT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(uT,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||lT.t("Swap"),suffix:Qe.createElement(Rt,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>A(U.swaps),onClickSettings:()=>{A(U.settings)}})}},Qe.createElement(ue,null,Qe.createElement(ns,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:L,onClickToken:q=>{A(q==="from"?U.fromSwap:U.toSwap)}}),Qe.createElement(Um,{size:"2"}),L?null:Qe.createElement(ro,{quote:r,loading:M,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(Um,{size:"10"}),Qe.createElement(jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),A(U.confirmSwap)},onChangeSettings:()=>A(U.settings)})):null)),L?Qe.createElement(Ra,{loading:M,onClickOnQuote:te,fetch:y,onClickRefresh:H,isVisible:f}):null)}i(Qm,"Home");import{i18n as Hm}from"@lingui/core";import{Alert as hT,Divider as yT,List as ST,ListItemButton as CT,Radio as TT,RadioRoot as kT,Typography as wT}from"@rango-dev/ui";import St from"react";function Qt(){let{setLanguage:t,language:e,config:o}=h(),n=Ol,r=o?.language||Fo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Fo),resetLanguage:()=>t(null)}}i(Qt,"useLanguage");function Gm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Qt(),n=et(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:St.createElement(wT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:St.createElement(TT,{value:s}),start:St.createElement(p,null)}});return St.createElement(le,{header:{title:Hm.t("Language")}},St.createElement(ue,null,St.createElement(hT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),St.createElement(yT,{size:"8"}),St.createElement(kT,{value:t},St.createElement(ST,{type:St.createElement(CT,{title:Hm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Gm,"LanguagePage");import{i18n as Nt}from"@lingui/core";import{Button as ET,Checkbox as AT,Image as NT,ListItemButton as WT,NotFound as MT,Typography as LT}from"@rango-dev/ui";import Fe,{useState as BT}from"react";import{Checkbox as bT,Skeleton as Xm}from"@rango-dev/ui";import cn from"react";import{styled as rs}from"@rango-dev/ui";var pn=rs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),is=rs("div",{width:80,display:"flex",justifyContent:"flex-end"}),as=rs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as vT,styled as xT}from"@rango-dev/ui";var Vm=xT(vT,{height:61});var IT=30;function ss(){return cn.createElement(pn,null,Array.from(Array(IT),(t,e)=>cn.createElement(Vm,{hasDivider:!0,key:e,start:cn.createElement(Xm,{variant:"circular",width:35,height:35}),title:cn.createElement(Xm,{variant:"text",size:"large",width:90}),end:cn.createElement(bT,{checked:!1})})))}i(ss,"LoadingLiquiditySourceList");function ls({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=BT(""),s=h().toggleLiquiditySource,l=h().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(y=>c.includes(y.type)),m=d.length===d.filter(y=>y.selected).length,f=i(()=>{d.forEach(y=>{m?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:Fe.createElement(NT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(AT,{checked:T,disabled:l}),title:Fe.createElement(LT,{variant:"title",size:"xmedium"},Nt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>mt(y.groupTitle,r))),Fe.createElement(le,{header:{title:Nt.t(t),suffix:Fe.createElement(is,null,Fe.createElement(ET,{variant:"ghost",size:"xsmall",onClick:f},m?Nt.t("Deselect all"):Nt.t("Select all")))}},Fe.createElement(ue,{view:!0},Fe.createElement(Et,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Nt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Fe.createElement(ss,null),!C.length&&r?Fe.createElement(as,null,Fe.createElement(MT,{title:Nt.t("No results found"),description:Nt.t("Try using different keywords")})):e==="success"&&Fe.createElement(pn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return Fe.createElement(Fe.Fragment,{key:y.id},Fe.createElement(WT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ls,"LiquiditySourcePage");import{i18n as _T}from"@lingui/core";import Gr from"react";import{useNavigate as PT}from"react-router-dom";function jm(){let t=PT(),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:_T.t("Routes"),suffix:Gr.createElement(Rt,{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(jm,"RoutesPage");import{i18n as od}from"@lingui/core";import{Divider as nd,getCategoriesCount as HT,SelectableCategoryList as GT}from"@rango-dev/ui";import Wt,{useState as rd}from"react";import{i18n as ps}from"@lingui/core";import{Divider as ed,Image as OT,ListItemButton as UT,NotFound as zT,Typography as td}from"@rango-dev/ui";import tt,{useEffect as qT,useState as QT}from"react";var Km=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 $T,styled as Ym}from"@rango-dev/ui";var Zm=Ym("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vr=Ym(Ho,{padding:0,margin:0,listStyle:"none",[`& ${$T}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as DT,Skeleton as Jm}from"@rango-dev/ui";import Xr from"react";var FT=20;function Rm(){return Xr.createElement(Vr,null,Array.from(Array(FT),t=>Xr.createElement(DT,{key:t,hasDivider:!0,start:Xr.createElement(Jm,{variant:"circular",width:35,height:35}),title:Xr.createElement(Jm,{variant:"text",size:"large",width:90})})))}i(Rm,"LoadingBlockchainList");function cs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=QT(e),{fetchStatus:l}=h();qT(()=>{s([...Km(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?tt.createElement(tt.Fragment,null,tt.createElement(ed,{size:32}),tt.createElement(zT,{title:ps.t("No results found"),description:ps.t("Try using different keywords")})):tt.createElement(Vr,{as:"ul",key:`${r}-${o}`},a.map(u=>tt.createElement(UT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:tt.createElement(OT,{src:u.logo,size:30}),title:tt.createElement(td,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return tt.createElement(Zm,null,tt.createElement(td,{variant:"label",size:"large"},ps.t("Select Blockchain")),tt.createElement(ed,{size:4}),l==="loading"&&tt.createElement(Rm,null),l==="success"&&p())}i(cs,"BlockchainList");function us(t){let{type:e}=t,o=et(),[n,r]=rd(""),[a,s]=rd("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),m=HT(c)!==1;return Wt.createElement(le,{header:{title:od.t("Select Blockchain")}},Wt.createElement(ue,{view:!0},m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(GT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Wt.createElement(nd,{size:24})),Wt.createElement(Et,{value:n,autoFocus:!0,placeholder:od.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Wt.createElement(nd,{size:16}),Wt.createElement(cs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(us,"SelectBlockchainPage");import{i18n as Jr}from"@lingui/core";import{Divider as bd}from"@rango-dev/ui";import io,{useState as lk}from"react";import{useNavigate as pk}from"react-router-dom";import{i18n as fs}from"@lingui/core";import{BlockchainsChip as jr,Divider as ld,Image as pd,Skeleton as YT,Tooltip as ZT,Typography as gs}from"@rango-dev/ui";import be from"react";import{useEffect as jT}from"react";var id=["ETH","COSMOS","OSMOSIS"];function ms(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(VT),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(XT(s)),r=n.splice(a)}return{list:n,more:r}}i(ms,"prepare");function VT(t,e){let o=id,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(VT,"sortByMostUsedBlockchains");function XT(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(XT,"generateSortByPreferredBlockchainsFor");function ad(t,e){return!!e.list.find(o=>o.name===t)}i(ad,"isInVisibleList");function ds(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();jT(()=>{if(e?.selected){let a=ms(t,o,e);ad(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=ms(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ds,"usePrepareBlockchainList");import{styled as KT}from"@rango-dev/ui";var sd=KT("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var JT=12;function hs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ds(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return be.createElement(be.Fragment,null,be.createElement(ld,{size:12}),be.createElement(gs,{variant:"label",size:"large"},fs.t("Select Blockchain")),be.createElement(ld,{size:12}),be.createElement(sd,null,l==="loading"&&Array.from(Array(JT),f=>be.createElement(YT,{key:f,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(gs,{variant:"body",size:"xsmall",color:"secondary500"},fs.t("All"))),s.list.map(f=>be.createElement(ZT,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},be.createElement(jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(pd,{src:f.logo,size:30})))),d?be.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},be.createElement(pd,{src:s.more[0].logo,size:30})):null,m?be.createElement(jr,{onClick:a,key:"more-blockchains"},be.createElement(gs,{variant:"body",size:"xsmall",color:"secondary500"},fs._("More +{count}",{count:s.more.length}))):null)))}i(hs,"BlockchainsSection");import{i18n as Is}from"@lingui/core";import{darkTheme as Td,Divider as Ao,ExternalLinkIcon as tk,Image as ok,ListItemButton as nk,NotFound as rk,PinIcon as ik,Skeleton as kd,Typography as Zr,VirtualizedList as ak}from"@rango-dev/ui";import G,{useEffect as wd,useState as vd}from"react";import{Divider as Sd,ListItem as ek,Skeleton as un}from"@rango-dev/ui";import pt from"react";import{css as Eo,darkTheme as cd,ImageContainer as RT,styled as ot,Typography as ud}from"@rango-dev/ui";var ys=Eo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ss=Eo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Cs=Eo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ts=Eo({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"}}),ks=Eo({}),ws=Eo(),md=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),vs=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kr=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ss}`]:{[`& .${Ts}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ks}`]:{bottom:"-15px"},[`& .${ys}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Cs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),xs=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),bs=ot(ud,{}),dd=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ws}`]:{$$color:"$colors$neutral600",[`.${cd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),NO=ot("div",{display:"flex",alignItems:"center"}),fd=ot("div",{position:"relative",[`& ${RT}`]:{borderRadius:"$xm",overflow:"hidden"}}),gd=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),hd=ot(ud,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),yd=ot("a",{"& svg:hover":{color:"$colors$info"}});function Cd(t){return pt.createElement(Kr,null,Array.from(Array(t.size),e=>pt.createElement(ek,{key:e,hasDivider:!0,start:pt.createElement(un,{variant:"circular",width:35,height:35}),end:pt.createElement(Yr,null,pt.createElement(un,{variant:"text",size:"large",width:70}),pt.createElement(Sd,{size:4}),pt.createElement(un,{variant:"text",size:"medium",width:50})),title:pt.createElement("div",null,pt.createElement(un,{variant:"text",size:"large",width:90}),pt.createElement(Sd,{size:4}),pt.createElement(un,{variant:"text",size:"medium",width:90}))})))}i(Cd,"LoadingTokenList");var Es=20,sk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:Ss()},o?G.createElement("div",{className:ys()},o):G.createElement(vs,{className:Cs()},G.createElement(Zr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Ao,{direction:"horizontal",size:4}),G.createElement(xs,{css:a},G.createElement(bs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${Ts()} ${!o&&ks()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Ao,{size:4,direction:"horizontal"}),G.createElement(yd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(tk,{size:12}))))},"renderDesc");function xd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=vd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=vd(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Es))},"loadNextPage");wd(()=>{c(e.length>a.length)},[a.length]),wd(()=>{s(e.slice(0,Es))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Ao,{size:32}),G.createElement(rk,{title:Is.t("No results found"),description:Is.t("Try using different keywords")})):G.createElement(ak,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Nn(d(y)),k=y.address||"",v=p.find(I=>I.name===y.blockchain),E=nr(v?.color||"",Xp(v?.color||"")?5:125),b=nr(v?.color||"",-100),x={$$color:E,[`.${Td} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Td} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(nk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:G.createElement(fd,null,G.createElement(ok,{src:y.image,size:30}),f(y,t.type)&&G.createElement(gd,null,G.createElement(ik,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?G.createElement(vs,null,G.createElement(Zr,{variant:"title",size:"xmedium"},y.symbol),G.createElement(Ao,{direction:"horizontal",size:4}),G.createElement(xs,{css:x},G.createElement(bs,{variant:"body",size:"xsmall",css:w},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?sk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:w,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:m?G.createElement(Yr,null,G.createElement(kd,{variant:"text",size:"large",width:70}),G.createElement(Ao,{size:4}),G.createElement(kd,{variant:"text",size:"medium",width:50})):T&&G.createElement(dd,null,G.createElement(hd,{variant:"title",size:"small"},T.amount),G.createElement("div",null),T.usdValue&&G.createElement(Zr,{variant:"body",className:ws(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(md,null,G.createElement(Zr,{variant:"label",size:"large"},Is.t("Select Token")),G.createElement(Ao,{size:4}),l==="loading"&&G.createElement(Cd,{size:Es}),l==="success"&&G.createElement(Kr,{as:"ul"},S()))}i(xd,"TokenList");function As(t){let{type:e}=t,o=pk(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=R.use.getBalanceFor(),[d,m]=lk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),y=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 io.createElement(le,{header:{title:Jr.t("Swap {type}",{type:k[e]})}},io.createElement(ue,null,io.createElement(hs,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(U.blockchains),onChange:v=>{y(v)}}),io.createElement(bd,{size:24}),io.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)}),io.createElement(bd,{size:16}),io.createElement(xd,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{T(v);let E=S.find(b=>v.blockchain===b.name);E&&y(E),n()}})))}i(As,"SelectSwapItemsPage");import{i18n as Ls}from"@lingui/core";import{Alert as _k,Button as Pk,styled as $k}from"@rango-dev/ui";import ao from"react";import{useInRouterContext as Dk,useSearchParams as Fk}from"react-router-dom";import{i18n as Md}from"@lingui/core";import{Divider as dk,InfoIcon as fk,TextField as gk,Tooltip as hk,Typography as Ld}from"@rango-dev/ui";import ct from"react";import{Chip as ck,styled as mn,TextField as uk}from"@rango-dev/ui";var Id=mn("div",{paddingTop:"$5",padding:"$10 $5"}),Ed=mn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${uk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ad=mn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rr=mn("div",{maxWidth:"280px",padding:"$10"}),Nd=mn(ck,{width:"61px",flexShrink:0});import{i18n as Ns}from"@lingui/core";import{Typography as mk}from"@rango-dev/ui";import dn from"react";function Wd(){return dn.createElement(Rr,null,dn.createElement(mk,{variant:"label",size:"medium",color:"neutral700"},Ns.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,Ns.t("Warning")),":",Ns.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(Wd,"SlippageTooltipContent");function Ws(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ct.createElement(Id,null,ct.createElement(Ad,null,ct.createElement(Ld,{variant:"title",size:"xmedium"},Md.t("Slippage tolerance per swap")),ct.createElement(dk,{direction:"horizontal",size:4}),ct.createElement(hk,{container:B(),side:"top",sideOffset:4,content:ct.createElement(Wd,null)},ct.createElement(fk,{color:"gray"}))),ct.createElement(Ed,null,Ul.map((r,a)=>{let s=`slippage-${a}`;return ct.createElement(Nd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ct.createElement(gk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Hl&&s<=Ql?n(s):n(null)},suffix:o&&ct.createElement(Ld,{variant:"body",size:"small"},"%"),placeholder:Md.t("Custom")})))}i(Ws,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as Bd,BridgesIcon as yk,ChevronRightIcon as Ms,DarkModeIcon as _d,Divider as ei,ExchangeIcon as Sk,InfinityIcon as Ck,InfoIcon as Tk,LanguageIcon as kk,LightModeIcon as Pd,List as wk,ListItem as vk,ListItemButton as xk,Skeleton as bk,styled as Ik,Switch as Ek,Tabs as Ak,Tooltip as Nk,Typography as nt}from"@rango-dev/ui";import F from"react";import{useNavigate as Wk}from"react-router-dom";var Mk=Ik("div",{width:"202px",height:"$40"}),Lk=[{id:"light",icon:F.createElement(Pd,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:F.createElement(_d,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:F.createElement(Bd,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],Bk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Bd,{...e});case"dark":return F.createElement(_d,{...e});default:return F.createElement(Pd,{...e})}},"getThemeIcon");function $d(){let t=Wk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Qt(),s=a.find(V=>V.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),d=Ze("theme",c),m=Ze("liquiditySource",c),f=Ze("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=_n(p,u),y=C.filter(V=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(V.type)),T=y.length,k=y.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(bk,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return F.createElement(nt,{variant:"body",size:"medium"},`${V} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:F.createElement(nt,{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(Ms,{color:"black"})),onClick:()=>t(U.bridges),start:F.createElement(yk,{color:"gray",size:16})},I={id:"exchange-item",title:F.createElement(nt,{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(Ms,{color:"black"})),start:F.createElement(Sk,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:F.createElement(kk,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"body",size:"medium"},s),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Ms,{color:"black"})),onClick:()=>t(U.languages)},L={id:"infinite-approval-item",title:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),F.createElement(ei,{direction:"horizontal",size:4}),F.createElement(Nk,{side:"top",sideOffset:4,container:B(),content:F.createElement(Rr,null,F.createElement(nt,{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(Tk,{color:"gray"}))),start:F.createElement(Ck,{color:"gray",size:16}),end:F.createElement(Ek,{checked:g}),onClick:S},Q={id:"theme-item",type:F.createElement(vk,null),title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:F.createElement(Mk,null,F.createElement(Ak,{container:B(),items:Lk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:Bk(n)},M=m?[]:[w,I];return f||M.push(W),M.push(L),!e?.singleTheme&&!d&&M.push(Q),F.createElement(wk,{type:F.createElement(xk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i($d,"SettingsLists");var Ok=$k("div",{paddingLeft:"$8"});function Dd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Fk(),r=Dk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return ao.createElement(le,{header:{title:Ls.t("Settings")}},ao.createElement(ue,null,o&&ao.createElement(_k,{type:"info",variant:"alarm",title:Ls.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:ao.createElement(Ok,null,ao.createElement(Pk,{type:"secondary",size:"small",onClick:a},Ls.t("Reset")))}),ao.createElement(Ws,null),ao.createElement($d,null)))}i(Dd,"SettingsPage");import{i18n as bw}from"@lingui/core";import{cancelSwap as Iw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Ew}from"@rango-dev/queue-manager-react";import{Alert as Aw}from"@rango-dev/ui";import Ks from"react";import{useParams as Nw}from"react-router-dom";import{i18n as Bt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as sw,getCurrentStep as lw,getRelatedWalletOrNull as pw}from"@rango-dev/queue-manager-rango-preset";import{Button as gf,CopyIcon as cw,Divider as uw,IconButton as mw,LinkIcon as dw,QuoteCost as fw,StepDetails as gw,Typography as so,useCopyToClipboard as hw}from"@rango-dev/ui";import{useWallets as yw}from"@rango-dev/wallets-react";import hf from"bignumber.js";import{PendingSwapNetworkStatus as pi}from"rango-types";import J,{useEffect as yf,useRef as Sw,useState as Sf}from"react";import{useNavigate as Cw}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var Uk=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function Fd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ht.t("Today"):`${Uk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Fd,"timeSince");function Od(t){return t.finishTime?Fd(parseInt(t.finishTime)):Fd(parseInt(t.creationTime))}i(Od,"getSwapDate");import{PendingSwapNetworkStatus as ni}from"rango-types";import ri from"react";import{i18n as ti}from"@lingui/core";import{Button as Ud,Divider as Bs,MessageBox as zk}from"@rango-dev/ui";import Gt from"react";var zd=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Bs,{size:20}),Gt.createElement(zk,{type:"error",title:ti.t("Cancel Swap"),description:ti.t("Are you sure you want to cancel this swap?")}),Gt.createElement(Bs,{size:32}),Gt.createElement(Ud,{variant:"contained",type:"primary",size:"large",onClick:t},ti.t("Yes, Cancel it")),Gt.createElement(Bs,{size:12}),Gt.createElement(Ud,{variant:"outlined",type:"primary",size:"large",onClick:e},ti.t("No, Continue"))),"CancelContent");import{i18n as oi}from"@lingui/core";import{Button as qd,Divider as _s,MessageBox as qk,Typography as Qk}from"@rango-dev/ui";import Mt from"react";var Qd=i(({onDelete:t,onClose:e})=>Mt.createElement(Mt.Fragment,null,Mt.createElement(_s,{size:20}),Mt.createElement(qk,{type:"error",title:oi.t("Delete Transaction"),description:oi.t("Are you sure you want to delete this swap?")}),Mt.createElement(_s,{size:32}),Mt.createElement(qd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Delete it")),Mt.createElement(_s,{size:12}),Mt.createElement(qd,{variant:"outlined",type:"primary",size:"large",onClick:e},Mt.createElement(Qk,{variant:"title",size:"medium",color:"primary"},oi.t("No, Cancel")))),"DeleteContent");import{i18n as Ps}from"@lingui/core";import{PendingSwapNetworkStatus as $s}from"rango-types";var Ds={[$s.WaitingForNetworkChange]:{type:"loading",title:Ps.t("Change Network")},[$s.WaitingForConnectingWallet]:{type:"warning",title:Ps.t("Connect Wallet")},[$s.NetworkChanged]:{type:"success",title:Ps.t("Network Changed")}};import{debug as Vd}from"@rango-dev/logging-core";import{MessageBox as Hk,Wallet as Gk}from"@rango-dev/ui";import{useWallets as Vk}from"@rango-dev/wallets-react";import No,{useState as Xk}from"react";import{styled as Hd}from"@rango-dev/ui";var Gd=Hd("div",{display:"flex",justifyContent:"center"}),yz=Hd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Xd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Vk(),[c,d]=Xk(null),m=n?.walletType,f=m?xi(u(m)):null,g=m?p(m):null;return No.createElement(No.Fragment,null,No.createElement(Hk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&No.createElement(Gd,null,No.createElement(Gk,{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=>Vd(C))}})),No.createElement(to,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Vd(y)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Fs(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(he.SWAP_BOX_ID)||document.body},p&&ri.createElement(Xd,{type:Ds[e].type,title:Ds[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ni.WaitingForNetworkChange}),e==="delete"&&ri.createElement(Qd,{onClose:o,onDelete:n}),e==="cancel"&&ri.createElement(zd,{onClose:o,onCancel:r}))}i(Fs,"SwapDetailsModal");import{i18n as fn}from"@lingui/core";import{Button as Os,Divider as ii,MessageBox as jd,TokenAmount as jk,Typography as Us}from"@rango-dev/ui";import Me from"react";import{useNavigate as Kk}from"react-router-dom";function zs(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=Kk();return Me.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(jd,{type:"success",title:fn.t("Swap Successful")},Me.createElement(jk,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(ii,{size:12}),Me.createElement(Us,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Me.createElement(jd,{type:"error",title:fn.t("Transaction Failed"),description:d}),Me.createElement(ii,{size:32}),n==="success"&&Me.createElement(Os,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Me.createElement(Us,{variant:"title",size:"medium",color:"neutral100"},fn.t("Done"))),Me.createElement(ii,{size:12}),m&&Me.createElement(Me.Fragment,null,Me.createElement(Os,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},fn.t("Diagnosis")),Me.createElement(ii,{size:12})),Me.createElement(Os,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Us,{variant:"title",size:"medium",color:"primary"},fn.t("See Details"))))}i(zs,"SwapDetailsCompleteModal");import aw from"react";import{i18n as ow}from"@lingui/core";import{Alert as uf,IconButton as nw,LinkIcon as rw}from"@rango-dev/ui";import Vt,{Fragment as iw}from"react";import{Alert as Jk,ChevronDownIcon as Rk,IconButton as ew}from"@rango-dev/ui";import Mo,{useState as tw}from"react";import{css as gn,darkTheme as Yk,styled as Lt,Typography as Zk}from"@rango-dev/ui";var Kd=Lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ai=Lt("div",{width:"100%"}),Yd=Lt(Ho,{padding:"$0 $20 $20 $20"}),Rz=Lt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Zd=Lt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),eq=Lt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Wo=gn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Yk} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Jd=gn({padding:"$5 0"}),si=gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Rd=gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),ef=gn({width:"100%",padding:"0 $20 $10"}),tf=Lt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),of=Lt("div",{display:"flex",flexDirection:"column",gap:"$5"}),li=Lt(Zk,{wordBreak:"break-word"});import{styled as qs}from"@rango-dev/ui";var nf=qs("div",{display:"flex",flexDirection:"column",gap:"$10"}),rf=qs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),af=qs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function sf(t){let{message:e}=t,[o,n]=tw(!1);return Mo.createElement(Jk,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Mo.createElement(ew,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Mo.createElement(rf,{rotated:o},Mo.createElement(Rk,{size:12,color:"gray"}))),footer:Mo.createElement(af,{open:o},Mo.createElement(li,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(sf,"FailedAlert");import{i18n as lf}from"@lingui/core";import{Alert as Qs,Button as pf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Hs}from"rango-types";import hn from"react";function cf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?hn.createElement(Qs,{type:"warning",title:n.shortMessage,action:hn.createElement(pf,{size:"xxsmall",type:"warning",onClick:()=>{o(Hs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},lf.t("Change"))}):r===Hs.WaitingForConnectingWallet?hn.createElement(Qs,{type:"warning",title:n.shortMessage,action:hn.createElement(pf,{size:"xxsmall",type:"warning",onClick:()=>{o(Hs.WaitingForConnectingWallet)}},lf.t("Connect"))}):hn.createElement(Qs,{type:"warning",title:n.shortMessage})}i(cf,"WarningAlert");function Gs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=zo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Vt.createElement(nf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Vt.createElement(iw,{key:g},Vt.createElement(uf,{type:S&&(C&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:ow.t("View transaction"),action:d.url&&Vt.createElement(nw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Vt.createElement(rw,{size:12}))}))}),c&&Vt.createElement(uf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(cf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(sf,{message:r}))}i(Gs,"SwapDetailsAlerts");var mf=2e3;var df=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:Do(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:Do(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:aw.createElement(Gs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function ff(t){if(zo(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(ff,"getStepState");function Vs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=yw(),p=h().blockchains(),u=h().swappers(),c=h().tokens(),d=j.use.retry(),m=ne.use.isActiveTab(),f=Cw(),[g,S]=hw(mf),C=Sw(null),[y,T]=Sf(null),[k,v]=Sf(null),E=i(()=>{r(),T(null)},"onCancel"),b=ze.use.getUnreadNotifications(),x=ze.use.setAsRead(),w=b(),I=lw(e),W=I?.networkStatus;yf(()=>{w.find(Ue=>Ue.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),yf(()=>{H?T(pi.WaitingForNetworkChange):W===pi.WaitingForConnectingWallet||W===pi.NetworkChanged?T(W):T(null)},[W]);let L=yp(e),Q=I?sw(e,I):null,M=I?pw(e,I):null,V=Od(e),Y=Sp(e),re=i(Ne=>!!l(Ne)?.mobileWallet,"isMobileWallet"),H=W===pi.WaitingForNetworkChange&&!!Q&&!!M?.walletType&&(re(M.walletType)||a(M.walletType,Q)),A=H?s.bind(null,M.walletType,Q):void 0,te=hp(e,I),q=df({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:T,message:te,blockchains:p,swappers:u}),Z=q.length,[me,ge]=[e.steps[0],e.steps[Z-1]],_=ge.outputAmount||ge.expectedOutputAmountHumanReadable,Oe=e.steps.reduce((Ne,Ue)=>Ne+parseFloat(Ue.feeInUsd||""),0),P=e.steps.find(Ne=>Ne.diagnosisUrl)?.diagnosisUrl,X=N(parseFloat(N(_,6,6))*(ge.toUsdPrice||0),4,4),ie=N(parseFloat(e.inputAmount)*(me.fromUsdPrice||0),4,4),Ee=_?pe(new hf(_).multipliedBy(ge.toUsdPrice||0)):"",Ge=pe(new hf(e.inputAmount).multipliedBy(me.fromUsdPrice||0)),Ae=Je(ie,X),Le=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(of,null,J.createElement(so,{variant:"body",size:"medium",color:"neutral700",align:"center"},Le?"":Bt.t("Transaction was not sent."),L?`${Bt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),Le&&J.createElement(li,{align:"center",variant:"body",size:"medium",color:"neutral700"},J.createElement("b",null,"Reason:")," ",Le));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(ho,null,J.createElement(gf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},J.createElement(so,{size:"medium",variant:"label",color:"error"},Bt.t("Delete"))))},footer:Y&&!k&&J.createElement(gf,{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:Wo()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Bt.t("Request ID")}:`),J.createElement("div",{className:si()},J.createElement(so,{variant:"label",size:"small",color:"neutral700"},o),J.createElement(mw,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(cw,{size:16,color:"gray"})),J.createElement(tf,{target:"_blank",href:`${ol}/swap/${o}`},J.createElement(dw,{size:16})))),J.createElement("div",{className:Wo()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Bt.t(e.finishTime?"Finished at":"Created at")}:`),J.createElement(so,{variant:"label",size:"small",color:"neutral700"},V))),J.createElement("div",{className:Rd()},J.createElement(fw,{fee:N(String(Oe),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:Ee,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(Ae,2,2),warningLevel:wt(Ae??0)})),J.createElement("div",{className:ef()},J.createElement(so,{variant:"title",size:"small"},Bt.t("Swaps steps"))),J.createElement(uw,{size:8}),J.createElement(Yd,{ref:C},q.map((Ne,Ue)=>{let Cn=Ue,Lo=ff(e.steps[Ue]),Ff=Lo==="error"||Lo==="in-progress"||Lo==="warning"||Lo==="completed"&&Ue===q.length-1;return J.createElement(gw,{key:Cn,step:Ne,type:"swap-progress",ref:C,state:Lo,hasSeparator:Ue!==0,tabIndex:Cn,isFocused:Ff,tooltipContainer:B()})}))),J.createElement(Fs,{state:y,onClose:()=>T(null),onCancel:E,onDelete:n,message:te.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),J.createElement(zs,{open:!!k,diagnosisUrl:P,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:X,realUsdValue:Ee,realValue:pe(_),percentageChange:N(Ae,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(Vs,"SwapDetails");import{i18n as ui}from"@lingui/core";import{Divider as kf,NotFound as xw,Skeleton as Sn,Typography as mi}from"@rango-dev/ui";import fe from"react";import{i18n as Tw}from"@lingui/core";import{Divider as kw,Skeleton as ww,Typography as vw}from"@rango-dev/ui";import Se from"react";import{css as ut,styled as Xs}from"@rango-dev/ui";var Cf=Xs("div",{width:"100%",height:"100%",padding:"$10 $20"}),yn=Xs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ci=Xs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),mQ=ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),dQ=ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),fQ=ut({paddingTop:"$15",display:"flex"}),gQ=ut({padding:"$15 $0"}),hQ=ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),yQ=ut({paddingBottom:"$10"}),SQ=ut({display:"flex",justifyContent:"start",alignItems:"center"}),CQ=ut({paddingTop:"$5",display:"flex",alignItems:"center"}),TQ=ut({display:"flex",alignItems:"center"}),kQ=ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Tf=ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function js(){return Se.createElement(Cf,null,Se.createElement(Ro,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(vw,{variant:"title",size:"small"},Tw.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(yn,null,Se.createElement(yt,{separator:!1}),Se.createElement("div",{className:Tf()},Se.createElement(kw,{direction:"horizontal",size:20}),Se.createElement(ww,{height:22,variant:"rectangular"}))),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1})),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1})),Se.createElement(ci,null),Se.createElement(yn,null,Se.createElement(yt,{separator:!1}))))}i(js,"LoadingSwapDetails");function wf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:ui.t("Swap and Bridge"),suffix:fe.createElement(ho,null)}},o&&fe.createElement(Kd,null,fe.createElement(ai,null,fe.createElement("div",{className:Wo()},fe.createElement(mi,{variant:"label",size:"large",color:"neutral700"},`${ui.t("Request ID")}:`),fe.createElement("div",{className:si()},fe.createElement(mi,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})),fe.createElement(kf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}),fe.createElement(kf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:Wo()},fe.createElement(mi,{className:Jd(),variant:"label",size:"large",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})),fe.createElement(mi,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Sn,{width:60,height:10,variant:"rounded"})))),fe.createElement(js,null)),!o&&fe.createElement(Zd,null,fe.createElement(xw,{title:ui.t("Not found"),description:ui.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(wf,"SwapDetailsPlaceholder");function vf(){let{manager:t,state:e}=Ew(),o=!e.loadedFromPersistor,n=ft(t),{requestId:r}=Nw(),a=et(),{fetchStatus:s}=h();if(!r)return Ks.createElement(Aw,{containerStyles:{margin:"20px"},type:"error",title:bw.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&&Iw(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?Ks.createElement(wf,{requestId:r,showSkeleton:l}):Ks.createElement(Vs,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(vf,"SwapDetailsPage");function xf(){return Ap(),Vi(),Ww([{path:U.home,element:He.createElement(Qm,null)},{path:U.routes,element:He.createElement(jm,null)},{path:U.fromSwap,children:[{index:!0,element:He.createElement(As,{type:"source"})},{path:U.blockchains,element:He.createElement(us,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:He.createElement(As,{type:"destination"})},{path:U.blockchains,element:He.createElement(us,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:He.createElement(Dd,null)},{path:U.languages,element:He.createElement(Gm,null)},{path:U.exchanges,element:He.createElement(ls,{sourceType:"Exchanges"})},{path:U.bridges,element:He.createElement(ls,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:He.createElement(wm,null)},{path:U.swapDetails,element:He.createElement(vf,null)}]},{path:U.wallets,element:He.createElement(Pc,null)},{path:U.confirmSwap,element:He.createElement(cm,null)}])}i(xf,"AppRoutes");import{useQueueManager as Fw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Ow}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Uw}from"rango-sdk";import{useContext as zw,useEffect as qw,useState as Mf}from"react";import{globalCss as Mw}from"@rango-dev/ui";var bf=i(()=>Mw({"@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 If(){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(If,"useFetchApiConfig");import{useWallets as Lw}from"@rango-dev/wallets-react";import{useEffect as Bw,useRef as _w}from"react";function Ef(){let{connect:t,state:e}=Lw(),o=_w({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Bw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Ef,"useForceAutoConnect");import{isApprovalTX as Pw,MainEvents as di,RouteEventType as Af,StepEventType as Nf,StepExecutionEventStatus as $w,useEvents as Dw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Wf}from"react";function Ys(){let t=h().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=ze.use.setNotification(),r=Dw();Wf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Nf.TX_EXECUTION&&l.status===$w.TX_SENT&&!Pw(p)||l.type===Nf.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]),Wf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Af.FAILED||l.type===Af.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(di.RouteEvent,a),()=>r.off(di.RouteEvent,a)},[r,e.length])}i(Ys,"useSubscribeToWidgetEvents");function Zs(){Ef(),bf(),Ys();let t=h().blockchains(),{canSwitchNetworkTo:e}=Sr(),[o,n]=Mf(""),[r,a]=Mf(),s=zw($n),l=t.filter(Uw),{fetchApiConfig:p}=If();Fw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),qw(()=>(jt.init(),ze.persist.hasHydrated()||ze.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Ow(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(Zs,"useBootstrap");import{styled as Qw}from"@rango-dev/ui";var Lf=Qw("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(){Zs();let{config:t}=h(),{activeTheme:e}=rr(t?.theme||{}),{activeLanguage:o}=Qt();return Js.createElement(Hw,{language:o},Js.createElement(Lf,{id:"swap-container",className:e()},Js.createElement(xf,null)))}i(fi,"Main");import el,{useEffect as cv,useMemo as uv}from"react";import{useState as Gw}from"react";var Vw=i(()=>{let[t,e]=Gw(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=ml(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Bf=Vw;import{checkWaitingForNetworkChange as Xw,makeQueueDefinition as jw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Kw}from"@rango-dev/queue-manager-react";import{useWallets as Yw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Zw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Jw}from"rango-types";import Rw,{useMemo as ev}from"react";function tv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Yw(),l=ev(()=>jw({API_KEY:t.apiKey||kt("API_KEY"),BASE_URL:kt("BASE_URL")}),[t.apiKey]),p=h().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(Jw),S=i(k=>{let{supportedChains:v}=s(k);return In(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:Zw(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return Rw.createElement(Kw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Xw(k)},isPaused:!T},t.children)}i(tv,"QueueManager");var _f=tv;import{useManager as av}from"@rango-dev/queue-manager-react";import sv,{createContext as lv,useContext as pv}from"react";import{cancelSwap as ov,getCurrentBlockchainOfOrNull as nv,getCurrentStep as rv,getRelatedWalletOrNull as iv}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 ft(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&&ov(o)}getCurrentStepInfo(e){let o=rv(e);return{step:o,wallet:o?iv(e,o):null,network:o?nv(e,o):null}}};var Pf=lv(void 0);function Rs(t){let{manager:e}=av(),o=ne.use.isActiveTab(),n=j.use.retry(),r=new gi(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=Tl(a),p=R.use.getWalletsDetails(),u=h().blockchains(),c=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Qt().resetLanguage,g=ze().getUnreadNotifications(),S={isActiveTab:o,setCurrentTabAsActive:jt.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 sv.createElement(Pf.Provider,{value:S},t.children)}i(Rs,"WidgetInfo");function $f(){let t=pv(Pf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i($f,"useWidget");function hi(t){let{onUpdateState:e,config:o}=t;uv(()=>{Al({API_KEY:o?.apiKey||Tn,BASE_URL:o?.apiUrl||tl})},[o.apiKey,o.apiUrl]);let n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Bf();return cv(()=>{n&&r(n)},[n]),el.createElement(Dn,{config:o,onUpdateState:e},el.createElement(_f,{apiKey:o.apiKey},el.createElement(Rs,null,t.children)))}i(hi,"WidgetProvider");function Df(t){let e=t.config?.externalWallets;return yi.createElement(Rl,null,e?yi.createElement(fi,null):yi.createElement(hi,{config:t.config??Ni},yi.createElement(fi,null)))}i(Df,"Widget");export{CV as EventSeverity,TV as MainEvents,WV as Networks,BV as PendingSwapNetworkStatus,kV as RouteEventType,Si as SUPPORTED_FONTS,wV as StepEventType,vV as StepExecutionBlockedEventStatus,xV as StepExecutionEventStatus,he as UI_ID,AV as WalletEvents,MV as WalletTypes,Df as Widget,hi as WidgetProvider,Dn as WidgetWallets,ea as customizedThemeTokens,EV as readAccountAddress,Sr as useWallets,$f as useWidget,bV as useWidgetEvents};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|