@rango-dev/widget-embedded 0.28.2-next.0 → 0.28.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.
Files changed (41) hide show
  1. package/dist/components/BlockchainList/BlockchainList.helpers.d.ts +2 -1
  2. package/dist/components/BlockchainList/BlockchainList.helpers.d.ts.map +1 -1
  3. package/dist/constants/fonts.d.ts +0 -5
  4. package/dist/constants/fonts.d.ts.map +1 -1
  5. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -1
  6. package/dist/globalStyles.d.ts.map +1 -1
  7. package/dist/hooks/useTheme.d.ts.map +1 -1
  8. package/dist/index.d.ts +1 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/index.js.map +4 -4
  12. package/dist/pages/WalletsPage.d.ts.map +1 -1
  13. package/dist/types/config.d.ts +1 -5
  14. package/dist/types/config.d.ts.map +1 -1
  15. package/dist/utils/common.d.ts +0 -3
  16. package/dist/utils/common.d.ts.map +1 -1
  17. package/dist/utils/configs.d.ts +1 -0
  18. package/dist/utils/configs.d.ts.map +1 -1
  19. package/dist/utils/wallets.d.ts +0 -2
  20. package/dist/utils/wallets.d.ts.map +1 -1
  21. package/package.json +7 -8
  22. package/src/components/BlockchainList/BlockchainList.helpers.ts +25 -6
  23. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +4 -4
  24. package/src/components/HeaderButtons/HeaderButtons.styles.ts +1 -1
  25. package/src/components/Quote/Quote.styles.ts +1 -1
  26. package/src/components/Slippage/Slippage.tsx +1 -1
  27. package/src/constants/fonts.ts +0 -84
  28. package/src/containers/WidgetProvider/WidgetProvider.tsx +2 -20
  29. package/src/globalStyles.ts +3 -1
  30. package/src/hooks/useBootstrap/useBootstrap.ts +1 -1
  31. package/src/hooks/useTheme.ts +1 -1
  32. package/src/index.ts +0 -2
  33. package/src/pages/SelectBlockchainPage.tsx +3 -3
  34. package/src/pages/WalletsPage.tsx +2 -34
  35. package/src/types/config.ts +1 -6
  36. package/src/utils/common.ts +0 -29
  37. package/src/utils/configs.ts +1 -0
  38. package/src/utils/wallets.ts +2 -53
  39. package/dist/hooks/useFontLoader.d.ts +0 -5
  40. package/dist/hooks/useFontLoader.d.ts.map +0 -1
  41. package/src/hooks/useFontLoader.ts +0 -40
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Uf=Object.defineProperty;var i=(t,e)=>Uf(t,"name",{value:e,configurable:!0});import{EventSeverity as TV,MainEvents as kV,RouteEventType as wV,StepEventType as vV,StepExecutionBlockedEventStatus as xV,StepExecutionEventStatus as bV,useEvents as IV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as AV,useWallets as Sr,Events as NV}from"@rango-dev/wallets-react";import{Networks as MV,WalletTypes as LV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as _V}from"rango-types";import{UI_ID as zf}from"@rango-dev/ui";var Tn="c6381a79-2817-4602-83bf-6a641a409e32",ol="https://api.rango.exchange",nl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...zf};var rl="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 Bg}from"@rango-dev/wallets-react";import{isEvmBlockchain as _g}from"rango-sdk";import Pn,{createContext as Pg,useEffect as Jl,useMemo as $g,useRef as Rl}from"react";import{useEffect as ag}from"react";import{create as ng}from"zustand";import{subscribeWithSelector as rg}from"zustand/middleware";import{RangoClient as tg}from"rango-sdk";import{BlockchainCategories as Xf,WalletState as dt}from"@rango-dev/ui";import{readAccountAddress as jf}from"@rango-dev/wallets-react";import{detectInstallLink as Kf,getCosmosExperimentalChainInfo as Yf,isEvmAddress as Zf,KEPLR_COMPATIBLE_WALLETS as $v,Networks as hl}from"@rango-dev/wallets-shared";import vi from"bignumber.js";import{isCosmosBlockchain as Jf}from"rango-types";import qf from"bignumber.js";var Be=new qf(0);import{WalletTypes as Qf}from"@rango-dev/wallets-shared";var il=[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 ul(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ul,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function ll(t,e){return t.toLowerCase()===e.toLowerCase()}i(ll,"exactText");function pl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(pl,"startWithText");var B=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function cl(t,e,o){let n=!!e&&ll(e,t),r=!!o&&ll(o,t);return n!==r?n?-1:1:0}i(cl,"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&&pl(e,t),r=!!o&&pl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareStartWithText");function ml(t,e,o){if(!o)return 0;let n=cl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=cl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=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(ml,"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"),dl=i(t=>Si.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as gl}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 gl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gl(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 yl(t,e,o,n){return o.filter(r=>!il.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:Kf(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(yl,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function Sl(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}=jf(p),d=l.length>0,m=l.includes(c),f=c===hl.Unknown;if(d&&!m&&!f)return;let S=c===hl.Unknown&&Zf(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(Sl,"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 Cl(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:eg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Cl,"makeBalanceFor");function Tl(t){return{...t,loading:!1,error:!0}}i(Tl,"resetConnectedWalletState");var kl=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 Rf(r)},"calculateWalletUsdValue");function Rf(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Rf,"numberWithThousandSeparator");var eg=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=Yf(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 wl(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(wl,"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 vl(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(vl,"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 xl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(xl,"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 bl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Il(t){return t.map(e=>e.state).join("-")}i(Il,"hashWalletsState");function El(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(El,"filterBlockchainsByWalletTypes");function Al(t,e){return e===Xf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Al,"filterWalletsByCategory");var Ii={API_KEY:Tn};function kt(t){return Ii[t]||""}i(kt,"getConfig");function Nl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ii=e,Ii}i(Nl,"initConfig");var Wl=20,Ml=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"),Ll=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Ln,_t=i(()=>Ln||(Ln=new tg(kt("API_KEY"),kt("BASE_URL")),Ln),"httpService");var og=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=og;var R=Pt(ng()(rg((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:Cl(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))?Tl(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 ig}from"@rango-dev/provider-all";function Bn(t,e){let o=ig({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 Bl(t,e){return Bn(t,e).map(r=>r.config.type)}i(Bl,"configWalletsToWalletName");function _l(t,e){let o=R.use.clearConnectedWallet(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId});return ag(()=>{o(),n=Bn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(_l,"useWalletProviders");import Ig,{createContext as Eg,useContext as Ag,useEffect as Ng,useRef as Wg}from"react";import{create as xg}from"zustand";import{persist as bg}from"zustand/middleware";var Ni={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},sg={clientUrl:void 0},lg={liquiditySources:void 0},Pl=i((t,e,o)=>({config:{...Ni,...t},iframe:sg,campaignMode:lg,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 $l(t,e){return e.find(o=>o.name===t)?.displayName}i($l,"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 Dl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Dl,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Fl(t,e){return e?.[t]==="enabled"}i(Fl,"isFeatureEnabled");var Ol=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=wl(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=ml(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(Dl)},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 pg,English as cg,Finland as ug,French as mg,German as dg,Greece as fg,Italian as gg,Japanese as hg,Netherlands as yg,Poland as Sg,Portuguese as Cg,Russian as Tg,Spanish as kg,Swedish as wg,Ukrainian as vg}from"@rango-dev/ui";var Ul=[{title:"English",label:"English",local:"en",SVGFlag:cg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:kg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:mg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:hg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Cg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:pg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Tg},{title:"German",label:"Deutsch",local:"de",SVGFlag:dg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:vg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:wg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:ug},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:yg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:fg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:gg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Sg}],Fo="en";var zl=[.5,1,3],ql=1,Ql=5,Hl=100,Gl=0;var Vl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ql,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 Xl(t){return xg()(bg((...e)=>({...Ol(...e),...Vl(...e),...Pl(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(Xl,"createAppStore");var jl=Eg(null);function h(){let t=Ag(jl);if(Ng(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Kl(t){let e=Wg();return e.current||(e.current=Xl(t.config)),Ig.createElement(jl.Provider,{value:e.current},t.children)}i(Kl,"AppStoreProvider");import{create as Lg}from"zustand";var Yl="rango-widget";var Oo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Yl),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(Lg()((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=Pg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Dg(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}=_l(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=Rl(),m=Rl();Jl(()=>{n().catch(console.log)},[]),Jl(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(_g).map(y=>y.name),g=i((y,T,k,v,E)=>{if(T===_i.ACCOUNTS)if(k){let b=In(E.supportedBlockchains),x=Sl(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=$g(()=>({onConnectWallet:y=>{d.current=y},onDisconnectWallet:y=>{m.current=y}}),[]);return Pn.createElement($n.Provider,{value:C},Pn.createElement(Bg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Dg,"Main");function Dn(t){let{config:e,...o}=t;return Pn.createElement(Kl,{config:e},Pn.createElement(Dg,{...o,config:e}))}i(Dn,"WidgetWallets");import yi from"react";import Fg,{Fragment as Og}from"react";import{MemoryRouter as Ug,useInRouterContext as zg}from"react-router";function ep({children:t}){let o=zg()?Og:Ug;return Fg.createElement(o,null,t)}i(ep,"AppRouter");import{I18nManager as Gw}from"@rango-dev/ui";import Js from"react";import He from"react";import{useRoutes as Mw}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 Gg}from"zustand";import{subscribeWithSelector as Vg}from"zustand/middleware";import{getLastSuccessfulStep as Hg}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"],tp=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 op(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(op,"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 np(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(np,"hasHighValueLoss");function rp(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(rp,"hasLimitError");function ip(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(ip,"getLimitErrorMessage");function ap(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(ap,"getSwapButtonState");function Di(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Di,"canComputePriceImpact");var qg=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=qg(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 sp(t){return t.reduce((e,o)=>e.plus(Oi(o)),Be)}i(sp,"getTotalFeesInUsd");function lp(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(lp,"getFeesGroup");function pp(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(pp,"checkSlippageErrors");function cp(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(cp,"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 up(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(up,"hasProperSlippage");function mp(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(mp,"createQuoteRequestBody");function dp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(dp,"getWalletsForNewSwap");function po(t){return t?.outputAmount||null}i(po,"getQuoteOutputAmount");function fp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(fp,"getPercentageChange");function gp(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(gp,"isOutputAmountChangedALot");function hp(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=>wp(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(hp,"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 yp(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(yp,"getSwapMessages");function Sp(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(Sp,"getLastConvertedTokenInFailedSwap");function Cp(t){return t.status==="failed"}i(Cp,"shouldRetrySwap");function Tp(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(Tp,"isConfirmSwapDisabled");function kp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(kp,"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 xp(t,e){return Ui(t,e)||zi(t,e)||qi(t,e)}i(xp,"isQuoteChanged");function wp(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(wp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function bp(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Hg(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(bp,"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&&np(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(up(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:cp(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:fp(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var Ip=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"),Ep=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"),Ap=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(Gg()(Vg(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}=bp(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 Np(){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(Np,"useSyncStoresWithConfig");import{useEffect as Gi,useRef as Xg}from"react";import{useInRouterContext as jg,useLocation as Kg,useSearchParams as Yg}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=Kg(),[e,o]=Yg(),{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=jg(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=Xg(),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 uC}from"@rango-dev/queue-manager-react";import{Alert as pm,Button as mC,css as Va,Divider as Ga,IconButton as cm,styled as dC,Typography as fC,WalletIcon as gC}from"@rango-dev/ui";import ke,{useEffect as Ur,useLayoutEffect as hC,useRef as yC,useState as on}from"react";import{useNavigate as SC}from"react-router-dom";import{i18n as ht}from"@lingui/core";import{Alert as va,BalanceErrors as Ry,Button as Qc,ChevronDownIcon as eS,ChevronLeftIcon as tS,Divider as ko,MessageBox as oS,Typography as Cr,WalletIcon as nS}from"@rango-dev/ui";import O,{useEffect as rS,useState as wo}from"react";import{useNavigate as iS}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 Rg from"react";function oe(t){let{watermark:e}=ne();return Rg.createElement(Jg,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Rn,{useRef as oh}from"react";import*as mo from"@radix-ui/react-collapsible";import{keyframes as Mp,styled as Yn}from"@rango-dev/ui";var Xi=300,eh=Mp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),th=Mp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Lp=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:`${eh} ${Xi}ms ease-out`},false:{animation:`${th} ${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=oh(null);return Rn.createElement(Lp,{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 Bp,darkTheme as fo,IconButton as nh,styled as Re,TextField as rh}from"@rango-dev/ui";var _p=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Pp=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ih=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"}}}}),$p=Re(ih,{alignSelf:"stretch",minHeight:"93px"}),Dp=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Fp=Re(nh,{position:"absolute",left:"$20"}),Op=Re("div",{paddingTop:"$20"}),Up=Bp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),zp=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),qp=Bp({paddingTop:"$5"}),Qp=Re("div",{display:"flex"}),Hp=Re(rh,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Gp=Re("div",{overflow:"visible",width:"100%"}),Vp=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 Ky,Divider as ka,Image as Yy,MessageBox as yr,SelectableWallet as Zy,Typography as Uc,WalletState as zc}from"@rango-dev/ui";import ce,{useEffect as qc,useState as To}from"react";import{WalletState as tr}from"@rango-dev/ui";import{useWallets as ah}from"@rango-dev/wallets-react";import{detectMobileScreens as sh,KEPLR_COMPATIBLE_WALLETS as lh,WalletTypes as qo}from"@rango-dev/wallets-shared";import{useCallback as ph,useEffect as ch,useState as uh}from"react";var mh=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}=ah(),{connectedWallets:u}=R(),c=h().blockchains(),d=Bl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||mh,m=yl(a,l,d,e);m=sh()?m.filter(b=>b.showOnMobile||a(b.type).installed):m;let f=vl(m),[g,S]=uh(""),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=ph(()=>{let b=m?.filter(x=>x.state===tr.CONNECTING)||[];for(let x of b)s(x.type)},[Il(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");ch(()=>()=>{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)&&!lh.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 Bc}from"@lingui/core";import{Divider as Uy,getCategoriesCount as zy,SelectableCategoryList as qy,styled as Pc,Typography as Qy,Wallet as Hy,WalletState as _c}from"@rango-dev/ui";import it,{useState as gr}from"react";import{useManager as Sy}from"@rango-dev/queue-manager-react";import{BottomLogo as Cy,Divider as Ic,Header as Ty}from"@rango-dev/ui";import ye,{useEffect as ga,useRef as Ec,useState as ky}from"react";import{useRef as dh}from"react";function or(){return window.self!==window.top}i(or,"isAppLoadedIntoIframe");function Ki(){let t=dh(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 fh}from"react-router-dom";function et(){let t=fh();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as ta,darkTheme as Th,lightTheme as kh}from"@rango-dev/ui";import{useEffect as wh,useState as vh}from"react";import{theme as Sh,darkColors as Ch}from"@rango-dev/ui";import Ri from"react";function gh(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(gh,"generateShades");function nr(t,e){let[o,n,r]=Xp(t);return`#${Yi(o+e)}${Yi(n+e)}${Yi(r+e)}`}i(nr,"generateShade");function Xp(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(Xp,"convertToRGB");function Yi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Yi,"clamp");function jp(t){let[s,l,p]=Xp(t);return(s*299+l*587+p*114)/1e3>188}i(jp,"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,...gh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Kp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),hh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Kp(o%52)+e;return Kp(o%52)+e},"toAlphabeticName"),yh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ji=i(t=>hh(yh(5381,JSON.stringify(t))>>>0),"toHash");function ea(t){let e=Sh.colors,o=Zi({...e,...Ch},!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 Yp(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(Yp,"joinList");function rr(t){let{colors:e,fontFamily:o=rl,borderRadius:n=Wl,secondaryBorderRadius:r=Ml}=t,[a,s]=vh("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,kh.className],m=[c.className,Th.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 wh(()=>{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 Zp}from"@lingui/core";import{Alert as xh,Button as bh}from"@rango-dev/ui";import Jp from"react";function oa(t){return Jp.createElement(xh,{action:Jp.createElement(bh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Zp.t("Activate this tab")),type:"warning",variant:"alarm",title:Zp.t("Another tab is open and handles transactions.")})}i(oa,"ActivateTabAlert");import{i18n as na}from"@lingui/core";import{Button as Ih,Divider as Eh,MessageBox as Ah}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(Ah,{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(Eh,{size:20}),ir.createElement(Ih,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},na.t("Confirm"))))}i(ra,"ActivateTabModal");import{ChevronLeftIcon as Mh}from"@rango-dev/ui";import ic from"react";import{css as Nh,darkTheme as Rp,IconButton as Wh,styled as Zt}from"@rango-dev/ui";var gt=Zt(Wh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Rp} &`]:{backgroundColor:"$neutral"}}}),ec=Zt("div",{position:"absolute",background:"$secondary500",[`.${Rp} &`]:{$$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}}),tc=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"}}}}),oc=Zt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),nc=Zt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),rc=Nh({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 ic.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},ic.createElement(Mh,{color:"black",size:16}))}i(ia,"BackButton");import{i18n as Lh}from"@lingui/core";import{Button as Bh,Typography as _h}from"@rango-dev/ui";import aa from"react";function sa(t){return aa.createElement(ho,null,aa.createElement(Bh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},aa.createElement(_h,{variant:"label",size:"medium",color:"error500"},Lh.t("Cancel"))))}i(sa,"CancelButton");import{i18n as Ph}from"@lingui/core";import{Image as $h,Tooltip as Dh,WalletIcon as Fh}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:rc()},o.map(r=>Jt.createElement(ar,{key:r.title},Jt.createElement($h,{src:r.image,size:14})))):Ph.t("Connect Wallet");return Jt.createElement(Dh,{container:t.container,side:"bottom",content:n},Jt.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Jt.createElement(ec,null),Jt.createElement(Fh,{size:18,color:"black"})))}i(la,"WalletButton");import{i18n as pr}from"@lingui/core";import{NotificationsIcon as py,Popover as cy,SettingsIcon as uy,Tooltip as cr,TransactionIcon as my}from"@rango-dev/ui";import xe from"react";import{i18n as jh}from"@lingui/core";import{EventSeverity as mc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as dc,ChevronRightIcon as Kh,Divider as Yh,Typography as Zh}from"@rango-dev/ui";import qe from"react";import{useNavigate as Jh}from"react-router-dom";import{create as Oh}from"zustand";import{persist as Uh,subscribeWithSelector as zh}from"zustand/middleware";var ze=Pt(Oh()(Uh(zh((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 qh,ListItemButton as Qh,styled as Qo}from"@rango-dev/ui";var ac=Qo("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),sc=Qo("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),lc=Qo(Qh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${qh} &`]:{backgroundColor:"$error600"}}}}}),pc=Qo("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),cc=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Hh}from"@lingui/core";import{Divider as Gh,NoNotificationIcon as Vh,Typography as Xh}from"@rango-dev/ui";import sr from"react";function uc(){return sr.createElement(cc,null,sr.createElement(Vh,{color:"secondary",size:26}),sr.createElement(Gh,{size:12}),sr.createElement(Xh,{variant:"body",size:"medium",color:"neutral700"},Hh.t("There are no notifications.")))}i(uc,"NotificationNotFound");var Rh=4;function pa(){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,Rh),s=i(l=>{t(`${U.swaps}/${l}`)},"handleOnClick");return qe.createElement(ac,null,a.length?qe.createElement(sc,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(Yh,{size:4}),qe.createElement(lc,{onClick:()=>s(c),actionRequired:d.messageSeverity===mc.WARNING,title:qe.createElement(Zh,{variant:"body",size:"small",color:d.messageSeverity===mc.WARNING?"$foreground":"$neutral700"},jh.t(d.message)),id:c,start:qe.createElement(pc,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(dc,{tokenImage:m?m.image:"",chainImage:f?f.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(dc,{tokenImage:g?g.image:"",chainImage:S?S.logo:"",size:"small"}))),end:qe.createElement(Kh,{size:12,color:"gray"})}))})):qe.createElement(uc,null))}i(pa,"NotificationContent");import{useManager as ey}from"@rango-dev/queue-manager-react";import{InProgressIcon as ty}from"@rango-dev/ui";import fc from"react";var oy=i(()=>{let{manager:t}=ey();return ft(t).map(({swap:o})=>o).find(o=>o.status==="running")?fc.createElement(nc,null,fc.createElement(ty,{color:"info",size:6})):null},"InProgressTransactionBadge"),gc=oy;import{RefreshProgressButton as ny}from"@rango-dev/ui";import ca,{useEffect as ry,useState as hc}from"react";var iy=1e3,yc=60,ay=100;function lr({onClick:t}){let[e,o]=hc(0),[n,r]=hc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ry(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===yc&&l()},iy):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(oc,{onTransitionEnd:()=>r(!1),isRefetched:n},ca.createElement(ny,{size:22,color:t?"black":"gray",progress:e/yc*ay})))}i(lr,"RefreshButton");import{EventSeverity as sy}from"@rango-dev/queue-manager-rango-preset";import{Typography as ly}from"@rango-dev/ui";import Sc from"react";function Cc(){let{getUnreadNotifications:t}=ze(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===sy.WARNING);return o?Sc.createElement(tc,{isSever:n},Sc.createElement(ly,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Cc,"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(cy,{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(py,{size:18,color:"black"}),xe.createElement(Cc,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(uy,{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(my,{size:18,color:"black"}),xe.createElement(gc,null))))}i(Rt,"HeaderButtons");import{i18n as ua}from"@lingui/core";import{Divider as kc,MessageBox as gy,RefreshIcon as hy}from"@rango-dev/ui";import yo from"react";import{Button as dy,styled as fy}from"@rango-dev/ui";var Tc=fy(dy,{"& 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(gy,{title:ua.t("Something went wrong"),type:"error",description:ua.t("Something went wrong. Please refresh the app.")},yo.createElement(kc,{size:30}),yo.createElement(Tc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},yo.createElement(hy,{size:20,color:"primary"}),yo.createElement(kc,{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 yy,styled as fa}from"@rango-dev/ui";var wc="700px",ur=yy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),vc=fa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:wc},fixed:{height:wc}}}}),xc=fa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),bc=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]=ky(!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}=Sy(),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=Ec(null),V=Ec(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(vc,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${ur()}`,ref:V},ye.createElement(Ty,{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(xc,{ref:M},n),ye.createElement(ra,{open:k,onClose:()=>v(!1),onConfirm:W}),ye.createElement(bc,null,ye.createElement("div",{className:"footer__content"},T&&!y&&ye.createElement("div",{className:"footer__alert"},ye.createElement(oa,{onActivateTab:W}),ye.createElement(Ic,{size:10})),a),ye.createElement(Ic,{size:12}),ye.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ye.createElement(Cy,null))),ye.createElement(ma,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as wy}from"@rango-dev/ui";var Ac="$20 $20 $10 $20",Ho=wy("div",{padding:Ac,overflowY:"auto",flexGrow:1});import{styled as vy}from"@rango-dev/ui";var ue=vy("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 Ay}from"@rango-dev/ui";import ya from"react";import{i18n as So}from"@lingui/core";import{Image as Iy,MessageBox as ha,WalletState as Ey}from"@rango-dev/ui";import eo from"react";import{keyframes as xy,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"}),by=xy({"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:`${by} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Nc=mr("div",{"& img":{borderRadius:"50%"}});function Wc(t){let{state:e,image:o,error:n}=t;return e===Ey.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(Nc,null,eo.createElement(Iy,{src:o,size:45})),eo.createElement(fr,null))})}i(Wc,"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(Wc,{...n}),ya.createElement(Ay,{direction:"vertical",size:32}))}i(Go,"WalletModal");import{i18n as Sa}from"@lingui/core";import{Button as Wy,Checkbox as My,Image as Lc,ListItemButton as Ly,MessageBox as By,Radio as _y,RadioRoot as Py}from"@rango-dev/ui";import{Namespace as Co}from"@rango-dev/wallets-shared";import Ie,{useMemo as $y,useState as Dy}from"react";import{styled as Ny}from"@rango-dev/ui";var Mc=Ny("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Fy={[Co.Evm]:"ETH",[Co.Solana]:"SOLANA",[Co.Cosmos]:"COSMOS",[Co.Utxo]:"BTC",[Co.Starknet]:"STARKNET",[Co.Tron]:"TRON"},Oy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function to(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Dy([]),a=h().blockchains(),s=$y(()=>o?.map(u=>({name:u,logo:Oy(a,Fy[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(Py,{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(By,{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(Lc,{src:t.image,size:45})),Ie.createElement(fr,null))}),Ie.createElement(Mc,null,p(Ie.createElement(Ie.Fragment,null,s?.map(u=>Ie.createElement(Ly,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ie.createElement(Lc,{src:u.logo,size:22}),end:e?Ie.createElement(_y,{value:u.name}):Ie.createElement(My,{checked:n.includes(u.name)})}))))),Ie.createElement(Wy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Sa.t("Confirm")))}i(to,"WalletNamespacesModal");var Gy=Pc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Vy=Pc(ue,{textAlign:"center"}),hr=3e3,Ca=300;function $c(){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||_c.NOT_INSTALLED,v=El(m,n),b=zy(v)!==1,x=Al(m,e);return it.createElement(le,{header:{title:Bc.t("Connect Wallets")}},it.createElement(Vy,null,b&&it.createElement(it.Fragment,null,it.createElement(qy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),it.createElement(Uy,{size:24})),it.createElement(Qy,{variant:"title",size:"xmedium",align:"center"},Bc.t("Choose a wallet to connect.")),it.createElement(Gy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return it.createElement(Hy,{key:W,...w,container:B(),onClick:L=>{w.namespaces&&w.state===_c.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($c,"WalletsPage");import{keyframes as Xy,styled as Ta}from"@rango-dev/ui";var Dc=Ta("div",{position:"relative"}),jy=Xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Fc=Ta("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${jy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Oc=Ta("div",{"& img":{borderRadius:"50%"}});var Jy=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");qc(()=>{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);qc(()=>{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=xl({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===zc.CONNECTED,_=ge?at.t({id:"Add {chain} chain",values:{chain:e}}):q,Oe=i(async()=>{A.state===zc.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?$l(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(Ky,{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(Dc,null,ce.createElement(Oc,null,ce.createElement(Yy,{src:A.image,size:45})),ce.createElement(Fc,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(Zy,{key:A.type,description:_,onClick:Oe,selected:o(A.type,e),disabled:!s,...A}))}),M&&ce.createElement($p,{selected:!1,onClick:a},ce.createElement(Uc,{variant:"label",size:"medium"},at.t("Show more wallets"),ce.createElement(Uc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(wa,"WalletList");var aS=2;function Hc(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(op(P.error)),!P.error&&!X?.balance?.messages.length?me():k(X?.balance?.messages??[])},"onConfirmWallets");rS(()=>{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=iS();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:Tp(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(Dp,null,O.createElement(Fp,{variant:"ghost",onClick:y.bind(null,"")},O.createElement(tS,{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(oS,{title:ht.t("Insufficient account balance"),type:"error",description:O.createElement(Ry,{messages:T??[]})},O.createElement(Qc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},ht.t("Proceed anyway")))),C&&O.createElement(Op,null,O.createElement("div",{className:Up()},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(Gp,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(_p,null,O.createElement(Cr,{variant:"title",size:"xmedium"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:ie?.shortName}})),O.createElement(Cr,{variant:"label",color:"$neutral700",size:"medium"},ht.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:ie?.shortName}}))),O.createElement(ko,{size:24}),O.createElement(Pp,null,O.createElement(wa,{chain:P,isSelected:A,selectWallet:Z,limit:aS,onShowMore:()=>y(ie?.name??"")})),!Ge&&O.createElement(ko,{size:32}),Ge&&s?.customDestination&&O.createElement(zp,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(Vp,null,O.createElement("div",{className:"button__content"},O.createElement(nS,{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(eS,{size:10,color:"gray"}))),onClickTrigger:()=>I(Ae=>!Ae)},O.createElement(ko,{size:4}),O.createElement(Hp,{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:qp()},O.createElement(va,{variant:"alarm",type:"error",title:ht.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Hc,"ConfirmWalletsModal");import{i18n as bS}from"@lingui/core";import{Alert as IS,Button as ES,InfoIcon as AS}from"@rango-dev/ui";import Xe from"react";import{Alert as pS,Button as cS,Divider as Ia,NoRouteIcon as uS,RefreshIcon as mS,Typography as Zc}from"@rango-dev/ui";import Ve from"react";import{i18n as Gc}from"@lingui/core";var sS=24,lS=60;function Vc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Gc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Gc.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(Vc,"makeInfo");var xa=(o=>(o[o.small=sS]="small",o[o.large=lS]="large",o))(xa||{}),ba=(o=>(o.small="small",o.large="medium",o))(ba||{});import{styled as Tr}from"@rango-dev/ui";var Xc=Tr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),jc=Tr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Kc=Tr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Yc=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=Vc(o,r,()=>a(s,!0),e);return Ve.createElement(Xc,null,Ve.createElement(uS,{size:xa[n],color:"gray"}),Ve.createElement(Ia,{size:4}),Ve.createElement(Zc,{variant:"title",size:ba[n]},ee().noResultError.title),n==="large"&&Ve.createElement(Ia,{size:4}),!!l.description&&Ve.createElement(jc,{size:n},Ve.createElement(Zc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(Ia,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(Kc,{size:n},Ve.createElement(pS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(cS,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(Yc,null,Ve.createElement(mS,{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 fS,Divider as gS,MessageBox as hS,Typography as yS,WarningIcon as SS}from"@rango-dev/ui";import xt from"react";import{Typography as tu}from"@rango-dev/ui";import Aa from"react";import{darkTheme as dS,styled as kr}from"@rango-dev/ui";var Jc=kr("div",{width:"100%"}),Ea=kr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Rc=kr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${dS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),eu=kr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function ou(t){let{title:e,value:o,valueColor:n}=t;return Aa.createElement(Rc,null,Aa.createElement(tu,{size:"medium",variant:"label",className:"_title"},e),Aa.createElement(tu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ou,"QuoteErrorsModalItem");function nu(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(fS,{type:"primary",size:"large",prefix:xt.createElement(SS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},xt.createElement(hS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),xt.createElement(Ea,null,xt.createElement(gS,{size:"4"}),xt.createElement(yS,{size:"small",variant:"title"},Xo.t("Details")),xt.createElement(Ea,null,l.map((p,u)=>xt.createElement(ou,{key:u,...p})))))}i(nu,"HighValueLossWarningModal");import{i18n as Na}from"@lingui/core";function ru(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(ru,"makeAlerts");import{i18n as vo}from"@lingui/core";import{Button as iu,Divider as au,MessageBox as CS,Typography as TS}from"@rango-dev/ui";import oo from"react";import{useNavigate as kS}from"react-router-dom";function su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=kS(),u=e??o;return oo.createElement(oe,{anchor:"bottom",open:n,prefix:oo.createElement(iu,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},oo.createElement(TS,{variant:"label",size:"medium",color:"$neutral900"},vo.t("Change settings"))),container:B(),onClose:r},oo.createElement(CS,{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(au,{size:18}),oo.createElement(au,{size:32}),oo.createElement(iu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},vo.t("Confirm anyway"))))}i(su,"SlippageWarningModal");import{Button as wS,MessageBox as vS,WarningIcon as xS}from"@rango-dev/ui";import wr from"react";function lu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(oe,{footer:wr.createElement(wS,{type:"primary",size:"large",prefix:wr.createElement(xS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(vS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(lu,"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=ru(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(Jc,null,Xe.createElement(IS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Xe.createElement(eu,{onClick:l},Xe.createElement(AS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Xe.createElement(ES,{size:"xxsmall",type:f.alertType,onClick:c},bS.t("Change"))}})),e&&Xe.createElement(Xe.Fragment,null,e.type===0&&Xe.createElement(nu,{...d,warning:e}),(e.type===3||e.type===2)&&Xe.createElement(su,{...d,warning:e}),e.type===1&&Xe.createElement(lu,{...d,warning:e})))}i(jo,"QuoteWarningsAndErrors");import iC from"bignumber.js";import $r from"react";import{i18n as no}from"@lingui/core";import{Alert as VS,Divider as bo,FullExpandedQuote as XS,InfoIcon as jS,QuoteTag as KS,StepDetails as YS,TokenAmount as ZS,Tooltip as zu,Typography as Io}from"@rango-dev/ui";import Da from"bignumber.js";import $,{useRef as JS,useState as RS}from"react";import{styled as Wa}from"@rango-dev/ui";var Ma=Wa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),pu=Wa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),cu=Wa("div",{width:"100%",display:"flex"});import*as vr from"@radix-ui/react-collapsible";import{Button as NS,css as Ko,darkTheme as Ce,Image as uu,styled as $e,Typography as WS}from"@rango-dev/ui";var MS=300,mu=$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"}}]}),du=Ko({padding:"$10 $15"}),fu=$e(NS,{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"}}}),gu=$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"}}}}]}),hu=Ko({width:"100%",padding:"$15 $15 $10 $15"}),yu=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"}}),Su=Ko({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ce} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cu=$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:{[`& ${uu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${uu}`]:{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"}}}),Tu=$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"}}}}),ku=$e(Zn,{width:"100%",background:"inherit"}),La=$e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${MS}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"}),wu=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ce} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),vu=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ba=$e(WS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),xu=$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"}}}}),bu=$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 BS,CloseIcon as _S,Divider as Er,IconButton as PS,QuoteCost as $S,Tooltip as DS,Typography as st}from"@rango-dev/ui";import K,{useState as Nu}from"react";import{css as LS,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"}),Iu=br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Eu=br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Au=LS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var FS=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 Wu(t){let[e,o]=Nu(!1),[n,r]=Nu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=B(),f=lp(d);return K.createElement(K.Fragment,null,K.createElement($S,{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(Eu,null,K.createElement(st,{variant:"title",size:"medium"},zt.t("Gas & Fee Explanation")),K.createElement(PS,{onClick:()=>o(!1),variant:"ghost"},K.createElement(_S,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(Iu,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(DS,{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:Au()},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(BS,{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=sp(S),T=Pi[g],k=`non-payable-fee-${C}`;return K.createElement(FS,{key:k,fee:y,label:T})}),K.createElement(Pa,null)))))}i(Wu,"QuoteCostDetails");import{i18n as Bu}from"@lingui/core";import{TokenAmount as _u}from"@rango-dev/ui";import Ar from"react";import{css as OS,styled as US}from"@rango-dev/ui";var Mu=US("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Lu=OS({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(Mu,null,Ar.createElement(_u,{direction:"horizontal",label:Bu.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:Lu()}),Ar.createElement(_u,{direction:"horizontal",tooltipContainer:B(),label:Bu.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 Ou}from"@lingui/core";import{ChevronDownIcon as QS,ChevronRightIcon as HS,Divider as $a,Image as GS,Tooltip as Br,Typography as Wr}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as zS,useState as Zo}from"react";var Pu=480,$u=768,Du=1024,Fu=1200,qS=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<=Pu),n(window.innerWidth>Pu&&window.innerWidth<=$u),a(window.innerWidth>$u&&window.innerWidth<=Du),l(window.innerWidth>Du&&window.innerWidth<=Fu),u(window.innerWidth>Fu)},"handleResize");return zS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Nr=qS;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(Tu,{className:n,state:a},D.createElement(GS,{src:o,size:16})))},"ImageComponent");function Uu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Ip(r),{isTablet:d,isMobile:m}=Nr();return D.createElement(Cu,{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"},Ou.t("Via:")),D.createElement($a,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=D.createElement(La,null,D.createElement(HS,{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"},Ou.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(Uu,"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]=RS(t.expanded),E=JS(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(pu,{dense:d},$.createElement(VS,{variant:"alarm",type:Ge?"error":"warning",title:Le,footer:$.createElement(cu,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=Ap(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(tp));return d?$.createElement(XS,{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(gu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:hu()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(bu,null,re.map((me,ge)=>{let _=`${me.value}_${ge}`;return $.createElement($.Fragment,{key:_},$.createElement(KS,{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:yu()},$.createElement(Wu,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(fu,{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:Su()},$.createElement(vu,null,$.createElement(jS,{size:12,color:"gray"})),$.createElement(xu,null,$.createElement(Ba,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(zu,{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(zu,{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(ZS,{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(mu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Uu,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:M}),$.createElement(ku,{open:k},$.createElement(wu,null),$.createElement("div",{className:du()},M.map((me,ge)=>{let _=`item-${ge}`;return $.createElement(YS,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:ge!==M.length-1,state:me.state})})))))}i(Fa,"Quote");import{Divider as nC,Skeleton as rC}from"@rango-dev/ui";import It from"react";import{darkTheme as eC,styled as _r}from"@rango-dev/ui";var qu=_r("div",{$$color:"$colors$neutral100",[`.${eC} &`]:{$$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"}),Hu=_r("div",{paddingLeft:"$8"}),Gu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as tm,Divider as lt,Skeleton as je}from"@rango-dev/ui";import z from"react";import{css as tC,styled as bt}from"@rango-dev/ui";var Oa=bt("div",{display:"flex"}),Vu=bt("div",{padding:"$10 $0 $20"}),Xu=bt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),ju=bt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ku=bt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Yu=bt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Zu=bt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ju=bt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Ru=bt("div",{padding:"$15 $0 $15 $0"}),em=tC({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ro(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(Ku,null,z.createElement(Zu,null,z.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(lt,{size:8,direction:"horizontal"}),z.createElement(Ju,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:em()},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(Vu,null,z.createElement(je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Xu,null,z.createElement(ju,null,z.createElement(tm,{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(Ru,null,n,z.createElement(Yu,null),n),z.createElement(lt,{size:12})))}i(Ro,"QuoteSummarySkeleton");import{ChainToken as am,Divider as za,NextIcon as oC,Skeleton as Pr}from"@rango-dev/ui";import Te from"react";import{styled as en}from"@rango-dev/ui";var om=en("div",{display:"flex",alignItems:"start"}),nm=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}),rm=en("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),im=en("div",{display:"flex",alignItems:"center"});function yt(t){let{separator:e=!0}=t;return Te.createElement(Te.Fragment,null,Te.createElement(im,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(om,null,Te.createElement(Gu,{hideSeparator:!e}),Te.createElement(nm,{extraSpace:e},Te.createElement(Ua,null,Te.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(za,{direction:"horizontal",size:8}),Te.createElement(Pr,{height:12,variant:"rounded"})),Te.createElement(rm,null,Te.createElement(oC,{color:"gray",size:16})),Te.createElement(Ua,null,Te.createElement(am,{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(qu,{expanded:o,rounded:e!=="basic"},It.createElement(Ro,{type:e,tagHidden:n}),It.createElement(Qu,null,It.createElement(rC,{height:15,variant:"rounded"})),o&&It.createElement(Hu,null,It.createElement(nC,{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 iC(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 pC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as cC}from"react";import{useRef as aC,useState as sC}from"react";var lC=2e3;function Dr({request:t}){let[e,o]=sC(!1),n=aC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,lC)),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 sm(){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(sm,"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(rp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=ip(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=pp(t);if(o){let n=qn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(qa,"getQuoteError");function lm(t,e,o){let n=!1;t&&(n=xp(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&&(gp(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=hp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(lm,"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}=sm();return cC(()=>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=lm(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=pC(o.toString(),w,dp(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 CC=dC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${cm}`]:{width:"$48",height:"$48"}}),TC=Va({flexGrow:1,paddingRight:"$10"}),kC=Va({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),wC=Va({display:"flex",justifyContent:"space-between",alignItems:"center"});function um(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=SC(),[l,p]=on(""),u=!n,[c,d]=on(!1),[m,f]=on(!1),{isActiveTab:g}=ne(),S=h().getDisabledLiquiditySources(),C=yC(S),{manager:y}=uC(),{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))},[]),hC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=E.warnings?.quote??null,Y=E.error,re=[];if(l&&re.push(ke.createElement(pm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&re.push(ke.createElement(pm,{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(CC,null,ke.createElement("div",{className:TC()},ke.createElement(mC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:Q},Ha.t("Start Swap"))),ke.createElement(cm,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},ke.createElement(gC,{size:24})))},c&&ke.createElement(Hc,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),ke.createElement(ue,null,ke.createElement("div",{className:wC()},ke.createElement(fC,{variant:"title",size:"small"},Ha.t("You get")),ke.createElement("div",{className:kC()},ke.createElement(lr,{onClick:!k&&!c&&!x?M:void 0}))),ke.createElement(Ga,{size:"12"}),Yp(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(um,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as FC}from"@rango-dev/queue-manager-react";import{Divider as wm,NotFound as OC,styled as UC}from"@rango-dev/ui";import At,{useState as zC}from"react";import{useNavigate as qC}from"react-router-dom";import{i18n as bC}from"@lingui/core";import{Divider as hm,GroupedVirtualizedList as IC,Skeleton as EC,SwapListItem as ym,Typography as AC}from"@rango-dev/ui";import De,{useCallback as Sm,useEffect as NC,useRef as WC,useState as MC}from"react";function mm(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(mm,"calculateGroupsSoFar");import{css as vC,darkTheme as xC,styled as nn}from"@rango-dev/ui";var Xa=vC(),dm=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",[`.${xC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ka=nn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),fm=nn("div",{gap:"$10",display:"flex",flexDirection:"column"}),gm=nn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var LC=10;function Ya(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=MC([]),l=WC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=Sm(mm,[]),m=Sm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,LC),s(d(u,l.current)))},[e.length]);if(NC(()=>{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(EC,{variant:"text",width:60,size:"small"}),De.createElement(hm,{size:16})),De.createElement(hm,{size:4}),De.createElement(fm,null,S.map((T,k)=>De.createElement(ym,{isLoading:!0,key:k}))))))}return De.createElement(IC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>De.createElement(ja,null,De.createElement(Ka,null,De.createElement(AC,{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(dm,{key:S.requestId},De.createElement(ym,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===bC.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 _C,IconButton as PC,SearchIcon as $C,TextField as DC}from"@rango-dev/ui";import rn from"react";import{styled as BC}from"@rango-dev/ui";var Cm=BC("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(DC,{prefix:rn.createElement(Cm,null,rn.createElement($C,{color:"black"})),suffix:!!s.length&&rn.createElement(PC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},rn.createElement(_C,{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 Tm from"dayjs";var km=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=Tm();t.forEach(p=>{let u=Number(p.creationTime),c=Tm(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=UC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),HC=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 vm(){let t=qC(),{manager:e,state:o}=FC(),n=ft(e).map(({swap:c})=>c),[r,a]=zC(""),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)||HC(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(wm,{size:"16"}),At.createElement(QC,null,u&&At.createElement(gm,null,At.createElement(wm,{size:32}),At.createElement(OC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&At.createElement(Ya,{list:p,onSwapClick:t,groupBy:km,isLoading:s}))))}i(vm,"HistoryPage");import{i18n as pT}from"@lingui/core";import{Button as cT,Divider as zm,styled as uT,WarningIcon as mT}from"@rango-dev/ui";import dT from"bignumber.js";import Qe,{useEffect as qm,useState as Qm}from"react";import{useNavigate as fT}from"react-router-dom";import{i18n as YC}from"@lingui/core";import{Header as ZC}from"@rango-dev/ui";import qt,{useEffect as JC,useState as RC}from"react";import{i18n as VC}from"@lingui/core";import{Divider as Ja,FullExpandedQuote as XC,Typography as jC}from"@rango-dev/ui";import de from"react";import{styled as Za}from"@rango-dev/ui";var xm=Za("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),bm=Za("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Im=Za("div",{width:"146px"});import{i18n as an}from"@lingui/core";import{Select as GC}from"@rango-dev/ui";import Em 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 Em.createElement(Im,null,Em.createElement(GC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Qr,"SelectStrategy");var Am=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(bm,null,de.createElement(jC,{size:"xmedium",variant:"title"},VC.t("Sort by")),de.createElement(Qr,{container:T})),de.createElement(Ja,{size:"10"})),e&&Array.from({length:Am},(w,I)=>de.createElement(de.Fragment,{key:I},s?de.createElement(XC,{loading:!0}):de.createElement(tn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==Am-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(xm,null,de.createElement(Vo,{size:s?"large":"small",error:g,fetch:n}))))}i(sn,"Quotes");import{darkTheme as KC,styled as Nm}from"@rango-dev/ui";var Wm=Nm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${KC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Mm=Nm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var eT=100;function Ra(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=RC(!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)},eT):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),qt.createElement(Wm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ur()}`,id:he.EXPANDED_BOX_ID},qt.createElement(ZC,{title:YC.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(Mm,null,qt.createElement(sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:c})))}i(Ra,"ExpandedQuotes");import{i18n as Fm}from"@lingui/core";import{SwapInput as Om}from"@rango-dev/ui";import ln from"react";import{ReverseIcon as nT}from"@rango-dev/ui";import ts from"react";import{keyframes as tT,styled as Lm}from"@rango-dev/ui";var es=450,oT=tT({"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)"}}),Bm=Lm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),_m=Lm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${oT} ${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(Bm,null,ts.createElement(_m,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},es),t()}},ts.createElement(nT,{size:12})))}i(os,"SwitchFromAndToButton");import{styled as Pm}from"@rango-dev/ui";var $m=Pm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Dm=Pm("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&&bl(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($m,null,ln.createElement(Dm,null,ln.createElement(Om,{label:Fm.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(Om,{sharpBottomStyle:!r&&(!!g||e),label:Fm.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 rT,useEffect as iT,useRef as aT,useState as sT}from"react";function Um(){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(Um,"useFetchAllQuotes");var lT=600;function Hr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Um(),{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]=sT(!0),V=aT(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=mp({fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,wallets:s,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae,enableCentralizedSwappers:a});Fl("experimentalRoute",r)&&(Le.experimental=!0),e(Le).then(Ke=>{let Ne=Vn(f,Ke.results),Ue=Ep(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=rT(ul(Z=>{te(Z)},lT),[H]);return iT(()=>{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 gT=uT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),hT=300;function Hm(){let t=fT(),{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=ap({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Ll(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new dT(n).gt(0)&&!kp(e,o),M=Q&&v==="success"&&T,re=(!L||L&&p?.results.length)&&(l||s);qm(()=>{c(),m("refetchQuote",!0)},[]),qm(()=>{g(Q)},[Q]);let H=(r||s)&&!x?y:void 0,A=i(q=>{L&&f?(g(!1),setTimeout(()=>{t(q)},hT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return Qe.createElement(gT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(cT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(mT,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||pT.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(zm,{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(zm,{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(Hm,"Home");import{i18n as Gm}from"@lingui/core";import{Alert as yT,Divider as ST,List as CT,ListItemButton as TT,Radio as kT,RadioRoot as wT,Typography as vT}from"@rango-dev/ui";import St from"react";function Qt(){let{setLanguage:t,language:e,config:o}=h(),n=Ul,r=o?.language||Fo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Fo),resetLanguage:()=>t(null)}}i(Qt,"useLanguage");function Vm(){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(vT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:St.createElement(kT,{value:s}),start:St.createElement(p,null)}});return St.createElement(le,{header:{title:Gm.t("Language")}},St.createElement(ue,null,St.createElement(yT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),St.createElement(ST,{size:"8"}),St.createElement(wT,{value:t},St.createElement(CT,{type:St.createElement(TT,{title:Gm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Vm,"LanguagePage");import{i18n as Nt}from"@lingui/core";import{Button as AT,Checkbox as NT,Image as WT,ListItemButton as MT,NotFound as LT,Typography as BT}from"@rango-dev/ui";import Fe,{useState as _T}from"react";import{Checkbox as IT,Skeleton as jm}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 xT,styled as bT}from"@rango-dev/ui";var Xm=bT(xT,{height:61});var ET=30;function ss(){return cn.createElement(pn,null,Array.from(Array(ET),(t,e)=>cn.createElement(Xm,{hasDivider:!0,key:e,start:cn.createElement(jm,{variant:"circular",width:35,height:35}),title:cn.createElement(jm,{variant:"text",size:"large",width:90}),end:cn.createElement(IT,{checked:!1})})))}i(ss,"LoadingLiquiditySourceList");function ls({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=_T(""),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(WT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(NT,{checked:T,disabled:l}),title:Fe.createElement(BT,{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(AT,{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(LT,{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(MT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ls,"LiquiditySourcePage");import{i18n as PT}from"@lingui/core";import Gr from"react";import{useNavigate as $T}from"react-router-dom";function Km(){let t=$T(),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:PT.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(Km,"RoutesPage");import{i18n as nd}from"@lingui/core";import{Divider as rd,getCategoriesCount as GT,SelectableCategoryList as VT}from"@rango-dev/ui";import Wt,{useState as id}from"react";import{i18n as ps}from"@lingui/core";import{Divider as td,Image as UT,ListItemButton as zT,NotFound as qT,Typography as od}from"@rango-dev/ui";import tt,{useEffect as QT,useState as HT}from"react";var Ym=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 DT,styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vr=Zm(Ho,{padding:0,margin:0,listStyle:"none",[`& ${DT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as FT,Skeleton as Rm}from"@rango-dev/ui";import Xr from"react";var OT=20;function ed(){return Xr.createElement(Vr,null,Array.from(Array(OT),t=>Xr.createElement(FT,{key:t,hasDivider:!0,start:Xr.createElement(Rm,{variant:"circular",width:35,height:35}),title:Xr.createElement(Rm,{variant:"text",size:"large",width:90})})))}i(ed,"LoadingBlockchainList");function cs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=HT(e),{fetchStatus:l}=h();QT(()=>{s([...Ym(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?tt.createElement(tt.Fragment,null,tt.createElement(td,{size:32}),tt.createElement(qT,{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(zT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:tt.createElement(UT,{src:u.logo,size:30}),title:tt.createElement(od,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return tt.createElement(Jm,null,tt.createElement(od,{variant:"label",size:"large"},ps.t("Select Blockchain")),tt.createElement(td,{size:4}),l==="loading"&&tt.createElement(ed,null),l==="success"&&p())}i(cs,"BlockchainList");function us(t){let{type:e}=t,o=et(),[n,r]=id(""),[a,s]=id("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),m=GT(c)!==1;return Wt.createElement(le,{header:{title:nd.t("Select Blockchain")}},Wt.createElement(ue,{view:!0},m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(VT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Wt.createElement(rd,{size:24})),Wt.createElement(Et,{value:n,autoFocus:!0,placeholder:nd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Wt.createElement(rd,{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 Id}from"@rango-dev/ui";import io,{useState as pk}from"react";import{useNavigate as ck}from"react-router-dom";import{i18n as fs}from"@lingui/core";import{BlockchainsChip as jr,Divider as pd,Image as cd,Skeleton as ZT,Tooltip as JT,Typography as gs}from"@rango-dev/ui";import be from"react";import{useEffect as KT}from"react";var ad=["ETH","COSMOS","OSMOSIS"];function ms(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(XT),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(jT(s)),r=n.splice(a)}return{list:n,more:r}}i(ms,"prepare");function XT(t,e){let o=ad,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(XT,"sortByMostUsedBlockchains");function jT(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(jT,"generateSortByPreferredBlockchainsFor");function sd(t,e){return!!e.list.find(o=>o.name===t)}i(sd,"isInVisibleList");function ds(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();KT(()=>{if(e?.selected){let a=ms(t,o,e);sd(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 YT}from"@rango-dev/ui";var ld=YT("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var RT=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(pd,{size:12}),be.createElement(gs,{variant:"label",size:"large"},fs.t("Select Blockchain")),be.createElement(pd,{size:12}),be.createElement(ld,null,l==="loading"&&Array.from(Array(RT),f=>be.createElement(ZT,{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(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(cd,{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(cd,{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 kd,Divider as Ao,ExternalLinkIcon as ok,Image as nk,ListItemButton as rk,NotFound as ik,PinIcon as ak,Skeleton as wd,Typography as Zr,VirtualizedList as sk}from"@rango-dev/ui";import G,{useEffect as vd,useState as xd}from"react";import{Divider as Cd,ListItem as tk,Skeleton as un}from"@rango-dev/ui";import pt from"react";import{css as Eo,darkTheme as ud,ImageContainer as ek,styled as ot,Typography as md}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",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ks=Eo({}),ws=Eo(),dd=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(md,{}),fd=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ws}`]:{$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),NO=ot("div",{display:"flex",alignItems:"center"}),gd=ot("div",{position:"relative",[`& ${ek}`]:{borderRadius:"$xm",overflow:"hidden"}}),hd=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),yd=ot(md,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Sd=ot("a",{"& svg:hover":{color:"$colors$info"}});function Td(t){return pt.createElement(Kr,null,Array.from(Array(t.size),e=>pt.createElement(tk,{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(Cd,{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(Cd,{size:4}),pt.createElement(un,{variant:"text",size:"medium",width:90}))})))}i(Td,"LoadingTokenList");var Es=20,lk=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(Sd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(ok,{size:12}))))},"renderDesc");function bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=xd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=xd(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=h(),g=i(()=>{s(e.slice(0,a.length+Es))},"loadNextPage");vd(()=>{c(e.length>a.length)},[a.length]),vd(()=>{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(ik,{title:Is.t("No results found"),description:Is.t("Try using different keywords")})):G.createElement(sk,{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||"",jp(v?.color||"")?5:125),b=nr(v?.color||"",-100),x={$$color:E,[`.${kd} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${kd} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(rk,{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(gd,null,G.createElement(nk,{src:y.image,size:30}),f(y,t.type)&&G.createElement(hd,null,G.createElement(ak,{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"?lk({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(wd,{variant:"text",size:"large",width:70}),G.createElement(Ao,{size:4}),G.createElement(wd,{variant:"text",size:"medium",width:50})):T&&G.createElement(fd,null,G.createElement(yd,{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(dd,null,G.createElement(Zr,{variant:"label",size:"large"},Is.t("Select Token")),G.createElement(Ao,{size:4}),l==="loading"&&G.createElement(Td,{size:Es}),l==="success"&&G.createElement(Kr,{as:"ul"},S()))}i(bd,"TokenList");function As(t){let{type:e}=t,o=ck(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=R.use.getBalanceFor(),[d,m]=pk(""),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(Id,{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(Id,{size:16}),io.createElement(bd,{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 Pk,Button as $k,styled as Dk}from"@rango-dev/ui";import ao from"react";import{useInRouterContext as Fk,useSearchParams as Ok}from"react-router-dom";import{i18n as Ld}from"@lingui/core";import{Divider as fk,InfoIcon as gk,TextField as hk,Tooltip as yk,Typography as Bd}from"@rango-dev/ui";import ct from"react";import{Chip as uk,styled as mn,TextField as mk}from"@rango-dev/ui";var Ed=mn("div",{paddingTop:"$5",padding:"$10 $5"}),Ad=mn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${mk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Nd=mn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rr=mn("div",{maxWidth:"280px",padding:"$10"}),Wd=mn(uk,{width:"61px",flexShrink:0});import{i18n as Ns}from"@lingui/core";import{Typography as dk}from"@rango-dev/ui";import dn from"react";function Md(){return dn.createElement(Rr,null,dn.createElement(dk,{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(Md,"SlippageTooltipContent");function Ws(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ct.createElement(Ed,null,ct.createElement(Nd,null,ct.createElement(Bd,{variant:"title",size:"xmedium"},Ld.t("Slippage tolerance per swap")),ct.createElement(fk,{direction:"horizontal",size:4}),ct.createElement(yk,{container:B(),side:"top",sideOffset:4,content:ct.createElement(Md,null)},ct.createElement(gk,{color:"gray"}))),ct.createElement(Ad,null,zl.map((r,a)=>{let s=`slippage-${a}`;return ct.createElement(Wd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ct.createElement(hk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Gl&&s<=Hl?n(s):n(null)},suffix:o&&ct.createElement(Bd,{variant:"body",size:"small"},"%"),placeholder:Ld.t("Custom")})))}i(Ws,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as _d,BridgesIcon as Sk,ChevronRightIcon as Ms,DarkModeIcon as Pd,Divider as ei,ExchangeIcon as Ck,InfinityIcon as Tk,InfoIcon as kk,LanguageIcon as wk,LightModeIcon as $d,List as vk,ListItem as xk,ListItemButton as bk,Skeleton as Ik,styled as Ek,Switch as Ak,Tabs as Nk,Tooltip as Wk,Typography as nt}from"@rango-dev/ui";import F from"react";import{useNavigate as Mk}from"react-router-dom";var Lk=Ek("div",{width:"202px",height:"$40"}),Bk=[{id:"light",icon:F.createElement($d,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:F.createElement(Pd,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:F.createElement(_d,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],_k=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(_d,{...e});case"dark":return F.createElement(Pd,{...e});default:return F.createElement($d,{...e})}},"getThemeIcon");function Dd(){let t=Mk(),{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(Ik,{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(Sk,{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(Ck,{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(wk,{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(Wk,{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(kk,{color:"gray"}))),start:F.createElement(Tk,{color:"gray",size:16}),end:F.createElement(Ak,{checked:g}),onClick:S},Q={id:"theme-item",type:F.createElement(xk,null),title:F.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:F.createElement(Lk,null,F.createElement(Nk,{container:B(),items:Bk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:_k(n)},M=m?[]:[w,I];return f||M.push(W),M.push(L),!e?.singleTheme&&!d&&M.push(Q),F.createElement(vk,{type:F.createElement(bk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(Dd,"SettingsLists");var Uk=Dk("div",{paddingLeft:"$8"});function Fd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Ok(),r=Fk(),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(Pk,{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(Uk,null,ao.createElement($k,{type:"secondary",size:"small",onClick:a},Ls.t("Reset")))}),ao.createElement(Ws,null),ao.createElement(Dd,null)))}i(Fd,"SettingsPage");import{i18n as Iw}from"@lingui/core";import{cancelSwap as Ew}from"@rango-dev/queue-manager-rango-preset";import{useManager as Aw}from"@rango-dev/queue-manager-react";import{Alert as Nw}from"@rango-dev/ui";import Ks from"react";import{useParams as Ww}from"react-router-dom";import{i18n as Bt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as lw,getCurrentStep as pw,getRelatedWalletOrNull as cw}from"@rango-dev/queue-manager-rango-preset";import{Button as hf,CopyIcon as uw,Divider as mw,IconButton as dw,LinkIcon as fw,QuoteCost as gw,StepDetails as hw,Typography as so,useCopyToClipboard as yw}from"@rango-dev/ui";import{useWallets as Sw}from"@rango-dev/wallets-react";import yf from"bignumber.js";import{PendingSwapNetworkStatus as pi}from"rango-types";import J,{useEffect as Sf,useRef as Cw,useState as Cf}from"react";import{useNavigate as Tw}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var zk=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function Od(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"):`${zk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Od,"timeSince");function Ud(t){return t.finishTime?Od(parseInt(t.finishTime)):Od(parseInt(t.creationTime))}i(Ud,"getSwapDate");import{PendingSwapNetworkStatus as ni}from"rango-types";import ri from"react";import{i18n as ti}from"@lingui/core";import{Button as zd,Divider as Bs,MessageBox as qk}from"@rango-dev/ui";import Gt from"react";var qd=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Bs,{size:20}),Gt.createElement(qk,{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(zd,{variant:"contained",type:"primary",size:"large",onClick:t},ti.t("Yes, Cancel it")),Gt.createElement(Bs,{size:12}),Gt.createElement(zd,{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 Hk}from"@rango-dev/ui";import Mt from"react";var Hd=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(Hk,{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 Xd}from"@rango-dev/logging-core";import{MessageBox as Gk,Wallet as Vk}from"@rango-dev/ui";import{useWallets as Xk}from"@rango-dev/wallets-react";import No,{useState as jk}from"react";import{styled as Gd}from"@rango-dev/ui";var Vd=Gd("div",{display:"flex",justifyContent:"center"}),yz=Gd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var jd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Xk(),[c,d]=jk(null),m=n?.walletType,f=m?xi(u(m)):null,g=m?p(m):null;return No.createElement(No.Fragment,null,No.createElement(Gk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&No.createElement(Vd,null,No.createElement(Vk,{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=>Xd(C))}})),No.createElement(to,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Xd(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(jd,{type:Ds[e].type,title:Ds[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ni.WaitingForNetworkChange}),e==="delete"&&ri.createElement(Hd,{onClose:o,onDelete:n}),e==="cancel"&&ri.createElement(qd,{onClose:o,onCancel:r}))}i(Fs,"SwapDetailsModal");import{i18n as fn}from"@lingui/core";import{Button as Os,Divider as ii,MessageBox as Kd,TokenAmount as Kk,Typography as Us}from"@rango-dev/ui";import Me from"react";import{useNavigate as Yk}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=Yk();return Me.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(Kd,{type:"success",title:fn.t("Swap Successful")},Me.createElement(Kk,{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(Kd,{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 sw from"react";import{i18n as nw}from"@lingui/core";import{Alert as mf,IconButton as rw,LinkIcon as iw}from"@rango-dev/ui";import Vt,{Fragment as aw}from"react";import{Alert as Rk,ChevronDownIcon as ew,IconButton as tw}from"@rango-dev/ui";import Mo,{useState as ow}from"react";import{css as gn,darkTheme as Zk,styled as Lt,Typography as Jk}from"@rango-dev/ui";var Yd=Lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ai=Lt("div",{width:"100%"}),Zd=Lt(Ho,{padding:"$0 $20 $20 $20"}),Rz=Lt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jd=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",[`.${Zk} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Rd=gn({padding:"$5 0"}),si=gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),ef=gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tf=gn({width:"100%",padding:"0 $20 $10"}),of=Lt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nf=Lt("div",{display:"flex",flexDirection:"column",gap:"$5"}),li=Lt(Jk,{wordBreak:"break-word"});import{styled as qs}from"@rango-dev/ui";var rf=qs("div",{display:"flex",flexDirection:"column",gap:"$10"}),af=qs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),sf=qs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function lf(t){let{message:e}=t,[o,n]=ow(!1);return Mo.createElement(Rk,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Mo.createElement(tw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Mo.createElement(af,{rotated:o},Mo.createElement(ew,{size:12,color:"gray"}))),footer:Mo.createElement(sf,{open:o},Mo.createElement(li,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(lf,"FailedAlert");import{i18n as pf}from"@lingui/core";import{Alert as Qs,Button as cf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Hs}from"rango-types";import hn from"react";function uf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?hn.createElement(Qs,{type:"warning",title:n.shortMessage,action:hn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Hs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},pf.t("Change"))}):r===Hs.WaitingForConnectingWallet?hn.createElement(Qs,{type:"warning",title:n.shortMessage,action:hn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Hs.WaitingForConnectingWallet)}},pf.t("Connect"))}):hn.createElement(Qs,{type:"warning",title:n.shortMessage})}i(uf,"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(rf,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(aw,{key:g},Vt.createElement(mf,{type:S&&(C&&"loading"||y&&"error")||"success",title:d.description?`${d.description} Tx`:nw.t("View transaction"),action:d.url&&Vt.createElement(rw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Vt.createElement(iw,{size:12}))}))}),c&&Vt.createElement(mf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(uf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(lf,{message:r}))}i(Gs,"SwapDetailsAlerts");var df=2e3;var ff=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:sw.createElement(Gs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function gf(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(gf,"getStepState");function Vs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Sw(),p=h().blockchains(),u=h().swappers(),c=h().tokens(),d=j.use.retry(),m=ne.use.isActiveTab(),f=Tw(),[g,S]=yw(df),C=Cw(null),[y,T]=Cf(null),[k,v]=Cf(null),E=i(()=>{r(),T(null)},"onCancel"),b=ze.use.getUnreadNotifications(),x=ze.use.setAsRead(),w=b(),I=pw(e),W=I?.networkStatus;Sf(()=>{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]),Sf(()=>{H?T(pi.WaitingForNetworkChange):W===pi.WaitingForConnectingWallet||W===pi.NetworkChanged?T(W):T(null)},[W]);let L=Sp(e),Q=I?lw(e,I):null,M=I?cw(e,I):null,V=Ud(e),Y=Cp(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=yp(e,I),q=ff({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 yf(_).multipliedBy(ge.toUsdPrice||0)):"",Ge=pe(new yf(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(nf,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(hf,{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(hf,{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(dw,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(uw,{size:16,color:"gray"})),J.createElement(of,{target:"_blank",href:`${nl}/swap/${o}`},J.createElement(fw,{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:ef()},J.createElement(gw,{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:tf()},J.createElement(so,{variant:"title",size:"small"},Bt.t("Swaps steps"))),J.createElement(mw,{size:8}),J.createElement(Zd,{ref:C},q.map((Ne,Ue)=>{let Cn=Ue,Lo=gf(e.steps[Ue]),Of=Lo==="error"||Lo==="in-progress"||Lo==="warning"||Lo==="completed"&&Ue===q.length-1;return J.createElement(hw,{key:Cn,step:Ne,type:"swap-progress",ref:C,state:Lo,hasSeparator:Ue!==0,tabIndex:Cn,isFocused:Of,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 wf,NotFound as bw,Skeleton as Sn,Typography as mi}from"@rango-dev/ui";import fe from"react";import{i18n as kw}from"@lingui/core";import{Divider as ww,Skeleton as vw,Typography as xw}from"@rango-dev/ui";import Se from"react";import{css as ut,styled as Xs}from"@rango-dev/ui";var Tf=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"}),kf=ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function js(){return Se.createElement(Tf,null,Se.createElement(Ro,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(xw,{variant:"title",size:"small"},kw.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(yn,null,Se.createElement(yt,{separator:!1}),Se.createElement("div",{className:kf()},Se.createElement(ww,{direction:"horizontal",size:20}),Se.createElement(vw,{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 vf(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(Yd,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(wf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}),fe.createElement(wf,{direction:"horizontal",size:4}),fe.createElement(Sn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:Wo()},fe.createElement(mi,{className:Rd(),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(Jd,null,fe.createElement(bw,{title:ui.t("Not found"),description:ui.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(vf,"SwapDetailsPlaceholder");function xf(){let{manager:t,state:e}=Aw(),o=!e.loadedFromPersistor,n=ft(t),{requestId:r}=Ww(),a=et(),{fetchStatus:s}=h();if(!r)return Ks.createElement(Nw,{containerStyles:{margin:"20px"},type:"error",title:Iw.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&&Ew(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(vf,{requestId:r,showSkeleton:l}):Ks.createElement(Vs,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(xf,"SwapDetailsPage");function bf(){return Np(),Vi(),Mw([{path:U.home,element:He.createElement(Hm,null)},{path:U.routes,element:He.createElement(Km,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(Fd,null)},{path:U.languages,element:He.createElement(Vm,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(vm,null)},{path:U.swapDetails,element:He.createElement(xf,null)}]},{path:U.wallets,element:He.createElement($c,null)},{path:U.confirmSwap,element:He.createElement(um,null)}])}i(bf,"AppRoutes");import{useQueueManager as Ow}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Uw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as zw}from"rango-sdk";import{useContext as qw,useEffect as Qw,useState as Lf}from"react";import{globalCss as Lw}from"@rango-dev/ui";var If=i(()=>Lw({"@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 Ef(){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(Ef,"useFetchApiConfig");import{useWallets as Bw}from"@rango-dev/wallets-react";import{useEffect as _w,useRef as Pw}from"react";function Af(){let{connect:t,state:e}=Bw(),o=Pw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);_w(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Af,"useForceAutoConnect");import{isApprovalTX as $w,MainEvents as di,RouteEventType as Nf,StepEventType as Wf,StepExecutionEventStatus as Dw,useEvents as Fw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mf}from"react";function Ys(){let t=h().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=ze.use.setNotification(),r=Fw();Mf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===Wf.TX_EXECUTION&&l.status===Dw.TX_SENT&&!$w(p)||l.type===Wf.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]),Mf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Nf.FAILED||l.type===Nf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(di.RouteEvent,a),()=>r.off(di.RouteEvent,a)},[r,e.length])}i(Ys,"useSubscribeToWidgetEvents");function Zs(){Af(),If(),Ys();let t=h().blockchains(),{canSwitchNetworkTo:e}=Sr(),[o,n]=Lf(""),[r,a]=Lf(),s=qw($n),l=t.filter(zw),{fetchApiConfig:p}=Ef();Ow({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===Uw(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(Zs,"useBootstrap");import{styled as Hw}from"@rango-dev/ui";var Bf=Hw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function fi(){Zs();let{config:t}=h(),{activeTheme:e}=rr(t?.theme||{}),{activeLanguage:o}=Qt();return Js.createElement(Gw,{language:o},Js.createElement(Bf,{id:"swap-container",className:e()},Js.createElement(bf,null)))}i(fi,"Main");import{setSolanaSignerConfig as uv}from"@rango-dev/signer-solana";import el,{useEffect as tl}from"react";import{useState as Vw}from"react";var Xw=i(()=>{let[t,e]=Vw(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=dl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),_f=Xw;import{checkWaitingForNetworkChange as jw,makeQueueDefinition as Kw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Yw}from"@rango-dev/queue-manager-react";import{useWallets as Zw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Jw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Rw}from"rango-types";import ev,{useMemo as tv}from"react";function ov(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Zw(),l=tv(()=>Kw({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(Rw),S=i(k=>{let{supportedChains:v}=s(k);return In(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:Jw(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return ev.createElement(Yw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{jw(k)},isPaused:!T},t.children)}i(ov,"QueueManager");var Pf=ov;import{useManager as sv}from"@rango-dev/queue-manager-react";import lv,{createContext as pv,useContext as cv}from"react";import{cancelSwap as nv,getCurrentBlockchainOfOrNull as rv,getCurrentStep as iv,getRelatedWalletOrNull as av}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&&nv(o)}getCurrentStepInfo(e){let o=iv(e);return{step:o,wallet:o?av(e,o):null,network:o?rv(e,o):null}}};var $f=pv(void 0);function Rs(t){let{manager:e}=sv(),o=ne.use.isActiveTab(),n=j.use.retry(),r=new gi(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=kl(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 lv.createElement($f.Provider,{value:S},t.children)}i(Rs,"WidgetInfo");function Df(){let t=cv($f);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Df,"useWidget");function hi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_f();return tl(()=>{n&&r(n)},[n]),tl(()=>{Nl({API_KEY:o?.apiKey||Tn,BASE_URL:o?.apiUrl||ol})},[o.apiKey,o.apiUrl]),tl(()=>{t.config?.signers?.customSolanaRPC&&uv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),el.createElement(Dn,{config:o,onUpdateState:e},el.createElement(Pf,{apiKey:o.apiKey},el.createElement(Rs,null,t.children)))}i(hi,"WidgetProvider");function Ff(t){let e=t.config?.externalWallets;return yi.createElement(ep,null,e?yi.createElement(fi,null):yi.createElement(hi,{config:t.config??Ni},yi.createElement(fi,null)))}i(Ff,"Widget");export{TV as EventSeverity,kV as MainEvents,MV as Networks,_V as PendingSwapNetworkStatus,wV as RouteEventType,Si as SUPPORTED_FONTS,vV as StepEventType,xV as StepExecutionBlockedEventStatus,bV as StepExecutionEventStatus,he as UI_ID,NV as WalletEvents,LV as WalletTypes,Ff as Widget,hi as WidgetProvider,Dn as WidgetWallets,ea as customizedThemeTokens,AV as readAccountAddress,Sr as useWallets,Df as useWidget,IV as useWidgetEvents};
1
+ var Bf=Object.defineProperty;var i=(t,e)=>Bf(t,"name",{value:e,configurable:!0});import{EventSeverity as ZG,MainEvents as JG,RouteEventType as RG,StepEventType as eV,StepExecutionBlockedEventStatus as tV,StepExecutionEventStatus as oV,useEvents as nV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as iV,useWallets as gr,Events as aV}from"@rango-dev/wallets-react";import{Networks as lV,WalletTypes as pV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as uV}from"rango-types";import{UI_ID as _f}from"@rango-dev/ui";var Cn="c6381a79-2817-4602-83bf-6a641a409e32",Rs="https://api.rango.exchange",el="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",..._f};import{Events as Wi,Provider as bg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Ig}from"rango-sdk";import Bn,{createContext as Eg,useEffect as Vl,useMemo as Ag,useRef as Xl}from"react";import{useEffect as Kf}from"react";import{create as Vf}from"zustand";import{subscribeWithSelector as Xf}from"zustand/middleware";import{RangoClient as Hf}from"rango-sdk";import{WalletState as mt}from"@rango-dev/ui";import{readAccountAddress as Df}from"@rango-dev/wallets-react";import{detectInstallLink as Ff,getCosmosExperimentalChainInfo as Of,isEvmAddress as Uf,KEPLR_COMPATIBLE_WALLETS as gv,Networks as rl}from"@rango-dev/wallets-shared";import hi from"bignumber.js";import{isCosmosBlockchain as zf}from"rango-types";import Pf from"bignumber.js";var Be=new Pf(0);import{WalletTypes as $f}from"@rango-dev/wallets-shared";var tl=[$f.LEAP];import{BigNumber as nl}from"bignumber.js";var Lo=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 nl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new nl(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 Tn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var ut=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Bo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function yi(t){switch(!0){case t.connected:return mt.CONNECTED;case t.connecting:return mt.CONNECTING;case!t.installed:return mt.NOT_INSTALLED;default:return mt.DISCONNECTED}}i(yi,"mapStatusToWalletState");function il(t,e,o,n){return o.filter(r=>!tl.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}=e(r),d=yi(t(r));return{title:a,image:s,link:Ff(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c}})}i(il,"mapWalletTypesToWalletInfo");function vn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(vn,"walletAndSupportedChainsNames");function al(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}=Df(p),d=l.length>0,m=l.includes(c),f=c===rl.Unknown;if(d&&!m&&!f)return;let S=c===rl.Unknown&&Uf(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(al,"prepareAccountsForWalletStore");function Vt(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,h=c===p.length-1;(!f&&!h||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(l)}),Array.from(n)}i(Vt,"getQuoteWallets");function wn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(wn,"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 hi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:Qf(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(sl,"makeBalanceFor");function ll(t){return{...t,loading:!1,error:!0}}i(ll,"resetConnectedWalletState");var pl=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 hi(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return qf(r)},"calculateWalletUsdValue");function qf(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(qf,"numberWithThousandSeparator");var Qf=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),bn=i((t,e)=>{let o=Of(Object.entries(t).map(([,n])=>n).filter(zf));return o&&o[e]?.experimental},"isExperimentalChain");function In(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(In,"formatBalance");function cl(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(cl,"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 ul(t){return t.sort((e,o)=>+(o.state===mt.CONNECTED)-+(e.state===mt.CONNECTED)||+(o.state===mt.DISCONNECTED||o.state===mt.CONNECTING)-+(e.state===mt.DISCONNECTED||e.state===mt.CONNECTING))}i(ul,"sortWalletsBasedOnConnectionState");function En(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(En,"getConciseAddress");function ml({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(ml,"getAddress");function Si(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Si,"createTokenHash");function An(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new hi(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Si({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(An,"makeTokensBalance");var dl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function fl(t){return t.map(e=>e.state).join("-")}i(fl,"hashWalletsState");var Ci={API_KEY:Cn};function Ct(t){return Ci[t]||""}i(Ct,"getConfig");function gl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ci=e,Ci}i(gl,"initConfig");var hl=20,yl=25,Sl="Roboto",Ti="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"),ki=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Cl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Nn,Bt=i(()=>Nn||(Nn=new Hf(Ct("API_KEY"),Ct("BASE_URL")),Nn),"httpService");var Gf=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"),_t=Gf;var R=_t(Vf()(Xf((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:An(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=>wn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Bt().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(m=>{let f=o.find(S=>wn(S,m)),h=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return h?.failed&&f&&r&&a([f],n,!1),f&&h?{...m,explorerUrl:h.explorerUrl,balances:sl(h,n),loading:!1}:m});return{loading:!1,balances:An(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(d=>wn(d,c))?ll(c):c);return{loading:!1,balances:An(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Si(o);return n[r]??null}}))));import{allProviders as jf}from"@rango-dev/provider-all";function Wn(t,e){let o=jf({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(Wn,"matchAndGenerateProviders");function Tl(t,e){return Wn(t,e).map(r=>r.config.type)}i(Tl,"configWalletsToWalletName");function kl(t,e){let o=R.use.clearConnectedWallet(),n=Wn(t,{walletConnectProjectId:e?.walletConnectProjectId});return Kf(()=>{o(),n=Wn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(kl,"useWalletProviders");import Sg,{createContext as Cg,useContext as Tg,useEffect as kg,useRef as xg}from"react";import{create as hg}from"zustand";import{persist as yg}from"zustand/middleware";var xi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},Yf={clientUrl:void 0},Zf={liquiditySources:void 0},xl=i((t,e,o)=>({config:{...xi,...t},iframe:Yf,campaignMode:Zf,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 Mn(t){return Array.from(new Set(t))}i(Mn,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function Al(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Al,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function bl(t,e){return t.toLowerCase()===e.toLowerCase()}i(bl,"exactText");function Il(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Il,"startWithText");var L=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),Po=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function El(t,e,o){let n=!!e&&bl(e,t),r=!!o&&bl(o,t);return n!==r?n?-1:1:0}i(El,"compareExactMatchText");function vi(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(vi,"compareContainsText");function wi(t,e,o){let n=!!e&&Il(e,t),r=!!o&&Il(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareStartWithText");function Nl(t,e,o){if(!o)return 0;let n=El(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=El(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r!==0)return r}return 0}i(Nl,"compareWithSearchFor");function Wl(t,e){return e.find(o=>o.name===t)?.displayName}i(Wl,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function $o(t,e){return e.find(o=>o.id===t)?.title}i($o,"getSwapperDisplayName");function Ii(t,e){return e.find(o=>_e(o,t))??null}i(Ii,"findToken");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ai(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(Ai,"isTokenNative");function Ln(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Mn(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(Ln,"getUniqueSwappersGroups");function Ml(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ml,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Ll(t,e){return e?.[t]==="enabled"}i(Ll,"isFeatureEnabled");var Bl=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let 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 g=o.getBalanceFor(u),T=o.getBalanceFor(c),k=cl(g,T);if(k!==0)return k}let f=r.get(u.blockchain),h=r.get(c.blockchain),S=Ai(u,f),C=Ai(c,h);if(S!==C)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let g=Nl(u,c,o.searchFor);if(g)return g}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&h?f.sort-h.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(Ml)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Bt().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 tg,English as og,Finland as ng,French as rg,German as ig,Greece as ag,Italian as sg,Japanese as lg,Netherlands as pg,Poland as cg,Portuguese as ug,Russian as mg,Spanish as dg,Swedish as fg,Ukrainian as gg}from"@rango-dev/ui";var _l=[{title:"English",label:"English",local:"en",SVGFlag:og},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:dg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:rg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:lg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ug},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:tg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mg},{title:"German",label:"Deutsch",local:"de",SVGFlag:ig},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:gg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:fg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:ng},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:pg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:ag},{title:"Italian",label:"Italiana",local:"it",SVGFlag:sg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:cg}],Do="en";var Pl=[.5,1,3],$l=1,Dl=5,Fl=100,Ol=0;var Ul=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:$l,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=Mn(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||Do},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function zl(t){return hg()(yg((...e)=>({...Bl(...e),...Ul(...e),...xl(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(zl,"createAppStore");var ql=Cg(null);function y(){let t=Tg(ql);if(kg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function Ql(t){let e=xg();return e.current||(e.current=zl(t.config)),Sg.createElement(ql.Provider,{value:e.current},t.children)}i(Ql,"AppStoreProvider");import{create as wg}from"zustand";var Hl="rango-widget";var Fo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Hl),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=_t(wg()((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})}}))),Xt=new Fo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var _n=Eg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Ng(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:p}=kl(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=Xl(),m=Xl();Vl(()=>{n().catch(console.log)},[]),Vl(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(Ig).map(g=>g.name),h=i((g,T,k,x,I)=>{if(T===Wi.ACCOUNTS)if(k){let b=vn(I.supportedBlockchains),v=al(g,k,f,b,I.isContractWallet);v.length&&u(v,a)}else c(g),m.current?m.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Wi.ACCOUNTS&&x.connected){let b=`${g}-${x.network}-${k}`;x.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Wi.NETWORK&&x.network){let b=`${g}-${x.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(g,T,k,x,I)},"onUpdateState"),S=ne.use.isActiveTab(),C=Ag(()=>({onConnectWallet:g=>{d.current=g},onDisconnectWallet:g=>{m.current=g}}),[]);return Bn.createElement(_n.Provider,{value:C},Bn.createElement(bg,{allBlockChains:r,providers:p,onUpdateState:h,autoConnect:!!S},t.children))}i(Ng,"Main");function Pn(t){let{config:e,...o}=t;return Bn.createElement(Ql,{config:e},Bn.createElement(Ng,{...o,config:e}))}i(Pn,"WidgetWallets");import gi from"react";import Wg,{Fragment as Mg}from"react";import{MemoryRouter as Lg,useInRouterContext as Bg}from"react-router";function jl({children:t}){let o=Bg()?Mg:Lg;return Wg.createElement(o,null,t)}i(jl,"AppRouter");import{I18nManager as Px}from"@rango-dev/ui";import Ys from"react";import He from"react";import{useRoutes as kx}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 co,useRef as Gn}from"react";import xt from"bignumber.js";import{create as Dg}from"zustand";import{subscribeWithSelector as Fg}from"zustand/middleware";import{getLastSuccessfulStep as $g}from"@rango-dev/queue-manager-rango-preset";import Qb from"bignumber.js";import{i18n as Oo}from"@lingui/core";var Mi={"Network Fee":Oo.t("Network Fee"),"Swapper Fee":Oo.t("Protocol Fee"),"Affiliate Fee":Oo.t("Affiliate Fee"),"Outbound network fee":Oo.t("Outbound Fee"),"Rango Fee":Oo.t("Rango Fee")},Li=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Kl=30;import{i18n as rt}from"@lingui/core";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Fn}from"rango-types";function $n(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i($n,"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 Yl(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(Yl,"getQuoteErrorMessage");import{i18n as Dn}from"@lingui/core";var jt=i(()=>({connectWallet:Dn.t("Connect Wallet"),swap:Dn.t("Swap"),swapAnyway:Dn.t("Swap anyway"),ethWarning:Dn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Zl(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(Zl,"hasHighValueLoss");function Jl(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(Jl,"hasLimitError");function Rl(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(Rl,"getLimitErrorMessage");function ep(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:jt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:jt().swap,action:"confirm-swap",disabled:!0}:s?{title:jt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:jt().ethWarning,action:"confirm-warning",disabled:!1}:{title:jt().swap,action:"confirm-swap",disabled:!1}:{title:jt().connectWallet,action:"connect-wallet",disabled:!1}}i(ep,"getSwapButtonState");function Bi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Bi,"canComputePriceImpact");var _g=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function _i(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=_g(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(_i,"getUsdFeeOfStep");function On(t,e){return t.reduce((o,n)=>o.plus(_i(n,e)),Be)}i(On,"getTotalFeeInUsd");function Pi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(Pi,"getUsdFee");function tp(t){return t.reduce((e,o)=>e.plus(Pi(o)),Be)}i(tp,"getTotalFeesInUsd");function op(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(op,"getFeesGroup");function np(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(np,"checkSlippageErrors");function rp(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(rp,"checkSlippageWarnings");function Un(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(Un,"getMinRequiredSlippage");function ip(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ip,"hasProperSlippage");function ap(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:h}=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:h}}i(ap,"createQuoteRequestBody");function sp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(sp,"getWalletsForNewSwap");function lo(t){return t?.outputAmount||null}i(lo,"getQuoteOutputAmount");function lp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(lp,"getPercentageChange");function pp(t,e){let o=lo(t),n=lo(e);if(!o||!n)return!1;let r=Je(o,n);return r?r<=-1:!0}i(pp,"isOutputAmountChangedALot");function cp(t,e,o){let n=t.validationStatus,r=Vt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>hp(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(cp,"generateBalanceWarnings");function zn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(zn,"calcOutputUsdValue");function Uo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Fn.NetworkChanged}i(Uo,"isNetworkStatusInWarningState");function up(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Uo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Fn.WaitingForConnectingWallet:n=n||rt.t("Waiting for connecting wallet");break;case Fn.WaitingForQueue:n=n||rt.t("Waiting for other running tasks to be finished");break;case Fn.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(up,"getSwapMessages");function mp(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(mp,"getLastConvertedTokenInFailedSwap");function dp(t){return t.status==="failed"}i(dp,"shouldRetrySwap");function fp(t,e,o,n,r,a){if(!n||t)return!0;let s=Vt({filter:"all",quote:n}),l=Vt({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?$n(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(fp,"isConfirmSwapDisabled");function gp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(gp,"isTokensIdentical");function Qn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Qn,"getQuoteToTokenUsdPrice");function $i(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i($i,"isNumberOfSwapsChanged");function Di(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Di,"isQuoteSwappersUpdated");function Fi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(Fi,"isQuoteInternalCoinsUpdated");function Sp(t,e){return $i(t,e)||Di(t,e)||Fi(t,e)}i(Sp,"isQuoteChanged");function hp(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(hp,"getRequiredBalanceOfWallet");function kt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(kt,"getPriceImpactLevel");function Cp(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=$g(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=Ii(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Ii(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(Cp,"createRetryQuote");function po(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Kt(o,t.requestAmount),l=Kt(n,t?.outputAmount??"");if(t&&s&&l){let c=Je(s.toString(),l.toString());if(!!c&&Zl(s,c)){let m=On(t?.swaps,r),f=kt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Un(t.swaps),u=a>Dl;if(ip(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:rp(t,a),minRequiredSlippage:p};return null}i(po,"generateQuoteWarnings");function Je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:lp(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var Tp=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"),Hn=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"),kp=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"),xp=i(t=>{let e=i((o,n)=>{let r=Li.indexOf(o.value),a=Li.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Kt=i((t,e)=>t?.usdPrice?new xt(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=_t(Dg()(Fg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new xt(0),outputUsdValue:new xt(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 Bo(o.inputAmount)?(e&&(n=e?.outputAmount?new xt(e?.outputAmount):null,r=zn(e?.outputAmount,Qn(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 xt(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:Kt(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 xt(0),outputUsdValue:new xt(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Kt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Cp(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Kt(s??null,u),outputUsdValue:new xt(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?Kt(e.toToken,e.outputAmount?.toString()||""):new xt(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 vp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=y().config,d=y().fetchStatus,m=y().blockchains(),f=y().tokens(),{setAffiliateRef:h,setAffiliatePercent:S,setAffiliateWallets:C}=y(),g=c?.from?.tokens,T=c?.from?.blockchains,k=c?.to?.tokens,x=c?.to?.blockchains,I=Gn(void 0),b=Gn(void 0),v=Gn(void 0),w=Gn(void 0);co(()=>{t(c?.amount?.toString()||"")},[c?.amount]),co(()=>{if(d==="success"){r();let E=m.find(B=>B.name===c?.from?.blockchain),W=f.find(B=>_e(B,c?.from?.token||null));(E||!E&&v.current)&&n(E??null),W?a({token:W,meta:{blockchains:m,tokens:f}}):!W&&I.current&&a({token:null}),v.current=c?.from?.blockchain,I.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),co(()=>{_o(s,g)&&a({token:null}),ki(p,T)&&n(null)},[g,T]),co(()=>{_o(l,k)&&a({token:null}),ki(u,x)&&o(null)},[k,x]),co(()=>{if(d==="success"){r();let E=m.find(B=>B.name===c?.to?.blockchain),W=f.find(B=>_e(B,c?.to?.token||null));(E||!E&&w.current)&&o(E??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]),co(()=>{h(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),C(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(vp,"useSyncStoresWithConfig");import{useEffect as zi,useRef as Og}from"react";import{useInRouterContext as Ug,useLocation as zg,useSearchParams as qg}from"react-router-dom";function Oi(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(Oi,"searchParamToToken");function Ui(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ui,"tokenToSearchParam");function qi(){let t=zg(),[e,o]=qg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=y().fetchStatus,h=y().blockchains(),S=y().tokens(),C=Ug(),{updateIframe:g,updateCampaignMode:T}=y(),k=y().isInCampaignMode(),x=Og(),I=i(()=>{let v={};for(let[re,H]of e.entries())re.startsWith("utm_")&&(v[re]=H);let w=e.get("fromAmount"),E=e.get("fromBlockchain"),W=e.get("fromToken"),B=e.get("toBlockchain"),Q=e.get("toToken"),M=e.get("autoConnect"),V=e.get("clientUrl"),Y=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:E,fromToken:W,toBlockchain:B,toToken:Q,autoConnect:M,clientUrl:V,liquiditySources:Y,utmQueryParams:v}},"getUrlSearchParams"),b=i(v=>{for(let w in v)v[w]||delete v[w];o(v,{replace:!0})},"updateUrlSearchParams");zi(()=>{let{autoConnect:v,clientUrl:w,utmQueryParams:E}=I();C&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Ui(a),toBlockchain:r?.name,toToken:Ui(s),fromAmount:l,autoConnect:v??void 0,clientUrl:w??void 0,liquiditySources:k?x.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),zi(()=>{if(!C)return;let v=I();if(!x.current&&v.liquiditySources&&(x.current=v.liquiditySources),v.fromAmount&&m(v.fromAmount),f==="success"){let w=h.find(Q=>Q.name===v.fromBlockchain),E=Oi(S,v.fromToken,w??null),W=h.find(Q=>Q.name===v.toBlockchain),B=Oi(S,v.toToken,W??null);w&&(p(w),E&&c({token:E,meta:{blockchains:h,tokens:S}})),W&&(u(W),B&&d({token:B,meta:{blockchains:h,tokens:S}}))}},[f]),zi(()=>{let{clientUrl:v,liquiditySources:w}=I();g("clientUrl",v||void 0),T("liquiditySources",w?.split(",")??void 0)},[])}i(qi,"useSyncUrlAndStore");import{i18n as za}from"@lingui/core";import{useManager as eC}from"@rango-dev/queue-manager-react";import{Alert as nm,Button as tC,css as Qa,Divider as qa,IconButton as rm,styled as oC,Typography as nC,WalletIcon as rC}from"@rango-dev/ui";import ke,{useEffect as Dr,useLayoutEffect as iC,useRef as aC,useState as tn}from"react";import{useNavigate as sC}from"react-router-dom";import{i18n as gt}from"@lingui/core";import{Alert as Ta,BalanceErrors as qy,Button as Dc,ChevronDownIcon as Qy,ChevronLeftIcon as Hy,Divider as To,MessageBox as Gy,Typography as hr,WalletIcon as Vy}from"@rango-dev/ui";import O,{useEffect as Xy,useState as ko}from"react";import{useNavigate as jy}from"react-router-dom";import{i18n as Vn}from"@lingui/core";function Xn(t){switch(t.type){case 0:return Vn.t("Route has been updated.");case 3:return Vn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Vn.t("Route swappers has been updated.");case 2:return Vn.t("Route internal coins has been updated.");default:return""}}i(Xn,"getQuoteUpdateWarningMessage");import{Modal as Hg}from"@rango-dev/ui";import Gg from"react";function oe(t){let{watermark:e}=ne();return Gg.createElement(Hg,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Zn,{useRef as jg}from"react";import*as uo from"@radix-ui/react-collapsible";import{keyframes as bp,styled as jn}from"@rango-dev/ui";var Qi=300,Vg=bp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Xg=bp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Ip=jn(uo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Hi=jn(uo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Kn=jn(uo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Vg} ${Qi}ms ease-out`},false:{animation:`${Xg} ${Qi}ms ease-out`}}}}),Yn=jn("div",{transition:`all ${Qi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Jn(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=jg(null);return Zn.createElement(Ip,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Zn.createElement(Hi,{className:"collapsible_trigger",onClick:a},s),Zn.createElement(Kn,{className:"collapsible_content",open:e},r),l==="bottom"&&Zn.createElement(Hi,{className:"collapsible_trigger",onClick:a},s))}i(Jn,"CustomCollapsible");import{css as Ep,darkTheme as mo,IconButton as Kg,styled as Re,TextField as Yg}from"@rango-dev/ui";var Ap=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Np=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Zg=Re("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${mo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${mo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${mo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Wp=Re(Zg,{alignSelf:"stretch",minHeight:"93px"}),Mp=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Lp=Re(Kg,{position:"absolute",left:"$20"}),Bp=Re("div",{paddingTop:"$20"}),_p=Ep({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Pp=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),$p=Ep({paddingTop:"$5"}),Dp=Re("div",{display:"flex"}),Fp=Re(Yg,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Op=Re("div",{overflow:"visible",width:"100%"}),Up=Re("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${mo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$info100",[`.${mo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${mo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as it}from"@lingui/core";import{Button as Fy,Divider as Sa,Image as Oy,MessageBox as fr,SelectableWallet as Uy,Typography as _c,WalletState as Pc}from"@rango-dev/ui";import ce,{useEffect as $c,useState as Co}from"react";import{WalletState as Rn}from"@rango-dev/ui";import{useWallets as Jg}from"@rango-dev/wallets-react";import{detectMobileScreens as Rg,KEPLR_COMPATIBLE_WALLETS as eh,WalletTypes as zo}from"@rango-dev/wallets-shared";import{useCallback as th,useEffect as oh,useState as nh}from"react";var rh=Object.values(zo);function fo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=Jg(),{connectedWallets:u}=R(),c=y().blockchains(),d=Tl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId})||rh,m=il(a,l,d,e);m=Rg()?m.filter(b=>b.showOnMobile||a(b.type).installed):m;let f=ul(m),[h,S]=nh(""),C=i(b=>!u.find(v=>v.walletType===b&&v.chain===e),"isExperimentalChainNotAdded"),g=i(async(b,v)=>{let w=a(b);try{if(h&&S(""),w.connected)await s(b);else{let E=!!m.find(W=>W.state===Rn.CONNECTED);if(r?.multiWallets===!1&&E)return;o?.(b),await p(b,void 0,v),n?.(b)}}catch(E){S("Error: "+E?.message)}},"handleClick"),T=th(()=>{let b=m?.filter(v=>v.state===Rn.CONNECTING)||[];for(let v of b)s(v.type)},[fl(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");oh(()=>()=>{T()},[]);let x=i(b=>{let v=b.find(E=>E.type===zo.DEFAULT);return!v||v.state===Rn.NOT_INSTALLED?!1:b.filter(E=>E.state!=Rn.NOT_INSTALLED&&![zo.DEFAULT,zo.WALLET_CONNECT_2].includes(E.type)&&l(E.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),I=i((b,v,w)=>bn(w,v)&&C(b)&&!eh.includes(b)||b==zo.DEFAULT&&!x(m),"shouldExcludeWallet");return{list:f.filter(b=>!I(b.type,e??"",c)),error:h,handleClick:g,disconnectConnectingWallets:T,disconnectWallet:k}}i(fo,"useWalletList");import{i18n as Ec}from"@lingui/core";import{styled as Nc,Typography as Ly,Wallet as By,WalletState as Ac}from"@rango-dev/ui";import to,{useState as ga}from"react";import{useManager as cy}from"@rango-dev/queue-manager-react";import{BottomLogo as uy,Divider as Tc,Header as my}from"@rango-dev/ui";import ye,{useEffect as ua,useRef as kc,useState as dy}from"react";import{useRef as ih}from"react";function er(){return window.self!==window.top}i(er,"isAppLoadedIntoIframe");function Gi(){let t=ih(null),{iframe:e}=y(),o=er()&&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(Gi,"useIframe");import{useNavigate as ah}from"react-router-dom";function et(){let t=ah();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as Zi,darkTheme as mh,lightTheme as dh}from"@rango-dev/ui";import{useEffect as fh,useState as gh}from"react";import{theme as ch,darkColors as uh}from"@rango-dev/ui";import Ki from"react";function sh(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,h=c[m],S={[`${e}${f}`]:tr(t,h)};Object.assign(d,S)}return{...d,[e]:t}}i(sh,"generateShades");function tr(t,e){let[o,n,r]=zp(t);return`#${Vi(o+e)}${Vi(n+e)}${Vi(r+e)}`}i(tr,"generateShade");function zp(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(zp,"convertToRGB");function Vi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Vi,"clamp");function qp(t){let[s,l,p]=zp(t);return(s*299+l*587+p*114)/1e3>188}i(qp,"isBright");var Xi=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,...sh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Qp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),lh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Qp(o%52)+e;return Qp(o%52)+e},"toAlphabeticName"),ph=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ji=i(t=>lh(ph(5381,JSON.stringify(t))>>>0),"toHash");function Yi(t){let e=ch.colors,o=Xi({...e,...uh},!0,t?.dark),n=Xi(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:`${Ti}-light-${ji(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ti}-dark-${ji(p)}`,tokens:p}}return{light:s,dark:l}}i(Yi,"customizedThemeTokens");function Hp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ki.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ki.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ki.cloneElement(e,{key:l}))}}),o}i(Hp,"joinList");function or(t){let{colors:e,fontFamily:o=Sl,borderRadius:n=hl,secondaryBorderRadius:r=yl}=t,[a,s]=gh("light"),{theme:l}=y(),{dark:p,light:u}=Yi(e),c=Zi({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,dh.className],m=[c.className,mh.className];if(u){let h=Zi(u.id,u.tokens);d.push(h.className)}if(p){let h=Zi(p.id,p.tokens);m.push(h.className)}return fh(()=>{let h=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",h),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",h)}},[]),{activeTheme:i(()=>{let h=d.join(" "),S=m.join(" ");return l==="auto"?a==="dark"?S:h:l==="dark"?S:h},"getActiveTheme")}}i(or,"useTheme");var dt=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 Gp}from"@lingui/core";import{Alert as hh,Button as yh}from"@rango-dev/ui";import Vp from"react";function Ji(t){return Vp.createElement(hh,{action:Vp.createElement(yh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Gp.t("Activate this tab")),type:"warning",variant:"alarm",title:Gp.t("Another tab is open and handles transactions.")})}i(Ji,"ActivateTabAlert");import{i18n as Ri}from"@lingui/core";import{Button as Sh,Divider as Ch,MessageBox as Th}from"@rango-dev/ui";import nr from"react";function ea(t){let{open:e,onClose:o,onConfirm:n}=t;return nr.createElement(oe,{open:e,dismissible:!0,onClose:o,container:L()},nr.createElement(Th,{title:Ri.t("Activate current tab"),type:"warning",description:Ri.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.")},nr.createElement(Ch,{size:20}),nr.createElement(Sh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Ri.t("Confirm"))))}i(ea,"ActivateTabModal");import{ChevronLeftIcon as vh}from"@rango-dev/ui";import Rp from"react";import{css as kh,darkTheme as Xp,IconButton as xh,styled as Yt}from"@rango-dev/ui";var ft=Yt(xh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$info100",[`.${Xp} &`]:{backgroundColor:"$neutral"}}}),jp=Yt("div",{position:"absolute",background:"$secondary500",[`.${Xp} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),go=Yt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Kp=Yt("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"}}}}),Yp=Yt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Zp=Yt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Jp=kh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),rr=Yt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ta(t){return Rp.createElement(ft,{variant:"ghost",size:"small",onClick:t.onClick},Rp.createElement(vh,{color:"black",size:16}))}i(ta,"BackButton");import{i18n as wh}from"@lingui/core";import{Button as bh,Typography as Ih}from"@rango-dev/ui";import oa from"react";function na(t){return oa.createElement(go,null,oa.createElement(bh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},oa.createElement(Ih,{variant:"label",size:"medium",color:"error500"},wh.t("Cancel"))))}i(na,"CancelButton");import{i18n as Eh}from"@lingui/core";import{Image as Ah,Tooltip as Nh,WalletIcon as Wh}from"@rango-dev/ui";import Zt from"react";function ra(t){let{list:e}=fo({}),o=e.filter(r=>r.state==="connected"),n=o.length?Zt.createElement("div",{className:Jp()},o.map(r=>Zt.createElement(rr,{key:r.title},Zt.createElement(Ah,{src:r.image,size:14})))):Eh.t("Connect Wallet");return Zt.createElement(Nh,{container:t.container,side:"bottom",content:n},Zt.createElement(ft,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Zt.createElement(jp,null),Zt.createElement(Wh,{size:18,color:"black"})))}i(ra,"WalletButton");import{i18n as sr}from"@lingui/core";import{NotificationsIcon as ty,Popover as oy,SettingsIcon as ny,Tooltip as lr,TransactionIcon as ry}from"@rango-dev/ui";import we from"react";import{i18n as Uh}from"@lingui/core";import{EventSeverity as ac}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as sc,ChevronRightIcon as zh,Divider as qh,Typography as Qh}from"@rango-dev/ui";import qe from"react";import{useNavigate as Hh}from"react-router-dom";import{create as Mh}from"zustand";import{persist as Lh,subscribeWithSelector as Bh}from"zustand/middleware";var ze=_t(Mh()(Lh(Bh((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 _h,ListItemButton as Ph,styled as qo}from"@rango-dev/ui";var ec=qo("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),tc=qo("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),oc=qo(Ph,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${_h} &`]:{backgroundColor:"$error600"}}}}}),nc=qo("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),rc=qo("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as $h}from"@lingui/core";import{Divider as Dh,NoNotificationIcon as Fh,Typography as Oh}from"@rango-dev/ui";import ir from"react";function ic(){return ir.createElement(rc,null,ir.createElement(Fh,{color:"secondary",size:26}),ir.createElement(Dh,{size:12}),ir.createElement(Oh,{variant:"body",size:"medium",color:"neutral700"},$h.t("There are no notifications.")))}i(ic,"NotificationNotFound");var Gh=4;function ia(){let t=Hh(),{getUnreadNotifications:e}=ze(),o=e(),n=y().blockchains(),r=y().tokens(),a=o.sort((l,p)=>p.creationTime-l.creationTime).slice(0,Gh),s=i(l=>{t(`${U.swaps}/${l}`)},"handleOnClick");return qe.createElement(ec,null,a.length?qe.createElement(tc,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),h=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(qh,{size:4}),qe.createElement(oc,{onClick:()=>s(c),actionRequired:d.messageSeverity===ac.WARNING,title:qe.createElement(Qh,{variant:"body",size:"small",color:d.messageSeverity===ac.WARNING?"$foreground":"$neutral700"},Uh.t(d.message)),id:c,start:qe.createElement(nc,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(sc,{tokenImage:m?m.image:"",chainImage:f?f.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(sc,{tokenImage:h?h.image:"",chainImage:S?S.logo:"",size:"small"}))),end:qe.createElement(zh,{size:12,color:"gray"})}))})):qe.createElement(ic,null))}i(ia,"NotificationContent");import{useManager as Vh}from"@rango-dev/queue-manager-react";import{InProgressIcon as Xh}from"@rango-dev/ui";import lc from"react";var jh=i(()=>{let{manager:t}=Vh();return dt(t).map(({swap:o})=>o).find(o=>o.status==="running")?lc.createElement(Zp,null,lc.createElement(Xh,{color:"info",size:6})):null},"InProgressTransactionBadge"),pc=jh;import{RefreshProgressButton as Kh}from"@rango-dev/ui";import aa,{useEffect as Yh,useState as cc}from"react";var Zh=1e3,uc=60,Jh=100;function ar({onClick:t}){let[e,o]=cc(0),[n,r]=cc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Yh(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===uc&&l()},Zh):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 aa.createElement(ft,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},aa.createElement(Yp,{onTransitionEnd:()=>r(!1),isRefetched:n},aa.createElement(Kh,{size:22,color:t?"black":"gray",progress:e/uc*Jh})))}i(ar,"RefreshButton");import{EventSeverity as Rh}from"@rango-dev/queue-manager-rango-preset";import{Typography as ey}from"@rango-dev/ui";import mc from"react";function dc(){let{getUnreadNotifications:t}=ze(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Rh.WARNING);return o?mc.createElement(Kp,{isSever:n},mc.createElement(ey,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(dc,"UnreadNotificationsBadge");function Jt(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ze("notification",s)||r.includes("notifications");return we.createElement(we.Fragment,null,!r.includes("refresh")&&we.createElement(lr,{container:a||L(),side:"top",content:sr.t("Refresh")},we.createElement(ar,{onClick:e})),!l&&we.createElement(oy,{align:"end",alignOffset:-88,collisionPadding:{right:20,left:20},container:L(),content:we.createElement(ia,null)},we.createElement("div",null,we.createElement(lr,{container:L(),side:"top",content:sr.t("Notifications")},we.createElement(ft,{size:"small",variant:"ghost"},we.createElement(ty,{size:18,color:"black"}),we.createElement(dc,null))))),!r.includes("settings")&&we.createElement(lr,{container:L(),side:"top",content:sr.t("Settings")},we.createElement(ft,{size:"small",variant:"ghost",onClick:n},we.createElement(ny,{size:18,color:"black"}))),!r.includes("history")&&we.createElement(lr,{container:L(),side:"top",content:sr.t("Transactions History")},we.createElement(ft,{size:"small",variant:"ghost",onClick:o},we.createElement(ry,{size:18,color:"black"}),we.createElement(pc,null))))}i(Jt,"HeaderButtons");import{i18n as sa}from"@lingui/core";import{Divider as gc,MessageBox as sy,RefreshIcon as ly}from"@rango-dev/ui";import ho from"react";import{Button as iy,styled as ay}from"@rango-dev/ui";var fc=ay(iy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function la(t){let{open:e,onClose:o}=t;return ho.createElement(oe,{open:e,dismissible:!0,onClose:o,container:L()},ho.createElement(sy,{title:sa.t("Something went wrong"),type:"error",description:sa.t("Something went wrong. Please refresh the app.")},ho.createElement(gc,{size:30}),ho.createElement(fc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},ho.createElement(ly,{size:20,color:"primary"}),ho.createElement(gc,{size:4,direction:"horizontal"}),sa.t("Refresh"))))}i(la,"RefreshModal");function pa(t){let e=t.target;if(e){let o=e.scrollTop,n=L();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(pa,"onScrollContentAttachStatusToContainer");import{css as py,styled as ca}from"@rango-dev/ui";var hc="700px",pr=py({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),yc=ca("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:hc},fixed:{height:hc}}}}),Sc=ca("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Cc=ca("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}=Gi(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=dy(!1),c=R.use.connectedWallets(),{config:{features:d,theme:m}}=y(),{watermark:f}=ne(),h=f==="FULL",{activeTheme:S}=or(m||{}),C=Ze("connectWalletButton",d),{isActiveTab:g,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:x,activateCurrentTab:I}=ne(),b=et(),{manager:v}=cy(),E=dt(v).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),W=i(()=>I(Xt.forceClaim,E),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,M=kc(null),V=kc(null);return ua(()=>(er()&&V.current&&e(V.current),()=>{o()}),[]),ua(()=>(M.current?.addEventListener("scroll",pa),()=>{M.current?.removeEventListener("scroll",pa)}),[]),ua(()=>{u(l==="failed")},[l]),ye.createElement(yc,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${pr()}`,ref:V},ye.createElement(my,{prefix:ye.createElement(ye.Fragment,null,Q&&ye.createElement(ta,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:ye.createElement(ye.Fragment,null,r.suffix,r.onWallet&&!C&&ye.createElement(ra,{container:L(),onClick:B,isConnected:!!c?.length}),r.onCancel&&ye.createElement(na,{onClick:r.onCancel}))}),ye.createElement(Sc,{ref:M},n),ye.createElement(ea,{open:k,onClose:()=>x(!1),onConfirm:W}),ye.createElement(Cc,null,ye.createElement("div",{className:"footer__content"},T&&!g&&ye.createElement("div",{className:"footer__alert"},ye.createElement(Ji,{onActivateTab:W}),ye.createElement(Tc,{size:10})),a),ye.createElement(Tc,{size:12}),ye.createElement("div",{className:`footer__logo ${h?"logo__show":"logo__hidden"}`},ye.createElement(uy,null))),ye.createElement(la,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as fy}from"@rango-dev/ui";var xc="$20 $20 $10 $20",Qo=fy("div",{padding:xc,overflowY:"auto",flexGrow:1});import{styled as gy}from"@rango-dev/ui";var ue=gy("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 Ty}from"@rango-dev/ui";import da from"react";import{i18n as yo}from"@lingui/core";import{Image as Sy,MessageBox as ma,WalletState as Cy}from"@rango-dev/ui";import Rt from"react";import{keyframes as hy,styled as cr}from"@rango-dev/ui";var vN=cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),ur=cr("div",{position:"relative"}),yy=hy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mr=cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${yy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vc=cr("div",{"& img":{borderRadius:"50%"}});function wc(t){let{state:e,image:o,error:n}=t;return e===Cy.CONNECTED?Rt.createElement(ma,{type:"success",title:yo.t("Wallet Connected"),description:yo.t("Your wallet is connected, you can use it to swap.")}):n?Rt.createElement(ma,{type:"error",title:yo.t("Failed to Connect"),description:n||yo.t("Your wallet is not connected. Please try again.")}):Rt.createElement(ma,{type:"loading",title:yo.t("Connecting to your wallet"),description:yo.t("Click connect in your wallet popup."),icon:Rt.createElement(ur,null,Rt.createElement(vc,null,Rt.createElement(Sy,{src:o,size:45})),Rt.createElement(mr,null))})}i(wc,"ModalContent");function Ho(t){let{open:e,onClose:o,...n}=t;return da.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},da.createElement(wc,{...n}),da.createElement(Ty,{direction:"vertical",size:32}))}i(Ho,"WalletModal");import{i18n as fa}from"@lingui/core";import{Button as xy,Checkbox as vy,Image as Ic,ListItemButton as wy,MessageBox as by,Radio as Iy,RadioRoot as Ey}from"@rango-dev/ui";import{Namespace as So}from"@rango-dev/wallets-shared";import Ie,{useMemo as Ay,useState as Ny}from"react";import{styled as ky}from"@rango-dev/ui";var bc=ky("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Wy={[So.Evm]:"ETH",[So.Solana]:"SOLANA",[So.Cosmos]:"COSMOS",[So.Utxo]:"BTC",[So.Starknet]:"STARKNET",[So.Tron]:"TRON"},My=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function eo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Ny([]),a=y().blockchains(),s=Ay(()=>o?.map(u=>({name:u,logo:My(a,Wy[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(Ey,{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(by,{type:"info",title:fa.t("Select chain types"),description:fa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ie.createElement(ur,null,Ie.createElement(rr,null,Ie.createElement(Ic,{src:t.image,size:45})),Ie.createElement(mr,null))}),Ie.createElement(bc,null,p(Ie.createElement(Ie.Fragment,null,s?.map(u=>Ie.createElement(wy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ie.createElement(Ic,{src:u.logo,size:22}),end:e?Ie.createElement(Iy,{value:u.name}):Ie.createElement(vy,{checked:n.includes(u.name)})}))))),Ie.createElement(xy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},fa.t("Confirm")))}i(eo,"WalletNamespacesModal");var _y=Nc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Py=Nc(ue,{textAlign:"center"}),dr=3e3,ha=300;function Wc(){let{fetchStatus:t}=y(),[e,o]=ga(!1),[n,r]=ga(null),[a,s]=ga(""),l=null,p=ne.use.isActiveTab(),{list:u,handleClick:c,error:d,disconnectConnectingWallets:m}=fo({onBeforeConnect:g=>{l=setTimeout(()=>{o(!0),s(g)},ha)},onConnect:()=>{l&&clearTimeout(l),setTimeout(()=>{o(!1)},dr)}}),f=i(()=>{m(),o(!1)},"handleCloseWalletModal"),h=u.find(g=>g.type===a),S=h?.image||"",C=h?.state||Ac.NOT_INSTALLED;return to.createElement(le,{header:{title:Ec.t("Connect Wallets")}},to.createElement(Py,null,to.createElement(Ly,{variant:"title",size:"xmedium",align:"center"},Ec.t("Choose a wallet to connect.")),to.createElement(_y,null,u.map((g,T)=>{let k=`wallet-${T}-${g.type}`;return to.createElement(By,{key:k,...g,container:L(),onClick:x=>{g.namespaces&&g.state===Ac.DISCONNECTED?r({providerType:x,providerImage:g.image,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):c(x)},isLoading:t==="loading",disabled:!p})}),to.createElement(Ho,{open:!!e,onClose:f,image:S,state:C,error:d}),to.createElement(eo,{open:!!n,onClose:()=>r(null),onConfirm:g=>{c(n?.providerType,g),r(null)},image:n?.providerImage,namespaces:n?.availableNamespaces,singleNamespace:n?.singleNamespace}))))}i(Wc,"WalletsPage");import{keyframes as $y,styled as ya}from"@rango-dev/ui";var Mc=ya("div",{position:"relative"}),Dy=$y({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Lc=ya("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Dy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Bc=ya("div",{"& img":{borderRadius:"50%"}});var zy=7;function Ca(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=y(),[u,c]=Co(""),[d,m]=Co(null),[f,h]=Co(!1),[S,C]=Co(null),[g,T]=Co(null),{suggestAndConnect:k}=gr(),x=null,{list:I,error:b,handleClick:v,disconnectWallet:w,disconnectConnectingWallets:E}=fo({chain:e,onBeforeConnect:A=>{x=setTimeout(()=>{c(A)},ha)},onConnect:()=>{x&&clearTimeout(x),setTimeout(()=>{c("")},dr)}}),[W,B]=Co(I),Q=I.length,M=r&&Q-r>0,V=i(async A=>{h(!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");$c(()=>{B(A=>{let te=I.findIndex(q=>o(q.type,e));return M&&te>1?[I[te]].concat(I.filter((q,Z)=>Z!==te)):A.map(q=>I.find(Z=>Z.type===q.type)??q)})},[JSON.stringify(I)]);let re=document.getElementById(he.SWAP_BOX_ID);$c(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>C(null),dr)),()=>{A&&clearTimeout(A)}},[S]);let H=i(()=>{E(),c("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,W.slice(0,r).map(A=>{let te=ml({connectedWallets:l,walletType:A.type,chain:e}),q=te?En(te,zy):"",Z=bn(p(),e),me=!l.find(X=>X.walletType===A.type&&X.chain===e),ge=Z&&me&&A.state===Pc.CONNECTED,_=ge?it.t({id:"Add {chain} chain",values:{chain:e}}):q,Oe=i(async()=>{A.state===Pc.DISCONNECTED?A.namespaces?Y(A):v(A.type):A.namespaces&&!q?(await w(A.type),Y(A)):ge?(m({walletType:A.type,chain:e,address:te??""}),h(!0)):n({walletType:A.type,chain:e,address:te??""})},"onClick"),P=d?.chain?Wl(d.chain,p()):void 0;return ce.createElement(ce.Fragment,{key:`${A.title}_${P}`},ce.createElement(Ho,{open:u===A.type,onClose:H,image:A.image,state:A.state,error:b}),ce.createElement(eo,{open:!!g,onClose:()=>T(null),onConfirm:X=>{v(g?.providerType,X),T(null)},image:g?.providerImage,namespaces:g?.availableNamespaces,singleNamespace:g?.singleNamespace}),!!d&&ce.createElement(oe,{open:!!d&&f,container:re,onClose:()=>{m(null)}},ce.createElement(fr,{title:it.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),type:"warning",description:it.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}})},ce.createElement(Sa,{size:18}),ce.createElement(Sa,{size:32}),ce.createElement(Fy,{onClick:V.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},it.t("Confirm")))),S&&ce.createElement(oe,{open:!!S,onClose:C.bind(null,null),container:re},S==="in-progress"&&ce.createElement(fr,{type:"loading",title:it.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),description:it.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}}),icon:ce.createElement(Mc,null,ce.createElement(Bc,null,ce.createElement(Oy,{src:A.image,size:45})),ce.createElement(Lc,null))}),S==="completed"&&ce.createElement(fr,{type:"success",title:it.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:P}}),description:it.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:P}})}),S==="rejected"&&ce.createElement(fr,{type:"error",title:it.t("Request Rejected"),description:it.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:P}})}),ce.createElement(Sa,{direction:"vertical",size:32})),ce.createElement(Uy,{key:A.type,description:_,onClick:Oe,selected:o(A.type,e),disabled:!s,...A}))}),M&&ce.createElement(Wp,{selected:!1,onClick:a},ce.createElement(_c,{variant:"label",size:"medium"},it.t("Show more wallets"),ce.createElement(_c,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(Ca,"WalletList");var Ky=2;function Fc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=y().config,l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=j(),{connectedWallets:h,selectWallets:S}=R(),[C,g]=ko(""),[T,k]=ko([]),[x,I]=ko(""),[b,v]=ko(null),[w,E]=ko(!!m),W=Vt({filter:"all",quote:p}),B=Vt({filter:"required",quote:p}),Q=l.find(P=>P.name===p?.swaps[p?.swaps.length-1].to.blockchain),M=i(P=>B.includes(P),"isWalletRequiredFor"),V=i(()=>h.filter(P=>P.selected&&W.includes(P.chain)),"getInitialSelectableWallets"),[Y,re]=ko(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&&!$n(Q,m),q=i(()=>{E(!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&&g(""),A(P.walletType,P.chain))return;let ie=h.find(Ee=>Ee.walletType===P.walletType&&Ee.chain===P.chain);ie&&(n(),P.chain===Q?.name&&w&&(E(!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([]),I(""),v(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&&v(X.quoteUpdate),P.error&&I(Yl(P.error)),!P.error&&!X?.balance?.messages.length?me():k(X?.balance?.messages??[])},"onConfirmWallets");Xy(()=>{re(P=>P.concat(h.filter(X=>!!!P.find(Ee=>Ee.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[h.length]);let _=document.getElementById(he.SWAP_BOX_ID),Oe=jy();return O.createElement(oe,{open:e,onClose:()=>{c||Oe("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:O.createElement(Dp,null,O.createElement(Dc,{loading:a,disabled:fp(a,w,m,p,Y,Q),onClick:ge,variant:"contained",type:"primary",fullWidth:!0,size:"large"},gt.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:O.createElement(Mp,null,O.createElement(Lp,{variant:"ghost",onClick:g.bind(null,"")},O.createElement(Hy,{size:16})),O.createElement(hr,{variant:"headline",size:"small"},gt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(C,l)}})))},anchor:"center"},O.createElement(oe,{open:H,onClose:k.bind(null,[]),container:_},O.createElement(Gy,{title:gt.t("Insufficient account balance"),type:"error",description:O.createElement(qy,{messages:T??[]})},O.createElement(Dc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},gt.t("Proceed anyway")))),C&&O.createElement(Bp,null,O.createElement("div",{className:_p()},O.createElement(Ca,{chain:C,isSelected:A,selectWallet:Z,onShowMore:g.bind(null,C)}))),!C&&O.createElement(O.Fragment,null,x&&O.createElement(O.Fragment,null,O.createElement(Ta,{variant:"alarm",type:"error",title:gt.t(x)}),O.createElement(To,{size:12})),b&&O.createElement(O.Fragment,null,O.createElement(Ta,{variant:"alarm",type:"warning",title:Xn(b)}),O.createElement(To,{size:12})),O.createElement(Op,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(Ap,null,O.createElement(hr,{variant:"title",size:"xmedium"},gt.t({id:"Your {blockchainName} wallets",values:{blockchainName:ie?.shortName}})),O.createElement(hr,{variant:"label",color:"$neutral700",size:"medium"},gt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:ie?.shortName}}))),O.createElement(To,{size:24}),O.createElement(Np,null,O.createElement(Ca,{chain:P,isSelected:A,selectWallet:Z,limit:Ky,onShowMore:()=>g(ie?.name??"")})),!Ge&&O.createElement(To,{size:32}),Ge&&s?.customDestination&&O.createElement(Pp,null,O.createElement(Jn,{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(Up,null,O.createElement("div",{className:"button__content"},O.createElement(Vy,{size:18,color:"info"}),O.createElement(To,{size:4,direction:"horizontal"}),O.createElement(hr,{variant:"label",size:"medium"},gt.t("Send to a different address"))),O.createElement(Yn,{orientation:w?"up":"down"},O.createElement(Qy,{size:10,color:"gray"}))),onClickTrigger:()=>E(Ae=>!Ae)},O.createElement(To,{size:4}),O.createElement(Fp,{placeholder:gt.t("Your destination address"),value:m||"",onChange:Ae=>{let Le=Ae.target.value;Le.length?f(Le.length?Le:null):(E(!1),f(null))},...!m&&{autoFocus:!0}})),te&&O.createElement("div",{className:$p()},O.createElement(Ta,{variant:"alarm",type:"error",title:gt.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Fc,"ConfirmWalletsModal");import{i18n as fS}from"@lingui/core";import{Alert as gS,Button as hS,InfoIcon as yS}from"@rango-dev/ui";import Xe from"react";import{Alert as Jy,Button as Ry,Divider as va,NoRouteIcon as eS,RefreshIcon as tS,Typography as Gc}from"@rango-dev/ui";import Ve from"react";import{i18n as Oc}from"@lingui/core";var Yy=24,Zy=60;function Uc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Oc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Oc.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(Uc,"makeInfo");var ka=(o=>(o[o.small=Yy]="small",o[o.large=Zy]="large",o))(ka||{}),xa=(o=>(o.small="small",o.large="medium",o))(xa||{});import{styled as yr}from"@rango-dev/ui";var zc=yr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),qc=yr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Qc=yr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Hc=yr("div",{padding:"$6 $0"});function Go(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Uc(o,r,()=>a(s,!0),e);return Ve.createElement(zc,null,Ve.createElement(eS,{size:ka[n],color:"gray"}),Ve.createElement(va,{size:4}),Ve.createElement(Gc,{variant:"title",size:xa[n]},ee().noResultError.title),n==="large"&&Ve.createElement(va,{size:4}),!!l.description&&Ve.createElement(qc,{size:n},Ve.createElement(Gc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(va,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(Qc,{size:n},Ve.createElement(Jy,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(Ry,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(Hc,null,Ve.createElement(tS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Go,"NoResult");import{i18n as Vo}from"@lingui/core";import{Button as nS,Divider as rS,MessageBox as iS,Typography as aS,WarningIcon as sS}from"@rango-dev/ui";import vt from"react";import{Typography as Kc}from"@rango-dev/ui";import ba from"react";import{darkTheme as oS,styled as Sr}from"@rango-dev/ui";var Vc=Sr("div",{width:"100%"}),wa=Sr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Xc=Sr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${oS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),jc=Sr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Yc(t){let{title:e,value:o,valueColor:n}=t;return ba.createElement(Xc,null,ba.createElement(Kc,{size:"medium",variant:"label",className:"_title"},e),ba.createElement(Kc,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Yc,"QuoteErrorsModalItem");function Zc(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Vo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Vo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Vo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Vo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return vt.createElement(oe,{footer:vt.createElement(nS,{type:"primary",size:"large",prefix:vt.createElement(sS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:L()},vt.createElement(iS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),vt.createElement(wa,null,vt.createElement(rS,{size:"4"}),vt.createElement(aS,{size:"small",variant:"title"},Vo.t("Details")),vt.createElement(wa,null,l.map((p,u)=>vt.createElement(Yc,{key:u,...p})))))}i(Zc,"HighValueLossWarningModal");import{i18n as Ia}from"@lingui/core";function Jc(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=Ia.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&&(kt(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=Ia.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=Ia.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Jc,"makeAlerts");import{i18n as xo}from"@lingui/core";import{Button as Rc,Divider as eu,MessageBox as lS,Typography as pS}from"@rango-dev/ui";import oo from"react";import{useNavigate as cS}from"react-router-dom";function tu(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=cS(),u=e??o;return oo.createElement(oe,{anchor:"bottom",open:n,prefix:oo.createElement(Rc,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},oo.createElement(pS,{variant:"label",size:"medium",color:"$neutral900"},xo.t("Change settings"))),container:L(),onClose:r},oo.createElement(lS,{type:"warning",title:s.type===3?xo.t("High slippage"):xo.t("Low slippage"),description:s.type===3?xo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):xo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},oo.createElement(eu,{size:18}),oo.createElement(eu,{size:32}),oo.createElement(Rc,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},xo.t("Confirm anyway"))))}i(tu,"SlippageWarningModal");import{Button as uS,MessageBox as mS,WarningIcon as dS}from"@rango-dev/ui";import Cr from"react";function ou(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Cr.createElement(oe,{footer:Cr.createElement(uS,{type:"primary",size:"large",prefix:Cr.createElement(dS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:L()},Cr.createElement(mS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(ou,"UnknownPriceWarningModal");function Xo(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=Jc(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Xe.createElement(Xe.Fragment,null,m&&Xe.createElement(Go,{error:o,fetch:s}),!!f&&Xe.createElement(Vc,null,Xe.createElement(gS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Xe.createElement(jc,{onClick:l},Xe.createElement(yS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Xe.createElement(hS,{size:"xxsmall",type:f.alertType,onClick:c},fS.t("Change"))}})),e&&Xe.createElement(Xe.Fragment,null,e.type===0&&Xe.createElement(Zc,{...d,warning:e}),(e.type===3||e.type===2)&&Xe.createElement(tu,{...d,warning:e}),e.type===1&&Xe.createElement(ou,{...d,warning:e})))}i(Xo,"QuoteWarningsAndErrors");import jS from"bignumber.js";import Br from"react";import{i18n as no}from"@lingui/core";import{Alert as PS,Divider as wo,FullExpandedQuote as $S,InfoIcon as DS,QuoteTag as FS,StepDetails as OS,TokenAmount as US,Tooltip as Pu,Typography as bo}from"@rango-dev/ui";import _a from"bignumber.js";import $,{useRef as zS,useState as qS}from"react";import{styled as Ea}from"@rango-dev/ui";var Aa=Ea("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),nu=Ea("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ru=Ea("div",{width:"100%",display:"flex"});import*as Tr from"@radix-ui/react-collapsible";import{Button as SS,css as jo,darkTheme as Ce,Image as iu,styled as $e,Typography as CS}from"@rango-dev/ui";var TS=300,au=$e(Tr.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"}}]}),su=jo({padding:"$10 $15"}),lu=$e(SS,{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"}}}),pu=$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$info100",[`.${Ce} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ce} &`]:{backgroundColor:"$neutral400"}}}}]}),cu=jo({width:"100%",padding:"$15 $15 $10 $15"}),uu=jo({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),vo=jo({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),mu=jo({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ce} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),du=$e(Tr.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:{[`& ${iu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${iu}`]:{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"}}}),fu=$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"}}}}),gu=$e(Kn,{width:"100%",background:"inherit"}),Na=$e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${TS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),IL=$e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),hu=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ce} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),yu=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Wa=$e(CS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Su=$e("div",{display:"flex",flexWrap:"wrap"}),Ma=$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"}}}}),Cu=$e("div",{display:"flex"}),kr=$e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ce} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ut}from"@lingui/core";import{ChevronDownIcon as xS,CloseIcon as vS,Divider as wr,IconButton as wS,QuoteCost as bS,Tooltip as IS,Typography as at}from"@rango-dev/ui";import K,{useState as vu}from"react";import{css as kS,styled as xr}from"@rango-dev/ui";var vr=xr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),La=xr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Tu=xr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ku=xr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),xu=kS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var ES=i(t=>t.fee.isZero()?null:K.createElement(vr,null,K.createElement(at,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(at,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function wu(t){let[e,o]=vu(!1),[n,r]=vu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=L(),f=op(d);return K.createElement(K.Fragment,null,K.createElement(bS,{onClickFee:c?h=>{h.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Ut.t("View more info"):void 0,tooltipContainer:m}),K.createElement(oe,{container:m,open:e,header:K.createElement(ku,null,K.createElement(at,{variant:"title",size:"medium"},Ut.t("Gas & Fee Explanation")),K.createElement(wS,{onClick:()=>o(!1),variant:"ghost"},K.createElement(vS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(Tu,null,K.createElement(at,{variant:"title",size:"small"},Ut.t("Details")),K.createElement(wr,{size:10}),Object.entries(f.payable).flatMap(([h,S])=>S.map((C,g)=>{let T=`payable-fee-${g}`,k=Pi(C);return K.createElement(vr,{key:T},K.createElement(at,{variant:"label",size:"medium",color:"neutral600"},Mi[h]),K.createElement(IS,{content:pe(C.amount),container:m},K.createElement(at,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),K.createElement(vr,{className:"total_payable_fee"},K.createElement(at,{variant:"label",size:"medium"},Ut.t("Total Payable Fee")),K.createElement(at,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(La,null),Object.keys(f.nonePayable).length&&K.createElement(Jn,{triggerAnchor:"bottom",onClickTrigger:()=>r(h=>!h),trigger:K.createElement("div",{className:xu()},K.createElement(at,{size:"small",variant:"body",color:"neutral700"},n?Ut.t("Hide non-payable fees"):Ut.t("Show non-payable fees")),K.createElement(wr,{size:4,direction:"horizontal"}),K.createElement(Yn,{orientation:n?"up":"down"},K.createElement(xS,{size:12,color:"gray"}))),open:n},K.createElement(at,{size:"small",variant:"title"},Ut.t("Description")),K.createElement(wr,{size:4}),K.createElement(at,{size:"small",variant:"body",color:"neutral700"},Ut.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),K.createElement(wr,{size:10}),Object.entries(f.nonePayable).map(([h,S],C)=>{let g=tp(S),T=Mi[h],k=`non-payable-fee-${C}`;return K.createElement(ES,{key:k,fee:g,label:T})}),K.createElement(La,null)))))}i(wu,"QuoteCostDetails");import{i18n as Eu}from"@lingui/core";import{TokenAmount as Au}from"@rango-dev/ui";import br from"react";import{css as AS,styled as NS}from"@rango-dev/ui";var bu=NS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Iu=AS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Ko(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return br.createElement(bu,null,br.createElement(Au,{direction:"horizontal",label:Eu.t("Swap input"),type:"input",tooltipContainer:L(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),br.createElement("div",{className:Iu()}),br.createElement(Au,{direction:"horizontal",tooltipContainer:L(),label:Eu.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(Ko,"QuoteSummary");import{i18n as Bu}from"@lingui/core";import{ChevronDownIcon as LS,ChevronRightIcon as BS,Divider as Ba,Image as _S,Tooltip as Wr,Typography as Er}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as WS,useState as Yo}from"react";var Nu=480,Wu=768,Mu=1024,Lu=1200,MS=i(()=>{let[t,e]=Yo(!1),[o,n]=Yo(!1),[r,a]=Yo(!1),[s,l]=Yo(!1),[p,u]=Yo(!1),c=i(()=>{e(window.innerWidth<=Nu),n(window.innerWidth>Nu&&window.innerWidth<=Wu),a(window.innerWidth>Wu&&window.innerWidth<=Mu),l(window.innerWidth>Mu&&window.innerWidth<=Lu),u(window.innerWidth>Lu)},"handleResize");return WS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Ir=MS;var Ar=4,Nr=6,Zo=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||L();return D.createElement(Wr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},D.createElement(fu,{className:n,state:a},D.createElement(_S,{src:o,size:16})))},"ImageComponent");function _u(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||L(),u=r.length,c=Tp(r),{isTablet:d,isMobile:m}=Ir();return D.createElement(du,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(h=>!h)}},D.createElement("div",{className:vo()},D.createElement(Er,{variant:"body",size:"xsmall"},Bu.t("Via:")),D.createElement(Ba,{direction:"horizontal",size:4}),r.map((f,h)=>{let S=`item-${h}`,C=D.createElement(Na,null,D.createElement(BS,{size:12,color:"black"}));return m||d?D.createElement(D.Fragment,{key:S},D.createElement(Zo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),h!==u-1&&D.createElement(D.Fragment,null,C)):D.createElement(D.Fragment,{key:S},u<=Ar||u>Ar&&h<Ar-1?D.createElement(D.Fragment,null,D.createElement(Zo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),h!==u-1&&D.createElement(D.Fragment,null,C)):h===Ar-1&&D.createElement(Wr,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:vo()},C,r.map((g,T)=>{let k=`image-${T}`;return T>=h&&D.createElement(D.Fragment,{key:k},D.createElement(Zo,{content:g.swapper.displayName,src:g.swapper.image,state:g.state,open:!1}),T!==u-1&&D.createElement(D.Fragment,null,C))}))},D.createElement(Ma,{state:r.find((g,T)=>T>=h&&(g.state==="error"||g.state==="warning"))?.state},D.createElement(Er,{size:"xsmall",variant:"body"},"+",u-h))))})),D.createElement("div",{className:vo()},D.createElement("div",{className:"blockchains_section"},D.createElement("div",{className:vo()},D.createElement(Er,{variant:"body",size:"xsmall"},Bu.t("Chains:")),D.createElement(Ba,{direction:"horizontal",size:4}),c.map((f,h)=>D.createElement(D.Fragment,{key:f.displayName},c.length<=Nr||c.length>Nr&&h<Nr-1?D.createElement(Wr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},D.createElement(Zo,{content:"",src:f.image,open:!1,className:h!==0?"blockchainImage":""})):h===Nr-1&&D.createElement(Wr,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:vo()},c.map((S,C)=>C>=h&&D.createElement(Zo,{key:S.displayName,content:"",src:S.image,open:!1,className:C>h?"blockchainImage":"",container:l})))},D.createElement(Ma,{className:"blockchainImage"},D.createElement(Er,{size:"xsmall",variant:"body"},"+",c.length-h))))),D.createElement(Ba,{direction:"horizontal",size:32}))),D.createElement(Na,{orientation:a?"up":"down"},D.createElement(LS,{size:12,color:"black"}))))}i(_u,"QuoteTrigger");function Pa(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=y().blockchains(),h=y().tokens(),S=y().swappers(),{customSlippage:C,slippage:g}=y(),T=C||g,[k,x]=qS(t.expanded),I=zS(null),b=N(o.value,6,6),v=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",E=Je(o.usdValue,n.usdValue??null),W=N(E,2,2),B=kt(E??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:$o(_.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(nu,{dense:d},$.createElement(PS,{variant:"alarm",type:Ge?"error":"warning",title:Le,footer:$.createElement(ru,null,X&&$.createElement("div",null,$.createElement(bo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(wo,{direction:"vertical",size:2}),$.createElement(bo,{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(bo,{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(wo,{direction:"vertical",size:2}),$.createElement(bo,{size:"xsmall",variant:"body",color:"neutral900"},no.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Lo(_.estimatedTimeInSeconds),fee:N(_i(_,h),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),M=Q(e?.swaps??[]),V=M.length,Y=m||L(),re=xp(t.quote.tags||[]),H=!!c,A=Lo(Tn(e?.swaps)),te=On(e?.swaps??[],h),q=N(te,2,2),Z=te.gte(new _a(Kl));return d?$.createElement($S,{selected:l,fee:q,time:A,tooltipContainer:Po(),steps:M,tags:re,feeWarning:Z,percentageChange:W,warningLevel:B,outputPrice:{value:v,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):$.createElement(pu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:cu()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(Cu,null,re.map((me,ge)=>{let _=`${me.value}_${ge}`;return $.createElement($.Fragment,{key:_},$.createElement(FS,{label:me.label,value:me.value}),$.createElement(wo,{size:4,direction:"horizontal"}))})),$.createElement(kr,null),!H&&$.createElement(wo,{size:4})):null,$.createElement("div",{id:"portal-root",className:uu()},$.createElement(wu,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(lu,{onClick:me=>{me.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(bo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},no.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:mu()},$.createElement(yu,null,$.createElement(DS,{size:12,color:"gray"})),$.createElement(Su,null,$.createElement(Wa,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),$.createElement(Pu,{content:pe(n.value),container:Y,open:n.value?void 0:!1},$.createElement(Wa,{size:"small",variant:"body"},"\xA0",`${v} ${M[M.length-1].to.token.displayName}`))),$.createElement(Pu,{content:pe(n.usdValue),container:Y},$.createElement(wo,{size:2,direction:"horizontal"}),$.createElement(bo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(US,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:v,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:B}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Ko,{from:M[0].from,to:M[V-1].to,percentageChange:W,warningLevel:B}),$.createElement(wo,{size:4}))),$.createElement(au,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:x},$.createElement(_u,{type:s,quoteRef:I,selected:l,setExpanded:x,container:Y,expanded:k,steps:M}),$.createElement(gu,{open:k},$.createElement(hu,null),$.createElement("div",{className:su()},M.map((me,ge)=>{let _=`item-${ge}`;return $.createElement(OS,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:ge!==M.length-1,state:me.state})})))))}i(Pa,"Quote");import{Divider as VS,Skeleton as XS}from"@rango-dev/ui";import bt from"react";import{darkTheme as QS,styled as Mr}from"@rango-dev/ui";var $u=Mr("div",{$$color:"$colors$neutral100",[`.${QS} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Du=Mr("div",{paddingTop:"$2"}),Fu=Mr("div",{paddingLeft:"$8"}),Ou=Mr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ku,Divider as st,Skeleton as je}from"@rango-dev/ui";import z from"react";import{css as HS,styled as wt}from"@rango-dev/ui";var $a=wt("div",{display:"flex"}),Uu=wt("div",{padding:"$10 $0 $20"}),zu=wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),qu=wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Qu=wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Hu=wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Gu=wt("div",{width:"65%",display:"flex",justifyContent:"start"}),Vu=wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Xu=wt("div",{padding:"$15 $0 $15 $0"}),ju=HS({display:"flex",justifyContent:"space-between",alignItems:"center"});function Jo(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(Qu,null,z.createElement(Gu,null,z.createElement(Ku,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(st,{size:8,direction:"horizontal"}),z.createElement(Vu,null,z.createElement(je,{height:10,width:60,variant:"rounded"}),z.createElement(st,{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($a,null,z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(st,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(st,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"})),z.createElement(kr,null),!r&&z.createElement(st,{size:4})),z.createElement("div",{className:ju()},z.createElement($a,null,z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(st,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(st,{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(Uu,null,z.createElement(je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(zu,null,z.createElement(qu,null,z.createElement(Ku,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(st,{direction:"horizontal",size:4}),z.createElement(je,{height:15,width:150,variant:"rounded"})),z.createElement(st,{size:10}),z.createElement(je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(st,{size:4}),z.createElement(Xu,null,n,z.createElement(Hu,null),n),z.createElement(st,{size:12})))}i(Jo,"QuoteSummarySkeleton");import{ChainToken as em,Divider as Fa,NextIcon as GS,Skeleton as Lr}from"@rango-dev/ui";import Te from"react";import{styled as Ro}from"@rango-dev/ui";var Yu=Ro("div",{display:"flex",alignItems:"start"}),Zu=Ro("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Da=Ro("div",{display:"flex",alignItems:"center",flexGrow:1}),Ju=Ro("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Ru=Ro("div",{display:"flex",alignItems:"center"});function ht(t){let{separator:e=!0}=t;return Te.createElement(Te.Fragment,null,Te.createElement(Ru,null,Te.createElement(Lr,{height:22,width:22,variant:"circular"}),Te.createElement(Fa,{direction:"horizontal",size:8}),Te.createElement(Lr,{height:15,width:148,variant:"rounded"})),Te.createElement(Yu,null,Te.createElement(Ou,{hideSeparator:!e}),Te.createElement(Zu,{extraSpace:e},Te.createElement(Da,null,Te.createElement(em,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(Fa,{direction:"horizontal",size:8}),Te.createElement(Lr,{height:12,variant:"rounded"})),Te.createElement(Ju,null,Te.createElement(GS,{color:"gray",size:16})),Te.createElement(Da,null,Te.createElement(em,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Te.createElement(Fa,{direction:"horizontal",size:8}),Te.createElement(Lr,{height:12,variant:"rounded"})))))}i(ht,"StepSkeleton");function en(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return bt.createElement($u,{expanded:o,rounded:e!=="basic"},bt.createElement(Jo,{type:e,tagHidden:n}),bt.createElement(Du,null,bt.createElement(XS,{height:15,variant:"rounded"})),o&&bt.createElement(Fu,null,bt.createElement(VS,{size:24}),bt.createElement(ht,null),bt.createElement(ht,null),bt.createElement(ht,{separator:!1})))}i(en,"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:h,inputUsdValue:S,toToken:C}=j(),g=e?.outputAmount?new jS(e?.outputAmount):null,T=e?.outputAmount?zn(e?.outputAmount,Qn(e)||C?.usdPrice):null,x=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Br.createElement(Aa,null,Br.createElement(en,{tagHidden:l,type:o,expanded:s})):x?Br.createElement(Aa,{onClick:()=>p?.(e)},Br.createElement(Pa,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:m,input:{value:h,usdValue:S?.toString()??""},output:{value:g?.toString()??"",usdValue:T?.toString()??""}})):null}i(ro,"QuoteInfo");import{calculatePendingSwap as JS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as RS}from"react";import{useRef as KS,useState as YS}from"react";var ZS=2e3;function _r({request:t}){let[e,o]=YS(!1),n=KS(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,ZS)),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(_r,"useFetch");function tm(){let{fetch:t,loading:e,cancelFetch:o}=_r({request:async(n,r)=>await Bt().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(tm,"useFetchConfirmQuote");function Pr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Oa(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Pr,"throwErrorIfResponseIsNotValid");function Oa(t){if(Jl(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Rl(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=np(t);if(o){let n=Un(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Oa,"getQuoteError");function om(t,e,o){let n=!1;t&&(n=Sp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=po(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(pp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(lo(e)),percentageChange:N(Je(lo(t)??"",lo(e)??""),null,2)}:$i(t,e)?r.quoteUpdate={type:0}:Di(t,e)?r.quoteUpdate={type:1}:Fi(t,e)&&(r.quoteUpdate={type:2}));let s=cp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(om,"generateWarnings");function $r(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($r,"handleQuoteErrors");function Ua(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),d=y().blockchains(),m=y().tokens(),f=u||p,{fetch:h,cancelFetch:S,loading:C}=tm();return RS(()=>S,[]),{loading:C,fetch:i(async T=>{let k=T.selectedWallets,x=T?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=k.reduce((v,w)=>(v[w.chain]=w.address,v),{}),b={requestId:r?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await h(b,!0).then(v=>{let{result:w}=v;Pr({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let E={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(E);let W={slippage:f.toString(),disabledSwappersGroups:c},B=om(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});B.quoteUpdate&&s(!1),l();let Q=!!B.balance,M=JS(o.toString(),w,sp(k),W,!Q,{blockchains:d,tokens:m});return{quote:E,swap:M,error:null,warnings:B}})}catch(v){return $r(v)}},"fetch"),cancelFetch:S}}i(Ua,"useConfirmSwap");var lC=oC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${rm}`]:{width:"$48",height:"$48"}}),pC=Qa({flexGrow:1,paddingRight:"$10"}),cC=Qa({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),uC=Qa({display:"flex",justifyContent:"space-between",alignItems:"center"});function im(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=sC(),[l,p]=tn(""),u=!n,[c,d]=tn(!1),[m,f]=tn(!1),{isActiveTab:h}=ne(),S=y().getDisabledLiquiditySources(),C=aC(S),{manager:g}=eC(),{fetch:T,loading:k,cancelFetch:x}=Ua(),[I,b]=tn({swap:null,error:null,warnings:null}),[v,w]=tn(!1),E=i(async({selectedWallets:H,customDestination:A})=>{let te=await T?.({selectedWallets:H,customDestination:A});return b(te),te},"onConfirmSwap"),W=i(async()=>{if(I.swap&&n)try{await g?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let H=`../${U.swaps}/${I.swap.requestId}`;s(H,{replace:!0}),setTimeout(()=>{e("")},0)}catch(H){p("Error: "+H?.message)}},"addNewSwap"),B=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await B()},"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");Dr(()=>{!!C.current.length&&!S.length&&M(),C.current=S},[S.length]),Dr(()=>{u&&x()},[u]),Dr(()=>{u&&d(u)},[u]),Dr(()=>{u||T({selectedWallets:o,customDestination:r}).then(H=>b(H)).catch(H=>console.error(H))},[]),iC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=I.warnings?.quote??null,Y=I.error,re=[];if(l&&re.push(ke.createElement(nm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&re.push(ke.createElement(nm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&Xn(I.warnings.quoteUpdate)})),V||Y){let H=`../${U.settings}`;re.push(ke.createElement(Xo,{warning:V,error:Y,couldChangeSettings:!1,refetchQuote:M,showWarningModal:v,confirmationDisabled:!h,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(H)}))}return ke.createElement(le,{header:{title:za.t("Confirm Swap"),onWallet:()=>{let H=`../${U.wallets}`;s(H)}},footer:ke.createElement(lC,null,ke.createElement("div",{className:pC()},ke.createElement(tC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!I.error||!h,onClick:Q},za.t("Start Swap"))),ke.createElement(rm,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!h,onClick:d.bind(null,!0)},ke.createElement(rC,{size:24})))},c&&ke.createElement(Fc,{open:c,onClose:()=>d(!1),onCancel:x,loading:k,onCheckBalance:E}),ke.createElement(ue,null,ke.createElement("div",{className:uC()},ke.createElement(nC,{variant:"title",size:"small"},za.t("You get")),ke.createElement("div",{className:cC()},ke.createElement(ar,{onClick:!k&&!c&&!v?M:void 0}))),ke.createElement(qa,{size:"12"}),Hp(re.map((H,A)=>({element:H,key:`alert-${A}`})),ke.createElement(qa,{size:10})),re.length>0?ke.createElement(qa,{size:10}):null,ke.createElement(ro,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:I.error,loading:k,warning:I.warnings?.quote??null})))}i(im,"ConfirmSwapPage");import{i18n as Or}from"@lingui/core";import{useManager as EC}from"@rango-dev/queue-manager-react";import{Divider as hm,NotFound as AC,styled as NC}from"@rango-dev/ui";import Et,{useState as WC}from"react";import{useNavigate as MC}from"react-router-dom";import{i18n as fC}from"@lingui/core";import{Divider as cm,GroupedVirtualizedList as gC,Skeleton as hC,SwapListItem as um,Typography as yC}from"@rango-dev/ui";import De,{useCallback as mm,useEffect as SC,useRef as CC,useState as TC}from"react";function am(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(am,"calculateGroupsSoFar");import{css as mC,darkTheme as dC,styled as on}from"@rango-dev/ui";var Ha=mC(),sm=on("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ga=on("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ha}`]:{$$color:"$colors$neutral600",[`.${dC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Va=on("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),lm=on("div",{gap:"$10",display:"flex",flexDirection:"column"}),pm=on("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var kC=10;function Xa(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=TC([]),l=CC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=mm(am,[]),m=mm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,kC),s(d(u,l.current)))},[e.length]);if(SC(()=>{r||m()},[r,m]),r){let f=[1,2];return De.createElement(De.Fragment,null,[f,f].map((S,C)=>De.createElement(Ga,{key:C},De.createElement(Va,null,De.createElement(hC,{variant:"text",width:60,size:"small"}),De.createElement(cm,{size:16})),De.createElement(cm,{size:4}),De.createElement(lm,null,S.map((T,k)=>De.createElement(um,{isLoading:!0,key:k}))))))}return De.createElement(gC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>De.createElement(Ga,null,De.createElement(Va,null,De.createElement(yC,{variant:"label",size:"medium",className:Ha()},c[f]))),itemContent:(f,h)=>{let S=p[f];if(!S)return null;let C=S.steps[0],g=S.steps[S.steps.length-1];return De.createElement(sm,{key:S.requestId},De.createElement(um,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:L(),onlyShowTime:c[h]===fC.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:g.toLogo,displayName:g.toSymbol},blockchain:{image:g.toBlockchainLogo||""},amount:N(g.outputAmount||g.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(g.outputAmount||g.expectedOutputAmountHumanReadable)}}}))}})}i(Xa,"HistoryGroupedList");import{CloseIcon as vC,IconButton as wC,SearchIcon as bC,TextField as IC}from"@rango-dev/ui";import nn from"react";import{styled as xC}from"@rango-dev/ui";var dm=xC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return nn.createElement(IC,{prefix:nn.createElement(dm,null,nn.createElement(bC,{color:"black"})),suffix:!!s.length&&nn.createElement(wC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},nn.createElement(vC,{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(It,"SearchInput");import{i18n as Fr}from"@lingui/core";import fm from"dayjs";var gm=i(t=>{let e=new Map([["today",{title:Fr.t("Today"),swaps:[]}],["week",{title:Fr.t("This week"),swaps:[]}],["month",{title:Fr.t("This month"),swaps:[]}],["year",{title:Fr.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=fm();t.forEach(p=>{let u=Number(p.creationTime),c=fm(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 LC=NC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),BC=i((t,e)=>t?.length?t.filter(o=>ut(o.fromBlockchain,e)||ut(o.toBlockchain,e)||ut(o.toSymbol,e)||ut(o.fromSymbol,e)).length:!1,"isStepContainsText");function ym(){let t=MC(),{manager:e,state:o}=EC(),n=dt(e).map(({swap:c})=>c),[r,a]=WC(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>ut(c.inputAmount,r)||ut(c.status,r)||BC(c.steps,r)||ut(c.requestId,r)));let u=!p?.length&&!s;return Et.createElement(le,{header:{title:Or.t("History")}},Et.createElement(ue,null,Et.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Or.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Et.createElement(hm,{size:"16"}),Et.createElement(LC,null,u&&Et.createElement(pm,null,Et.createElement(hm,{size:32}),Et.createElement(AC,{title:Or.t("No results found"),description:r?Or.t("Try using different keywords"):""})),!u&&Et.createElement(Xa,{list:p,onSwapClick:t,groupBy:gm,isLoading:s}))))}i(ym,"HistoryPage");import{i18n as JC}from"@lingui/core";import{Button as RC,Divider as Pm,styled as eT,WarningIcon as tT}from"@rango-dev/ui";import oT from"bignumber.js";import Qe,{useEffect as $m,useState as Dm}from"react";import{useNavigate as nT}from"react-router-dom";import{i18n as OC}from"@lingui/core";import{Header as UC}from"@rango-dev/ui";import zt,{useEffect as zC,useState as qC}from"react";import{i18n as PC}from"@lingui/core";import{Divider as Ka,FullExpandedQuote as $C,Typography as DC}from"@rango-dev/ui";import de from"react";import{styled as ja}from"@rango-dev/ui";var Sm=ja("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Cm=ja("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Tm=ja("div",{width:"146px"});import{i18n as rn}from"@lingui/core";import{Select as _C}from"@rango-dev/ui";import km from"react";function Ur(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:rn.t("Smart Routing")},{value:"FEE",label:rn.t("Lowest Fee")},{value:"SPEED",label:rn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:rn.t("Maximum Return")},{value:"PRICE",label:rn.t("Maximum Output")}];return km.createElement(Tm,null,km.createElement(_C,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ur,"SelectStrategy");var xm=3;function an(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:h}=j(),{slippage:S,customSlippage:C}=y(),g=y().tokens(),T=l||L(),k=!!u&&u.results.length,x=C??S,I=i(w=>{if(!d||!m||!u)return null;let E={requestAmount:u.requestAmount,...w};return po(E,{fromToken:d,toToken:m,userSlippage:x,tokens:g})},"getQuoteWarning"),b=h?.type===0||h?.type===1,v=u?.results?Hn(f,u?.results):[];return de.createElement(de.Fragment,null,a&&de.createElement(de.Fragment,null,de.createElement(Cm,null,de.createElement(DC,{size:"xmedium",variant:"title"},PC.t("Sort by")),de.createElement(Ur,{container:T})),de.createElement(Ka,{size:"10"})),e&&Array.from({length:xm},(w,E)=>de.createElement(de.Fragment,{key:E},s?de.createElement($C,{loading:!0}):de.createElement(en,{tagHidden:!1,type:"list-item",expanded:!1}),E!==xm-1&&de.createElement(Ka,{size:16}))),!e&&de.createElement(de.Fragment,null,k?v.map((w,E)=>{let W=I(w),B=Oa(w.swaps),Q=v.length-1===E;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:B?.options||null,warning:W,fullExpandedMode:s,onClick:M=>{B||c("warning",W),c("error",B?.options||null),o(M)},type:"list-item"}),!Q&&de.createElement(Ka,{size:16}))}):b&&de.createElement(Sm,null,de.createElement(Go,{size:s?"large":"small",error:h,fetch:n}))))}i(an,"Quotes");import{darkTheme as FC,styled as vm}from"@rango-dev/ui";var wm=vm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${FC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),bm=vm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var QC=100;function Ya(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=qC(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",d=Po();return zC(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},QC):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),zt.createElement(wm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${pr()}`,id:he.EXPANDED_BOX_ID},zt.createElement(UC,{title:OC.t("Routes"),suffix:zt.createElement(zt.Fragment,null,zt.createElement(Ur,{container:d}),zt.createElement(Jt,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),zt.createElement(bm,null,zt.createElement(an,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Po(),onClickOnQuote:n,fullExpandedMode:c})))}i(Ya,"ExpandedQuotes");import{i18n as Lm}from"@lingui/core";import{SwapInput as Bm}from"@rango-dev/ui";import sn from"react";import{ReverseIcon as VC}from"@rango-dev/ui";import Ja from"react";import{keyframes as HC,styled as Im}from"@rango-dev/ui";var Za=450,GC=HC({"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)"}}),Em=Im("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Am=Im("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${GC} ${Za}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 Ra(){let t=j.use.switchFromAndTo();return Ja.createElement(Em,null,Ja.createElement(Am,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Za),t()}},Ja.createElement(VC,{size:12})))}i(Ra,"SwitchFromAndToButton");import{styled as Nm}from"@rango-dev/ui";var Wm=Nm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Mm=Nm("div",{position:"relative"});function es(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:h}=j(),{connectedWallets:S,getBalanceFor:C}=R(),g=a?C(a):null,T=In(g)?.amount??"0",k=s&&a?N(g?.amount,g?.decimals):"0",x=!!s&&dl(S,s.name),I=!Bi(h,c,d),b=!Bi(h,c,f),v=!d||!f||!f.gt(0)?null:Je(d.toString(),f.toString());return sn.createElement(Wm,null,sn.createElement(Mm,null,sn.createElement(Bm,{label:Lm.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:I?void 0:N(d,4,4),realUsdValue:I?void 0:pe(d),error:I?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:L(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),sn.createElement(Ra,null)),sn.createElement(Bm,{sharpBottomStyle:!r&&(!!h||e),label:Lm.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:kt(v??0),price:{value:N(m,6,6),usdValue:b?void 0:N(f,4,4),realValue:pe(m),realUsdValue:b?void 0:pe(f),error:b?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:L()}))}i(es,"Inputs");import{useCallback as XC,useEffect as jC,useRef as KC,useState as YC}from"react";function _m(){let{fetch:t,loading:e,cancelFetch:o}=_r({request:async(n,r)=>await Bt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(_m,"useFetchAllQuotes");var ZC=600;function zr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=_m(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=R.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:h,error:S,warning:C,setSelectedQuote:g,updateQuotePartialState:T}=j(),{slippage:k,customSlippage:x,affiliatePercent:I,affiliateRef:b,affiliateWallets:v,fetchStatus:w}=y(),E=y().getLiquiditySources(),W=y().getDisabledLiquiditySources(),B=y().excludeLiquiditySources(),[Q,M]=YC(!0),V=KC(c),Y=x??k,H=!p||!u||_e(p,u)||!Bo(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){h();let Le=ap({fromToken:me,toToken:ge,inputAmount:_,liquiditySources:Oe,excludeLiquiditySources:P,disabledLiquiditySources:X,wallets:s,slippage:ie,affiliateRef:Ee,affiliatePercent:Ge,affiliateWallets:Ae,enableCentralizedSwappers:a});Ll("experimentalRoute",r)&&(Le.experimental=!0),e(Le).then(Ke=>{let Ne=Hn(f,Ke.results),Ue=kp(m,Ne,Ke.requestAmount);M(!1),T("quotes",Ke),g(Ue),Pr({diagnosisMessages:Ke.diagnosisMessages,requestId:Ue?.requestId||"",swaps:Ue?.swaps});let Sn=Ue&&po(Ue,{fromToken:me,toToken:ge,userSlippage:Y,tokens:l});T("warning",Sn)}).catch(Ke=>{let{error:Ne}=$r(Ke);(Ne?.type===0||Ne?.type===1)&&h(),Ne?.type!==2&&(T("error",Ne),M(!1))})}},"fetch"),q=XC(Al(Z=>{te(Z)},ZC),[H]);return jC(()=>{if(!t){M(!1);return}if(w!=="success")return;if(H){M(!1),(m||S||C)&&h();return}if(!Bo(c)||d?.eq(0)){A(!1),o();return}h(),A(!0);let Z=te;return V.current&&V.current!=c&&(Z=q),V.current=c,Z({inputAmount:c,fromToken:p,toToken:u,liquiditySources:E,excludeLiquiditySources:B,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:I,affiliateWallets:v}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,H,E?.length,n,W.length,Y,b,I,JSON.stringify(v)]),{fetch:()=>te({inputAmount:c,fromToken:p,toToken:u,liquiditySources:E,excludeLiquiditySources:B,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:I,affiliateWallets:v}),loading:Q}}i(zr,"useSwapInput");var rT=eT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),iT=300;function Fm(){let t=nT(),{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,h]=Dm(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Ir(),{fetch:g,loading:T}=zr({refetchQuote:a}),{config:k,fetchStatus:x}=y(),{connectedWallets:I}=R(),{isActiveTab:b}=ne(),[v,w]=Dm(!1),W=ep({fetchMetaStatus:x,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Cl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new oT(n).gt(0)&&!gp(e,o),M=Q&&x==="success"&&T,re=(!B||B&&p?.results.length)&&(l||s);$m(()=>{c(),m("refetchQuote",!0)},[]),$m(()=>{h(Q)},[Q]);let H=(r||s)&&!v?g:void 0,A=i(q=>{B&&f?(h(!1),setTimeout(()=>{t(q)},iT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return Qe.createElement(rT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(RC,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(tT,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||JC.t("Swap"),suffix:Qe.createElement(Jt,{hidden:B?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>A(U.swaps),onClickSettings:()=>{A(U.settings)}})}},Qe.createElement(ue,null,Qe.createElement(es,{fetchingQuote:M,fetchMetaStatus:x,isExpandable:B,onClickToken:q=>{A(q==="from"?U.fromSwap:U.toSwap)}}),Qe.createElement(Pm,{size:"2"}),B?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(Pm,{size:"10"}),Qe.createElement(Xo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:g,showWarningModal:v,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),A(U.confirmSwap)},onChangeSettings:()=>A(U.settings)})):null)),B?Qe.createElement(Ya,{loading:M,onClickOnQuote:te,fetch:g,onClickRefresh:H,isVisible:f}):null)}i(Fm,"Home");import{i18n as Om}from"@lingui/core";import{Alert as aT,Divider as sT,List as lT,ListItemButton as pT,Radio as cT,RadioRoot as uT,Typography as mT}from"@rango-dev/ui";import yt from"react";function qt(){let{setLanguage:t,language:e,config:o}=y(),n=_l,r=o?.language||Do;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Do),resetLanguage:()=>t(null)}}i(qt,"useLanguage");function Um(){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:yt.createElement(mT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:yt.createElement(cT,{value:s}),start:yt.createElement(p,null)}});return yt.createElement(le,{header:{title:Om.t("Language")}},yt.createElement(ue,null,yt.createElement(aT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),yt.createElement(sT,{size:"8"}),yt.createElement(uT,{value:t},yt.createElement(lT,{type:yt.createElement(pT,{title:Om.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Um,"LanguagePage");import{i18n as At}from"@lingui/core";import{Button as yT,Checkbox as ST,Image as CT,ListItemButton as TT,NotFound as kT,Typography as xT}from"@rango-dev/ui";import Fe,{useState as vT}from"react";import{Checkbox as gT,Skeleton as qm}from"@rango-dev/ui";import pn from"react";import{styled as ts}from"@rango-dev/ui";var ln=ts("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),os=ts("div",{width:80,display:"flex",justifyContent:"flex-end"}),ns=ts("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as dT,styled as fT}from"@rango-dev/ui";var zm=fT(dT,{height:61});var hT=30;function rs(){return pn.createElement(ln,null,Array.from(Array(hT),(t,e)=>pn.createElement(zm,{hasDivider:!0,key:e,start:pn.createElement(qm,{variant:"circular",width:35,height:35}),title:pn.createElement(qm,{variant:"text",size:"large",width:90}),end:pn.createElement(gT,{checked:!1})})))}i(rs,"LoadingLiquiditySourceList");function is({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=vT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=Ln(o,n),u={Exchanges:At.t("Exchanges"),Bridges:At.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(g=>c.includes(g.type)),m=d.length===d.filter(g=>g.selected).length,f=i(()=>{d.forEach(g=>{m?s(g.groupTitle):g.selected||s(g.groupTitle)})},"toggleAllSources"),h=d.map(g=>{let{selected:T,groupTitle:k,logo:x}=g;return{start:Fe.createElement(CT,{src:x,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(ST,{checked:T,disabled:l}),title:Fe.createElement(xT,{variant:"title",size:"xmedium"},At.t(k)),...g}}),S=i(g=>{let T=g.target.value;a(T)},"searchHandler"),C=h;return r&&(C=h.filter(g=>ut(g.groupTitle,r))),Fe.createElement(le,{header:{title:At.t(t),suffix:Fe.createElement(os,null,Fe.createElement(yT,{variant:"ghost",size:"xsmall",onClick:f},m?At.t("Deselect all"):At.t("Select all")))}},Fe.createElement(ue,{view:!0},Fe.createElement(It,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:At.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Fe.createElement(rs,null),!C.length&&r?Fe.createElement(ns,null,Fe.createElement(kT,{title:At.t("No results found"),description:At.t("Try using different keywords")})):e==="success"&&Fe.createElement(ln,{disabled:l},C.map(g=>{let{groupTitle:T,...k}=g;return Fe.createElement(Fe.Fragment,{key:g.id},Fe.createElement(TT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(is,"LiquiditySourcePage");import{i18n as wT}from"@lingui/core";import qr from"react";import{useNavigate as bT}from"react-router-dom";function Qm(){let t=bT(),e=et(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=zr({refetchQuote:n}),u=i(m=>{r(m),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${U.settings}`,d=`../${U.wallets}`;return qr.createElement(le,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:wT.t("Routes"),suffix:qr.createElement(Jt,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},qr.createElement(ue,null,qr.createElement(an,{fetch:l,loading:p,onClickOnQuote:u})))}i(Qm,"RoutesPage");import{i18n as Zm}from"@lingui/core";import{Divider as Jm,getCountCategories as PT,SelectableCategoryList as $T}from"@rango-dev/ui";import Nt,{useState as Rm}from"react";import{i18n as ss}from"@lingui/core";import{Divider as Km,Image as WT,ListItemButton as MT,NotFound as LT,Typography as Ym}from"@rango-dev/ui";import tt,{useEffect as BT,useState as _T}from"react";import{BlockchainCategories as as}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var IT=i((t,e)=>{switch(e){case as.ALL:return!0;case as.UTXO:return t.type===Qr.TRANSFER;case as.OTHER:return t.type!==Qr.TRANSFER&&t.type!==Qr.COSMOS&&t.type!==Qr.EVM;default:return t.type===e}},"filterByType"),Hm=i((t,e,o)=>t.filter(n=>IT(n,o)).filter(n=>Tt(n.name,e)||Tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as ET,styled as Gm}from"@rango-dev/ui";var Vm=Gm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Hr=Gm(Qo,{padding:0,margin:0,listStyle:"none",[`& ${ET}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as AT,Skeleton as Xm}from"@rango-dev/ui";import Gr from"react";var NT=20;function jm(){return Gr.createElement(Hr,null,Array.from(Array(NT),t=>Gr.createElement(AT,{key:t,hasDivider:!0,start:Gr.createElement(Xm,{variant:"circular",width:35,height:35}),title:Gr.createElement(Xm,{variant:"text",size:"large",width:90})})))}i(jm,"LoadingBlockchainList");function ls(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=_T(e),{fetchStatus:l}=y();BT(()=>{s([...Hm(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?tt.createElement(tt.Fragment,null,tt.createElement(Km,{size:32}),tt.createElement(LT,{title:ss.t("No results found"),description:ss.t("Try using different keywords")})):tt.createElement(Hr,{as:"ul",key:`${r}-${o}`},a.map(u=>tt.createElement(MT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:tt.createElement(WT,{src:u.logo,size:30}),title:tt.createElement(Ym,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return tt.createElement(Vm,null,tt.createElement(Ym,{variant:"label",size:"large"},ss.t("Select Blockchain")),tt.createElement(Km,{size:4}),l==="loading"&&tt.createElement(jm,null),l==="success"&&p())}i(ls,"BlockchainList");function ps(t){let{type:e}=t,o=et(),[n,r]=Rm(""),[a,s]=Rm("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),m=PT(c)!==1;return Nt.createElement(le,{header:{title:Zm.t("Select Blockchain")}},Nt.createElement(ue,{view:!0},m&&Nt.createElement(Nt.Fragment,null,Nt.createElement($T,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Nt.createElement(Jm,{size:24})),Nt.createElement(It,{value:n,autoFocus:!0,placeholder:Zm.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Nt.createElement(Jm,{size:16}),Nt.createElement(ls,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ps,"SelectBlockchainPage");import{i18n as Yr}from"@lingui/core";import{Divider as Td}from"@rango-dev/ui";import io,{useState as RT}from"react";import{useNavigate as ek}from"react-router-dom";import{i18n as ms}from"@lingui/core";import{BlockchainsChip as Vr,Divider as nd,Image as rd,Skeleton as zT,Tooltip as qT,Typography as ds}from"@rango-dev/ui";import be from"react";import{useEffect as OT}from"react";var ed=["ETH","COSMOS","OSMOSIS"];function cs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(DT),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(FT(s)),r=n.splice(a)}return{list:n,more:r}}i(cs,"prepare");function DT(t,e){let o=ed,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(DT,"sortByMostUsedBlockchains");function FT(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(FT,"generateSortByPreferredBlockchainsFor");function td(t,e){return!!e.list.find(o=>o.name===t)}i(td,"isInVisibleList");function us(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();OT(()=>{if(e?.selected){let a=cs(t,o,e);td(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=cs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(us,"usePrepareBlockchainList");import{styled as UT}from"@rango-dev/ui";var od=UT("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var QT=12;function fs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=us(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return be.createElement(be.Fragment,null,be.createElement(nd,{size:12}),be.createElement(ds,{variant:"label",size:"large"},ms.t("Select Blockchain")),be.createElement(nd,{size:12}),be.createElement(od,null,l==="loading"&&Array.from(Array(QT),f=>be.createElement(zT,{key:f,variant:"rounded",height:50})),l==="success"&&be.createElement(be.Fragment,null,be.createElement(Vr,{selected:!n,onClick:()=>{o==="from"?u():p()}},be.createElement(ds,{variant:"body",size:"xsmall",color:"secondary500"},ms.t("All"))),s.list.map(f=>be.createElement(qT,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:L()},be.createElement(Vr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},be.createElement(rd,{src:f.logo,size:30})))),d?be.createElement(Vr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},be.createElement(rd,{src:s.more[0].logo,size:30})):null,m?be.createElement(Vr,{onClick:a,key:"more-blockchains"},be.createElement(ds,{variant:"body",size:"xsmall",color:"secondary500"},ms._("More +{count}",{count:s.more.length}))):null)))}i(fs,"BlockchainsSection");import{i18n as ws}from"@lingui/core";import{darkTheme as gd,Divider as Eo,ExternalLinkIcon as VT,Image as XT,ListItemButton as jT,NotFound as KT,PinIcon as YT,Skeleton as hd,Typography as Kr,VirtualizedList as ZT}from"@rango-dev/ui";import G,{useEffect as yd,useState as Sd}from"react";import{Divider as dd,ListItem as GT,Skeleton as cn}from"@rango-dev/ui";import lt from"react";import{css as Io,darkTheme as id,ImageContainer as HT,styled as ot,Typography as ad}from"@rango-dev/ui";var gs=Io({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),hs=Io({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ys=Io({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ss=Io({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${id} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Cs=Io({}),Ts=Io(),sd=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ks=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Xr=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${hs}`]:{[`& .${Ss}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Cs}`]:{bottom:"-15px"},[`& .${gs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ys}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),xs=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),vs=ot(ad,{}),ld=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ts}`]:{$$color:"$colors$neutral600",[`.${id} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),jr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),mO=ot("div",{display:"flex",alignItems:"center"}),pd=ot("div",{position:"relative",[`& ${HT}`]:{borderRadius:"$xm",overflow:"hidden"}}),cd=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),ud=ot(ad,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),md=ot("a",{"& svg:hover":{color:"$colors$info"}});function fd(t){return lt.createElement(Xr,null,Array.from(Array(t.size),e=>lt.createElement(GT,{key:e,hasDivider:!0,start:lt.createElement(cn,{variant:"circular",width:35,height:35}),end:lt.createElement(jr,null,lt.createElement(cn,{variant:"text",size:"large",width:70}),lt.createElement(dd,{size:4}),lt.createElement(cn,{variant:"text",size:"medium",width:50})),title:lt.createElement("div",null,lt.createElement(cn,{variant:"text",size:"large",width:90}),lt.createElement(dd,{size:4}),lt.createElement(cn,{variant:"text",size:"medium",width:90}))})))}i(fd,"LoadingTokenList");var bs=20,JT=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:hs()},o?G.createElement("div",{className:gs()},o):G.createElement(ks,{className:ys()},G.createElement(Kr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Eo,{direction:"horizontal",size:4}),G.createElement(xs,{css:a},G.createElement(vs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${Ss()} ${!o&&Cs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Eo,{size:4,direction:"horizontal"}),G.createElement(md,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(VT,{size:12}))))},"renderDesc");function Cd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Sd(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Sd(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=y(),h=i(()=>{s(e.slice(0,a.length+bs))},"loadNextPage");yd(()=>{c(e.length>a.length)},[a.length]),yd(()=>{s(e.slice(0,bs))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Eo,{size:32}),G.createElement(KT,{title:ws.t("No results found"),description:ws.t("Try using different keywords")})):G.createElement(ZT,{endReached:u?h:void 0,itemContent:C=>{let g=a[C],T=In(d(g)),k=g.address||"",x=p.find(E=>E.name===g.blockchain),I=tr(x?.color||"",qp(x?.color||"")?5:125),b=tr(x?.color||"",-100),v={$$color:I,[`.${gd} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${gd} &`]:{$$color:I},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(jT,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:G.createElement(pd,null,G.createElement(XT,{src:g.image,size:30}),f(g,t.type)&&G.createElement(cd,null,G.createElement(YT,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||g.name||!g.name&&!k?G.createElement(ks,null,G.createElement(Kr,{variant:"title",size:"xmedium"},g.symbol),G.createElement(Eo,{direction:"horizontal",size:4}),G.createElement(xs,{css:v},G.createElement(vs,{variant:"body",size:"xsmall",css:w},g.blockchain))):void 0,description:x?.info&&k&&x.type!=="COSMOS"?JT({address:k,token:a[C],customCssForTag:v,customCssForTagTitle:w,name:g.name,url:x.info.addressUrl.split("{wallet}").join(k)}):g.name||void 0,end:m?G.createElement(jr,null,G.createElement(hd,{variant:"text",size:"large",width:70}),G.createElement(Eo,{size:4}),G.createElement(hd,{variant:"text",size:"medium",width:50})):T&&G.createElement(ld,null,G.createElement(ud,{variant:"title",size:"small"},T.amount),G.createElement("div",null),T.usdValue&&G.createElement(Kr,{variant:"body",className:Ts(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(sd,null,G.createElement(Kr,{variant:"label",size:"large"},ws.t("Select Token")),G.createElement(Eo,{size:4}),l==="loading"&&G.createElement(fd,{size:bs}),l==="success"&&G.createElement(Xr,{as:"ul"},S()))}i(Cd,"TokenList");function Is(t){let{type:e}=t,o=ek(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=R.use.getBalanceFor(),[d,m]=RT(""),h=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:h,searchFor:d,getBalanceFor:c}),g=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),T=i(x=>{e==="source"?s({token:x,meta:{blockchains:S,tokens:C}}):l({token:x,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:Yr.t("Source"),destination:Yr.t("Destination")};return io.createElement(le,{header:{title:Yr.t("Swap {type}",{type:k[e]})}},io.createElement(ue,null,io.createElement(fs,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(U.blockchains),onChange:x=>{g(x)}}),io.createElement(Td,{size:24}),io.createElement(It,{value:d,autoFocus:!0,placeholder:Yr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:x=>m(x.target.value)}),io.createElement(Td,{size:16}),io.createElement(Cd,{list:C,selectedBlockchain:h,searchedFor:d,type:e,onChange:x=>{T(x);let I=S.find(b=>x.blockchain===b.name);I&&g(I),n()}})))}i(Is,"SelectSwapItemsPage");import{i18n as Ws}from"@lingui/core";import{Alert as bk,Button as Ik,styled as Ek}from"@rango-dev/ui";import ao from"react";import{useInRouterContext as Ak,useSearchParams as Nk}from"react-router-dom";import{i18n as Id}from"@lingui/core";import{Divider as rk,InfoIcon as ik,TextField as ak,Tooltip as sk,Typography as Ed}from"@rango-dev/ui";import pt from"react";import{Chip as tk,styled as un,TextField as ok}from"@rango-dev/ui";var kd=un("div",{paddingTop:"$5",padding:"$10 $5"}),xd=un("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${ok}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),vd=un("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Zr=un("div",{maxWidth:"280px",padding:"$10"}),wd=un(tk,{width:"61px",flexShrink:0});import{i18n as Es}from"@lingui/core";import{Typography as nk}from"@rango-dev/ui";import mn from"react";function bd(){return mn.createElement(Zr,null,mn.createElement(nk,{variant:"label",size:"medium",color:"neutral700"},Es.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),mn.createElement("br",null),mn.createElement("br",null),mn.createElement("b",null,Es.t("Warning")),":",Es.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(bd,"SlippageTooltipContent");function As(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return pt.createElement(kd,null,pt.createElement(vd,null,pt.createElement(Ed,{variant:"title",size:"xmedium"},Id.t("Slippage tolerance per swap")),pt.createElement(rk,{direction:"horizontal",size:4}),pt.createElement(sk,{container:L(),side:"top",sideOffset:4,content:pt.createElement(bd,null)},pt.createElement(ik,{color:"gray"}))),pt.createElement(xd,null,Pl.map((r,a)=>{let s=`slippage-${a}`;return pt.createElement(wd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),pt.createElement(ak,{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>=Ol&&s<=Fl?n(s):n(null)},suffix:o&&pt.createElement(Ed,{variant:"body",size:"small"},"%"),placeholder:Id.t("Custom")})))}i(As,"Slippage");import{i18n as St}from"@lingui/core";import{AutoThemeIcon as Ad,BridgesIcon as lk,ChevronRightIcon as Ns,DarkModeIcon as Nd,Divider as Jr,ExchangeIcon as pk,InfinityIcon as ck,InfoIcon as uk,LanguageIcon as mk,LightModeIcon as Wd,List as dk,ListItem as fk,ListItemButton as gk,Skeleton as hk,styled as yk,Switch as Sk,Tabs as Ck,Tooltip as Tk,Typography as nt}from"@rango-dev/ui";import F from"react";import{useNavigate as kk}from"react-router-dom";var xk=yk("div",{width:"202px",height:"$40"}),vk=[{id:"light",icon:F.createElement(Wd,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},St.t("Light"))},{id:"dark",icon:F.createElement(Nd,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},St.t("Dark"))},{id:"auto",icon:F.createElement(Ad,{color:"black",size:24}),tooltip:F.createElement(nt,{size:"xsmall",variant:"body"},St.t("Auto"))}],wk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Ad,{...e});case"dark":return F.createElement(Nd,{...e});default:return F.createElement(Wd,{...e})}},"getThemeIcon");function Md(){let t=kk(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=qt(),s=a.find(V=>V.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),d=Ze("theme",c),m=Ze("liquiditySource",c),f=Ze("language",c),h=y().infiniteApprove,S=y().toggleInfiniteApprove,C=Ln(p,u),g=C.filter(V=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(V.type)),T=g.length,k=g.filter(V=>V.selected).length,x=C.filter(V=>V.type==="DEX"),I=x.length,b=x.filter(V=>V.selected).length,v=i((V,Y)=>{switch(l){case"loading":return F.createElement(hk,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(nt,{variant:"body",size:"medium",color:"$error500"},St.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"},St.t("Bridges")),end:F.createElement(F.Fragment,null,v(k,T),F.createElement(Jr,{direction:"horizontal",size:8}),F.createElement(Ns,{color:"black"})),onClick:()=>t(U.bridges),start:F.createElement(lk,{color:"gray",size:16})},E={id:"exchange-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},St.t("Exchanges")),end:F.createElement(F.Fragment,null,v(b,I),F.createElement(Jr,{direction:"horizontal",size:8}),F.createElement(Ns,{color:"black"})),start:F.createElement(pk,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:F.createElement(nt,{variant:"title",size:"xmedium"},St.t("Language")),start:F.createElement(mk,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"body",size:"medium"},s),F.createElement(Jr,{direction:"horizontal",size:8}),F.createElement(Ns,{color:"black"})),onClick:()=>t(U.languages)},B={id:"infinite-approval-item",title:F.createElement(F.Fragment,null,F.createElement(nt,{variant:"title",size:"xmedium"},St.t("Infinite approval")),F.createElement(Jr,{direction:"horizontal",size:4}),F.createElement(Tk,{side:"top",sideOffset:4,container:L(),content:F.createElement(Zr,null,F.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},St.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},F.createElement(uk,{color:"gray"}))),start:F.createElement(ck,{color:"gray",size:16}),end:F.createElement(Sk,{checked:h}),onClick:S},Q={id:"theme-item",type:F.createElement(fk,null),title:F.createElement(nt,{variant:"title",size:"xmedium"},St.t("Theme")),end:F.createElement(xk,null,F.createElement(Ck,{container:L(),items:vk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:wk(n)},M=m?[]:[w,E];return f||M.push(W),M.push(B),!e?.singleTheme&&!d&&M.push(Q),F.createElement(dk,{type:F.createElement(gk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(Md,"SettingsLists");var Wk=Ek("div",{paddingLeft:"$8"});function Ld(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Nk(),r=Ak(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return ao.createElement(le,{header:{title:Ws.t("Settings")}},ao.createElement(ue,null,o&&ao.createElement(bk,{type:"info",variant:"alarm",title:Ws.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(Wk,null,ao.createElement(Ik,{type:"secondary",size:"small",onClick:a},Ws.t("Reset")))}),ao.createElement(As,null),ao.createElement(Md,null)))}i(Ld,"SettingsPage");import{i18n as hx}from"@lingui/core";import{cancelSwap as yx}from"@rango-dev/queue-manager-rango-preset";import{useManager as Sx}from"@rango-dev/queue-manager-react";import{Alert as Cx}from"@rango-dev/ui";import Xs from"react";import{useParams as Tx}from"react-router-dom";import{i18n as Lt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Jk,getCurrentStep as Rk,getRelatedWalletOrNull as ex}from"@rango-dev/queue-manager-rango-preset";import{Button as cf,CopyIcon as tx,Divider as ox,IconButton as nx,LinkIcon as rx,QuoteCost as ix,StepDetails as ax,Typography as so,useCopyToClipboard as sx}from"@rango-dev/ui";import{useWallets as lx}from"@rango-dev/wallets-react";import uf from"bignumber.js";import{PendingSwapNetworkStatus as si}from"rango-types";import J,{useEffect as mf,useRef as px,useState as df}from"react";import{useNavigate as cx}from"react-router-dom";import{i18n as Qt}from"@lingui/core";var Mk=[Qt.t("Sunday"),Qt.t("Monday"),Qt.t("Tuesday"),Qt.t("Wednesday"),Qt.t("Thursday"),Qt.t("Friday"),Qt.t("Saturday")];function Bd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Qt.t("Today"):`${Mk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Bd,"timeSince");function _d(t){return t.finishTime?Bd(parseInt(t.finishTime)):Bd(parseInt(t.creationTime))}i(_d,"getSwapDate");import{PendingSwapNetworkStatus as ti}from"rango-types";import oi from"react";import{i18n as Rr}from"@lingui/core";import{Button as Pd,Divider as Ms,MessageBox as Lk}from"@rango-dev/ui";import Ht from"react";var $d=i(({onCancel:t,onClose:e})=>Ht.createElement(Ht.Fragment,null,Ht.createElement(Ms,{size:20}),Ht.createElement(Lk,{type:"error",title:Rr.t("Cancel Swap"),description:Rr.t("Are you sure you want to cancel this swap?")}),Ht.createElement(Ms,{size:32}),Ht.createElement(Pd,{variant:"contained",type:"primary",size:"large",onClick:t},Rr.t("Yes, Cancel it")),Ht.createElement(Ms,{size:12}),Ht.createElement(Pd,{variant:"outlined",type:"primary",size:"large",onClick:e},Rr.t("No, Continue"))),"CancelContent");import{i18n as ei}from"@lingui/core";import{Button as Dd,Divider as Ls,MessageBox as Bk,Typography as _k}from"@rango-dev/ui";import Wt from"react";var Fd=i(({onDelete:t,onClose:e})=>Wt.createElement(Wt.Fragment,null,Wt.createElement(Ls,{size:20}),Wt.createElement(Bk,{type:"error",title:ei.t("Delete Transaction"),description:ei.t("Are you sure you want to delete this swap?")}),Wt.createElement(Ls,{size:32}),Wt.createElement(Dd,{variant:"contained",type:"primary",size:"large",onClick:t},ei.t("Yes, Delete it")),Wt.createElement(Ls,{size:12}),Wt.createElement(Dd,{variant:"outlined",type:"primary",size:"large",onClick:e},Wt.createElement(_k,{variant:"title",size:"medium",color:"primary"},ei.t("No, Cancel")))),"DeleteContent");import{i18n as Bs}from"@lingui/core";import{PendingSwapNetworkStatus as _s}from"rango-types";var Ps={[_s.WaitingForNetworkChange]:{type:"loading",title:Bs.t("Change Network")},[_s.WaitingForConnectingWallet]:{type:"warning",title:Bs.t("Connect Wallet")},[_s.NetworkChanged]:{type:"success",title:Bs.t("Network Changed")}};import{debug as zd}from"@rango-dev/logging-core";import{MessageBox as Pk,Wallet as $k}from"@rango-dev/ui";import{useWallets as Dk}from"@rango-dev/wallets-react";import Ao,{useState as Fk}from"react";import{styled as Od}from"@rango-dev/ui";var Ud=Od("div",{display:"flex",justifyContent:"center"}),ez=Od("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var qd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Dk(),[c,d]=Fk(null),m=n?.walletType,f=m?yi(u(m)):null,h=m?p(m):null;return Ao.createElement(Ao.Fragment,null,Ao.createElement(Pk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!h&&Ao.createElement(Ud,null,Ao.createElement($k,{container:L(),title:h.name,image:h.img,type:m,state:f,link:h.installLink,disabled:s,onClick:async()=>{h.namespaces?d({providerType:m,providerImage:h.img,availableNamespaces:h.namespaces,singleNamespace:h.singleNamespace}):l(m).catch(C=>zd(C))}})),Ao.createElement(eo,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(g=>zd(g)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function $s(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ti.WaitingForNetworkChange||e===ti.WaitingForConnectingWallet||e===ti.NetworkChanged;return oi.createElement(oe,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&oi.createElement(qd,{type:Ps[e].type,title:Ps[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ti.WaitingForNetworkChange}),e==="delete"&&oi.createElement(Fd,{onClose:o,onDelete:n}),e==="cancel"&&oi.createElement($d,{onClose:o,onCancel:r}))}i($s,"SwapDetailsModal");import{i18n as dn}from"@lingui/core";import{Button as Ds,Divider as ni,MessageBox as Qd,TokenAmount as Ok,Typography as Fs}from"@rango-dev/ui";import Me from"react";import{useNavigate as Uk}from"react-router-dom";function Os(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=Uk();return Me.createElement(oe,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(Qd,{type:"success",title:dn.t("Swap Successful")},Me.createElement(Ok,{direction:"vertical",tooltipContainer:L(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(ni,{size:12}),Me.createElement(Fs,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Me.createElement(Qd,{type:"error",title:dn.t("Transaction Failed"),description:d}),Me.createElement(ni,{size:32}),n==="success"&&Me.createElement(Ds,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Me.createElement(Fs,{variant:"title",size:"medium",color:"neutral100"},dn.t("Done"))),Me.createElement(ni,{size:12}),m&&Me.createElement(Me.Fragment,null,Me.createElement(Ds,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},dn.t("Diagnosis")),Me.createElement(ni,{size:12})),Me.createElement(Ds,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Fs,{variant:"title",size:"medium",color:"primary"},dn.t("See Details"))))}i(Os,"SwapDetailsCompleteModal");import Zk from"react";import{i18n as Xk}from"@lingui/core";import{Alert as af,IconButton as jk,LinkIcon as Kk}from"@rango-dev/ui";import Gt,{Fragment as Yk}from"react";import{Alert as Qk,ChevronDownIcon as Hk,IconButton as Gk}from"@rango-dev/ui";import Wo,{useState as Vk}from"react";import{css as fn,darkTheme as zk,styled as Mt,Typography as qk}from"@rango-dev/ui";var Hd=Mt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ri=Mt("div",{width:"100%"}),Gd=Mt(Qo,{padding:"$0 $20 $20 $20"}),$z=Mt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Vd=Mt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Dz=Mt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),No=fn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${zk} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Xd=fn({padding:"$5 0"}),ii=fn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),jd=fn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Kd=fn({width:"100%",padding:"0 $20 $10"}),Yd=Mt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Zd=Mt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ai=Mt(qk,{wordBreak:"break-word"});import{styled as Us}from"@rango-dev/ui";var Jd=Us("div",{display:"flex",flexDirection:"column",gap:"$10"}),Rd=Us("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),ef=Us("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function tf(t){let{message:e}=t,[o,n]=Vk(!1);return Wo.createElement(Qk,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Wo.createElement(Gk,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Wo.createElement(Rd,{rotated:o},Wo.createElement(Hk,{size:12,color:"gray"}))),footer:Wo.createElement(ef,{open:o},Wo.createElement(ai,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(tf,"FailedAlert");import{i18n as of}from"@lingui/core";import{Alert as zs,Button as nf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as qs}from"rango-types";import gn from"react";function rf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?gn.createElement(zs,{type:"warning",title:n.shortMessage,action:gn.createElement(nf,{size:"xxsmall",type:"warning",onClick:()=>{o(qs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},of.t("Change"))}):r===qs.WaitingForConnectingWallet?gn.createElement(zs,{type:"warning",title:n.shortMessage,action:gn.createElement(nf,{size:"xxsmall",type:"warning",onClick:()=>{o(qs.WaitingForConnectingWallet)}},of.t("Connect"))}):gn.createElement(zs,{type:"warning",title:n.shortMessage})}i(rf,"WarningAlert");function Qs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Uo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Gt.createElement(Jd,null,a.explorerUrl?.map((d,m,f)=>{let h=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,g=S&&a.status==="failed";return Gt.createElement(Yk,{key:h},Gt.createElement(af,{type:S&&(C&&"loading"||g&&"error")||"success",title:d.description?`${d.description} Tx`:Xk.t("View transaction"),action:d.url&&Gt.createElement(jk,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Gt.createElement(Kk,{size:12}))}))}),c&&Gt.createElement(af,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Gt.createElement(rf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Gt.createElement(tf,{message:r}))}i(Qs,"SwapDetailsAlerts");var sf=2e3;var lf=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:$o(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:$o(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Zk.createElement(Qs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function pf(t){if(Uo(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(pf,"getStepState");function Hs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=lx(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),d=j.use.retry(),m=ne.use.isActiveTab(),f=cx(),[h,S]=sx(sf),C=px(null),[g,T]=df(null),[k,x]=df(null),I=i(()=>{r(),T(null)},"onCancel"),b=ze.use.getUnreadNotifications(),v=ze.use.setAsRead(),w=b(),E=Rk(e),W=E?.networkStatus;mf(()=>{w.find(Ue=>Ue.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),v(e.requestId)):k&&x(null))},[e.status,e.requestId]),mf(()=>{H?T(si.WaitingForNetworkChange):W===si.WaitingForConnectingWallet||W===si.NetworkChanged?T(W):T(null)},[W]);let B=mp(e),Q=E?Jk(e,E):null,M=E?ex(e,E):null,V=_d(e),Y=dp(e),re=i(Ne=>!!l(Ne)?.mobileWallet,"isMobileWallet"),H=W===si.WaitingForNetworkChange&&!!Q&&!!M?.walletType&&(re(M.walletType)||a(M.walletType,Q)),A=H?s.bind(null,M.walletType,Q):void 0,te=up(e,E),q=lf({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 uf(_).multipliedBy(ge.toUsdPrice||0)):"",Ge=pe(new uf(e.inputAmount).multipliedBy(me.fromUsdPrice||0)),Ae=Je(ie,X),Le=te.detailedMessage.content||te.shortMessage,Ke=e.status==="success"?Lt.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:En(e.wallets[q[Z-1].to.chain.displayName]?.address||""),chain:q[Z-1].to.chain.displayName}}):J.createElement(Zd,null,J.createElement(so,{variant:"body",size:"medium",color:"neutral700",align:"center"},Le?"":Lt.t("Transaction was not sent."),B?`${Lt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Le&&J.createElement(ai,{align:"center",variant:"body",size:"medium",color:"neutral700"},J.createElement("b",null,"Reason:")," ",Le));return J.createElement(le,{header:{title:Lt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&J.createElement(go,null,J.createElement(cf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},J.createElement(so,{size:"medium",variant:"label",color:"error"},Lt.t("Delete"))))},footer:Y&&!k&&J.createElement(cf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},Lt.t("Try again"))},J.createElement(ue,{compact:!0,view:!0},J.createElement(ri,null,J.createElement("div",{className:No()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Lt.t("Request ID")}:`),J.createElement("div",{className:ii()},J.createElement(so,{variant:"label",size:"small",color:"neutral700"},o),J.createElement(nx,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(tx,{size:16,color:"gray"})),J.createElement(Yd,{target:"_blank",href:`${el}/swap/${o}`},J.createElement(rx,{size:16})))),J.createElement("div",{className:No()},J.createElement(so,{variant:"label",size:"large",color:"neutral700"},`${Lt.t(e.finishTime?"Finished at":"Created at")}:`),J.createElement(so,{variant:"label",size:"small",color:"neutral700"},V))),J.createElement("div",{className:jd()},J.createElement(ix,{fee:N(String(Oe),2,2),time:Lo(Tn(e.steps)),steps:Z}),J.createElement(Ko,{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:kt(Ae??0)})),J.createElement("div",{className:Kd()},J.createElement(so,{variant:"title",size:"small"},Lt.t("Swaps steps"))),J.createElement(ox,{size:8}),J.createElement(Gd,{ref:C},q.map((Ne,Ue)=>{let Sn=Ue,Mo=pf(e.steps[Ue]),Lf=Mo==="error"||Mo==="in-progress"||Mo==="warning"||Mo==="completed"&&Ue===q.length-1;return J.createElement(ax,{key:Sn,step:Ne,type:"swap-progress",ref:C,state:Mo,hasSeparator:Ue!==0,tabIndex:Sn,isFocused:Lf,tooltipContainer:L()})}))),J.createElement($s,{state:g,onClose:()=>T(null),onCancel:I,onDelete:n,message:te.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),J.createElement(Os,{open:!!k,diagnosisUrl:P,onClose:()=>x(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(Hs,"SwapDetails");import{i18n as pi}from"@lingui/core";import{Divider as hf,NotFound as gx,Skeleton as yn,Typography as ci}from"@rango-dev/ui";import fe from"react";import{i18n as ux}from"@lingui/core";import{Divider as mx,Skeleton as dx,Typography as fx}from"@rango-dev/ui";import Se from"react";import{css as ct,styled as Gs}from"@rango-dev/ui";var ff=Gs("div",{width:"100%",height:"100%",padding:"$10 $20"}),hn=Gs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),li=Gs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),Kq=ct({display:"flex",justifyContent:"space-between",alignItems:"center"}),Yq=ct({display:"flex",justifyContent:"space-between",alignItems:"center"}),Zq=ct({paddingTop:"$15",display:"flex"}),Jq=ct({padding:"$15 $0"}),Rq=ct({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),eQ=ct({paddingBottom:"$10"}),tQ=ct({display:"flex",justifyContent:"start",alignItems:"center"}),oQ=ct({paddingTop:"$5",display:"flex",alignItems:"center"}),nQ=ct({display:"flex",alignItems:"center"}),rQ=ct({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),gf=ct({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Vs(){return Se.createElement(ff,null,Se.createElement(Jo,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(fx,{variant:"title",size:"small"},ux.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(hn,null,Se.createElement(ht,{separator:!1}),Se.createElement("div",{className:gf()},Se.createElement(mx,{direction:"horizontal",size:20}),Se.createElement(dx,{height:22,variant:"rectangular"}))),Se.createElement(li,null),Se.createElement(hn,null,Se.createElement(ht,{separator:!1})),Se.createElement(li,null),Se.createElement(hn,null,Se.createElement(ht,{separator:!1})),Se.createElement(li,null),Se.createElement(hn,null,Se.createElement(ht,{separator:!1}))))}i(Vs,"LoadingSwapDetails");function yf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:pi.t("Swap and Bridge"),suffix:fe.createElement(go,null)}},o&&fe.createElement(Hd,null,fe.createElement(ri,null,fe.createElement("div",{className:No()},fe.createElement(ci,{variant:"label",size:"large",color:"neutral700"},`${pi.t("Request ID")}:`),fe.createElement("div",{className:ii()},fe.createElement(ci,{variant:"label",size:"small",color:"neutral700"},fe.createElement(yn,{width:60,height:10,variant:"rounded"})),fe.createElement(hf,{direction:"horizontal",size:4}),fe.createElement(yn,{width:16,height:16,variant:"rectangular"}),fe.createElement(hf,{direction:"horizontal",size:4}),fe.createElement(yn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:No()},fe.createElement(ci,{className:Xd(),variant:"label",size:"large",color:"neutral700"},fe.createElement(yn,{width:60,height:10,variant:"rounded"})),fe.createElement(ci,{variant:"label",size:"small",color:"neutral700"},fe.createElement(yn,{width:60,height:10,variant:"rounded"})))),fe.createElement(Vs,null)),!o&&fe.createElement(Vd,null,fe.createElement(gx,{title:pi.t("Not found"),description:pi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(yf,"SwapDetailsPlaceholder");function Sf(){let{manager:t,state:e}=Sx(),o=!e.loadedFromPersistor,n=dt(t),{requestId:r}=Tx(),a=et(),{fetchStatus:s}=y();if(!r)return Xs.createElement(Cx,{containerStyles:{margin:"20px"},type:"error",title:hx.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&&yx(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?Xs.createElement(yf,{requestId:r,showSkeleton:l}):Xs.createElement(Hs,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(Sf,"SwapDetailsPage");function Cf(){return vp(),qi(),kx([{path:U.home,element:He.createElement(Fm,null)},{path:U.routes,element:He.createElement(Qm,null)},{path:U.fromSwap,children:[{index:!0,element:He.createElement(Is,{type:"source"})},{path:U.blockchains,element:He.createElement(ps,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:He.createElement(Is,{type:"destination"})},{path:U.blockchains,element:He.createElement(ps,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:He.createElement(Ld,null)},{path:U.languages,element:He.createElement(Um,null)},{path:U.exchanges,element:He.createElement(is,{sourceType:"Exchanges"})},{path:U.bridges,element:He.createElement(is,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:He.createElement(ym,null)},{path:U.swapDetails,element:He.createElement(Sf,null)}]},{path:U.wallets,element:He.createElement(Wc,null)},{path:U.confirmSwap,element:He.createElement(im,null)}])}i(Cf,"AppRoutes");import{useQueueManager as Nx}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Wx}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Mx}from"rango-sdk";import{useContext as Lx,useEffect as Bx,useState as If}from"react";import{globalCss as xx}from"@rango-dev/ui";var Tf=i(()=>xx({"@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 kf(){let{setWatermark:t}=ne();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Ct("BASE_URL")}/meta/dapp/config?apiKey=${Ct("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(kf,"useFetchApiConfig");import{useWallets as vx}from"@rango-dev/wallets-react";import{useEffect as wx,useRef as bx}from"react";function xf(){let{connect:t,state:e}=vx(),o=bx({}),{fetchStatus:n}=y(),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(xf,"useForceAutoConnect");import{isApprovalTX as Ix,MainEvents as ui,RouteEventType as vf,StepEventType as wf,StepExecutionEventStatus as Ex,useEvents as Ax}from"@rango-dev/queue-manager-rango-preset";import{useEffect as bf}from"react";function js(){let t=y().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=ze.use.setNotification(),r=Ax();bf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===wf.TX_EXECUTION&&l.status===Ex.TX_SENT&&!Ix(p)||l.type===wf.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(ui.StepEvent,a),()=>r.off(ui.StepEvent,a)},[r,e.length]),bf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===vf.FAILED||l.type===vf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(ui.RouteEvent,a),()=>r.off(ui.RouteEvent,a)},[r,e.length])}i(js,"useSubscribeToWidgetEvents");function Ks(){Tf(),xf(),js();let t=y().blockchains(),{canSwitchNetworkTo:e}=gr(),[o,n]=If(""),[r,a]=If(),s=Lx(_n),l=t.filter(Mx),{fetchApiConfig:p}=kf();Nx({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Bx(()=>(Xt.init(),ze.persist.hasHydrated()||ze.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Wx(o)?.[0]&&n("")}),p().catch(console.log),Xt.destroy),[])}i(Ks,"useBootstrap");import{styled as _x}from"@rango-dev/ui";var Ef=_x("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function mi(){Ks();let{config:t}=y(),{activeTheme:e}=or(t?.theme||{}),{activeLanguage:o}=qt();return Ys.createElement(Px,{language:o},Ys.createElement(Ef,{id:"swap-container",className:e()},Ys.createElement(Cf,null)))}i(mi,"Main");import Js,{useMemo as Rx}from"react";import{checkWaitingForNetworkChange as $x,makeQueueDefinition as Dx}from"@rango-dev/queue-manager-rango-preset";import{Provider as Fx}from"@rango-dev/queue-manager-react";import{useWallets as Ox}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Ux}from"@rango-dev/wallets-shared";import{isEvmBlockchain as zx}from"rango-types";import qx,{useMemo as Qx}from"react";function Hx(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Ox(),l=Qx(()=>Dx({API_KEY:t.apiKey||Ct("API_KEY"),BASE_URL:Ct("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:R.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},d=i(async(k,x)=>{if(a(k,x))return r(k,x)},"switchNetwork"),m=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,x)=>(k[x.name]=x,k),{}),h=p.filter(zx),S=i(k=>{let{supportedChains:x}=s(k);return vn(x)},"getSupportedChainNames"),C=e(),g={meta:{blockchains:f,evmBasedChains:h,evmNetworkChainInfo:Ux(h),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return qx.createElement(Fx,{queuesDefs:[l],context:g,onPersistedDataLoaded:k=>{$x(k)},isPaused:!T},t.children)}i(Hx,"QueueManager");var Af=Hx;import{useManager as Kx}from"@rango-dev/queue-manager-react";import Yx,{createContext as Zx,useContext as Jx}from"react";import{cancelSwap as Gx,getCurrentBlockchainOfOrNull as Vx,getCurrentStep as Xx,getRelatedWalletOrNull as jx}from"@rango-dev/queue-manager-rango-preset";var di=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return dt(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&&Gx(o)}getCurrentStepInfo(e){let o=Xx(e);return{step:o,wallet:o?jx(e,o):null,network:o?Vx(e,o):null}}};var Nf=Zx(void 0);function Zs(t){let{manager:e}=Kx(),o=ne.use.isActiveTab(),n=j.use.retry(),r=new di(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=pl(a),p=R.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),d=y().swappers(),m=y().fetchStatus,f=qt().resetLanguage,h=ze().getUnreadNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Xt.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:h}};return Yx.createElement(Nf.Provider,{value:S},t.children)}i(Zs,"WidgetInfo");function Wf(){let t=Jx(Nf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Wf,"useWidget");function fi(t){let{onUpdateState:e,config:o}=t;return Rx(()=>{gl({API_KEY:o?.apiKey||Cn,BASE_URL:o?.apiUrl||Rs})},[o.apiKey,o.apiUrl]),Js.createElement(Pn,{config:o,onUpdateState:e},Js.createElement(Af,{apiKey:o.apiKey},Js.createElement(Zs,null,t.children)))}i(fi,"WidgetProvider");function Mf(t){let e=t.config?.externalWallets;return gi.createElement(jl,null,e?gi.createElement(mi,null):gi.createElement(fi,{config:t.config??xi},gi.createElement(mi,null)))}i(Mf,"Widget");export{ZG as EventSeverity,JG as MainEvents,lV as Networks,uV as PendingSwapNetworkStatus,RG as RouteEventType,eV as StepEventType,tV as StepExecutionBlockedEventStatus,oV as StepExecutionEventStatus,he as UI_ID,aV as WalletEvents,pV as WalletTypes,Mf as Widget,fi as WidgetProvider,Pn as WidgetWallets,Yi as customizedThemeTokens,iV as readAccountAddress,gr as useWallets,Wf as useWidget,nV as useWidgetEvents};
3
3
  //# sourceMappingURL=index.js.map