@rango-dev/widget-embedded 0.28.3-next.4 → 0.28.3-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -0
- package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/store/wallets.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +2 -2
- package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +1 -8
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +177 -54
- package/src/components/ConfirmWalletsModal/WalletList.tsx +4 -2
- package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -0
- package/src/components/SwapDetails/SwapDetails.tsx +8 -2
- package/src/store/wallets.ts +7 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Xf=Object.defineProperty;var i=(t,e)=>Xf(t,"name",{value:e,configurable:!0});import{EventSeverity as OV,MainEvents as UV,RouteEventType as zV,StepEventType as qV,StepExecutionBlockedEventStatus as QV,StepExecutionEventStatus as HV,useEvents as GV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as XV,useWallets as Sr,Events as jV}from"@rango-dev/wallets-react";import{Networks as YV,WalletTypes as ZV}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as RV}from"rango-types";import{UI_ID as jf}from"@rango-dev/ui";var Tn="c6381a79-2817-4602-83bf-6a641a409e32",rl="https://api.rango.exchange",il="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...jf};var al="Roboto",Si=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as _i,Provider as Ug}from"@rango-dev/wallets-react";import{isEvmBlockchain as zg}from"rango-sdk";import Pn,{createContext as qg,useEffect as ep,useMemo as Qg,useRef as tp}from"react";import{useEffect as dg}from"react";import{create as cg}from"zustand";import{subscribeWithSelector as ug}from"zustand/middleware";import{RangoClient as lg}from"rango-sdk";import{BlockchainCategories as eg,WalletState as ft}from"@rango-dev/ui";import{readAccountAddress as tg}from"@rango-dev/wallets-react";import{detectInstallLink as og,getCosmosExperimentalChainInfo as ng,isEvmAddress as rg,KEPLR_COMPATIBLE_WALLETS as Hv,Networks as Sl}from"@rango-dev/wallets-shared";import vi from"bignumber.js";import{isCosmosBlockchain as ig}from"rango-types";import Kf from"bignumber.js";var Pe=new Kf(0);import{WalletTypes as Yf}from"@rango-dev/wallets-shared";var sl=[Yf.LEAP];import{BlockchainCategories as Ci}from"@rango-dev/ui";import{TransactionType as kn}from"rango-sdk";function po(t){return Array.from(new Set(t))}i(po,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function dl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(dl,"debounce");function Tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Tt,"containsText");function cl(t,e){return t.toLowerCase()===e.toLowerCase()}i(cl,"exactText");function ul(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(ul,"startWithText");var B=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Po=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function ml(t,e,o){let n=!!e&&cl(e,t),r=!!o&&cl(o,t);return n!==r?n?-1:1:0}i(ml,"compareExactMatchText");function Ti(t,e,o){let n=!!e&&Tt(e,t),r=!!o&&Tt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ti,"compareContainsText");function ki(t,e,o){let n=!!e&&ul(e,t),r=!!o&&ul(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareStartWithText");function fl(t,e,o){if(!o)return 0;let n=ml(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=ml(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ki(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ti(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ki(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ti(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ki(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ti(o,t.address,e.address);if(r!==0)return r}return 0}i(fl,"compareWithSearchFor");var wn=i((t,e)=>{switch(e){case Ci.ALL:return!0;case Ci.UTXO:return t===kn.TRANSFER;case Ci.OTHER:return t!==kn.TRANSFER&&t!==kn.COSMOS&&t!==kn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),gl=i(t=>Si.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as yl}from"bignumber.js";var $o=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new yl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new yl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var vn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var dt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Do=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pe(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(pe,"formatTooltipNumbers");function xi(t){switch(!0){case t.connected:return ft.CONNECTED;case t.connecting:return ft.CONNECTING;case!t.installed:return ft.NOT_INSTALLED;default:return ft.DISCONNECTED}}i(xi,"mapStatusToWalletState");function Cl(t,e,o,n){return o.filter(r=>!sl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:d}=e(r),m=po(d.map(g=>g.type)),f=xi(t(r));return{title:a,image:s,link:og(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(Cl,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function Tl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(d=>d.chain===p)){let d={address:u,chain:p,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=tg(p),d=l.length>0,m=l.includes(c),f=c===Sl.Unknown;if(d&&!m&&!f)return;let S=c===Sl.Unknown&&rg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Tl,"prepareAccountsForWalletStore");function jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let d=u.from.blockchain,m=u.to.blockchain,f=a===o.swaps.length-1,g=c===p.length-1;(!f&&!g||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(m)})}e==="all"&&n.add(l)}),Array.from(n)}i(jt,"getQuoteWallets");function En(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(En,"isAccountAndWalletMatched");function kl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new vi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:sg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(kl,"makeBalanceFor");function wl(t){return{...t,loading:!1,error:!0}}i(wl,"resetConnectedWalletState");var vl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new vi(a?.amount||Pe).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Pe)||Pe).toString();return ag(r)},"calculateWalletUsdValue");function ag(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ag,"numberWithThousandSeparator");var sg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),An=i((t,e)=>{let o=ng(Object.entries(t).map(([,n])=>n).filter(ig));return o&&o[e]?.experimental},"isExperimentalChain");function Nn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Nn,"formatBalance");function xl(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(xl,"compareTokenBalance");function $e(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i($e,"areTokensEqual");function bl(t){return t.sort((e,o)=>+(o.state===ft.CONNECTED)-+(e.state===ft.CONNECTED)||+(o.state===ft.DISCONNECTED||o.state===ft.CONNECTING)-+(e.state===ft.DISCONNECTED||e.state===ft.CONNECTING))}i(bl,"sortWalletsBasedOnConnectionState");function Wn(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Wn,"getConciseAddress");function Il({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Il,"getAddress");function bi(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(bi,"createTokenHash");function Ln(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new vi(o?.usdPrice??Pe).multipliedBy(o?.amount).toString():""},r=o?bi({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Ln,"makeTokensBalance");var El=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Al(t){return t.map(e=>e.state).join("-")}i(Al,"hashWalletsState");function Nl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Nl,"filterBlockchainsByWalletTypes");function Wl(t,e){return e===eg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Wl,"filterWalletsByCategory");var Ii={API_KEY:Tn};function kt(t){return Ii[t]||""}i(kt,"getConfig");function Ll(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ii=e,Ii}i(Ll,"initConfig");var Ml=20,Bl=25,Ei="theme-widget",Fo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>$e(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>$e(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ai=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),_l=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Mn,_t=i(()=>Mn||(Mn=new lg(kt("API_KEY"),kt("BASE_URL")),Mn),"httpService");var pg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Pt=pg;var R=Pt(cg()(ug((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.find(p=>p.chain===s.chain&&p.selected);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Ln(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>En(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(m=>{let f=o.find(S=>En(S,m)),g=p.find(S=>S.address===m.address&&S.blockChain===m.chain);return g?.failed&&f&&r&&a([f],n,!1),f&&g?{...m,explorerUrl:g.explorerUrl,balances:kl(g,n),loading:!1}:m});return{loading:!1,balances:Ln(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(d=>En(d,c))?wl(c):c);return{loading:!1,balances:Ln(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=bi(o);return n[r]??null}}))));import{allProviders as mg}from"@rango-dev/provider-all";function Bn(t,e){let o=mg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Bn,"matchAndGenerateProviders");function Pl(t,e){return Bn(t,e).map(r=>r.config.type)}i(Pl,"configWalletsToWalletName");function $l(t,e){let o=R.use.clearConnectedWallet(),n=Bn(t,e);return dg(()=>{o(),n=Bn(t,e)},[t?.length]),{providers:n}}i($l,"useWalletProviders");import Bg,{createContext as _g,useContext as Pg,useEffect as $g,useRef as Dg}from"react";import{create as Lg}from"zustand";import{persist as Mg}from"zustand/middleware";var Ni={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},fg={clientUrl:void 0},gg={liquiditySources:void 0},Dl=i((t,e,o)=>({config:{...Ni,...t},iframe:fg,campaignMode:gg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Fl(t,e){return e.find(o=>o.name===t)?.displayName}i(Fl,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function Oo(t,e){return e.find(o=>o.id===t)?.title}i(Oo,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>$e(o,t))??null}i(Wi,"findToken");function Li(t,e){return e.find(o=>o.name===t)??null}i(Li,"findBlockchain");function Mi(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Mi,"isTokenNative");function _n(t,e){let o=t.map(a=>a.swapperGroup),n=[];return po(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(_n,"getUniqueSwappersGroups");function Ol(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ol,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Ul(t,e){return e?.[t]==="enabled"}i(Ul,"isFeatureEnabled");var zl=i((t,e)=>({_blockchainsMapByName:new Map,_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokens,r=e()._blockchainsMapByName;if(!o||!o?.type)return n;let a=e().config,s=(o.type==="source"?a.from?.tokens:a.to?.tokens)??{},l=e().blockchains({type:o.type});return n.filter(u=>s&&Fo(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(Tt(u.symbol,o.searchFor)||Tt(u.address||"",o.searchFor)||Tt(u.name||"",o.searchFor)):!0).sort((u,c)=>{let d=e().isTokenPinned(u,o.type),m=e().isTokenPinned(c,o.type);if(d!==m)return d?-1:1;if(o.getBalanceFor){let h=o.getBalanceFor(u),T=o.getBalanceFor(c),k=xl(h,T);if(k!==0)return k}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=Mi(u,f),C=Mi(c,g);if(S!==C)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let h=fl(u,c,o.searchFor);if(h)return h}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>$e(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Ol)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=[],s=n.popularTokens,l=n.swappers,p=new Set;n.tokens.forEach(c=>{p.add(c.blockchain),a.push(c)}),n.blockchains.sort((c,d)=>c.sort-d.sort).forEach(c=>{c.enabled&&p.has(c.name)&&r.set(c.name,c)}),t({_blockchainsMapByName:r,_tokens:a,_popularTokens:s,_swappers:l})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as hg,English as yg,Finland as Sg,French as Cg,German as Tg,Greece as kg,Italian as wg,Japanese as vg,Netherlands as xg,Poland as bg,Portuguese as Ig,Russian as Eg,Spanish as Ag,Swedish as Ng,Ukrainian as Wg}from"@rango-dev/ui";var ql=[{title:"English",label:"English",local:"en",SVGFlag:yg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ag},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Cg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:vg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ig},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:hg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Eg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Tg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Wg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ng},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Sg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:xg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:kg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:bg}],Uo="en";var Ql=[.5,1,3],Hl=1,Gl=5,Vl=100,Xl=0;var jl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Hl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=po(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Ze("theme",n),s=Ze("language",n),l=Ze("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Uo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Kl(t){return Lg()(Mg((...e)=>({...zl(...e),...jl(...e),...Dl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Kl,"createAppStore");var Yl=_g(null);function y(){let t=Pg(Yl);if($g(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function Zl(t){let e=Dg();return e.current||(e.current=Kl(t.config)),Bg.createElement(Yl.Provider,{value:e.current},t.children)}i(Zl,"AppStoreProvider");import{create as Og}from"zustand";var Jl="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(Jl),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ne=Pt(Og()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),Kt=new zo({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});var $n=qg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Hg(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=$l(s.wallets,l),{connectWallet:u,disconnectWallet:c}=R(),d=tp(),m=tp();ep(()=>{n().catch(console.log)},[]),ep(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(zg).map(h=>h.name),g=i((h,T,k,v,E)=>{if(T===_i.ACCOUNTS)if(k){let b=In(E.supportedBlockchains),x=Tl(h,k,f,b,E.isContractWallet);x.length&&u(x,a)}else c(h),m.current?m.current(h):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===_i.ACCOUNTS&&v.connected){let b=`${h}-${v.network}-${k}`;v.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===_i.NETWORK&&v.network){let b=`${h}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,T,k,v,E)},"onUpdateState"),S=ne.use.isActiveTab(),C=Qg(()=>({onConnectWallet:h=>{d.current=h},onDisconnectWallet:h=>{m.current=h}}),[]);return Pn.createElement($n.Provider,{value:C},Pn.createElement(Ug,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Hg,"Main");function Dn(t){let{config:e,...o}=t;return Pn.createElement(Zl,{config:e},Pn.createElement(Hg,{...o,config:e}))}i(Dn,"WidgetWallets");import yi from"react";import Gg,{Fragment as Vg}from"react";import{MemoryRouter as Xg,useInRouterContext as jg}from"react-router";function op({children:t}){let o=jg()?Vg:Xg;return Gg.createElement(o,null,t)}i(op,"AppRouter");import{I18nManager as Jw}from"@rango-dev/ui";import tl from"react";import He from"react";import{useRoutes as $w}from"react-router-dom";var U={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as mo,useRef as Xn}from"react";import vt from"bignumber.js";import{create as Jg}from"zustand";import{subscribeWithSelector as Rg}from"zustand/middleware";import{getLastSuccessfulStep as Zg}from"@rango-dev/queue-manager-rango-preset";import hI from"bignumber.js";import{i18n as qo}from"@lingui/core";var Pi={"Network Fee":qo.t("Network Fee"),"Swapper Fee":qo.t("Protocol Fee"),"Affiliate Fee":qo.t("Affiliate Fee"),"Outbound network fee":qo.t("Outbound Fee"),"Rango Fee":qo.t("Rango Fee")},$i=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],np=30;import{i18n as it}from"@lingui/core";import{RouteEventType as eI}from"@rango-dev/queue-manager-rango-preset";import De from"bignumber.js";import{PendingSwapNetworkStatus as Un}from"rango-types";function Fn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Fn,"isValidAddress");import{i18n as Me}from"@lingui/core";var ee=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function rp(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(rp,"getQuoteErrorMessage");import{i18n as On}from"@lingui/core";var Yt=i(()=>({connectWallet:On.t("Connect Wallet"),swap:On.t("Swap"),swapAnyway:On.t("Swap anyway"),ethWarning:On.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ip(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new De(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new De(1e3)))??!1}i(ip,"hasHighValueLoss");function ap(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new De(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new De(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(ap,"hasLimitError");function sp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new De(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new De(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new De(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new De(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(sp,"getLimitErrorMessage");function lp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Yt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Yt().swap,action:"confirm-swap",disabled:!0}:s?{title:Yt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Yt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Yt().swap,action:"confirm-swap",disabled:!1}:{title:Yt().connectWallet,action:"connect-wallet",disabled:!1}}i(lp,"getSwapButtonState");function Di(t,e,o){return!((!o||o.lte(Pe))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Di,"canComputePriceImpact");var Kg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function Fi(t,e){let o=Pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=Kg(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new De(r.amount).multipliedBy(a||0))}return o}i(Fi,"getUsdFeeOfStep");function zn(t,e){return t.reduce((o,n)=>o.plus(Fi(n,e)),Pe)}i(zn,"getTotalFeeInUsd");function Oi(t){let e=Pe;return e=e.plus(new De(t.amount).multipliedBy(t.price||0)),e}i(Oi,"getUsdFee");function pp(t){return t.reduce((e,o)=>e.plus(Oi(o)),Pe)}i(pp,"getTotalFeesInUsd");function cp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(cp,"getFeesGroup");function up(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(up,"checkSlippageErrors");function mp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(mp,"checkSlippageWarnings");function qn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(qn,"getMinRequiredSlippage");function dp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(dp,"hasProperSlippage");function fp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:d,affiliateWallets:m,destination:f,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:d??void 0,affiliateWallets:m??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(fp,"createQuoteRequestBody");function gp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(gp,"getWalletsForNewSwap");function co(t){return t?.outputAmount||null}i(co,"getQuoteOutputAmount");function hp(t,e){return new De(e).div(new De(t)).minus(1).multipliedBy(100).toNumber()}i(hp,"getPercentageChange");function yp(t,e){let o=co(t),n=co(e);if(!o||!n)return!1;let r=Je(o,n);return r?r<=-1:!0}i(yp,"isOutputAmountChangedALot");function Sp(t,e,o){let n=t.validationStatus,r=jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>xp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new De(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new De(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ye(s.asset.blockchain,o)}})})}i(Sp,"generateBalanceWarnings");function Qn(t,e){return(t?new De(t):Pe).multipliedBy(e||0)}i(Qn,"calcOutputUsdValue");function Qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Un.NetworkChanged}i(Qo,"isNetworkStatusInWarningState");function Cp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Un.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Un.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Un.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Cp,"getSwapMessages");function Tp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Tp,"getLastConvertedTokenInFailedSwap");function kp(t){return t.status==="failed"}i(kp,"shouldRetrySwap");function wp(t,e,o,n,r,a){if(!n||t)return!0;let s=jt({filter:"all",quote:n}),l=jt({filter:"required",quote:n}),p=s.every(d=>r.some(m=>m.chain===d)),u=l.every(d=>r.some(m=>m.chain===d)),c=o&&a?Fn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(wp,"isConfirmSwapDisabled");function vp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(vp,"isTokensIdentical");function Gn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Gn,"getQuoteToTokenUsdPrice");function Ui(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ui,"isNumberOfSwapsChanged");function zi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!wi(o,n)}i(zi,"isQuoteSwappersUpdated");function qi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!wi(o,n)}i(qi,"isQuoteInternalCoinsUpdated");function Ip(t,e){return Ui(t,e)||zi(t,e)||qi(t,e)}i(Ip,"isQuoteChanged");function xp(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(xp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function Ep(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Zg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Li(a?a.toBlockchain:n.fromBlockchain,e),p=Li(r.toBlockchain,e),u=Wi(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=Wi(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(Ep,"createRetryQuote");function uo(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=Zt(o,t.requestAmount),l=Zt(n,t?.outputAmount??"");if(t&&s&&l){let c=Je(s.toString(),l.toString());if(!!c&&ip(s,c)){let m=zn(t?.swaps,r),f=wt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=qn(t.swaps),u=a>Gl;if(dp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:mp(t,a),minRequiredSlippage:p};return null}i(uo,"generateQuoteWarnings");function Je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:hp(t.toString(),e.toString());return n&&n<0?n:null}i(Je,"getPriceImpact");var Ap=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Vn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Np=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Wp=i(t=>{let e=i((o,n)=>{let r=$i.indexOf(o.value),a=$i.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Zt=i((t,e)=>t?.usdPrice?new vt(e||Pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Pt(Jg()(Rg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new vt(0),outputUsdValue:new vt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Pe;return Do(o.inputAmount)?(e&&(n=e?.outputAmount?new vt(e?.outputAmount):null,r=Qn(e?.outputAmount,Gn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new vt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Zt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new vt(0),outputUsdValue:new vt(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Zt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Ep(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:Zt(s??null,u),outputUsdValue:new vt(0),toBlockchain:l,toToken:p,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?Zt(e.toToken,e.outputAmount?.toString()||""):new vt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Lp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=y().config,d=y().fetchStatus,m=y().blockchains(),f=y().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:C}=y(),h=c?.from?.tokens,T=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Xn(void 0),b=Xn(void 0),x=Xn(void 0),w=Xn(void 0);mo(()=>{t(c?.amount?.toString()||"")},[c?.amount]),mo(()=>{if(d==="success"){r();let I=m.find(M=>M.name===c?.from?.blockchain),W=f.find(M=>$e(M,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),W?a({token:W,meta:{blockchains:m,tokens:f}}):!W&&E.current&&a({token:null}),x.current=c?.from?.blockchain,E.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,d]),mo(()=>{Fo(s,h)&&a({token:null}),Ai(p,T)&&n(null)},[h,T]),mo(()=>{Fo(l,k)&&a({token:null}),Ai(u,v)&&o(null)},[k,v]),mo(()=>{if(d==="success"){r();let I=m.find(M=>M.name===c?.to?.blockchain),W=f.find(M=>$e(M,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),W?e({token:W,meta:{blockchains:m,tokens:f}}):!W&&b.current&&e({token:null}),w.current=c?.to?.blockchain,b.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,d]),mo(()=>{g(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),C(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Lp,"useSyncStoresWithConfig");import{useEffect as Gi,useRef as eh}from"react";import{useInRouterContext as th,useLocation as oh,useSearchParams as nh}from"react-router-dom";function Qi(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Qi,"searchParamToToken");function Hi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Hi,"tokenToSearchParam");function Vi(){let t=oh(),[e,o]=nh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=y().fetchStatus,g=y().blockchains(),S=y().tokens(),C=th(),{updateIframe:h,updateCampaignMode:T}=y(),k=y().isInCampaignMode(),v=eh(),E=i(()=>{let x={};for(let[re,H]of e.entries())re.startsWith("utm_")&&(x[re]=H);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),W=e.get("fromToken"),M=e.get("toBlockchain"),Q=e.get("toToken"),L=e.get("autoConnect"),V=e.get("clientUrl"),Y=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:W,toBlockchain:M,toToken:Q,autoConnect:L,clientUrl:V,liquiditySources:Y,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Gi(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();C&&f==="success"&&b({fromBlockchain:n?.name,fromToken:Hi(a),toBlockchain:r?.name,toToken:Hi(s),fromAmount:l,autoConnect:x??void 0,clientUrl:w??void 0,liquiditySources:k?v.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),Gi(()=>{if(!C)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&m(x.fromAmount),f==="success"){let w=g.find(Q=>Q.name===x.fromBlockchain),I=Qi(S,x.fromToken,w??null),W=g.find(Q=>Q.name===x.toBlockchain),M=Qi(S,x.toToken,W??null);w&&(p(w),I&&c({token:I,meta:{blockchains:g,tokens:S}})),W&&(u(W),M&&d({token:M,meta:{blockchains:g,tokens:S}}))}},[f]),Gi(()=>{let{clientUrl:x,liquiditySources:w}=E();h("clientUrl",x||void 0),T("liquiditySources",w?.split(",")??void 0)},[])}i(Vi,"useSyncUrlAndStore");import{i18n as Va}from"@lingui/core";import{useManager as hC}from"@rango-dev/queue-manager-react";import{Alert as gm,Button as yC,css as ja,Divider as Xa,IconButton as hm,styled as SC,Typography as CC,WalletIcon as TC}from"@rango-dev/ui";import we,{useEffect as Ur,useLayoutEffect as kC,useRef as wC,useState as on}from"react";import{useNavigate as vC}from"react-router-dom";import{i18n as ht}from"@lingui/core";import{Alert as ba,BalanceErrors as rS,Button as Kc,ChevronDownIcon as iS,ChevronLeftIcon as aS,Divider as vo,MessageBox as sS,Typography as Cr,WalletIcon as lS}from"@rango-dev/ui";import O,{useEffect as pS,useState as xo}from"react";import{useNavigate as cS}from"react-router-dom";import{i18n as jn}from"@lingui/core";function Kn(t){switch(t.type){case 0:return jn.t("Route has been updated.");case 3:return jn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return jn.t("Route swappers has been updated.");case 2:return jn.t("Route internal coins has been updated.");default:return""}}i(Kn,"getQuoteUpdateWarningMessage");import{Modal as ih}from"@rango-dev/ui";import ah from"react";function oe(t){let{watermark:e}=ne();return ah.createElement(ih,{hasWatermark:e==="FULL",...t},t.children)}i(oe,"WatermarkedModal");import Rn,{useRef as ph}from"react";import*as fo from"@radix-ui/react-collapsible";import{keyframes as Bp,styled as Yn}from"@rango-dev/ui";var Xi=300,sh=Bp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),lh=Bp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_p=Yn(fo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ji=Yn(fo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Zn=Yn(fo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${sh} ${Xi}ms ease-out`},false:{animation:`${lh} ${Xi}ms ease-out`}}}}),Jn=Yn("div",{transition:`all ${Xi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function er(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ph(null);return Rn.createElement(_p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Rn.createElement(ji,{className:"collapsible_trigger",onClick:a},s),Rn.createElement(Zn,{className:"collapsible_content",open:e},r),l==="bottom"&&Rn.createElement(ji,{className:"collapsible_trigger",onClick:a},s))}i(er,"CustomCollapsible");import{css as Pp,darkTheme as go,IconButton as ch,styled as Re,TextField as uh}from"@rango-dev/ui";var $p=Re("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Dp=Re("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),mh=Re("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${go} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Fp=Re(mh,{alignSelf:"stretch",minHeight:"93px"}),Op=Re("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Up=Re(ch,{position:"absolute",left:"$20"}),zp=Re("div",{paddingTop:"$20"}),qp=Pp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Qp=Re("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Hp=Pp({paddingTop:"$5"}),Gp=Re("div",{display:"flex"}),Vp=Re(uh,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),Xp=Re("div",{overflow:"visible",width:"100%"}),jp=Re("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${go} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:hover":{$$color:"$colors$secondary100",[`.${go} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$secondary100",[`.${go} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as eS,Divider as va,Image as tS,MessageBox as yr,SelectableWallet as oS,Typography as Vc,WalletState as Xc}from"@rango-dev/ui";import ce,{useEffect as jc,useState as wo}from"react";import{WalletState as tr}from"@rango-dev/ui";import{useWallets as dh}from"@rango-dev/wallets-react";import{detectMobileScreens as fh,KEPLR_COMPATIBLE_WALLETS as gh,WalletTypes as ho}from"@rango-dev/wallets-shared";import{useCallback as hh,useEffect as yh,useState as Sh}from"react";var Ch=Object.values(ho);function yo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=dh(),{connectedWallets:u}=R(),c=y().blockchains(),d=Pl(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ch,m=Cl(a,l,d,e);m=fh()?m.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):m;let f=bl(m),[g,S]=Sh(""),C=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),h=i(async(b,x)=>{let w=a(b);try{if(g&&S(""),w.connected)await s(b);else{let I=!!m.find(W=>W.state===tr.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),T=hh(()=>{let b=m?.filter(x=>x.state===tr.CONNECTING)||[];for(let x of b)s(x.type)},[Al(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");yh(()=>()=>{T()},[]);let v=i(b=>{let x=b.find(I=>I.type===ho.DEFAULT);return!x||x.state===tr.NOT_INSTALLED?!1:b.filter(I=>I.state!=tr.NOT_INSTALLED&&![ho.DEFAULT,ho.WALLET_CONNECT_2,ho.LEDGER].includes(I.type)&&l(I.type).supportedChains.filter(W=>W.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>An(w,x)&&C(b)&&!gh.includes(b)||b==ho.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:h,disconnectConnectingWallets:T,disconnectWallet:k}}i(yo,"useWalletList");import{i18n as Oc}from"@lingui/core";import{Divider as Gy,getCategoriesCount as Vy,SelectableCategoryList as Xy,styled as zc,Typography as jy,Wallet as Ky,WalletState as Uc}from"@rango-dev/ui";import at,{useState as gr}from"react";import{useManager as vy}from"@rango-dev/queue-manager-react";import{BottomLogo as xy,Divider as Mc,Header as by}from"@rango-dev/ui";import Se,{useEffect as ya,useRef as Bc,useState as Iy}from"react";import{useRef as Th}from"react";function or(){return window.self!==window.top}i(or,"isAppLoadedIntoIframe");function Ki(){let t=Th(null),{iframe:e}=y(),o=or()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ki,"useIframe");import{useNavigate as kh}from"react-router-dom";function et(){let t=kh();return()=>t(-1)}i(et,"useNavigateBack");import{createTheme as ta,darkTheme as Eh,lightTheme as Ah}from"@rango-dev/ui";import{useEffect as Nh,useState as Wh}from"react";import{theme as bh,darkColors as Ih}from"@rango-dev/ui";import Ri from"react";function wh(t,e,o){let p=[],u=90;for(let m=0;m<9;m++)p.push(u),m+1===4?u=0:u-=m>=4?6:10;let c=o?p.slice().reverse():p,d={};for(let m=0;m<9;m++){let f=100+m*100,g=c[m],S={[`${e}${f}`]:nr(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(wh,"generateShades");function nr(t,e){let[o,n,r]=Kp(t);return`#${Yi(o+e)}${Yi(n+e)}${Yi(r+e)}`}i(nr,"generateShade");function Kp(t){let r=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16);return[r,a,s]}i(Kp,"convertToRGB");function Yi(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(Yi,"clamp");function Yp(t){let[s,l,p]=Kp(t);return(s*299+l*587+p*114)/1e3>188}i(Yp,"isBright");var Zi=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let a in o){let s=o[a];s&&s!==t[a]&&(n=!0,a==="background"||a==="foreground"?r={...r,[a]:s}:r={...r,...wh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var Zp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),vh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Zp(o%52)+e;return Zp(o%52)+e},"toAlphabeticName"),xh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ji=i(t=>vh(xh(5381,JSON.stringify(t))>>>0),"toHash");function ea(t){let e=bh.colors,o=Zi({...e,...Ih},!0,t?.dark),n=Zi(e,!1,t?.light),r=Object.keys(o).length>0,a=Object.keys(n).length>0,s,l;if(a){let p={colors:n};s={id:`${Ei}-light-${Ji(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Ei}-dark-${Ji(p)}`,tokens:p}}return{light:s,dark:l}}i(ea,"customizedThemeTokens");function Jp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ri.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ri.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ri.cloneElement(e,{key:l}))}}),o}i(Jp,"joinList");function rr(t){let{colors:e,fontFamily:o=al,borderRadius:n=Ml,secondaryBorderRadius:r=Bl}=t,[a,s]=Wh("light"),{theme:l}=y(),{dark:p,light:u}=ea(e),c=ta({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,Ah.className],m=[c.className,Eh.className];if(u){let g=ta(u.id,u.tokens);d.push(g.className)}if(p){let g=ta(p.id,p.tokens);m.push(g.className)}return Nh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),S=m.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(rr,"useTheme");var tt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Rp}from"@lingui/core";import{Alert as Lh,Button as Mh}from"@rango-dev/ui";import ec from"react";function oa(t){return ec.createElement(Lh,{action:ec.createElement(Mh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rp.t("Activate this tab")),type:"warning",variant:"alarm",title:Rp.t("Another tab is open and handles transactions.")})}i(oa,"ActivateTabAlert");import{i18n as na}from"@lingui/core";import{Button as Bh,Divider as _h,MessageBox as Ph}from"@rango-dev/ui";import ir from"react";function ra(t){let{open:e,onClose:o,onConfirm:n}=t;return ir.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},ir.createElement(Ph,{title:na.t("Activate current tab"),type:"warning",description:na.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},ir.createElement(_h,{size:20}),ir.createElement(Bh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},na.t("Confirm"))))}i(ra,"ActivateTabModal");import{ChevronLeftIcon as Fh}from"@rango-dev/ui";import sc from"react";import{css as $h,darkTheme as tc,IconButton as Dh,styled as Jt}from"@rango-dev/ui";var gt=Jt(Dh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tc} &`]:{backgroundColor:"$neutral"}}}),oc=Jt("div",{position:"absolute",background:"$secondary500",[`.${tc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),So=Jt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nc=Jt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),rc=Jt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ic=Jt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),ac=$h({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ar=Jt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ia(t){return sc.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},sc.createElement(Fh,{color:"black",size:16}))}i(ia,"BackButton");import{i18n as Oh}from"@lingui/core";import{Button as Uh,Typography as zh}from"@rango-dev/ui";import aa from"react";function sa(t){return aa.createElement(So,null,aa.createElement(Uh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},aa.createElement(zh,{variant:"label",size:"medium",color:"error500"},Oh.t("Cancel"))))}i(sa,"CancelButton");import{i18n as qh}from"@lingui/core";import{Image as Qh,Tooltip as Hh,WalletIcon as Gh}from"@rango-dev/ui";import Rt from"react";function la(t){let{list:e}=yo({}),o=e.filter(r=>r.state==="connected"),n=o.length?Rt.createElement("div",{className:ac()},o.map(r=>Rt.createElement(ar,{key:r.title},Rt.createElement(Qh,{src:r.image,size:14})))):qh.t("Connect Wallet");return Rt.createElement(Hh,{container:t.container,side:"bottom",content:n},Rt.createElement(gt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Rt.createElement(oc,null),Rt.createElement(Gh,{size:18,color:"black"})))}i(la,"WalletButton");import{i18n as pr}from"@lingui/core";import{NotificationsIcon as fy,Popover as gy,SettingsIcon as hy,Tooltip as cr,TransactionIcon as yy}from"@rango-dev/ui";import Ie from"react";import{i18n as pa}from"@lingui/core";import{EventSeverity as yc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as Sc,ChevronRightIcon as oy,Divider as Cc,Typography as ca}from"@rango-dev/ui";import de from"react";import{useNavigate as ny}from"react-router-dom";import{create as Vh}from"zustand";import{persist as Xh,subscribeWithSelector as jh}from"zustand/middleware";var be=Pt(Vh()(Xh(jh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n:[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));import{Button as Kh,darkTheme as Yh,ListItemButton as Zh,styled as Dt}from"@rango-dev/ui";var lc=Dt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),pc=Dt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),cc=Dt(Kh,{padding:"$5 !important"}),uc=Dt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),mc=Dt(Zh,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${Yh} &`]:{backgroundColor:"$error600"}}}}}),dc=Dt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),fc=Dt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),gc=Dt("span",{paddingRight:"$8"});import{i18n as Jh}from"@lingui/core";import{Divider as Rh,NoNotificationIcon as ey,Typography as ty}from"@rango-dev/ui";import sr from"react";function hc(){return sr.createElement(fc,null,sr.createElement(ey,{color:"secondary",size:26}),sr.createElement(Rh,{size:12}),sr.createElement(ty,{variant:"body",size:"medium",color:"neutral700"},Jh.t("There are no notifications.")))}i(hc,"NotificationNotFound");var ry=4;function ua(){let t=ny(),{getNotifications:e,clearNotifications:o}=be(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,ry),l=i(p=>{t(`${U.swaps}/${p}`)},"handleOnClick");return de.createElement(lc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(pc,null,de.createElement(ca,{variant:"label",size:"medium"},pa.t("Notifications")),de.createElement(cc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(ca,{variant:"body",size:"xsmall"},pa.t("Clear all")))),de.createElement(Cc,{direction:"vertical",size:4})),s.length?de.createElement(uc,null,s.map((p,u)=>{let{route:c,requestId:d,event:m}=p,f=a.find(h=>$e(h,c.from)),g=r.find(h=>h.name===c.from.blockchain),S=a.find(h=>$e(h,c.to)),C=r.find(h=>h.name===c.to.blockchain);return de.createElement(de.Fragment,{key:d},u>0&&de.createElement(Cc,{size:4}),de.createElement(mc,{onClick:()=>l(d),actionRequired:m.messageSeverity===yc.WARNING,title:de.createElement(ca,{variant:"body",size:"small",color:m.messageSeverity===yc.WARNING?"$foreground":"$neutral700"},pa.t(m.message)),id:d,start:de.createElement(dc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(Sc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(Sc,{tokenImage:S?S.image:"",chainImage:C?C.logo:"",size:"small"}))),end:de.createElement(gc,null,de.createElement(oy,{size:12,color:"gray"}))}))})):de.createElement(hc,null))}i(ua,"NotificationContent");import{useManager as iy}from"@rango-dev/queue-manager-react";import{InProgressIcon as ay}from"@rango-dev/ui";import Tc from"react";var sy=i(()=>{let{manager:t}=iy();return tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Tc.createElement(ic,null,Tc.createElement(ay,{color:"info",size:6})):null},"InProgressTransactionBadge"),kc=sy;import{EventSeverity as ly}from"@rango-dev/queue-manager-rango-preset";import{Typography as py}from"@rango-dev/ui";import wc from"react";function vc(){let{getNotifications:t}=be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ly.WARNING);return o?wc.createElement(nc,{isSever:n},wc.createElement(py,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(vc,"NotificationsBadge");import{RefreshProgressButton as cy}from"@rango-dev/ui";import ma,{useEffect as uy,useState as xc}from"react";var my=1e3,bc=60,dy=100;function lr({onClick:t}){let[e,o]=xc(0),[n,r]=xc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");uy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===bc&&l()},my):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ma.createElement(gt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ma.createElement(rc,{onTransitionEnd:()=>r(!1),isRefetched:n},ma.createElement(cy,{size:22,color:t?"black":"gray",progress:e/bc*dy})))}i(lr,"RefreshButton");function eo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ze("notification",s)||r.includes("notifications");return Ie.createElement(Ie.Fragment,null,!r.includes("refresh")&&Ie.createElement(cr,{container:a||B(),side:"top",content:pr.t("Refresh")},Ie.createElement(lr,{onClick:e})),!l&&Ie.createElement(gy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Ie.createElement(ua,null)},Ie.createElement("div",null,Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Notifications")},Ie.createElement(gt,{size:"small",variant:"ghost"},Ie.createElement(fy,{size:18,color:"black"}),Ie.createElement(vc,null))))),!r.includes("settings")&&Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Settings")},Ie.createElement(gt,{size:"small",variant:"ghost",onClick:n},Ie.createElement(hy,{size:18,color:"black"}))),!r.includes("history")&&Ie.createElement(cr,{container:B(),side:"top",content:pr.t("Transactions History")},Ie.createElement(gt,{size:"small",variant:"ghost",onClick:o},Ie.createElement(yy,{size:18,color:"black"}),Ie.createElement(kc,null))))}i(eo,"HeaderButtons");import{i18n as da}from"@lingui/core";import{Divider as Ec,MessageBox as Ty,RefreshIcon as ky}from"@rango-dev/ui";import Co from"react";import{Button as Sy,styled as Cy}from"@rango-dev/ui";var Ic=Cy(Sy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fa(t){let{open:e,onClose:o}=t;return Co.createElement(oe,{open:e,dismissible:!0,onClose:o,container:B()},Co.createElement(Ty,{title:da.t("Something went wrong"),type:"error",description:da.t("Something went wrong. Please refresh the app.")},Co.createElement(Ec,{size:30}),Co.createElement(Ic,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Co.createElement(ky,{size:20,color:"primary"}),Co.createElement(Ec,{size:4,direction:"horizontal"}),da.t("Refresh"))))}i(fa,"RefreshModal");function ga(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ga,"onScrollContentAttachStatusToContainer");import{css as wy,styled as ha}from"@rango-dev/ui";var Ac="700px",ur=wy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Nc=ha("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ac},fixed:{height:Ac}}}}),Wc=ha("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Lc=ha("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ki(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Iy(!1),c=R.use.connectedWallets(),{config:{features:d,theme:m}}=y(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:S}=rr(m||{}),C=Ze("connectWalletButton",d),{isActiveTab:h,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ne(),b=et(),{manager:x}=vy(),I=tt(x).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),W=i(()=>E(Kt.forceClaim,I),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,L=Bc(null),V=Bc(null);return ya(()=>(or()&&V.current&&e(V.current),()=>{o()}),[]),ya(()=>(L.current?.addEventListener("scroll",ga),()=>{L.current?.removeEventListener("scroll",ga)}),[]),ya(()=>{u(l==="failed")},[l]),Se.createElement(Nc,{height:s,id:ye.SWAP_BOX_ID,className:`${S()} ${ur()}`,ref:V},Se.createElement(by,{prefix:Se.createElement(Se.Fragment,null,Q&&Se.createElement(ia,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!C&&Se.createElement(la,{container:B(),onClick:M,isConnected:!!c?.length}),r.onCancel&&Se.createElement(sa,{onClick:r.onCancel}))}),Se.createElement(Wc,{ref:L},n),Se.createElement(ra,{open:k,onClose:()=>v(!1),onConfirm:W}),Se.createElement(Lc,null,Se.createElement("div",{className:"footer__content"},T&&!h&&Se.createElement("div",{className:"footer__alert"},Se.createElement(oa,{onActivateTab:W}),Se.createElement(Mc,{size:10})),a),Se.createElement(Mc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(xy,null))),Se.createElement(fa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as Ey}from"@rango-dev/ui";var _c="$20 $20 $10 $20",Ho=Ey("div",{padding:_c,overflowY:"auto",flexGrow:1});import{styled as Ay}from"@rango-dev/ui";var ue=Ay("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as By}from"@rango-dev/ui";import Ca from"react";import{i18n as To}from"@lingui/core";import{Image as Ly,MessageBox as Sa,WalletState as My}from"@rango-dev/ui";import to from"react";import{keyframes as Ny,styled as mr}from"@rango-dev/ui";var ZN=mr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),dr=mr("div",{position:"relative"}),Wy=Ny({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fr=mr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Wy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Pc=mr("div",{"& img":{borderRadius:"50%"}});function $c(t){let{state:e,image:o,error:n}=t;return e===My.CONNECTED?to.createElement(Sa,{type:"success",title:To.t("Wallet Connected"),description:To.t("Your wallet is connected, you can use it to swap.")}):n?to.createElement(Sa,{type:"error",title:To.t("Failed to Connect"),description:n||To.t("Your wallet is not connected. Please try again.")}):to.createElement(Sa,{type:"loading",title:To.t("Connecting to your wallet"),description:To.t("Click connect in your wallet popup."),icon:to.createElement(dr,null,to.createElement(Pc,null,to.createElement(Ly,{src:o,size:45})),to.createElement(fr,null))})}i($c,"ModalContent");function Go(t){let{open:e,onClose:o,...n}=t;return Ca.createElement(oe,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},Ca.createElement($c,{...n}),Ca.createElement(By,{direction:"vertical",size:32}))}i(Go,"WalletModal");import{i18n as Ta}from"@lingui/core";import{Button as Py,Checkbox as $y,Image as Fc,ListItemButton as Dy,MessageBox as Fy,Radio as Oy,RadioRoot as Uy}from"@rango-dev/ui";import{Namespace as ko}from"@rango-dev/wallets-shared";import Ae,{useMemo as zy,useState as qy}from"react";import{styled as _y}from"@rango-dev/ui";var Dc=_y("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Qy={[ko.Evm]:"ETH",[ko.Solana]:"SOLANA",[ko.Cosmos]:"COSMOS",[ko.Utxo]:"BTC",[ko.Starknet]:"STARKNET",[ko.Tron]:"TRON"},Hy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function oo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=qy([]),a=y().blockchains(),s=zy(()=>o?.map(u=>({name:u,logo:Hy(a,Qy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(d=>d!==u):c.concat(u))},"onSelect"),p=i(u=>e?Ae.createElement(Uy,{value:n?.[0]},u):Ae.createElement(Ae.Fragment,null,u),"wrapRadioRoot");return Ae.createElement(oe,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},Ae.createElement(Fy,{type:"info",title:Ta.t("Select chain types"),description:Ta.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ae.createElement(dr,null,Ae.createElement(ar,null,Ae.createElement(Fc,{src:t.image,size:45})),Ae.createElement(fr,null))}),Ae.createElement(Dc,null,p(Ae.createElement(Ae.Fragment,null,s?.map(u=>Ae.createElement(Dy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ae.createElement(Fc,{src:u.logo,size:22}),end:e?Ae.createElement(Oy,{value:u.name}):Ae.createElement($y,{checked:n.includes(u.name)})}))))),Ae.createElement(Py,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ta.t("Confirm")))}i(oo,"WalletNamespacesModal");var Yy=zc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Zy=zc(ue,{textAlign:"center"}),hr=3e3,ka=300;function qc(){let{fetchStatus:t}=y(),[e,o]=gr("ALL"),n=y().blockchains(),[r,a]=gr(!1),[s,l]=gr(null),[p,u]=gr(""),c=null,d=ne.use.isActiveTab(),{list:m,handleClick:f,error:g,disconnectConnectingWallets:S}=yo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ka)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},hr)}}),C=i(()=>{S(),a(!1)},"handleCloseWalletModal"),h=m.find(w=>w.type===p),T=h?.image||"",k=h?.state||Uc.NOT_INSTALLED,v=Nl(m,n),b=Vy(v)!==1,x=Wl(m,e);return at.createElement(le,{header:{title:Oc.t("Connect Wallets")}},at.createElement(Zy,null,b&&at.createElement(at.Fragment,null,at.createElement(Xy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),at.createElement(Gy,{size:24})),at.createElement(jy,{variant:"title",size:"xmedium",align:"center"},Oc.t("Choose a wallet to connect.")),at.createElement(Yy,null,x.map((w,I)=>{let W=`wallet-${I}-${w.type}`;return at.createElement(Ky,{key:W,...w,container:B(),onClick:M=>{w.namespaces&&w.state===Uc.DISCONNECTED?l({providerType:M,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(M)},isLoading:t==="loading",disabled:!d})}),at.createElement(Go,{open:!!r,onClose:C,image:T,state:k,error:g}),at.createElement(oo,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(qc,"WalletsPage");import{keyframes as Jy,styled as wa}from"@rango-dev/ui";var Qc=wa("div",{position:"relative"}),Ry=Jy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Hc=wa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ry} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Gc=wa("div",{"& img":{borderRadius:"50%"}});var nS=7;function xa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),l=R.use.connectedWallets(),{blockchains:p}=y(),[u,c]=wo(""),[d,m]=wo(null),[f,g]=wo(!1),[S,C]=wo(null),[h,T]=wo(null),{suggestAndConnect:k}=Sr(),v=null,{list:E,error:b,handleClick:x,disconnectWallet:w,disconnectConnectingWallets:I}=yo({chain:e,onBeforeConnect:A=>{v=setTimeout(()=>{c(A)},ka)},onConnect:()=>{v&&clearTimeout(v),setTimeout(()=>{c("")},hr)}}),[W,M]=wo(E),Q=E.length,L=r&&Q-r>0,V=i(async A=>{g(!1),C("in-progress");try{await k(A.walletType,A.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain"),Y=i(A=>{T({providerType:A.type,providerImage:A.image,availableNamespaces:A.namespaces,singleNamespace:A.singleNamespace})},"handleOpenNamespacesModal");jc(()=>{M(A=>{let te=E.findIndex(q=>o(q.type,e));return L&&te>1?[E[te]].concat(E.filter((q,Z)=>Z!==te)):A.map(q=>E.find(Z=>Z.type===q.type)??q)})},[JSON.stringify(E)]);let re=document.getElementById(ye.SWAP_BOX_ID);jc(()=>{let A=null;return(S==="completed"||S==="rejected")&&(A=setTimeout(()=>C(null),hr)),()=>{A&&clearTimeout(A)}},[S]);let H=i(()=>{I(),c("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,W.slice(0,r).map(A=>{let te=Il({connectedWallets:l,walletType:A.type,chain:e}),q=te?Wn(te,nS):"",Z=An(p(),e),me=!l.find(X=>X.walletType===A.type&&X.chain===e),he=Z&&me&&A.state===Xc.CONNECTED,_=he?st.t({id:"Add {chain} chain",values:{chain:e}}):q,ze=i(async()=>{A.state===Xc.DISCONNECTED?A.namespaces?Y(A):x(A.type):A.namespaces&&!q?(await w(A.type),Y(A)):he?(m({walletType:A.type,chain:e,address:te??""}),g(!0)):n({walletType:A.type,chain:e,address:te??""})},"onClick"),P=d?.chain?Fl(d.chain,p()):void 0;return ce.createElement(ce.Fragment,{key:`${A.title}_${P}`},ce.createElement(Go,{open:u===A.type,onClose:H,image:A.image,state:A.state,error:b}),ce.createElement(oo,{open:!!h,onClose:()=>T(null),onConfirm:X=>{x(h?.providerType,X),T(null)},image:h?.providerImage,namespaces:h?.availableNamespaces,singleNamespace:h?.singleNamespace}),!!d&&ce.createElement(oe,{open:!!d&&f,container:re,onClose:()=>{m(null)}},ce.createElement(yr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}})},ce.createElement(va,{size:18}),ce.createElement(va,{size:32}),ce.createElement(eS,{onClick:V.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),S&&ce.createElement(oe,{open:!!S,onClose:C.bind(null,null),container:re},S==="in-progress"&&ce.createElement(yr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:P}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:P}}),icon:ce.createElement(Qc,null,ce.createElement(Gc,null,ce.createElement(tS,{src:A.image,size:45})),ce.createElement(Hc,null))}),S==="completed"&&ce.createElement(yr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:P}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:P}})}),S==="rejected"&&ce.createElement(yr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:P}})}),ce.createElement(va,{direction:"vertical",size:32})),ce.createElement(oS,{key:A.type,description:_,onClick:ze,selected:o(A.type,e),disabled:!s,...A}))}),L&&ce.createElement(Fp,{selected:!1,onClick:a},ce.createElement(Vc,{variant:"label",size:"medium"},st.t("Show more wallets"),ce.createElement(Vc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",Q-(r??0)))))}i(xa,"WalletList");var uS=2;function Yc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=y().config,l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:d,customDestination:m,setCustomDestination:f}=j(),{connectedWallets:g,selectWallets:S}=R(),[C,h]=xo(""),[T,k]=xo([]),[v,E]=xo(""),[b,x]=xo(null),[w,I]=xo(!!m),W=jt({filter:"all",quote:p}),M=jt({filter:"required",quote:p}),Q=l.find(P=>P.name===p?.swaps[p?.swaps.length-1].to.blockchain),L=i(P=>M.includes(P),"isWalletRequiredFor"),V=i(()=>g.filter(P=>P.selected&&W.includes(P.chain)),"getInitialSelectableWallets"),[Y,re]=xo(V()),H=T.length>0,A=i((P,X)=>!!Y.find(ie=>ie.walletType===P&&ie.chain===X&&ie.selected&&(L(X)||!L(X)&&!m)),"isSelected"),te=!!m&&w&&Q&&!Fn(Q,m),q=i(()=>{I(!1),f(null),re(P=>{let X=!1;return P.map(ie=>!X&&ie.chain===Q?.name?(X=!0,{...ie,selected:!0}):ie)})},"resetCustomDestination"),Z=i(P=>{if(C&&h(""),A(P.walletType,P.chain))return;let ie=g.find(Ne=>Ne.walletType===P.walletType&&Ne.chain===P.chain);ie&&(n(),P.chain===Q?.name&&w&&(I(!1),f(null)),re(Ne=>Ne.filter(Ge=>Ge.chain!==P.chain).concat({...ie,selected:!0})))},"onChange"),me=i(()=>{let P=Y.filter(X=>X.selected);S(P),u(P),d(!0),o()},"onConfirmBalance"),he=i(async()=>{k([]),E(""),x(null);let P=await r?.({selectedWallets:Y.filter(ie=>ie.selected),customDestination:m}),X=P.warnings;X?.balance?.messages&&k(X.balance.messages),X?.quoteUpdate&&x(X.quoteUpdate),P.error&&E(rp(P.error)),!P.error&&!X?.balance?.messages.length?me():k(X?.balance?.messages??[])},"onConfirmWallets");pS(()=>{re(P=>P.concat(g.filter(X=>!!!P.find(Ne=>Ne.chain===X.chain)&&X.selected&&W.includes(X.chain))))},[g.length]);let _=document.getElementById(ye.SWAP_BOX_ID),ze=cS();return O.createElement(oe,{open:e,onClose:()=>{c||ze("../",{replace:!0}),o()},dismissible:!C,container:_,...!C&&{footer:O.createElement(Gp,null,O.createElement(Kc,{loading:a,disabled:wp(a,w,m,p,Y,Q),onClick:he,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ht.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:O.createElement(Op,null,O.createElement(Up,{variant:"ghost",onClick:h.bind(null,"")},O.createElement(aS,{size:16})),O.createElement(Cr,{variant:"headline",size:"small"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(C,l)}})))},anchor:"center"},O.createElement(oe,{open:H,onClose:k.bind(null,[]),container:_},O.createElement(sS,{title:ht.t("Insufficient account balance"),type:"error",description:O.createElement(rS,{messages:T??[]})},O.createElement(Kc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:me},ht.t("Proceed anyway")))),C&&O.createElement(zp,null,O.createElement("div",{className:qp()},O.createElement(xa,{chain:C,isSelected:A,selectWallet:Z,onShowMore:h.bind(null,C)}))),!C&&O.createElement(O.Fragment,null,v&&O.createElement(O.Fragment,null,O.createElement(ba,{variant:"alarm",type:"error",title:ht.t(v)}),O.createElement(vo,{size:12})),b&&O.createElement(O.Fragment,null,O.createElement(ba,{variant:"alarm",type:"warning",title:Kn(b)}),O.createElement(vo,{size:12})),O.createElement(Xp,null,W.map((P,X)=>{let ie=l.find(We=>We.name===P),Ne=`wallet-${X}`,Ge=X===W.length-1;return O.createElement("div",{key:Ne},O.createElement($p,null,O.createElement(Cr,{variant:"title",size:"xmedium"},ht.t({id:"Your {blockchainName} wallets",values:{blockchainName:ie?.shortName}})),O.createElement(Cr,{variant:"label",color:"$neutral700",size:"medium"},ht.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:ie?.shortName}}))),O.createElement(vo,{size:24}),O.createElement(Dp,null,O.createElement(xa,{chain:P,isSelected:A,selectWallet:Z,limit:uS,onShowMore:()=>h(ie?.name??"")})),!Ge&&O.createElement(vo,{size:32}),Ge&&s?.customDestination&&O.createElement(Qp,null,O.createElement(er,{onOpenChange:We=>{We?L(Q?.name??"")||re(_e=>_e.map(Ke=>Ke.chain===Q?.name?{...Ke,selected:!1}:Ke)):q()},hasSelected:!0,open:w,triggerAnchor:"top",trigger:O.createElement(jp,null,O.createElement("div",{className:"button__content"},O.createElement(lS,{size:18,color:"info"}),O.createElement(vo,{size:4,direction:"horizontal"}),O.createElement(Cr,{variant:"label",size:"medium"},ht.t("Send to a different address"))),O.createElement(Jn,{orientation:w?"up":"down"},O.createElement(iS,{size:10,color:"gray"}))),onClickTrigger:()=>I(We=>!We)},O.createElement(vo,{size:4}),O.createElement(Vp,{placeholder:ht.t("Your destination address"),value:m||"",onChange:We=>{let _e=We.target.value;_e.length?f(_e.length?_e:null):(I(!1),f(null))},...!m&&{autoFocus:!0}})),te&&O.createElement("div",{className:Hp()},O.createElement(ba,{variant:"alarm",type:"error",title:ht.t({values:{destination:m},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Yc,"ConfirmWalletsModal");import{i18n as WS}from"@lingui/core";import{Alert as LS,Button as MS,InfoIcon as BS}from"@rango-dev/ui";import Xe from"react";import{Alert as fS,Button as gS,Divider as Aa,NoRouteIcon as hS,RefreshIcon as yS,Typography as nu}from"@rango-dev/ui";import Ve from"react";import{i18n as Zc}from"@lingui/core";var mS=24,dS=60;function Jc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Zc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Zc.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Jc,"makeInfo");var Ia=(o=>(o[o.small=mS]="small",o[o.large=dS]="large",o))(Ia||{}),Ea=(o=>(o.small="small",o.large="medium",o))(Ea||{});import{styled as Tr}from"@rango-dev/ui";var Rc=Tr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),eu=Tr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),tu=Tr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),ou=Tr("div",{padding:"$6 $0"});function Vo(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Jc(o,r,()=>a(s,!0),e);return Ve.createElement(Rc,null,Ve.createElement(hS,{size:Ia[n],color:"gray"}),Ve.createElement(Aa,{size:4}),Ve.createElement(nu,{variant:"title",size:Ea[n]},ee().noResultError.title),n==="large"&&Ve.createElement(Aa,{size:4}),!!l.description&&Ve.createElement(eu,{size:n},Ve.createElement(nu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ve.createElement(Aa,{size:n==="large"?"24":"4"}),!!l.alert&&Ve.createElement(tu,{size:n},Ve.createElement(fS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ve.createElement(gS,{size:"xsmall",type:l.alert.type,prefix:Ve.createElement(ou,null,Ve.createElement(yS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Vo,"NoResult");import{i18n as Xo}from"@lingui/core";import{Button as CS,Divider as TS,MessageBox as kS,Typography as wS,WarningIcon as vS}from"@rango-dev/ui";import xt from"react";import{Typography as su}from"@rango-dev/ui";import Wa from"react";import{darkTheme as SS,styled as kr}from"@rango-dev/ui";var ru=kr("div",{width:"100%"}),Na=kr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),iu=kr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${SS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),au=kr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function lu(t){let{title:e,value:o,valueColor:n}=t;return Wa.createElement(iu,null,Wa.createElement(su,{size:"medium",variant:"label",className:"_title"},e),Wa.createElement(su,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(lu,"QuoteErrorsModalItem");function pu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Xo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Xo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Xo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Xo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return xt.createElement(oe,{footer:xt.createElement(CS,{type:"primary",size:"large",prefix:xt.createElement(vS,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},xt.createElement(kS,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),xt.createElement(Na,null,xt.createElement(TS,{size:"4"}),xt.createElement(wS,{size:"small",variant:"title"},Xo.t("Details")),xt.createElement(Na,null,l.map((p,u)=>xt.createElement(lu,{key:u,...p})))))}i(pu,"HighValueLossWarningModal");import{i18n as La}from"@lingui/core";function cu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=La.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(wt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title),t.type===1&&(o.title=ee().unknownPriceError.title),t.type===2&&(o.title=La.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=La.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(cu,"makeAlerts");import{i18n as bo}from"@lingui/core";import{Button as uu,Divider as mu,MessageBox as xS,Typography as bS}from"@rango-dev/ui";import no from"react";import{useNavigate as IS}from"react-router-dom";function du(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=IS(),u=e??o;return no.createElement(oe,{anchor:"bottom",open:n,prefix:no.createElement(uu,{size:"small",variant:"ghost",onClick:()=>p("../"+U.settings)},no.createElement(bS,{variant:"label",size:"medium",color:"$neutral900"},bo.t("Change settings"))),container:B(),onClose:r},no.createElement(xS,{type:"warning",title:s.type===3?bo.t("High slippage"):bo.t("Low slippage"),description:s.type===3?bo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):bo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},no.createElement(mu,{size:18}),no.createElement(mu,{size:32}),no.createElement(uu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},bo.t("Confirm anyway"))))}i(du,"SlippageWarningModal");import{Button as ES,MessageBox as AS,WarningIcon as NS}from"@rango-dev/ui";import wr from"react";function fu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(oe,{footer:wr.createElement(ES,{type:"primary",size:"large",prefix:wr.createElement(NS,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(AS,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(fu,"UnknownPriceWarningModal");function jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,d={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,f=cu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Xe.createElement(Xe.Fragment,null,m&&Xe.createElement(Vo,{error:o,fetch:s}),!!f&&Xe.createElement(ru,null,Xe.createElement(LS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Xe.createElement(au,{onClick:l},Xe.createElement(BS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Xe.createElement(MS,{size:"xxsmall",type:f.alertType,onClick:c},WS.t("Change"))}})),e&&Xe.createElement(Xe.Fragment,null,e.type===0&&Xe.createElement(pu,{...d,warning:e}),(e.type===3||e.type===2)&&Xe.createElement(du,{...d,warning:e}),e.type===1&&Xe.createElement(fu,{...d,warning:e})))}i(jo,"QuoteWarningsAndErrors");import cC from"bignumber.js";import $r from"react";import{i18n as ro}from"@lingui/core";import{Alert as ZS,Divider as Eo,FullExpandedQuote as JS,InfoIcon as RS,QuoteTag as eC,StepDetails as tC,TokenAmount as oC,Tooltip as Xu,Typography as Ao}from"@rango-dev/ui";import Oa from"bignumber.js";import $,{useRef as nC,useState as rC}from"react";import{styled as Ma}from"@rango-dev/ui";var Ba=Ma("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),gu=Ma("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),hu=Ma("div",{width:"100%",display:"flex"});import*as vr from"@radix-ui/react-collapsible";import{Button as _S,css as Ko,darkTheme as Te,Image as yu,styled as Fe,Typography as PS}from"@rango-dev/ui";var $S=300,Su=Fe(vr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Te} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Cu=Ko({padding:"$10 $15"}),Tu=Fe(_S,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${Te} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${Te} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Te} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),ku=Fe("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Te} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Te} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Te} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Te} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Te} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Te} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Te} &`]:{backgroundColor:"$neutral400"}}}}]}),wu=Ko({width:"100%",padding:"$15 $15 $10 $15"}),vu=Ko({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Io=Ko({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),xu=Ko({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Te} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bu=Fe(vr.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${yu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${yu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Te} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${Te} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Iu=Fe("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Eu=Fe(Zn,{width:"100%",background:"inherit"}),_a=Fe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),tB=Fe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Au=Fe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Te} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Nu=Fe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Pa=Fe(PS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Wu=Fe("div",{display:"flex",flexWrap:"wrap"}),$a=Fe("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Lu=Fe("div",{display:"flex"}),xr=Fe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Te} &`]:{borderTopColor:"$neutral800"}});import{i18n as qt}from"@lingui/core";import{ChevronDownIcon as FS,CloseIcon as OS,Divider as Er,IconButton as US,QuoteCost as zS,Tooltip as qS,Typography as lt}from"@rango-dev/ui";import K,{useState as Pu}from"react";import{css as DS,styled as br}from"@rango-dev/ui";var Ir=br("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Da=br("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Mu=br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Bu=br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),_u=DS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var QS=i(t=>t.fee.isZero()?null:K.createElement(Ir,null,K.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),K.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function $u(t){let[e,o]=Pu(!1),[n,r]=Pu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=B(),f=cp(d);return K.createElement(K.Fragment,null,K.createElement(zS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?qt.t("View more info"):void 0,tooltipContainer:m}),K.createElement(oe,{container:m,open:e,header:K.createElement(Bu,null,K.createElement(lt,{variant:"title",size:"medium"},qt.t("Gas & Fee Explanation")),K.createElement(US,{onClick:()=>o(!1),variant:"ghost"},K.createElement(OS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},K.createElement(Mu,null,K.createElement(lt,{variant:"title",size:"small"},qt.t("Details")),K.createElement(Er,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((C,h)=>{let T=`payable-fee-${h}`,k=Oi(C);return K.createElement(Ir,{key:T},K.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Pi[g]),K.createElement(qS,{content:pe(C.amount),container:m},K.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),K.createElement(Ir,{className:"total_payable_fee"},K.createElement(lt,{variant:"label",size:"medium"},qt.t("Total Payable Fee")),K.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),K.createElement(Da,null),Object.keys(f.nonePayable).length&&K.createElement(er,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:K.createElement("div",{className:_u()},K.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?qt.t("Hide non-payable fees"):qt.t("Show non-payable fees")),K.createElement(Er,{size:4,direction:"horizontal"}),K.createElement(Jn,{orientation:n?"up":"down"},K.createElement(FS,{size:12,color:"gray"}))),open:n},K.createElement(lt,{size:"small",variant:"title"},qt.t("Description")),K.createElement(Er,{size:4}),K.createElement(lt,{size:"small",variant:"body",color:"neutral700"},qt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),K.createElement(Er,{size:10}),Object.entries(f.nonePayable).map(([g,S],C)=>{let h=pp(S),T=Pi[g],k=`non-payable-fee-${C}`;return K.createElement(QS,{key:k,fee:h,label:T})}),K.createElement(Da,null)))))}i($u,"QuoteCostDetails");import{i18n as Ou}from"@lingui/core";import{TokenAmount as Uu}from"@rango-dev/ui";import Ar from"react";import{css as HS,styled as GS}from"@rango-dev/ui";var Du=GS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Fu=HS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Yo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ar.createElement(Du,null,Ar.createElement(Uu,{direction:"horizontal",label:Ou.t("Swap input"),type:"input",tooltipContainer:B(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Ar.createElement("div",{className:Fu()}),Ar.createElement(Uu,{direction:"horizontal",tooltipContainer:B(),label:Ou.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(Yo,"QuoteSummary");import{i18n as Gu}from"@lingui/core";import{ChevronDownIcon as jS,ChevronRightIcon as KS,Divider as Fa,Image as YS,Tooltip as Br,Typography as Wr}from"@rango-dev/ui";import D from"react";import{useLayoutEffect as VS,useState as Zo}from"react";var zu=480,qu=768,Qu=1024,Hu=1200,XS=i(()=>{let[t,e]=Zo(!1),[o,n]=Zo(!1),[r,a]=Zo(!1),[s,l]=Zo(!1),[p,u]=Zo(!1),c=i(()=>{e(window.innerWidth<=zu),n(window.innerWidth>zu&&window.innerWidth<=qu),a(window.innerWidth>qu&&window.innerWidth<=Qu),l(window.innerWidth>Qu&&window.innerWidth<=Hu),u(window.innerWidth>Hu)},"handleResize");return VS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Nr=XS;var Lr=4,Mr=6,Jo=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return D.createElement(Br,{container:l,side:"bottom",sideOffset:4,open:r,content:e},D.createElement(Iu,{className:n,state:a},D.createElement(YS,{src:o,size:16})))},"ImageComponent");function Vu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Ap(r),{isTablet:d,isMobile:m}=Nr();return D.createElement(bu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},D.createElement("div",{className:Io()},D.createElement(Wr,{variant:"body",size:"xsmall"},Gu.t("Via:")),D.createElement(Fa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,C=D.createElement(_a,null,D.createElement(KS,{size:12,color:"black"}));return m||d?D.createElement(D.Fragment,{key:S},D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):D.createElement(D.Fragment,{key:S},u<=Lr||u>Lr&&g<Lr-1?D.createElement(D.Fragment,null,D.createElement(Jo,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&D.createElement(D.Fragment,null,C)):g===Lr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:Io()},C,r.map((h,T)=>{let k=`image-${T}`;return T>=g&&D.createElement(D.Fragment,{key:k},D.createElement(Jo,{content:h.swapper.displayName,src:h.swapper.image,state:h.state,open:!1}),T!==u-1&&D.createElement(D.Fragment,null,C))}))},D.createElement($a,{state:r.find((h,T)=>T>=g&&(h.state==="error"||h.state==="warning"))?.state},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",u-g))))})),D.createElement("div",{className:Io()},D.createElement("div",{className:"blockchains_section"},D.createElement("div",{className:Io()},D.createElement(Wr,{variant:"body",size:"xsmall"},Gu.t("Chains:")),D.createElement(Fa,{direction:"horizontal",size:4}),c.map((f,g)=>D.createElement(D.Fragment,{key:f.displayName},c.length<=Mr||c.length>Mr&&g<Mr-1?D.createElement(Br,{container:p,side:"bottom",content:f.displayName,sideOffset:4},D.createElement(Jo,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===Mr-1&&D.createElement(Br,{container:p,side:"bottom",align:"end",sideOffset:4,content:D.createElement("div",{className:Io()},c.map((S,C)=>C>=g&&D.createElement(Jo,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},D.createElement($a,{className:"blockchainImage"},D.createElement(Wr,{size:"xsmall",variant:"body"},"+",c.length-g))))),D.createElement(Fa,{direction:"horizontal",size:32}))),D.createElement(_a,{orientation:a?"up":"down"},D.createElement(jS,{size:12,color:"black"}))))}i(Vu,"QuoteTrigger");function Ua(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=y().blockchains(),g=y().tokens(),S=y().swappers(),{customSlippage:C,slippage:h}=y(),T=C||h,[k,v]=rC(t.expanded),E=nC(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=Je(o.usdValue,n.usdValue??null),W=N(I,2,2),M=wt(I??0),Q=i((me,he)=>me.map((_,ze)=>{let P,X=r?.type===3&&r.swap.swapperId===_.swapperId,ie=r?.type===4&&r.recommendedSlippages?.has(ze),Ne=a?.type===2&&a.recommendedSlippages?.has(ze),Ge=X||ie,We=Ne;Ge?P="error":We&&(P="warning");let _e=Ge?ro.t("Slippage Error"):ro.t("Slippage Warning");return X&&(_e=ro.t("Bridge Limit Error")),{swapper:{displayName:Oo(_.swapperId,S),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ye(_.from.blockchain,f),image:_.from.blockchainLogo},price:{value:ze===0&&!he?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:pe(ze===0?o.value:_.fromAmount),realUsdValue:pe(new Oa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Ye(_.to.blockchain,f),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:pe(_.toAmount),realUsdValue:pe(new Oa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:P,alerts:Ge||We?$.createElement(gu,{dense:d},$.createElement(ZS,{variant:"alarm",type:Ge?"error":"warning",title:_e,footer:$.createElement(hu,null,X&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(ie||Ne)&&!X&&$.createElement("div",null,$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(ze)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(ze)}}})),$.createElement(Eo,{direction:"vertical",size:2}),$.createElement(Ao,{size:"xsmall",variant:"body",color:"neutral900"},ro.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:$o(_.estimatedTimeInSeconds),fee:N(Fi(_,g),2,2),internalSwaps:_.internalSwaps?Q(_.internalSwaps):void 0}}),"getQuoteSteps"),L=Q(e?.swaps??[]),V=L.length,Y=m||B(),re=Wp(t.quote.tags||[]),H=!!c,A=$o(vn(e?.swaps)),te=zn(e?.swaps??[],g),q=N(te,2,2),Z=te.gte(new Oa(np));return d?$.createElement(JS,{selected:l,fee:q,time:A,tooltipContainer:Po(),steps:L,tags:re,feeWarning:Z,percentageChange:W,warningLevel:M,outputPrice:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)}}):$.createElement(ku,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:wu()},!p&&re.length?$.createElement($.Fragment,null,$.createElement(Lu,null,re.map((me,he)=>{let _=`${me.value}_${he}`;return $.createElement($.Fragment,{key:_},$.createElement(eC,{label:me.label,value:me.value}),$.createElement(Eo,{size:4,direction:"horizontal"}))})),$.createElement(xr,null),!H&&$.createElement(Eo,{size:4})):null,$.createElement("div",{id:"portal-root",className:vu()},$.createElement($u,{quote:e,time:A,fee:q,feeWarning:Z,showModalFee:u,steps:V}),H&&$.createElement(Tu,{onClick:me=>{me.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Ao,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},ro.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:xu()},$.createElement(Nu,null,$.createElement(RS,{size:12,color:"gray"})),$.createElement(Wu,null,$.createElement(Pa,{size:"small",variant:"body"},`${b} ${L[0].from.token.displayName} = `),$.createElement(Xu,{content:pe(n.value),container:Y,open:n.value?void 0:!1},$.createElement(Pa,{size:"small",variant:"body"},"\xA0",`${x} ${L[L.length-1].to.token.displayName}`))),$.createElement(Xu,{content:pe(n.usdValue),container:Y},$.createElement(Eo,{size:2,direction:"horizontal"}),$.createElement(Ao,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(oC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:pe(n.value),realUsdValue:pe(n.usdValue)},token:{displayName:L[V-1].to.token.displayName,image:L[V-1].to.token.image},chain:{image:L[V-1].to.chain.image},percentageChange:W,warningLevel:M}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(Yo,{from:L[0].from,to:L[V-1].to,percentageChange:W,warningLevel:M}),$.createElement(Eo,{size:4}))),$.createElement(Su,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Vu,{type:s,quoteRef:E,selected:l,setExpanded:v,container:Y,expanded:k,steps:L}),$.createElement(Eu,{open:k},$.createElement(Au,null),$.createElement("div",{className:Cu()},L.map((me,he)=>{let _=`item-${he}`;return $.createElement(tC,{type:"quote-details",key:_,tooltipContainer:Y,step:me,hasSeparator:he!==L.length-1,state:me.state})})))))}i(Ua,"Quote");import{Divider as lC,Skeleton as pC}from"@rango-dev/ui";import It from"react";import{darkTheme as iC,styled as _r}from"@rango-dev/ui";var ju=_r("div",{$$color:"$colors$neutral100",[`.${iC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ku=_r("div",{paddingTop:"$2"}),Yu=_r("div",{paddingLeft:"$8"}),Zu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as sm,Divider as pt,Skeleton as je}from"@rango-dev/ui";import z from"react";import{css as aC,styled as bt}from"@rango-dev/ui";var za=bt("div",{display:"flex"}),Ju=bt("div",{padding:"$10 $0 $20"}),Ru=bt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),em=bt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),tm=bt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),om=bt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),nm=bt("div",{width:"65%",display:"flex",justifyContent:"start"}),rm=bt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),im=bt("div",{padding:"$15 $0 $15 $0"}),am=aC({display:"flex",justifyContent:"space-between",alignItems:"center"});function Ro(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(tm,null,z.createElement(nm,null,z.createElement(sm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{size:8,direction:"horizontal"}),z.createElement(rm,null,z.createElement(je,{height:10,width:60,variant:"rounded"}),z.createElement(pt,{size:4}),z.createElement(je,{height:15,variant:"rounded"}))),z.createElement(je,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(za,null,z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:65,height:20,variant:"rounded"})),z.createElement(xr,null),!r&&z.createElement(pt,{size:4})),z.createElement("div",{className:am()},z.createElement(za,null,z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(je,{width:60,height:10,variant:"rounded"})),r&&z.createElement(je,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Ju,null,z.createElement(je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Ru,null,z.createElement(em,null,z.createElement(sm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{direction:"horizontal",size:4}),z.createElement(je,{height:15,width:150,variant:"rounded"})),z.createElement(pt,{size:10}),z.createElement(je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(pt,{size:4}),z.createElement(im,null,n,z.createElement(om,null),n),z.createElement(pt,{size:12})))}i(Ro,"QuoteSummarySkeleton");import{ChainToken as mm,Divider as Qa,NextIcon as sC,Skeleton as Pr}from"@rango-dev/ui";import ke from"react";import{styled as en}from"@rango-dev/ui";var lm=en("div",{display:"flex",alignItems:"start"}),pm=en("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),qa=en("div",{display:"flex",alignItems:"center",flexGrow:1}),cm=en("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),um=en("div",{display:"flex",alignItems:"center"});function yt(t){let{separator:e=!0}=t;return ke.createElement(ke.Fragment,null,ke.createElement(um,null,ke.createElement(Pr,{height:22,width:22,variant:"circular"}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:15,width:148,variant:"rounded"})),ke.createElement(lm,null,ke.createElement(Zu,{hideSeparator:!e}),ke.createElement(pm,{extraSpace:e},ke.createElement(qa,null,ke.createElement(mm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:12,variant:"rounded"})),ke.createElement(cm,null,ke.createElement(sC,{color:"gray",size:16})),ke.createElement(qa,null,ke.createElement(mm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ke.createElement(Qa,{direction:"horizontal",size:8}),ke.createElement(Pr,{height:12,variant:"rounded"})))))}i(yt,"StepSkeleton");function tn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return It.createElement(ju,{expanded:o,rounded:e!=="basic"},It.createElement(Ro,{type:e,tagHidden:n}),It.createElement(Ku,null,It.createElement(pC,{height:15,variant:"rounded"})),o&&It.createElement(Yu,null,It.createElement(lC,{size:24}),It.createElement(yt,null),It.createElement(yt,null),It.createElement(yt,{separator:!1})))}i(tn,"QuoteSkeleton");function io(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:d,fullExpandedMode:m=!1,container:f}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=j(),h=e?.outputAmount?new cC(e?.outputAmount):null,T=e?.outputAmount?Qn(e?.outputAmount,Gn(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?$r.createElement(Ba,null,$r.createElement(tn,{tagHidden:l,type:o,expanded:s})):v?$r.createElement(Ba,{onClick:()=>p?.(e)},$r.createElement(Ua,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:h?.toString()??"",usdValue:T?.toString()??""}})):null}i(io,"QuoteInfo");import{calculatePendingSwap as fC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as gC}from"react";import{useRef as uC,useState as mC}from"react";var dC=2e3;function Dr({request:t}){let[e,o]=mC(!1),n=uC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,dC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Dr,"useFetch");function dm(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(dm,"useFetchConfirmQuote");function Fr(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ha(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Fr,"throwErrorIfResponseIsNotValid");function Ha(t){if(ap(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=sp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=up(t);if(o){let n=qn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ha,"getQuoteError");function fm(t,e,o){let n=!1;t&&(n=Ip(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=uo(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(yp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(co(e)),percentageChange:N(Je(co(t)??"",co(e)??""),null,2)}:Ui(t,e)?r.quoteUpdate={type:0}:zi(t,e)?r.quoteUpdate={type:1}:qi(t,e)&&(r.quoteUpdate={type:2}));let s=Sp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(fm,"generateWarnings");function Or(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Or,"handleQuoteErrors");function Ga(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),d=y().blockchains(),m=y().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:C}=dm();return gC(()=>S,[]),{loading:C,fetch:i(async T=>{let k=T.selectedWallets,v=T?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await g(b,!0).then(x=>{let{result:w}=x;Fr({diagnosisMessages:w.diagnosisMessages,requestId:w.requestId,swaps:w.result?.swaps});let I={outputAmount:w.result?.outputAmount,requestId:w.requestId,resultType:w.result?.resultType,swaps:w.result?.swaps||[],validationStatus:w.validationStatus,requestAmount:w.requestAmount};n(I);let W={slippage:f.toString(),disabledSwappersGroups:c},M=fm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});M.quoteUpdate&&s(!1),l();let Q=!!M.balance,L=fC(o.toString(),w,gp(k),W,!Q,{blockchains:d,tokens:m});return{quote:I,swap:L,error:null,warnings:M}})}catch(x){return Or(x)}},"fetch"),cancelFetch:S}}i(Ga,"useConfirmSwap");var xC=SC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${hm}`]:{width:"$48",height:"$48"}}),bC=ja({flexGrow:1,paddingRight:"$10"}),IC=ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),EC=ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function ym(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=vC(),[l,p]=on(""),u=!n,[c,d]=on(!1),[m,f]=on(!1),{isActiveTab:g}=ne(),S=y().getDisabledLiquiditySources(),C=wC(S),{manager:h}=hC(),{fetch:T,loading:k,cancelFetch:v}=Ga(),[E,b]=on({swap:null,error:null,warnings:null}),[x,w]=on(!1),I=i(async({selectedWallets:H,customDestination:A})=>{let te=await T?.({selectedWallets:H,customDestination:A});return b(te),te},"onConfirmSwap"),W=i(async()=>{if(E.swap&&n)try{await h?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let H=`../${U.swaps}/${E.swap.requestId}`;s(H,{replace:!0}),setTimeout(()=>{e("")},0)}catch(H){p("Error: "+H?.message)}},"addNewSwap"),M=i(async()=>{f(!0),await W(),f(!1)},"onConfirm"),Q=i(async()=>{E?.warnings?.quote&&!a?w(!0):await M()},"onStartConfirmSwap"),L=i(async()=>{b({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(H=>{b(H)}).catch(H=>console.error(H))},"onRefresh");Ur(()=>{!!C.current.length&&!S.length&&L(),C.current=S},[S.length]),Ur(()=>{u&&v()},[u]),Ur(()=>{u&&d(u)},[u]),Ur(()=>{u||T({selectedWallets:o,customDestination:r}).then(H=>b(H)).catch(H=>console.error(H))},[]),kC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=E.warnings?.quote??null,Y=E.error,re=[];if(l&&re.push(we.createElement(gm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&re.push(we.createElement(gm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Kn(E.warnings.quoteUpdate)})),V||Y){let H=`../${U.settings}`;re.push(we.createElement(jo,{warning:V,error:Y,couldChangeSettings:!1,refetchQuote:L,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await W()},onChangeSettings:()=>s(H)}))}return we.createElement(le,{header:{title:Va.t("Confirm Swap"),onWallet:()=>{let H=`../${U.wallets}`;s(H)}},footer:we.createElement(xC,null,we.createElement("div",{className:bC()},we.createElement(yC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:Q},Va.t("Start Swap"))),we.createElement(hm,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},we.createElement(TC,{size:24})))},c&&we.createElement(Yc,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),we.createElement(ue,null,we.createElement("div",{className:EC()},we.createElement(CC,{variant:"title",size:"small"},Va.t("You get")),we.createElement("div",{className:IC()},we.createElement(lr,{onClick:!k&&!c&&!x?L:void 0}))),we.createElement(Xa,{size:"12"}),Jp(re.map((H,A)=>({element:H,key:`alert-${A}`})),we.createElement(Xa,{size:10})),re.length>0?we.createElement(Xa,{size:10}):null,we.createElement(io,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(ym,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as QC}from"@rango-dev/queue-manager-react";import{Divider as Am,NotFound as HC,styled as GC}from"@rango-dev/ui";import At,{useState as VC}from"react";import{useNavigate as XC}from"react-router-dom";import{i18n as WC}from"@lingui/core";import{Divider as wm,GroupedVirtualizedList as LC,Skeleton as MC,SwapListItem as vm,Typography as BC}from"@rango-dev/ui";import Oe,{useCallback as xm,useEffect as _C,useRef as PC,useState as $C}from"react";function Sm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Sm,"calculateGroupsSoFar");import{css as AC,darkTheme as NC,styled as nn}from"@rango-dev/ui";var Ka=AC(),Cm=nn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ya=nn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ka}`]:{$$color:"$colors$neutral600",[`.${NC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Za=nn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Tm=nn("div",{gap:"$10",display:"flex",flexDirection:"column"}),km=nn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var DC=10;function Ja(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=$C([]),l=PC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=xm(Sm,[]),m=xm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,DC),s(d(u,l.current)))},[e.length]);if(_C(()=>{r||m()},[r,m]),r){let f=[1,2];return Oe.createElement(Oe.Fragment,null,[f,f].map((S,C)=>Oe.createElement(Ya,{key:C},Oe.createElement(Za,null,Oe.createElement(MC,{variant:"text",width:60,size:"small"}),Oe.createElement(wm,{size:16})),Oe.createElement(wm,{size:4}),Oe.createElement(Tm,null,S.map((T,k)=>Oe.createElement(vm,{isLoading:!0,key:k}))))))}return Oe.createElement(LC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>Oe.createElement(Ya,null,Oe.createElement(Za,null,Oe.createElement(BC,{variant:"label",size:"medium",className:Ka()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let C=S.steps[0],h=S.steps[S.steps.length-1];return Oe.createElement(Cm,{key:S.requestId},Oe.createElement(vm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[g]===WC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:pe(S.inputAmount)},to:{token:{image:h.toLogo,displayName:h.toSymbol},blockchain:{image:h.toBlockchainLogo||""},amount:N(h.outputAmount||h.expectedOutputAmountHumanReadable||"",6,6),realAmount:pe(h.outputAmount||h.expectedOutputAmountHumanReadable)}}}))}})}i(Ja,"HistoryGroupedList");import{CloseIcon as OC,IconButton as UC,SearchIcon as zC,TextField as qC}from"@rango-dev/ui";import rn from"react";import{styled as FC}from"@rango-dev/ui";var bm=FC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return rn.createElement(qC,{prefix:rn.createElement(bm,null,rn.createElement(zC,{color:"black"})),suffix:!!s.length&&rn.createElement(UC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},rn.createElement(OC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Et,"SearchInput");import{i18n as zr}from"@lingui/core";import Im from"dayjs";var Em=i(t=>{let e=new Map([["today",{title:zr.t("Today"),swaps:[]}],["week",{title:zr.t("This week"),swaps:[]}],["month",{title:zr.t("This month"),swaps:[]}],["year",{title:zr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Im();t.forEach(p=>{let u=Number(p.creationTime),c=Im(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let d=new Date(u).getFullYear().toString();o(d,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var jC=GC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),KC=i((t,e)=>t?.length?t.filter(o=>dt(o.fromBlockchain,e)||dt(o.toBlockchain,e)||dt(o.toSymbol,e)||dt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Nm(){let t=XC(),{manager:e,state:o}=QC(),n=tt(e).map(({swap:c})=>c),[r,a]=VC(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>dt(c.inputAmount,r)||dt(c.status,r)||KC(c.steps,r)||dt(c.requestId,r)));let u=!p?.length&&!s;return At.createElement(le,{header:{title:qr.t("History")}},At.createElement(ue,null,At.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),At.createElement(Am,{size:"16"}),At.createElement(jC,null,u&&At.createElement(km,null,At.createElement(Am,{size:32}),At.createElement(HC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&At.createElement(Ja,{list:p,onSwapClick:t,groupBy:Em,isLoading:s}))))}i(Nm,"HistoryPage");import{i18n as fT}from"@lingui/core";import{Button as gT,Divider as Xm,styled as hT,WarningIcon as yT}from"@rango-dev/ui";import ST from"bignumber.js";import Qe,{useEffect as jm,useState as Km}from"react";import{useNavigate as CT}from"react-router-dom";import{i18n as tT}from"@lingui/core";import{Header as oT}from"@rango-dev/ui";import Qt,{useEffect as nT,useState as rT}from"react";import{i18n as ZC}from"@lingui/core";import{Divider as es,FullExpandedQuote as JC,Typography as RC}from"@rango-dev/ui";import fe from"react";import{styled as Ra}from"@rango-dev/ui";var Wm=Ra("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Lm=Ra("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Mm=Ra("div",{width:"146px"});import{i18n as an}from"@lingui/core";import{Select as YC}from"@rango-dev/ui";import Bm from"react";function Qr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:an.t("Smart Routing")},{value:"FEE",label:an.t("Lowest Fee")},{value:"SPEED",label:an.t("Fastest Transfer")},{value:"NET_OUTPUT",label:an.t("Maximum Return")},{value:"PRICE",label:an.t("Maximum Output")}];return Bm.createElement(Mm,null,Bm.createElement(YC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Qr,"SelectStrategy");var _m=3;function sn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:d,toToken:m,sortStrategy:f,error:g}=j(),{slippage:S,customSlippage:C}=y(),h=y().tokens(),T=l||B(),k=!!u&&u.results.length,v=C??S,E=i(w=>{if(!d||!m||!u)return null;let I={requestAmount:u.requestAmount,...w};return uo(I,{fromToken:d,toToken:m,userSlippage:v,tokens:h})},"getQuoteWarning"),b=g?.type===0||g?.type===1,x=u?.results?Vn(f,u?.results):[];return fe.createElement(fe.Fragment,null,a&&fe.createElement(fe.Fragment,null,fe.createElement(Lm,null,fe.createElement(RC,{size:"xmedium",variant:"title"},ZC.t("Sort by")),fe.createElement(Qr,{container:T})),fe.createElement(es,{size:"10"})),e&&Array.from({length:_m},(w,I)=>fe.createElement(fe.Fragment,{key:I},s?fe.createElement(JC,{loading:!0}):fe.createElement(tn,{tagHidden:!1,type:"list-item",expanded:!1}),I!==_m-1&&fe.createElement(es,{size:16}))),!e&&fe.createElement(fe.Fragment,null,k?x.map((w,I)=>{let W=E(w),M=Ha(w.swaps),Q=x.length-1===I;return fe.createElement(fe.Fragment,{key:w.requestId},fe.createElement(io,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:M?.options||null,warning:W,fullExpandedMode:s,onClick:L=>{M||c("warning",W),c("error",M?.options||null),o(L)},type:"list-item"}),!Q&&fe.createElement(es,{size:16}))}):b&&fe.createElement(Wm,null,fe.createElement(Vo,{size:s?"large":"small",error:g,fetch:n}))))}i(sn,"Quotes");import{darkTheme as eT,styled as Pm}from"@rango-dev/ui";var $m=Pm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${eT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Dm=Pm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var iT=100;function ts(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=rT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",d=Po();return nT(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},iT):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),Qt.createElement($m,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${ur()}`,id:ye.EXPANDED_BOX_ID},Qt.createElement(oT,{title:tT.t("Routes"),suffix:Qt.createElement(Qt.Fragment,null,Qt.createElement(Qr,{container:d}),Qt.createElement(eo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Qt.createElement(Dm,null,Qt.createElement(sn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Po(),onClickOnQuote:n,fullExpandedMode:c})))}i(ts,"ExpandedQuotes");import{i18n as Hm}from"@lingui/core";import{SwapInput as Gm}from"@rango-dev/ui";import ln from"react";import{ReverseIcon as lT}from"@rango-dev/ui";import ns from"react";import{keyframes as aT,styled as Fm}from"@rango-dev/ui";var os=450,sT=aT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Om=Fm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Um=Fm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${sT} ${os}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function rs(){let t=j.use.switchFromAndTo();return ns.createElement(Om,null,ns.createElement(Um,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},os),t()}},ns.createElement(lT,{size:12})))}i(rs,"SwitchFromAndToButton");import{styled as zm}from"@rango-dev/ui";var qm=zm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Qm=zm("div",{position:"relative"});function is(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:d,outputAmount:m,outputUsdValue:f,selectedQuote:g}=j(),{connectedWallets:S,getBalanceFor:C}=R(),h=a?C(a):null,T=Nn(h)?.amount??"0",k=s&&a?N(h?.amount,h?.decimals):"0",v=!!s&&El(S,s.name),E=!Di(g,c,d),b=!Di(g,c,f),x=!d||!f||!f.gt(0)?null:Je(d.toString(),f.toString());return ln.createElement(qm,null,ln.createElement(Qm,null,ln.createElement(Gm,{label:Hm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(d,4,4),realUsdValue:E?void 0:pe(d),error:E?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),ln.createElement(rs,null)),ln.createElement(Gm,{sharpBottomStyle:!r&&(!!g||e),label:Hm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Je(d,f),2,2),warningLevel:wt(x??0),price:{value:N(m,6,6),usdValue:b?void 0:N(f,4,4),realValue:pe(m),realUsdValue:b?void 0:pe(f),error:b?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(is,"Inputs");import{useCallback as pT,useEffect as cT,useRef as uT,useState as mT}from"react";function Vm(){let{fetch:t,loading:e,cancelFetch:o}=Dr({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Vm,"useFetchAllQuotes");var dT=600;function Hr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Vm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=R.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:C,setSelectedQuote:h,updateQuotePartialState:T}=j(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=y(),I=y().getLiquiditySources(),W=y().getDisabledLiquiditySources(),M=y().excludeLiquiditySources(),[Q,L]=mT(!0),V=uT(c),Y=v??k,H=!p||!u||$e(p,u)||!Do(c),A=i(Z=>{L(Z)},"resetState"),te=i(Z=>{let{fromToken:me,toToken:he,inputAmount:_,liquiditySources:ze,excludeLiquiditySources:P,disabledLiquiditySources:X,slippage:ie,affiliateRef:Ne,affiliatePercent:Ge,affiliateWallets:We}=Z;if(Q||A(!0),!H&&me&&he){g();let _e=fp({fromToken:me,toToken:he,inputAmount:_,liquiditySources:ze,excludeLiquiditySources:P,disabledLiquiditySources:X,wallets:s,slippage:ie,affiliateRef:Ne,affiliatePercent:Ge,affiliateWallets:We,enableCentralizedSwappers:a});Ul("experimentalRoute",r)&&(_e.experimental=!0),e(_e).then(Ke=>{let Le=Vn(f,Ke.results),qe=Np(m,Le,Ke.requestAmount);L(!1),T("quotes",Ke),h(qe),Fr({diagnosisMessages:Ke.diagnosisMessages,requestId:qe?.requestId||"",swaps:qe?.swaps});let Cn=qe&&uo(qe,{fromToken:me,toToken:he,userSlippage:Y,tokens:l});T("warning",Cn)}).catch(Ke=>{let{error:Le}=Or(Ke);(Le?.type===0||Le?.type===1)&&g(),Le?.type!==2&&(T("error",Le),L(!1))})}},"fetch"),q=pT(dl(Z=>{te(Z)},dT),[H]);return cT(()=>{if(!t){L(!1);return}if(w!=="success")return;if(H){L(!1),(m||S||C)&&g();return}if(!Do(c)||d?.eq(0)){A(!1),o();return}g(),A(!0);let Z=te;return V.current&&V.current!=c&&(Z=q),V.current=c,Z({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:M,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,H,I?.length,n,W.length,Y,b,E,JSON.stringify(x)]),{fetch:()=>te({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:M,disabledLiquiditySources:W,slippage:Y,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:Q}}i(Hr,"useSwapInput");var TT=hT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),kT=300;function Ym(){let t=CT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:d,updateQuotePartialState:m}=j(),[f,g]=Km(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Nr(),{fetch:h,loading:T}=Hr({refetchQuote:a}),{config:k,fetchStatus:v}=y(),{connectedWallets:E}=R(),{isActiveTab:b}=ne(),[x,w]=Km(!1),W=lp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),M=_l(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new ST(n).gt(0)&&!vp(e,o),L=Q&&v==="success"&&T,re=(!M||M&&p?.results.length)&&(l||s);jm(()=>{c(),m("refetchQuote",!0)},[]),jm(()=>{g(Q)},[Q]);let H=(r||s)&&!x?h:void 0,A=i(q=>{M&&f?(g(!1),setTimeout(()=>{t(q)},kT)):t(q)},"onHandleNavigation"),te=i(q=>{r?.requestId!==q.requestId&&(w(!1),u(q))},"onClickOnQuote");return Qe.createElement(TT,null,Qe.createElement(le,{height:"auto",footer:Qe.createElement(gT,{type:"primary",size:"large",disabled:W.disabled||!b,prefix:W.action==="confirm-warning"&&Qe.createElement(yT,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?A(U.wallets):W.action==="confirm-warning"?w(!0):A(U.confirmSwap)}},W.title),header:{onWallet:()=>{A(U.wallets)},hasBackButton:!1,title:k.title||fT.t("Swap"),suffix:Qe.createElement(eo,{hidden:M?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>A(U.swaps),onClickSettings:()=>{A(U.settings)}})}},Qe.createElement(ue,null,Qe.createElement(is,{fetchingQuote:L,fetchMetaStatus:v,isExpandable:M,onClickToken:q=>{A(q==="from"?U.fromSwap:U.toSwap)}}),Qe.createElement(Xm,{size:"2"}),M?null:Qe.createElement(io,{quote:r,loading:L,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),A(U.routes)}:void 0}),re?Qe.createElement(Qe.Fragment,null,Qe.createElement(Xm,{size:"10"}),Qe.createElement(jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:h,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),A(U.confirmSwap)},onChangeSettings:()=>A(U.settings)})):null)),M?Qe.createElement(ts,{loading:L,onClickOnQuote:te,fetch:h,onClickRefresh:H,isVisible:f}):null)}i(Ym,"Home");import{i18n as Zm}from"@lingui/core";import{Alert as wT,Divider as vT,List as xT,ListItemButton as bT,Radio as IT,RadioRoot as ET,Typography as AT}from"@rango-dev/ui";import St from"react";function Ht(){let{setLanguage:t,language:e,config:o}=y(),n=ql,r=o?.language||Uo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Uo),resetLanguage:()=>t(null)}}i(Ht,"useLanguage");function Jm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Ht(),n=et(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:St.createElement(AT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:St.createElement(IT,{value:s}),start:St.createElement(p,null)}});return St.createElement(le,{header:{title:Zm.t("Language")}},St.createElement(ue,null,St.createElement(wT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),St.createElement(vT,{size:"8"}),St.createElement(ET,{value:t},St.createElement(xT,{type:St.createElement(bT,{title:Zm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Jm,"LanguagePage");import{i18n as Nt}from"@lingui/core";import{Button as BT,Checkbox as _T,Image as PT,ListItemButton as $T,NotFound as DT,Typography as FT}from"@rango-dev/ui";import Ue,{useState as OT}from"react";import{Checkbox as LT,Skeleton as ed}from"@rango-dev/ui";import cn from"react";import{styled as as}from"@rango-dev/ui";var pn=as("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ss=as("div",{width:80,display:"flex",justifyContent:"flex-end"}),ls=as("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as NT,styled as WT}from"@rango-dev/ui";var Rm=WT(NT,{height:61});var MT=30;function ps(){return cn.createElement(pn,null,Array.from(Array(MT),(t,e)=>cn.createElement(Rm,{hasDivider:!0,key:e,start:cn.createElement(ed,{variant:"circular",width:35,height:35}),title:cn.createElement(ed,{variant:"text",size:"large",width:90}),end:cn.createElement(LT,{checked:!1})})))}i(ps,"LoadingLiquiditySourceList");function cs({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=OT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=_n(o,n),u={Exchanges:Nt.t("Exchanges"),Bridges:Nt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(h=>c.includes(h.type)),m=d.length===d.filter(h=>h.selected).length,f=i(()=>{d.forEach(h=>{m?s(h.groupTitle):h.selected||s(h.groupTitle)})},"toggleAllSources"),g=d.map(h=>{let{selected:T,groupTitle:k,logo:v}=h;return{start:Ue.createElement(PT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ue.createElement(_T,{checked:T,disabled:l}),title:Ue.createElement(FT,{variant:"title",size:"xmedium"},Nt.t(k)),...h}}),S=i(h=>{let T=h.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(h=>dt(h.groupTitle,r))),Ue.createElement(le,{header:{title:Nt.t(t),suffix:Ue.createElement(ss,null,Ue.createElement(BT,{variant:"ghost",size:"xsmall",onClick:f},m?Nt.t("Deselect all"):Nt.t("Select all")))}},Ue.createElement(ue,{view:!0},Ue.createElement(Et,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Nt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Ue.createElement(ps,null),!C.length&&r?Ue.createElement(ls,null,Ue.createElement(DT,{title:Nt.t("No results found"),description:Nt.t("Try using different keywords")})):e==="success"&&Ue.createElement(pn,{disabled:l},C.map(h=>{let{groupTitle:T,...k}=h;return Ue.createElement(Ue.Fragment,{key:h.id},Ue.createElement($T,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(cs,"LiquiditySourcePage");import{i18n as UT}from"@lingui/core";import Gr from"react";import{useNavigate as zT}from"react-router-dom";function td(){let t=zT(),e=et(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Hr({refetchQuote:n}),u=i(m=>{r(m),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${U.settings}`,d=`../${U.wallets}`;return Gr.createElement(le,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:UT.t("Routes"),suffix:Gr.createElement(eo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Gr.createElement(ue,null,Gr.createElement(sn,{fetch:l,loading:p,onClickOnQuote:u})))}i(td,"RoutesPage");import{i18n as pd}from"@lingui/core";import{Divider as cd,getCategoriesCount as YT,SelectableCategoryList as ZT}from"@rango-dev/ui";import Wt,{useState as ud}from"react";import{i18n as us}from"@lingui/core";import{Divider as sd,Image as GT,ListItemButton as VT,NotFound as XT,Typography as ld}from"@rango-dev/ui";import ot,{useEffect as jT,useState as KT}from"react";var od=i((t,e,o)=>t.filter(n=>wn(n.type,o)).filter(n=>Tt(n.name,e)||Tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as qT,styled as nd}from"@rango-dev/ui";var rd=nd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vr=nd(Ho,{padding:0,margin:0,listStyle:"none",[`& ${qT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as QT,Skeleton as id}from"@rango-dev/ui";import Xr from"react";var HT=20;function ad(){return Xr.createElement(Vr,null,Array.from(Array(HT),t=>Xr.createElement(QT,{key:t,hasDivider:!0,start:Xr.createElement(id,{variant:"circular",width:35,height:35}),title:Xr.createElement(id,{variant:"text",size:"large",width:90})})))}i(ad,"LoadingBlockchainList");function ms(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=KT(e),{fetchStatus:l}=y();jT(()=>{s([...od(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?ot.createElement(ot.Fragment,null,ot.createElement(sd,{size:32}),ot.createElement(XT,{title:us.t("No results found"),description:us.t("Try using different keywords")})):ot.createElement(Vr,{as:"ul",key:`${r}-${o}`},a.map(u=>ot.createElement(VT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:ot.createElement(GT,{src:u.logo,size:30}),title:ot.createElement(ld,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return ot.createElement(rd,null,ot.createElement(ld,{variant:"label",size:"large"},us.t("Select Blockchain")),ot.createElement(sd,{size:4}),l==="loading"&&ot.createElement(ad,null),l==="success"&&p())}i(ms,"BlockchainList");function ds(t){let{type:e}=t,o=et(),[n,r]=ud(""),[a,s]=ud("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),m=YT(c)!==1;return Wt.createElement(le,{header:{title:pd.t("Select Blockchain")}},Wt.createElement(ue,{view:!0},m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(ZT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Wt.createElement(cd,{size:24})),Wt.createElement(Et,{value:n,autoFocus:!0,placeholder:pd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Wt.createElement(cd,{size:16}),Wt.createElement(ms,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ds,"SelectBlockchainPage");import{i18n as Jr}from"@lingui/core";import{Divider as Md}from"@rango-dev/ui";import ao,{useState as fk}from"react";import{useNavigate as gk}from"react-router-dom";import{i18n as hs}from"@lingui/core";import{BlockchainsChip as jr,Divider as gd,Image as hd,Skeleton as ok,Tooltip as nk,Typography as ys}from"@rango-dev/ui";import Ee from"react";import{useEffect as ek}from"react";var md=["ETH","COSMOS","OSMOSIS"];function fs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(JT),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(RT(s)),r=n.splice(a)}return{list:n,more:r}}i(fs,"prepare");function JT(t,e){let o=md,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(JT,"sortByMostUsedBlockchains");function RT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(RT,"generateSortByPreferredBlockchainsFor");function dd(t,e){return!!e.list.find(o=>o.name===t)}i(dd,"isInVisibleList");function gs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();ek(()=>{if(e?.selected){let a=fs(t,o,e);dd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=fs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(gs,"usePrepareBlockchainList");import{styled as tk}from"@rango-dev/ui";var fd=tk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var rk=12;function Ss(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=gs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,d=s.more.length===1,m=!d&&c;return Ee.createElement(Ee.Fragment,null,Ee.createElement(gd,{size:12}),Ee.createElement(ys,{variant:"label",size:"large"},hs.t("Select Blockchain")),Ee.createElement(gd,{size:12}),Ee.createElement(fd,null,l==="loading"&&Array.from(Array(rk),f=>Ee.createElement(ok,{key:f,variant:"rounded",height:50})),l==="success"&&Ee.createElement(Ee.Fragment,null,Ee.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ee.createElement(ys,{variant:"body",size:"xsmall",color:"secondary500"},hs.t("All"))),s.list.map(f=>Ee.createElement(nk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:B()},Ee.createElement(jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ee.createElement(hd,{src:f.logo,size:30})))),d?Ee.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ee.createElement(hd,{src:s.more[0].logo,size:30})):null,m?Ee.createElement(jr,{onClick:a,key:"more-blockchains"},Ee.createElement(ys,{variant:"body",size:"xsmall",color:"secondary500"},hs._("More +{count}",{count:s.more.length}))):null)))}i(Ss,"BlockchainsSection");import{i18n as As}from"@lingui/core";import{darkTheme as Ed,Divider as Wo,ExternalLinkIcon as sk,Image as lk,ListItemButton as pk,NotFound as ck,PinIcon as uk,Skeleton as Ad,Typography as Zr,VirtualizedList as mk}from"@rango-dev/ui";import G,{useEffect as Nd,useState as Wd}from"react";import{Divider as bd,ListItem as ak,Skeleton as un}from"@rango-dev/ui";import ct from"react";import{css as No,darkTheme as yd,ImageContainer as ik,styled as nt,Typography as Sd}from"@rango-dev/ui";var Cs=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ts=No({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ks=No({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ws=No({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${yd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),vs=No({}),xs=No(),Cd=nt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),bs=nt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kr=nt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ts}`]:{[`& .${ws}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${vs}`]:{bottom:"-15px"},[`& .${Cs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Is=nt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Es=nt(Sd,{}),Td=nt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${xs}`]:{$$color:"$colors$neutral600",[`.${yd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yr=nt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),OO=nt("div",{display:"flex",alignItems:"center"}),kd=nt("div",{position:"relative",[`& ${ik}`]:{borderRadius:"$xm",overflow:"hidden"}}),wd=nt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),vd=nt(Sd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),xd=nt("a",{"& svg:hover":{color:"$colors$info"}});function Id(t){return ct.createElement(Kr,null,Array.from(Array(t.size),e=>ct.createElement(ak,{key:e,hasDivider:!0,start:ct.createElement(un,{variant:"circular",width:35,height:35}),end:ct.createElement(Yr,null,ct.createElement(un,{variant:"text",size:"large",width:70}),ct.createElement(bd,{size:4}),ct.createElement(un,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(un,{variant:"text",size:"large",width:90}),ct.createElement(bd,{size:4}),ct.createElement(un,{variant:"text",size:"medium",width:90}))})))}i(Id,"LoadingTokenList");var Ns=20,dk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return G.createElement("div",{className:Ts()},o?G.createElement("div",{className:Cs()},o):G.createElement(bs,{className:ks()},G.createElement(Zr,{variant:"title",size:"xmedium"},r.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(Is,{css:a},G.createElement(Es,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&G.createElement("div",{className:`${ws()} ${!o&&vs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",G.createElement(Wo,{size:4,direction:"horizontal"}),G.createElement(xd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},G.createElement(sk,{size:12}))))},"renderDesc");function Ld(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Wd(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Wd(!0),{getBalanceFor:d,loading:m}=R(),{isTokenPinned:f}=y(),g=i(()=>{s(e.slice(0,a.length+Ns))},"loadNextPage");Nd(()=>{c(e.length>a.length)},[a.length]),Nd(()=>{s(e.slice(0,Ns))},[e.length]);let S=i(()=>!a.length&&o?G.createElement(G.Fragment,null,G.createElement(Wo,{size:32}),G.createElement(ck,{title:As.t("No results found"),description:As.t("Try using different keywords")})):G.createElement(mk,{endReached:u?g:void 0,itemContent:C=>{let h=a[C],T=Nn(d(h)),k=h.address||"",v=p.find(I=>I.name===h.blockchain),E=nr(v?.color||"",Yp(v?.color||"")?5:125),b=nr(v?.color||"",-100),x={$$color:E,[`.${Ed} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Ed} &`]:{$$color:E},color:"$$color"};return G.createElement("div",{style:{paddingRight:5}},G.createElement(pk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${h.symbol}${h.address}`,id:`${h.symbol}${h.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:G.createElement(kd,null,G.createElement(lk,{src:h.image,size:30}),f(h,t.type)&&G.createElement(wd,null,G.createElement(uk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||h.name||!h.name&&!k?G.createElement(bs,null,G.createElement(Zr,{variant:"title",size:"xmedium"},h.symbol),G.createElement(Wo,{direction:"horizontal",size:4}),G.createElement(Is,{css:x},G.createElement(Es,{variant:"body",size:"xsmall",css:w},h.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?dk({address:k,token:a[C],customCssForTag:x,customCssForTagTitle:w,name:h.name,url:v.info.addressUrl.split("{wallet}").join(k)}):h.name||void 0,end:m?G.createElement(Yr,null,G.createElement(Ad,{variant:"text",size:"large",width:70}),G.createElement(Wo,{size:4}),G.createElement(Ad,{variant:"text",size:"medium",width:50})):T&&G.createElement(Td,null,G.createElement(vd,{variant:"title",size:"small"},T.amount),G.createElement("div",null),T.usdValue&&G.createElement(Zr,{variant:"body",className:xs(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return G.createElement(Cd,null,G.createElement(Zr,{variant:"label",size:"large"},As.t("Select Token")),G.createElement(Wo,{size:4}),l==="loading"&&G.createElement(Id,{size:Ns}),l==="success"&&G.createElement(Kr,{as:"ul"},S()))}i(Ld,"TokenList");function Ws(t){let{type:e}=t,o=gk(),n=et(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=R.use.getBalanceFor(),[d,m]=fk(""),g=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),h=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:Jr.t("Source"),destination:Jr.t("Destination")};return ao.createElement(le,{header:{title:Jr.t("Swap {type}",{type:k[e]})}},ao.createElement(ue,null,ao.createElement(Ss,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(U.blockchains),onChange:v=>{h(v)}}),ao.createElement(Md,{size:24}),ao.createElement(Et,{value:d,autoFocus:!0,placeholder:Jr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:v=>m(v.target.value)}),ao.createElement(Md,{size:16}),ao.createElement(Ld,{list:C,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{T(v);let E=S.find(b=>v.blockchain===b.name);E&&h(E),n()}})))}i(Ws,"SelectSwapItemsPage");import{i18n as _s}from"@lingui/core";import{Alert as Uk,Button as zk,styled as qk}from"@rango-dev/ui";import so from"react";import{useInRouterContext as Qk,useSearchParams as Hk}from"react-router-dom";import{i18n as Fd}from"@lingui/core";import{Divider as Ck,InfoIcon as Tk,TextField as kk,Tooltip as wk,Typography as Od}from"@rango-dev/ui";import ut from"react";import{Chip as hk,styled as mn,TextField as yk}from"@rango-dev/ui";var Bd=mn("div",{paddingTop:"$5",padding:"$10 $5"}),_d=mn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${yk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Pd=mn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rr=mn("div",{maxWidth:"280px",padding:"$10"}),$d=mn(hk,{width:"61px",flexShrink:0});import{i18n as Ls}from"@lingui/core";import{Typography as Sk}from"@rango-dev/ui";import dn from"react";function Dd(){return dn.createElement(Rr,null,dn.createElement(Sk,{variant:"label",size:"medium",color:"neutral700"},Ls.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),dn.createElement("br",null),dn.createElement("br",null),dn.createElement("b",null,Ls.t("Warning")),":",Ls.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Dd,"SlippageTooltipContent");function Ms(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return ut.createElement(Bd,null,ut.createElement(Pd,null,ut.createElement(Od,{variant:"title",size:"xmedium"},Fd.t("Slippage tolerance per swap")),ut.createElement(Ck,{direction:"horizontal",size:4}),ut.createElement(wk,{container:B(),side:"top",sideOffset:4,content:ut.createElement(Dd,null)},ut.createElement(Tk,{color:"gray"}))),ut.createElement(_d,null,Ql.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement($d,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(kk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Xl&&s<=Vl?n(s):n(null)},suffix:o&&ut.createElement(Od,{variant:"body",size:"small"},"%"),placeholder:Fd.t("Custom")})))}i(Ms,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as Ud,BridgesIcon as vk,ChevronRightIcon as Bs,DarkModeIcon as zd,Divider as ei,ExchangeIcon as xk,InfinityIcon as bk,InfoIcon as Ik,LanguageIcon as Ek,LightModeIcon as qd,List as Ak,ListItem as Nk,ListItemButton as Wk,Skeleton as Lk,styled as Mk,Switch as Bk,Tabs as _k,Tooltip as Pk,Typography as rt}from"@rango-dev/ui";import F from"react";import{useNavigate as $k}from"react-router-dom";var Dk=Mk("div",{width:"202px",height:"$40"}),Fk=[{id:"light",icon:F.createElement(qd,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:F.createElement(zd,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:F.createElement(Ud,{color:"black",size:24}),tooltip:F.createElement(rt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],Ok=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return F.createElement(Ud,{...e});case"dark":return F.createElement(zd,{...e});default:return F.createElement(qd,{...e})}},"getThemeIcon");function Qd(){let t=$k(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Ht(),s=a.find(V=>V.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),d=Ze("theme",c),m=Ze("liquiditySource",c),f=Ze("language",c),g=y().infiniteApprove,S=y().toggleInfiniteApprove,C=_n(p,u),h=C.filter(V=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(V.type)),T=h.length,k=h.filter(V=>V.selected).length,v=C.filter(V=>V.type==="DEX"),E=v.length,b=v.filter(V=>V.selected).length,x=i((V,Y)=>{switch(l){case"loading":return F.createElement(Lk,{variant:"text",size:"medium",width:50});case"failed":return F.createElement(rt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return F.createElement(rt,{variant:"body",size:"medium"},`${V} / ${Y}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:F.createElement(F.Fragment,null,x(k,T),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),onClick:()=>t(U.bridges),start:F.createElement(vk,{color:"gray",size:16})},I={id:"exchange-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:F.createElement(F.Fragment,null,x(b,E),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),start:F.createElement(xk,{color:"gray",size:16}),onClick:()=>t(U.exchanges)},W={id:"language-item",title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:F.createElement(Ek,{color:"gray",size:16}),end:F.createElement(F.Fragment,null,F.createElement(rt,{variant:"body",size:"medium"},s),F.createElement(ei,{direction:"horizontal",size:8}),F.createElement(Bs,{color:"black"})),onClick:()=>t(U.languages)},M={id:"infinite-approval-item",title:F.createElement(F.Fragment,null,F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),F.createElement(ei,{direction:"horizontal",size:4}),F.createElement(Pk,{side:"top",sideOffset:4,container:B(),content:F.createElement(Rr,null,F.createElement(rt,{variant:"label",size:"medium",color:"neutral700"},Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},F.createElement(Ik,{color:"gray"}))),start:F.createElement(bk,{color:"gray",size:16}),end:F.createElement(Bk,{checked:g}),onClick:S},Q={id:"theme-item",type:F.createElement(Nk,null),title:F.createElement(rt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:F.createElement(Dk,null,F.createElement(_k,{container:B(),items:Fk,value:n,onChange:V=>o(V.id),type:"primary",borderRadius:"small"})),start:Ok(n)},L=m?[]:[w,I];return f||L.push(W),L.push(M),!e?.singleTheme&&!d&&L.push(Q),F.createElement(Ak,{type:F.createElement(Wk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:L})}i(Qd,"SettingsLists");var Gk=qk("div",{paddingLeft:"$8"});function Hd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Hk(),r=Qk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return so.createElement(le,{header:{title:_s.t("Settings")}},so.createElement(ue,null,o&&so.createElement(Uk,{type:"info",variant:"alarm",title:_s.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:so.createElement(Gk,null,so.createElement(zk,{type:"secondary",size:"small",onClick:a},_s.t("Reset")))}),so.createElement(Ms,null),so.createElement(Qd,null)))}i(Hd,"SettingsPage");import{i18n as Lw}from"@lingui/core";import{cancelSwap as Mw}from"@rango-dev/queue-manager-rango-preset";import{useManager as Bw}from"@rango-dev/queue-manager-react";import{Alert as _w}from"@rango-dev/ui";import Zs from"react";import{useParams as Pw}from"react-router-dom";import{i18n as Bt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as dw,getCurrentStep as fw,getRelatedWalletOrNull as gw}from"@rango-dev/queue-manager-rango-preset";import{Button as wf,CopyIcon as hw,Divider as yw,IconButton as Sw,LinkIcon as Cw,QuoteCost as Tw,StepDetails as kw,Typography as lo,useCopyToClipboard as ww}from"@rango-dev/ui";import{useWallets as vw}from"@rango-dev/wallets-react";import vf from"bignumber.js";import{PendingSwapNetworkStatus as pi}from"rango-types";import J,{useEffect as xf,useRef as xw,useState as bf}from"react";import{useNavigate as bw}from"react-router-dom";import{i18n as Gt}from"@lingui/core";var Vk=[Gt.t("Sunday"),Gt.t("Monday"),Gt.t("Tuesday"),Gt.t("Wednesday"),Gt.t("Thursday"),Gt.t("Friday"),Gt.t("Saturday")];function Gd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Gt.t("Today"):`${Vk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Gd,"timeSince");function Vd(t){return t.finishTime?Gd(parseInt(t.finishTime)):Gd(parseInt(t.creationTime))}i(Vd,"getSwapDate");import{PendingSwapNetworkStatus as ni}from"rango-types";import ri from"react";import{i18n as ti}from"@lingui/core";import{Button as Xd,Divider as Ps,MessageBox as Xk}from"@rango-dev/ui";import Vt from"react";var jd=i(({onCancel:t,onClose:e})=>Vt.createElement(Vt.Fragment,null,Vt.createElement(Ps,{size:20}),Vt.createElement(Xk,{type:"error",title:ti.t("Cancel Swap"),description:ti.t("Are you sure you want to cancel this swap?")}),Vt.createElement(Ps,{size:32}),Vt.createElement(Xd,{variant:"contained",type:"primary",size:"large",onClick:t},ti.t("Yes, Cancel it")),Vt.createElement(Ps,{size:12}),Vt.createElement(Xd,{variant:"outlined",type:"primary",size:"large",onClick:e},ti.t("No, Continue"))),"CancelContent");import{i18n as oi}from"@lingui/core";import{Button as Kd,Divider as $s,MessageBox as jk,Typography as Kk}from"@rango-dev/ui";import Lt from"react";var Yd=i(({onDelete:t,onClose:e})=>Lt.createElement(Lt.Fragment,null,Lt.createElement($s,{size:20}),Lt.createElement(jk,{type:"error",title:oi.t("Delete Transaction"),description:oi.t("Are you sure you want to delete this swap?")}),Lt.createElement($s,{size:32}),Lt.createElement(Kd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Delete it")),Lt.createElement($s,{size:12}),Lt.createElement(Kd,{variant:"outlined",type:"primary",size:"large",onClick:e},Lt.createElement(Kk,{variant:"title",size:"medium",color:"primary"},oi.t("No, Cancel")))),"DeleteContent");import{i18n as Ds}from"@lingui/core";import{PendingSwapNetworkStatus as Fs}from"rango-types";var Os={[Fs.WaitingForNetworkChange]:{type:"loading",title:Ds.t("Change Network")},[Fs.WaitingForConnectingWallet]:{type:"warning",title:Ds.t("Connect Wallet")},[Fs.NetworkChanged]:{type:"success",title:Ds.t("Network Changed")}};import{debug as Rd}from"@rango-dev/logging-core";import{MessageBox as Yk,Wallet as Zk}from"@rango-dev/ui";import{useWallets as Jk}from"@rango-dev/wallets-react";import Lo,{useState as Rk}from"react";import{styled as Zd}from"@rango-dev/ui";var Jd=Zd("div",{display:"flex",justifyContent:"center"}),Ez=Zd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var ef=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Jk(),[c,d]=Rk(null),m=n?.walletType,f=m?xi(u(m)):null,g=m?p(m):null;return Lo.createElement(Lo.Fragment,null,Lo.createElement(Yk,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&Lo.createElement(Jd,null,Lo.createElement(Zk,{container:B(),title:g.name,image:g.img,type:m,state:f,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?d({providerType:m,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(m).catch(C=>Rd(C))}})),Lo.createElement(oo,{open:!!c,onClose:()=>d(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(h=>Rd(h)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Us(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ni.WaitingForNetworkChange||e===ni.WaitingForConnectingWallet||e===ni.NetworkChanged;return ri.createElement(oe,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&ri.createElement(ef,{type:Os[e].type,title:Os[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ni.WaitingForNetworkChange}),e==="delete"&&ri.createElement(Yd,{onClose:o,onDelete:n}),e==="cancel"&&ri.createElement(jd,{onClose:o,onCancel:r}))}i(Us,"SwapDetailsModal");import{i18n as fn}from"@lingui/core";import{Button as zs,Divider as ii,MessageBox as tf,TokenAmount as ew,Typography as qs}from"@rango-dev/ui";import Be from"react";import{useNavigate as tw}from"react-router-dom";function Qs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:d,diagnosisUrl:m}=t,f=tw();return Be.createElement(oe,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Be.createElement(tf,{type:"success",title:fn.t("Swap Successful")},Be.createElement(ew,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Be.createElement(ii,{size:12}),Be.createElement(qs,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Be.createElement(tf,{type:"error",title:fn.t("Transaction Failed"),description:d}),Be.createElement(ii,{size:32}),n==="success"&&Be.createElement(zs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Be.createElement(qs,{variant:"title",size:"medium",color:"neutral100"},fn.t("Done"))),Be.createElement(ii,{size:12}),m&&Be.createElement(Be.Fragment,null,Be.createElement(zs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},fn.t("Diagnosis")),Be.createElement(ii,{size:12})),Be.createElement(zs,{variant:"outlined",type:"primary",size:"large",onClick:o},Be.createElement(qs,{variant:"title",size:"medium",color:"primary"},fn.t("See Details"))))}i(Qs,"SwapDetailsCompleteModal");import mw from"react";import{i18n as lw}from"@lingui/core";import{Alert as Sf,IconButton as pw,LinkIcon as cw}from"@rango-dev/ui";import Xt,{Fragment as uw}from"react";import{Alert as rw,ChevronDownIcon as iw,IconButton as aw}from"@rango-dev/ui";import Bo,{useState as sw}from"react";import{css as gn,darkTheme as ow,styled as Mt,Typography as nw}from"@rango-dev/ui";var of=Mt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ai=Mt("div",{width:"100%"}),nf=Mt(Ho,{padding:"$0 $20 $20 $20"}),pq=Mt("div",{display:"flex",flexDirection:"column",gap:"$10"}),rf=Mt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),cq=Mt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Mo=gn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ow} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),af=gn({padding:"$5 0"}),si=gn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),sf=gn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),lf=gn({width:"100%",padding:"0 $20 $10"}),pf=Mt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),cf=Mt("div",{display:"flex",flexDirection:"column",gap:"$5"}),li=Mt(nw,{wordBreak:"break-word"});import{styled as Hs}from"@rango-dev/ui";var uf=Hs("div",{display:"flex",flexDirection:"column",gap:"$10"}),mf=Hs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),df=Hs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function ff(t){let{message:e}=t,[o,n]=sw(!1);return Bo.createElement(rw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Bo.createElement(aw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Bo.createElement(mf,{rotated:o},Bo.createElement(iw,{size:12,color:"gray"}))),footer:Bo.createElement(df,{open:o},Bo.createElement(li,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(ff,"FailedAlert");import{i18n as gf}from"@lingui/core";import{Alert as Gs,Button as hf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Vs}from"rango-types";import hn from"react";function yf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?hn.createElement(Gs,{type:"warning",title:n.shortMessage,action:hn.createElement(hf,{size:"xxsmall",type:"warning",onClick:()=>{o(Vs.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},gf.t("Change"))}):r===Vs.WaitingForConnectingWallet?hn.createElement(Gs,{type:"warning",title:n.shortMessage,action:hn.createElement(hf,{size:"xxsmall",type:"warning",onClick:()=>{o(Vs.WaitingForConnectingWallet)}},gf.t("Connect"))}):hn.createElement(Gs,{type:"warning",title:n.shortMessage})}i(yf,"WarningAlert");function Xs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Xt.createElement(uf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,C=(S&&u||p)&&!c,h=S&&a.status==="failed";return Xt.createElement(uw,{key:g},Xt.createElement(Sf,{type:S&&(C&&"loading"||h&&"error")||"success",title:d.description?`${d.description} Tx`:lw.t("View transaction"),action:d.url&&Xt.createElement(pw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Xt.createElement(cw,{size:12}))}))}),c&&Xt.createElement(Sf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Xt.createElement(yf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Xt.createElement(ff,{message:r}))}i(Xs,"SwapDetailsAlerts");var Cf=2e3;var Tf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ye(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ye(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Oo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ye(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ye(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Oo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:mw.createElement(Xs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function kf(t){if(Qo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(kf,"getStepState");function js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=vw(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),d=j.use.retry(),m=ne.use.isActiveTab(),f=bw(),[g,S]=ww(Cf),C=xw(null),[h,T]=bf(null),[k,v]=bf(null),E=i(()=>{r(),T(null)},"onCancel"),b=be.use.getNotifications(),x=be.use.removeNotification(),w=b(),I=fw(e),W=I?.networkStatus;xf(()=>{w.find(qe=>qe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),xf(()=>{H?T(pi.WaitingForNetworkChange):W===pi.WaitingForConnectingWallet||W===pi.NetworkChanged?T(W):T(null)},[W]);let M=Tp(e),Q=I?dw(e,I):null,L=I?gw(e,I):null,V=Vd(e),Y=kp(e),re=i(Le=>!!l(Le)?.mobileWallet,"isMobileWallet"),H=W===pi.WaitingForNetworkChange&&!!Q&&!!L?.walletType&&(re(L.walletType)||a(L.walletType,Q)),A=H?s.bind(null,L.walletType,Q):void 0,te=Cp(e,I),q=Tf({swap:e,switchNetwork:A,showNetworkModal:W,setNetworkModal:T,message:te,blockchains:p,swappers:u}),Z=q.length,[me,he]=[e.steps[0],e.steps[Z-1]],_=he.outputAmount||he.expectedOutputAmountHumanReadable,ze=e.steps.reduce((Le,qe)=>Le+parseFloat(qe.feeInUsd||""),0),P=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,X=N(parseFloat(N(_,6,6))*(he.toUsdPrice||0),4,4),ie=N(parseFloat(e.inputAmount)*(me.fromUsdPrice||0),4,4),Ne=_?pe(new vf(_).multipliedBy(he.toUsdPrice||0)):"",Ge=pe(new vf(e.inputAmount).multipliedBy(me.fromUsdPrice||0)),We=Je(ie,X),_e=te.detailedMessage.content||te.shortMessage,Ke=e.status==="success"?Bt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:q[Z-1].to.token.displayName,conciseAddress:Wn(e.wallets[q[Z-1].to.chain.displayName]?.address||""),chain:q[Z-1].to.chain.displayName}}):J.createElement(cf,null,J.createElement(lo,{variant:"body",size:"medium",color:"neutral700",align:"center"},_e?"":Bt.t("Transaction was not sent."),M?`${Bt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:M.outputAmount,symbol:M.symbol,blockchain:M.blockchain}})}`:""),_e&&J.createElement(li,{align:"center",variant:"body",size:"medium",color:"neutral700"},J.createElement("b",null,"Reason:")," ",_e));return J.createElement(le,{header:{title:Bt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&J.createElement(So,null,J.createElement(wf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},J.createElement(lo,{size:"medium",variant:"label",color:"error"},Bt.t("Delete"))))},footer:Y&&!k&&J.createElement(wf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},Bt.t("Try again"))},J.createElement(ue,{compact:!0,view:!0},J.createElement(ai,null,J.createElement("div",{className:Mo()},J.createElement(lo,{variant:"label",size:"large",color:"neutral700"},`${Bt.t("Request ID")}:`),J.createElement("div",{className:si()},J.createElement(lo,{variant:"label",size:"small",color:"neutral700"},o),J.createElement(Sw,{variant:"ghost",onClick:S.bind(null,o||"")},J.createElement(hw,{size:16,color:"gray"})),J.createElement(pf,{target:"_blank",href:`${il}/swap/${o}`},J.createElement(Cw,{size:16})))),J.createElement("div",{className:Mo()},J.createElement(lo,{variant:"label",size:"large",color:"neutral700"},`${Bt.t(e.finishTime?"Finished at":"Created at")}:`),J.createElement(lo,{variant:"label",size:"small",color:"neutral700"},V))),J.createElement("div",{className:sf()},J.createElement(Tw,{fee:N(String(ze),2,2),time:$o(vn(e.steps)),steps:Z}),J.createElement(Yo,{from:{price:{value:N(e.inputAmount,6,6),usdValue:ie,realUsdValue:Ge,realValue:e.inputAmount},token:{displayName:q[0].from.token.displayName,image:q[0].from.token.image},chain:{image:q[0].from.chain.image,displayName:q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:X,realUsdValue:Ne,realValue:_},token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image,displayName:q[Z-1].to.chain.displayName}},percentageChange:N(We,2,2),warningLevel:wt(We??0)})),J.createElement("div",{className:lf()},J.createElement(lo,{variant:"title",size:"small"},Bt.t("Swaps steps"))),J.createElement(yw,{size:8}),J.createElement(nf,{ref:C},q.map((Le,qe)=>{let Cn=qe,_o=kf(e.steps[qe]),Vf=_o==="error"||_o==="in-progress"||_o==="warning"||_o==="completed"&&qe===q.length-1;return J.createElement(kw,{key:Cn,step:Le,type:"swap-progress",ref:C,state:_o,hasSeparator:qe!==0,tabIndex:Cn,isFocused:Vf,tooltipContainer:B()})}))),J.createElement(Us,{state:h,onClose:()=>T(null),onCancel:E,onDelete:n,message:te.detailedMessage.content,currentStepWallet:L,walletButtonDisabled:!m}),J.createElement(Qs,{open:!!k,diagnosisUrl:P,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:X,realUsdValue:Ne,realValue:pe(_),percentageChange:N(We,2,2),token:{displayName:q[Z-1].to.token.displayName,image:q[Z-1].to.token.image},chain:{image:q[Z-1].to.chain.image},description:Ke}))}i(js,"SwapDetails");import{i18n as ui}from"@lingui/core";import{Divider as Af,NotFound as Ww,Skeleton as Sn,Typography as mi}from"@rango-dev/ui";import ge from"react";import{i18n as Iw}from"@lingui/core";import{Divider as Ew,Skeleton as Aw,Typography as Nw}from"@rango-dev/ui";import Ce from"react";import{css as mt,styled as Ks}from"@rango-dev/ui";var If=Ks("div",{width:"100%",height:"100%",padding:"$10 $20"}),yn=Ks("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ci=Ks("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),wQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),vQ=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),xQ=mt({paddingTop:"$15",display:"flex"}),bQ=mt({padding:"$15 $0"}),IQ=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),EQ=mt({paddingBottom:"$10"}),AQ=mt({display:"flex",justifyContent:"start",alignItems:"center"}),NQ=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),WQ=mt({display:"flex",alignItems:"center"}),LQ=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Ef=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ys(){return Ce.createElement(If,null,Ce.createElement(Ro,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Nw,{variant:"title",size:"small"},Iw.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1}),Ce.createElement("div",{className:Ef()},Ce.createElement(Ew,{direction:"horizontal",size:20}),Ce.createElement(Aw,{height:22,variant:"rectangular"}))),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1})),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1})),Ce.createElement(ci,null),Ce.createElement(yn,null,Ce.createElement(yt,{separator:!1}))))}i(Ys,"LoadingSwapDetails");function Nf(t){let{requestId:e,showSkeleton:o}=t;return ge.createElement(le,{header:{title:ui.t("Swap and Bridge"),suffix:ge.createElement(So,null)}},o&&ge.createElement(of,null,ge.createElement(ai,null,ge.createElement("div",{className:Mo()},ge.createElement(mi,{variant:"label",size:"large",color:"neutral700"},`${ui.t("Request ID")}:`),ge.createElement("div",{className:si()},ge.createElement(mi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})),ge.createElement(Af,{direction:"horizontal",size:4}),ge.createElement(Sn,{width:16,height:16,variant:"rectangular"}),ge.createElement(Af,{direction:"horizontal",size:4}),ge.createElement(Sn,{width:16,height:16,variant:"rectangular"}))),ge.createElement("div",{className:Mo()},ge.createElement(mi,{className:af(),variant:"label",size:"large",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})),ge.createElement(mi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(Sn,{width:60,height:10,variant:"rounded"})))),ge.createElement(Ys,null)),!o&&ge.createElement(rf,null,ge.createElement(Ww,{title:ui.t("Not found"),description:ui.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Nf,"SwapDetailsPlaceholder");function Wf(){let{manager:t,state:e}=Bw(),o=!e.loadedFromPersistor,n=tt(t),{requestId:r}=Pw(),a=et(),{fetchStatus:s}=y();if(!r)return Zs.createElement(_w,{containerStyles:{margin:"20px"},type:"error",title:Lw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:m})=>m.requestId===r):void 0,u=i(()=>{if(p?.id){let m=t?.get(p.id);m&&Mw(m)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(m){console.log(m)}},"onDelete"),d=p?.swap;return!d||l?Zs.createElement(Nf,{requestId:r,showSkeleton:l}):Zs.createElement(js,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(Wf,"SwapDetailsPage");function Lf(){return Lp(),Vi(),$w([{path:U.home,element:He.createElement(Ym,null)},{path:U.routes,element:He.createElement(td,null)},{path:U.fromSwap,children:[{index:!0,element:He.createElement(Ws,{type:"source"})},{path:U.blockchains,element:He.createElement(ds,{type:"source"})}]},{path:U.toSwap,children:[{index:!0,element:He.createElement(Ws,{type:"destination"})},{path:U.blockchains,element:He.createElement(ds,{type:"destination"})}]},{path:U.settings,children:[{index:!0,element:He.createElement(Hd,null)},{path:U.languages,element:He.createElement(Jm,null)},{path:U.exchanges,element:He.createElement(cs,{sourceType:"Exchanges"})},{path:U.bridges,element:He.createElement(cs,{sourceType:"Bridges"})}]},{path:U.swaps,children:[{index:!0,element:He.createElement(Nm,null)},{path:U.swapDetails,element:He.createElement(Wf,null)}]},{path:U.wallets,element:He.createElement(qc,null)},{path:U.confirmSwap,element:He.createElement(ym,null)}])}i(Lf,"AppRoutes");import{useQueueManager as Vw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Xw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as jw}from"rango-sdk";import{useContext as Kw,useEffect as Yw,useState as Ff}from"react";import{globalCss as Dw}from"@rango-dev/ui";var Mf=i(()=>Dw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Bf(){let{setWatermark:t}=ne();return{fetchApiConfig:i(async()=>{let o=await fetch(`${kt("BASE_URL")}/meta/dapp/config?apiKey=${kt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Bf,"useFetchApiConfig");import{useWallets as Fw}from"@rango-dev/wallets-react";import{useEffect as Ow,useRef as Uw}from"react";function _f(){let{connect:t,state:e}=Fw(),o=Uw({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Ow(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(_f,"useForceAutoConnect");import{isApprovalTX as zw,MainEvents as di,RouteEventType as Pf,StepEventType as $f,StepExecutionEventStatus as qw,useEvents as Qw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Df}from"react";function Js(){let t=y().tokens(),e=R.use.connectedWallets(),o=R.use.getWalletsDetails(),n=be.use.setNotification(),r=Qw();Df(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===$f.TX_EXECUTION&&l.status===qw.TX_SENT&&!zw(p)||l.type===$f.SUCCEEDED){let d=e.find(f=>f.chain===p?.fromBlockchain),m=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);d&&o([d],t),m&&o([m],t)}n(l,u)},"handleStepEvent");return r.on(di.StepEvent,a),()=>r.off(di.StepEvent,a)},[r,e.length]),Df(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Pf.FAILED||l.type===Pf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(di.RouteEvent,a),()=>r.off(di.RouteEvent,a)},[r,e.length])}i(Js,"useSubscribeToWidgetEvents");import{useManager as Hw}from"@rango-dev/queue-manager-react";import{useEffect as Gw}from"react";function Rs(){let{isSynced:t,syncNotifications:e}=be(),{manager:o,state:n}=Hw();Gw(()=>{be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(tt(o))},[be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Rs,"useSyncNotifications");function el(){_f(),Mf(),Js(),Rs();let t=y().blockchains(),{canSwitchNetworkTo:e}=Sr(),[o,n]=Ff(""),[r,a]=Ff(),s=Kw($n),l=t.filter(jw),{fetchApiConfig:p}=Bf();Vw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Yw(()=>(Kt.init(),be.persist.hasHydrated()||be.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Xw(o)?.[0]&&n("")}),p().catch(console.log),Kt.destroy),[])}i(el,"useBootstrap");import{styled as Zw}from"@rango-dev/ui";var Of=Zw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function fi(){el();let{config:t}=y(),{activeTheme:e}=rr(t?.theme||{}),{activeLanguage:o}=Ht();return tl.createElement(Jw,{language:o},tl.createElement(Of,{id:"swap-container",className:e()},tl.createElement(Lf,null)))}i(fi,"Main");import{setSolanaSignerConfig as Sv}from"@rango-dev/signer-solana";import nl,{useEffect as Hf,useMemo as Cv}from"react";import{useState as Rw}from"react";var ev=i(()=>{let[t,e]=Rw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=gl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Uf=ev;import{checkWaitingForNetworkChange as tv,makeQueueDefinition as ov}from"@rango-dev/queue-manager-rango-preset";import{Provider as nv}from"@rango-dev/queue-manager-react";import{useWallets as rv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as iv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as av}from"rango-types";import sv,{useMemo as lv}from"react";function pv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=rv(),l=lv(()=>ov({API_KEY:t.apiKey||kt("API_KEY"),BASE_URL:kt("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:R.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},d=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),m=i(k=>!!s(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(av),S=i(k=>{let{supportedChains:v}=s(k);return In(v)},"getSupportedChainNames"),C=e(),h={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:iv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},T=ne.use.isActiveTab();return sv.createElement(nv,{queuesDefs:[l],context:h,onPersistedDataLoaded:k=>{tv(k)},isPaused:!T},t.children)}i(pv,"QueueManager");var zf=pv;import{useManager as fv}from"@rango-dev/queue-manager-react";import gv,{createContext as hv,useContext as yv}from"react";import{cancelSwap as cv,getCurrentBlockchainOfOrNull as uv,getCurrentStep as mv,getRelatedWalletOrNull as dv}from"@rango-dev/queue-manager-rango-preset";var gi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return tt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&cv(o)}getCurrentStepInfo(e){let o=mv(e);return{step:o,wallet:o?dv(e,o):null,network:o?uv(e,o):null}}};var qf=hv(void 0);function ol(t){let{manager:e}=fv(),o=ne.use.isActiveTab(),n=j.use.retry(),r=new gi(e,{retrySwap:n}),a=R.use.connectedWallets(),s=R.use.loading(),l=vl(a),p=R.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),d=y().swappers(),m=y().fetchStatus,f=Ht().resetLanguage,g=be().getNotifications(),S={isActiveTab:o,setCurrentTabAsActive:Kt.forceClaim,history:r,wallets:{isLoading:s,details:a,totalBalance:l,refetch:p},meta:{blockchains:u,tokens:c,swappers:d,loadingStatus:m},resetLanguage:f,notifications:{list:g}};return gv.createElement(qf.Provider,{value:S},t.children)}i(ol,"WidgetInfo");function Qf(){let t=yv(qf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Qf,"useWidget");function hi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Uf();return Hf(()=>{n&&r(n)},[n]),Cv(()=>{Ll({API_KEY:o?.apiKey||Tn,BASE_URL:o?.apiUrl||rl})},[o.apiKey,o.apiUrl]),Hf(()=>{t.config?.signers?.customSolanaRPC&&Sv("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),nl.createElement(Dn,{config:o,onUpdateState:e},nl.createElement(zf,{apiKey:o.apiKey},nl.createElement(ol,null,t.children)))}i(hi,"WidgetProvider");function Gf(t){let e=t.config?.externalWallets;return yi.createElement(op,null,e?yi.createElement(fi,null):yi.createElement(hi,{config:t.config??Ni},yi.createElement(fi,null)))}i(Gf,"Widget");export{OV as EventSeverity,UV as MainEvents,YV as Networks,RV as PendingSwapNetworkStatus,zV as RouteEventType,Si as SUPPORTED_FONTS,qV as StepEventType,QV as StepExecutionBlockedEventStatus,HV as StepExecutionEventStatus,ye as UI_ID,jV as WalletEvents,ZV as WalletTypes,Gf as Widget,hi as WidgetProvider,Dn as WidgetWallets,ea as customizedThemeTokens,XV as readAccountAddress,Sr as useWallets,Qf as useWidget,GV as useWidgetEvents};
|
|
1
|
+
var Jf=Object.defineProperty;var i=(t,e)=>Jf(t,"name",{value:e,configurable:!0});import{EventSeverity as jV,MainEvents as KV,RouteEventType as YV,StepEventType as ZV,StepExecutionBlockedEventStatus as JV,StepExecutionEventStatus as RV,useEvents as e2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as o2,useWallets as wr,Events as n2}from"@rango-dev/wallets-react";import{Networks as i2,WalletTypes as a2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as l2}from"rango-types";import{UI_ID as Rf}from"@rango-dev/ui";var vn="c6381a79-2817-4602-83bf-6a641a409e32",ll="https://api.rango.exchange",pl="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Rf};var cl="Roboto",wi=[{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 Fi,Provider as Gg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Vg}from"rango-sdk";import On,{createContext as Xg,useEffect as np,useMemo as jg,useRef as rp}from"react";import{useEffect as Sg}from"react";import{create as gg}from"zustand";import{subscribeWithSelector as hg}from"zustand/middleware";import{RangoClient as dg}from"rango-sdk";import{BlockchainCategories as ig,WalletState as yt}from"@rango-dev/ui";import{readAccountAddress as ag}from"@rango-dev/wallets-react";import{detectInstallLink as sg,getCosmosExperimentalChainInfo as lg,isEvmAddress as pg,KEPLR_COMPATIBLE_WALLETS as Rv,Networks as wl}from"@rango-dev/wallets-shared";import Ei from"bignumber.js";import{isCosmosBlockchain as cg}from"rango-types";import eg from"bignumber.js";var Be=new eg(0);import{WalletTypes as tg}from"@rango-dev/wallets-shared";var ul=[tg.LEAP];import{BlockchainCategories as vi}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function Ii(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ii,"areEqual");function yl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(yl,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function fl(t,e){return t.toLowerCase()===e.toLowerCase()}i(fl,"exactText");function gl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(gl,"startWithText");var _=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Do=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function hl(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:0}i(hl,"compareExactMatchText");function xi(t,e,o){let n=!!e&&bt(e,t),r=!!o&&bt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareContainsText");function bi(t,e,o){let n=!!e&&gl(e,t),r=!!o&&gl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareStartWithText");function Sl(t,e,o){if(!o)return 0;let n=hl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=hl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r!==0)return r}return 0}i(Sl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Cl=i(t=>wi.find(o=>o.value===t)?.url,"getFontUrlByName");import{BigNumber as kl}from"bignumber.js";var Fo=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 kl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new kl(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 In=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var ht=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Oo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Ai(t){switch(!0){case t.connected:return yt.CONNECTED;case t.connecting:return yt.CONNECTING;case!t.installed:return yt.NOT_INSTALLED;default:return yt.DISCONNECTED}}i(Ai,"mapStatusToWalletState");function vl(t,e,o,n){return o.filter(r=>!ul.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=ho(d.map(g=>g.type)),f=Ai(t(r));return{title:a,image:s,link:sg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m}})}i(vl,"mapWalletTypesToWalletInfo");function Nn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Nn,"walletAndSupportedChainsNames");function xl(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}=ag(p),d=l.length>0,m=l.includes(c),f=c===wl.Unknown;if(d&&!m&&!f)return;let S=c===wl.Unknown&&pg(u);if(f&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(xl,"prepareAccountsForWalletStore");function Rt(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(Rt,"getQuoteWallets");function Wn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Wn,"isAccountAndWalletMatched");function bl(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 Ei(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:mg(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(bl,"makeBalanceFor");function Il(t){return{...t,loading:!1,error:!0}}i(Il,"resetConnectedWalletState");var El=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 Ei(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return ug(r)},"calculateWalletUsdValue");function ug(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ug,"numberWithThousandSeparator");var mg=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice"),Ln=i((t,e)=>{let o=lg(Object.entries(t).map(([,n])=>n).filter(cg));return o&&o[e]?.experimental},"isExperimentalChain");function Mn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Mn,"formatBalance");function Al(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(Al,"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 Nl(t){return t.sort((e,o)=>+(o.state===yt.CONNECTED)-+(e.state===yt.CONNECTED)||+(o.state===yt.DISCONNECTED||o.state===yt.CONNECTING)-+(e.state===yt.DISCONNECTED||e.state===yt.CONNECTING))}i(Nl,"sortWalletsBasedOnConnectionState");function Bn(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(Bn,"getConciseAddress");function Wl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Wl,"getAddress");function Ni(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ni,"createTokenHash");function _n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ei(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Ni({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(_n,"makeTokensBalance");var Ll=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ml(t){return t.map(e=>e.state).join("-")}i(Ml,"hashWalletsState");function Bl(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(Bl,"filterBlockchainsByWalletTypes");function _l(t,e){return e===ig.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(_l,"filterWalletsByCategory");var Wi={API_KEY:vn};function It(t){return Wi[t]||""}i(It,"getConfig");function Pl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Wi=e,Wi}i(Pl,"initConfig");var $l=20,Dl=25,Li="theme-widget",Uo=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"),Mi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Fl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Pn,Ft=i(()=>Pn||(Pn=new dg(It("API_KEY"),It("BASE_URL")),Pn),"httpService");var fg=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"),Ot=fg;var ee=Ot(gg()(hg((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.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);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:_n(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 Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(m=>{let f=o.find(S=>Wn(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:bl(g,n),loading:!1}:m});return{loading:!1,balances:_n(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))?Il(c):c);return{loading:!1,balances:_n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ni(o);return n[r]??null}}))));import{allProviders as yg}from"@rango-dev/provider-all";function $n(t,e){let o=yg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i($n,"matchAndGenerateProviders");function Ol(t,e){return $n(t,e).map(r=>r.config.type)}i(Ol,"configWalletsToWalletName");function Ul(t,e){let o=ee.use.clearConnectedWallet(),n=$n(t,e);return Sg(()=>{o(),n=$n(t,e)},[t?.length]),{providers:n}}i(Ul,"useWalletProviders");import Fg,{createContext as Og,useContext as Ug,useEffect as zg,useRef as qg}from"react";import{create as $g}from"zustand";import{persist as Dg}from"zustand/middleware";var Bi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},Cg={clientUrl:void 0},Tg={liquiditySources:void 0},zl=i((t,e,o)=>({config:{...Bi,...t},iframe:Cg,campaignMode:Tg,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 Dn(t,e){return e.find(o=>o.name===t)?.displayName}i(Dn,"getBlockchainDisplayNameFor");function je(t,e){return e.find(o=>o.name===t)?.shortName}i(je,"getBlockchainShortNameFor");function zo(t,e){return e.find(o=>o.id===t)?.title}i(zo,"getSwapperDisplayName");function _i(t,e){return e.find(o=>_e(o,t))??null}i(_i,"findToken");function Pi(t,e){return e.find(o=>o.name===t)??null}i(Pi,"findBlockchain");function $i(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i($i,"isTokenNative");function Fn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ho(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(Fn,"getUniqueSwappersGroups");function ql(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(ql,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Ql(t,e){return e?.[t]==="enabled"}i(Ql,"isFeatureEnabled");var Hl=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&&Uo(u,s)||o.blockchain&&u.blockchain!==o.blockchain||!l.some(c=>c.name===u.blockchain)?!1:o.searchFor?!!(bt(u.symbol,o.searchFor)||bt(u.address||"",o.searchFor)||bt(u.name||"",o.searchFor)):!0).sort((u,c)=>{let d=e().isTokenPinned(u,o.type),m=e().isTokenPinned(c,o.type);if(d!==m)return d?-1:1;if(o.getBalanceFor){let h=o.getBalanceFor(u),C=o.getBalanceFor(c),k=Al(h,C);if(k!==0)return k}let f=r.get(u.blockchain),g=r.get(c.blockchain),S=$i(u,f),T=$i(c,g);if(S!==T)return S?-1:1;if(u.isPopular!==c.isPopular)return u.isPopular?-1:1;if(o.searchFor){let h=Sl(u,c,o.searchFor);if(h)return h}return u.isSecondaryCoin!==c.isSecondaryCoin?u.isSecondaryCoin?1:-1:f&&g?f.sort-g.sort:0})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>_e(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(ql)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().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 kg,English as wg,Finland as vg,French as xg,German as bg,Greece as Ig,Italian as Eg,Japanese as Ag,Netherlands as Ng,Poland as Wg,Portuguese as Lg,Russian as Mg,Spanish as Bg,Swedish as _g,Ukrainian as Pg}from"@rango-dev/ui";var Gl=[{title:"English",label:"English",local:"en",SVGFlag:wg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Bg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:xg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Ag},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Lg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:kg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Mg},{title:"German",label:"Deutsch",local:"de",SVGFlag:bg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Pg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:_g},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:vg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ng},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Ig},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Eg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Wg}],qo="en";var Vl=[.5,1,3],Xl=1,jl=5,Kl=100,Yl=0;var Zl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Xl,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=ho(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=Ke("theme",n),s=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||qo},...l&&{disabledLiquiditySources:o.liquiditySources||[]}})}}),"createSettingsSlice");function Jl(t){return $g()(Dg((...e)=>({...Hl(...e),...Zl(...e),...zl(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(Jl,"createAppStore");var Rl=Og(null);function y(){let t=Ug(Rl);if(zg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function ep(t){let e=qg();return e.current||(e.current=Jl(t.config)),Fg.createElement(Rl.Provider,{value:e.current},t.children)}i(ep,"AppStoreProvider");import{create as Hg}from"zustand";var tp="rango-widget";var Qo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(tp),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 ie=Ot(Hg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Qo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Un=Xg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Kg(t){let{updateConfig:e,updateSettings:o,fetch:n}=y(),r=y().blockchains(),a=y().tokens(),s=y().config,l={walletConnectProjectId:t.config?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ul(s.wallets,l),{connectWallet:u,disconnectWallet:c}=ee(),d=rp(),m=rp();np(()=>{n().catch(console.log)},[]),np(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let f=r.filter(Vg).map(h=>h.name),g=i((h,C,k,v,E)=>{if(C===Fi.ACCOUNTS)if(k){let b=Nn(E.supportedBlockchains),x=xl(h,k,f,b,E.isContractWallet);x.length&&u(x,a)}else c(h),m.current?m.current(h):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(C===Fi.ACCOUNTS&&v.connected){let b=`${h}-${v.network}-${k}`;v.connected&&(d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(C===Fi.NETWORK&&v.network){let b=`${h}-${v.network}`;d.current?d.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,C,k,v,E)},"onUpdateState"),S=ie.use.isActiveTab(),T=jg(()=>({onConnectWallet:h=>{d.current=h},onDisconnectWallet:h=>{m.current=h}}),[]);return On.createElement(Un.Provider,{value:T},On.createElement(Gg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Kg,"Main");function zn(t){let{config:e,...o}=t;return On.createElement(ep,{config:e},On.createElement(Kg,{...o,config:e}))}i(zn,"WidgetWallets");import ki from"react";import Yg,{Fragment as Zg}from"react";import{MemoryRouter as Jg,useInRouterContext as Rg}from"react-router";function ip({children:t}){let o=Rg()?Zg:Jg;return Yg.createElement(o,null,t)}i(ip,"AppRouter");import{I18nManager as sv}from"@rango-dev/ui";import il from"react";import qe from"react";import{useRoutes as Gw}from"react-router-dom";var z={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 Zn}from"react";import At from"bignumber.js";import{create as nh}from"zustand";import{subscribeWithSelector as rh}from"zustand/middleware";import{getLastSuccessfulStep as oh}from"@rango-dev/queue-manager-rango-preset";import bI from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Oi={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Ui=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ap=30;import{i18n as at}from"@lingui/core";import{RouteEventType as pI}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Hn}from"rango-types";function qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(qn,"isValidAddress");import{i18n as Le}from"@lingui/core";var te=i(()=>({genericServerError:Le.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Le.t("Please reset your liquidity sources."),description:Le.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Le.t("No Routes Found."),description:Le.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:Le.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Le.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Le.t("High Price Impact"),title:Le.t("Price impact is too high!"),description:Le.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Le.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Le.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Le.t("USD Price Unknown"),title:Le.t("USD Price Unknown, Cannot calculate Price Impact."),description:Le.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Le.t("Confirm USD Price Unknown")}}),"errorMessages");function sp(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(sp,"getQuoteErrorMessage");import{i18n as Qn}from"@lingui/core";var to=i(()=>({connectWallet:Qn.t("Connect Wallet"),swap:Qn.t("Swap"),swapAnyway:Qn.t("Swap anyway"),ethWarning:Qn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function lp(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(lp,"hasHighValueLoss");function pp(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(pp,"hasLimitError");function cp(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=at.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=at.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=at.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=at.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(cp,"getLimitErrorMessage");function up(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(up,"getSwapButtonState");function zi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(zi,"canComputePriceImpact");var eh=i((t,e,o,n)=>n?.find(a=>a.blockchain===t&&a.symbol?.toUpperCase()===e?.toUpperCase()&&a.address===o)?.usdPrice||null,"getUsdPrice");function qi(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=eh(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(qi,"getUsdFeeOfStep");function Gn(t,e){return t.reduce((o,n)=>o.plus(qi(n,e)),Be)}i(Gn,"getTotalFeeInUsd");function Qi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(Qi,"getUsdFee");function mp(t){return t.reduce((e,o)=>e.plus(Qi(o)),Be)}i(mp,"getTotalFeesInUsd");function dp(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(dp,"getFeesGroup");function fp(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(fp,"checkSlippageErrors");function gp(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(gp,"checkSlippageWarnings");function Vn(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(Vn,"getMinRequiredSlippage");function hp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(hp,"hasProperSlippage");function yp(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((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent: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:T,selectedWallets:S??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(yp,"createQuoteRequestBody");function Sp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Sp,"getWalletsForNewSwap");function yo(t){return t?.outputAmount||null}i(yo,"getQuoteOutputAmount");function Cp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Cp,"getPercentageChange");function Tp(t,e){let o=yo(t),n=yo(e);if(!o||!n)return!1;let r=Ye(o,n);return r?r<=-1:!0}i(Tp,"isOutputAmountChangedALot");function kp(t,e,o){let n=t.validationStatus,r=Rt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ep(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=at.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=at.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=at.t(" for input and network fee")),at.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:je(s.asset.blockchain,o)}})})}i(kp,"generateBalanceWarnings");function Xn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Xn,"calcOutputUsdValue");function Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Hn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function wp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Hn.WaitingForConnectingWallet:n=n||at.t("Waiting for connecting wallet");break;case Hn.WaitingForQueue:n=n||at.t("Waiting for other running tasks to be finished");break;case Hn.WaitingForNetworkChange:n=n||at.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(wp,"getSwapMessages");function vp(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(vp,"getLastConvertedTokenInFailedSwap");function xp(t){return t.status==="failed"}i(xp,"shouldRetrySwap");function bp(t,e,o,n,r,a){if(!n||t)return!0;let s=Rt({filter:"all",quote:n}),l=Rt({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?qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(bp,"isConfirmSwapDisabled");function Ip(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ip,"isTokensIdentical");function Kn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Kn,"getQuoteToTokenUsdPrice");function Hi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Hi,"isNumberOfSwapsChanged");function Gi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ii(o,n)}i(Gi,"isQuoteSwappersUpdated");function Vi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ii(o,n)}i(Vi,"isQuoteInternalCoinsUpdated");function Np(t,e){return Hi(t,e)||Gi(t,e)||Vi(t,e)}i(Np,"isQuoteChanged");function Ep(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(Ep,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function Wp(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=oh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Pi(a?a.toBlockchain:n.fromBlockchain,e),p=Pi(r.toBlockchain,e),u=_i(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=_i(s,o),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:d}}i(Wp,"createRetryQuote");function So(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=Ye(s.toString(),l.toString());if(!!c&&lp(s,c)){let m=Gn(t?.swaps,r),f=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:m,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Vn(t.swaps),u=a>jl;if(hp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:gp(t,a),minRequiredSlippage:p};return null}i(So,"generateQuoteWarnings");function Ye(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Cp(t.toString(),e.toString());return n&&n<0?n:null}i(Ye,"getPriceImpact");var Lp=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"),Yn=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"),Mp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Bp=i(t=>{let e=i((o,n)=>{let r=Ui.indexOf(o.value),a=Ui.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new At(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(nh()(rh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new At(0),outputUsdValue:new At(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 Oo(o.inputAmount)?(e&&(n=e?.outputAmount?new At(e?.outputAmount):null,r=Xn(e?.outputAmount,Kn(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 At(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:oo(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 At(0),outputUsdValue:new At(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:a,fromToken:s,toBlockchain:l,toToken:p,inputAmount:u}=Wp(e,r,n);t({fromBlockchain:a,fromToken:s,inputAmount:u,outputAmount:null,inputUsdValue:oo(s??null,u),outputUsdValue:new At(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?oo(e.toToken,e.outputAmount?.toString()||""):new At(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 _p(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=y().config,d=y().fetchStatus,m=y().blockchains(),f=y().tokens(),{setAffiliateRef:g,setAffiliatePercent:S,setAffiliateWallets:T}=y(),h=c?.from?.tokens,C=c?.from?.blockchains,k=c?.to?.tokens,v=c?.to?.blockchains,E=Zn(void 0),b=Zn(void 0),x=Zn(void 0),w=Zn(void 0);Co(()=>{t(c?.amount?.toString()||"")},[c?.amount]),Co(()=>{if(d==="success"){r();let I=m.find(B=>B.name===c?.from?.blockchain),A=f.find(B=>_e(B,c?.from?.token||null));(I||!I&&x.current)&&n(I??null),A?a({token:A,meta:{blockchains:m,tokens:f}}):!A&&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]),Co(()=>{Uo(s,h)&&a({token:null}),Mi(p,C)&&n(null)},[h,C]),Co(()=>{Uo(l,k)&&a({token:null}),Mi(u,v)&&o(null)},[k,v]),Co(()=>{if(d==="success"){r();let I=m.find(B=>B.name===c?.to?.blockchain),A=f.find(B=>_e(B,c?.to?.token||null));(I||!I&&w.current)&&o(I??null),A?e({token:A,meta:{blockchains:m,tokens:f}}):!A&&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(()=>{g(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),T(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(_p,"useSyncStoresWithConfig");import{useEffect as Ki,useRef as ih}from"react";import{useInRouterContext as ah,useLocation as sh,useSearchParams as lh}from"react-router-dom";function Xi(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(Xi,"searchParamToToken");function ji(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(ji,"tokenToSearchParam");function Yi(){let t=sh(),[e,o]=lh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:d,setInputAmount:m}=j(),f=y().fetchStatus,g=y().blockchains(),S=y().tokens(),T=ah(),{updateIframe:h,updateCampaignMode:C}=y(),k=y().isInCampaignMode(),v=ih(),E=i(()=>{let x={};for(let[ae,Q]of e.entries())ae.startsWith("utm_")&&(x[ae]=Q);let w=e.get("fromAmount"),I=e.get("fromBlockchain"),A=e.get("fromToken"),B=e.get("toBlockchain"),J=e.get("toToken"),M=e.get("autoConnect"),H=e.get("clientUrl"),K=e.get("liquiditySources");return{fromAmount:w,fromBlockchain:I,fromToken:A,toBlockchain:B,toToken:J,autoConnect:M,clientUrl:H,liquiditySources:K,utmQueryParams:x}},"getUrlSearchParams"),b=i(x=>{for(let w in x)x[w]||delete x[w];o(x,{replace:!0})},"updateUrlSearchParams");Ki(()=>{let{autoConnect:x,clientUrl:w,utmQueryParams:I}=E();T&&f==="success"&&b({fromBlockchain:n?.name,fromToken:ji(a),toBlockchain:r?.name,toToken:ji(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]),Ki(()=>{if(!T)return;let x=E();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&m(x.fromAmount),f==="success"){let w=g.find(J=>J.name===x.fromBlockchain),I=Xi(S,x.fromToken,w??null),A=g.find(J=>J.name===x.toBlockchain),B=Xi(S,x.toToken,A??null);w&&(p(w),I&&c({token:I,meta:{blockchains:g,tokens:S}})),A&&(u(A),B&&d({token:B,meta:{blockchains:g,tokens:S}}))}},[f]),Ki(()=>{let{clientUrl:x,liquiditySources:w}=E();h("clientUrl",x||void 0),C("liquiditySources",w?.split(",")??void 0)},[])}i(Yi,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as xC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as bC,css as Ja,Divider as Za,IconButton as km,styled as IC,Typography as EC,WalletIcon as AC}from"@rango-dev/ui";import xe,{useEffect as Hr,useLayoutEffect as NC,useRef as WC,useState as sn}from"react";import{useNavigate as LC}from"react-router-dom";import{i18n as Ct}from"@lingui/core";import{Alert as Na,BalanceErrors as pS,Button as Jc,ChevronDownIcon as cS,ChevronLeftIcon as uS,CloseIcon as mS,Divider as Ko,IconButton as Rc,MessageBox as dS,PasteIcon as fS,Typography as vr,WalletIcon as gS}from"@rango-dev/ui";import $,{useCallback as hS,useEffect as eu,useRef as yS,useState as lo}from"react";import{useNavigate as SS}from"react-router-dom";import{i18n as Jn}from"@lingui/core";function Rn(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(Rn,"getQuoteUpdateWarningMessage");import{Modal as ch}from"@rango-dev/ui";import uh from"react";function ne(t){let{watermark:e}=ie();return uh.createElement(ch,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import nr,{useRef as fh}from"react";import*as To from"@radix-ui/react-collapsible";import{keyframes as $p,styled as er}from"@rango-dev/ui";var Zi=300,mh=$p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),dh=$p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Dp=er(To.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ji=er(To.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),tr=er(To.Content,{overflow:"hidden",variants:{open:{true:{animation:`${mh} ${Zi}ms ease-out`},false:{animation:`${dh} ${Zi}ms ease-out`}}}}),or=er("div",{transition:`all ${Zi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function rr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=fh(null);return nr.createElement(Dp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&nr.createElement(Ji,{className:"collapsible_trigger",onClick:a},s),nr.createElement(tr,{className:"collapsible_content",open:e},r),l==="bottom"&&nr.createElement(Ji,{className:"collapsible_trigger",onClick:a},s))}i(rr,"CustomCollapsible");import{css as Fp,darkTheme as Vo,IconButton as gh,styled as Ze,TextField as hh}from"@rango-dev/ui";var Op=Ze("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Up=Ze("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),yh=Ze("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),zp=Ze(yh,{alignSelf:"stretch",minHeight:"93px"}),qp=Ze("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Qp=Ze(gh,{position:"absolute",left:"$20"}),Hp=Ze("div",{paddingTop:"$20"}),Gp=Fp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Vp=Ze("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Xp=Fp({paddingTop:"$5"}),jp=Ze("div",{display:"flex"}),Kp=Ze(hh,{backgroundColor:"$neutral100",padding:"$15"}),Yp=Ze("div",{overflow:"visible",width:"100%"}),Zp=Ze("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as lt}from"@lingui/core";import{Button as iS,Divider as Ea,Image as aS,MessageBox as kr,SelectableWallet as sS,Typography as Kc,WalletState as Yc}from"@rango-dev/ui";import ue,{useEffect as Zc,useState as Eo}from"react";import{WalletState as ir}from"@rango-dev/ui";import{useWallets as Sh}from"@rango-dev/wallets-react";import{detectMobileScreens as Ch,KEPLR_COMPATIBLE_WALLETS as Th,WalletTypes as ko}from"@rango-dev/wallets-shared";import{useCallback as kh,useEffect as wh,useState as vh}from"react";var xh=Object.values(ko);function wo(t){let{chain:e,onBeforeConnect:o,onConnect:n}=t,{config:r}=y(),{state:a,disconnect:s,getWalletInfo:l,connect:p}=Sh(),{connectedWallets:u}=ee(),c=y().blockchains(),d=Ol(r?.wallets,{walletConnectProjectId:r?.walletConnectProjectId,walletConnectListedDesktopWalletLink:r.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||xh,m=vl(a,l,d,e);m=Ch()?m.filter(b=>b.showOnMobile!==!1&&a(b.type).installed):m;let f=Nl(m),[g,S]=vh(""),T=i(b=>!u.find(x=>x.walletType===b&&x.chain===e),"isExperimentalChainNotAdded"),h=i(async(b,x)=>{let w=a(b);try{if(g&&S(""),w.connected)await s(b);else{let I=!!m.find(A=>A.state===ir.CONNECTED);if(r?.multiWallets===!1&&I)return;o?.(b),await p(b,void 0,x),n?.(b)}}catch(I){S("Error: "+I?.message)}},"handleClick"),C=kh(()=>{let b=m?.filter(x=>x.state===ir.CONNECTING)||[];for(let x of b)s(x.type)},[Ml(m)]),k=i(async b=>{a(b).connected&&await s(b)},"disconnectWallet");wh(()=>()=>{C()},[]);let v=i(b=>{let x=b.find(I=>I.type===ko.DEFAULT);return!x||x.state===ir.NOT_INSTALLED?!1:b.filter(I=>I.state!=ir.NOT_INSTALLED&&![ko.DEFAULT,ko.WALLET_CONNECT_2,ko.LEDGER].includes(I.type)&&l(I.type).supportedChains.filter(A=>A.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),E=i((b,x,w)=>Ln(w,x)&&T(b)&&!Th.includes(b)||b==ko.DEFAULT&&!v(m),"shouldExcludeWallet");return{list:f.filter(b=>!E(b.type,e??"",c)),error:g,handleClick:h,disconnectConnectingWallets:C,disconnectWallet:k}}i(wo,"useWalletList");import{i18n as qc}from"@lingui/core";import{Divider as Yy,getCategoriesCount as Zy,SelectableCategoryList as Jy,styled as Hc,Typography as Ry,Wallet as eS,WalletState as Qc}from"@rango-dev/ui";import st,{useState as Cr}from"react";import{useManager as Ay}from"@rango-dev/queue-manager-react";import{BottomLogo as Ny,Divider as Pc,Header as Wy}from"@rango-dev/ui";import Se,{useEffect as ka,useRef as $c,useState as Ly}from"react";import{useRef as bh}from"react";function ar(){return window.self!==window.top}i(ar,"isAppLoadedIntoIframe");function Ri(){let t=bh(null),{iframe:e}=y(),o=ar()&&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(Ri,"useIframe");import{useNavigate as Ih}from"react-router-dom";function Je(){let t=Ih();return()=>t(-1)}i(Je,"useNavigateBack");import{createTheme as ia,darkTheme as Mh,lightTheme as Bh}from"@rango-dev/ui";import{useEffect as _h,useState as Ph}from"react";import{theme as Wh,darkColors as Lh}from"@rango-dev/ui";import na from"react";function Eh(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}`]:sr(t,g)};Object.assign(d,S)}return{...d,[e]:t}}i(Eh,"generateShades");function sr(t,e){let[o,n,r]=Jp(t);return`#${ea(o+e)}${ea(n+e)}${ea(r+e)}`}i(sr,"generateShade");function Jp(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(Jp,"convertToRGB");function ea(t){return("0"+Math.max(0,Math.min(255,t)).toString(16)).slice(-2).toUpperCase()}i(ea,"clamp");function Rp(t){let[s,l,p]=Jp(t);return(s*299+l*587+p*114)/1e3>188}i(Rp,"isBright");var ta=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,...Eh(s,a,a==="neutral"&&e)})}return n?r:{}},"generateColors");var ec=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ah=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=ec(o%52)+e;return ec(o%52)+e},"toAlphabeticName"),Nh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>Ah(Nh(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Wh.colors,o=ta({...e,...Lh},!0,t?.dark),n=ta(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:`${Li}-light-${oa(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Li}-dark-${oa(p)}`,tokens:p}}return{light:s,dark:l}}i(ra,"customizedThemeTokens");function tc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>na.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(na.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(na.cloneElement(e,{key:l}))}}),o}i(tc,"joinList");function lr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=Ph("light"),{theme:l}=y(),{dark:p,light:u}=ra(e),c=ia({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[c.className,Bh.className],m=[c.className,Mh.className];if(u){let g=ia(u.id,u.tokens);d.push(g.className)}if(p){let g=ia(p.id,p.tokens);m.push(g.className)}return _h(()=>{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(lr,"useTheme");var Re=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 oc}from"@lingui/core";import{Alert as $h,Button as Dh}from"@rango-dev/ui";import nc from"react";function aa(t){return nc.createElement($h,{action:nc.createElement(Dh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},oc.t("Activate this tab")),type:"warning",variant:"alarm",title:oc.t("Another tab is open and handles transactions.")})}i(aa,"ActivateTabAlert");import{i18n as sa}from"@lingui/core";import{Button as Fh,Divider as Oh,MessageBox as Uh}from"@rango-dev/ui";import pr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:_()},pr.createElement(Uh,{title:sa.t("Activate current tab"),type:"warning",description:sa.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.")},pr.createElement(Oh,{size:20}),pr.createElement(Fh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Qh}from"@rango-dev/ui";import cc from"react";import{css as zh,darkTheme as rc,IconButton as qh,styled as no}from"@rango-dev/ui";var St=no(qh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${rc} &`]:{backgroundColor:"$neutral"}}}),ic=no("div",{position:"absolute",background:"$secondary500",[`.${rc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),vo=no("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),ac=no("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"}}}}),sc=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),lc=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),pc=zh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=no("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return cc.createElement(St,{variant:"ghost",size:"small",onClick:t.onClick},cc.createElement(Qh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as Hh}from"@lingui/core";import{Button as Gh,Typography as Vh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(vo,null,ca.createElement(Gh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(Vh,{variant:"label",size:"medium",color:"error500"},Hh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Xh}from"@lingui/core";import{Image as jh,Tooltip as Kh,WalletIcon as Yh}from"@rango-dev/ui";import ro from"react";function ma(t){let{list:e}=wo({}),o=e.filter(r=>r.state==="connected"),n=o.length?ro.createElement("div",{className:pc()},o.map(r=>ro.createElement(cr,{key:r.title},ro.createElement(jh,{src:r.image,size:14})))):Xh.t("Connect Wallet");return ro.createElement(Kh,{container:t.container,side:"bottom",content:n},ro.createElement(St,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(ic,null),ro.createElement(Yh,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as Cy,Popover as Ty,SettingsIcon as ky,Tooltip as fr,TransactionIcon as wy}from"@rango-dev/ui";import Ae from"react";import{i18n as da}from"@lingui/core";import{EventSeverity as Tc}from"@rango-dev/queue-manager-rango-preset";import{ChainToken as kc,ChevronRightIcon as sy,Divider as wc,Typography as fa}from"@rango-dev/ui";import de from"react";import{useNavigate as ly}from"react-router-dom";import{create as Zh}from"zustand";import{persist as Jh,subscribeWithSelector as Rh}from"zustand/middleware";var Ee=Ot(Zh()(Jh(Rh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n:[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));import{Button as ey,darkTheme as ty,ListItemButton as oy,styled as zt}from"@rango-dev/ui";var uc=zt("div",{padding:"$10",width:"350px",maxWidth:"90vw",minHeight:"150px"}),mc=zt("div",{padding:"0 $10",display:"flex",justifyContent:"space-between",alignItems:"center"}),dc=zt(ey,{padding:"$5 !important"}),fc=zt("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),gc=zt(oy,{variants:{actionRequired:{true:{backgroundColor:"$error300",[`.${ty} &`]:{backgroundColor:"$error600"}}}}}),hc=zt("div",{display:"flex",padding:"0 0 0 $5",alignItems:"center",alignSelf:"stretch"}),yc=zt("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"}),Sc=zt("span",{paddingRight:"$8"});import{i18n as ny}from"@lingui/core";import{Divider as ry,NoNotificationIcon as iy,Typography as ay}from"@rango-dev/ui";import ur from"react";function Cc(){return ur.createElement(yc,null,ur.createElement(iy,{color:"secondary",size:26}),ur.createElement(ry,{size:12}),ur.createElement(ay,{variant:"body",size:"medium",color:"neutral700"},ny.t("There are no notifications.")))}i(Cc,"NotificationNotFound");var py=4;function ga(){let t=ly(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=y().blockchains(),a=y().tokens(),s=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,py),l=i(p=>{t(`${z.swaps}/${p}`)},"handleOnClick");return de.createElement(uc,null,s.length>0&&de.createElement(de.Fragment,null,de.createElement(mc,null,de.createElement(fa,{variant:"label",size:"medium"},da.t("Notifications")),de.createElement(dc,{variant:"ghost",size:"xsmall",onClick:o},de.createElement(fa,{variant:"body",size:"xsmall"},da.t("Clear all")))),de.createElement(wc,{direction:"vertical",size:4})),s.length?de.createElement(fc,null,s.map((p,u)=>{let{route:c,requestId:d,event:m}=p,f=a.find(h=>_e(h,c.from)),g=r.find(h=>h.name===c.from.blockchain),S=a.find(h=>_e(h,c.to)),T=r.find(h=>h.name===c.to.blockchain);return de.createElement(de.Fragment,{key:d},u>0&&de.createElement(wc,{size:4}),de.createElement(gc,{onClick:()=>l(d),actionRequired:m.messageSeverity===Tc.WARNING,title:de.createElement(fa,{variant:"body",size:"small",color:m.messageSeverity===Tc.WARNING?"$foreground":"$neutral700"},da.t(m.message)),id:d,start:de.createElement(hc,null,de.createElement("div",{className:"from-chain-token"},de.createElement(kc,{tokenImage:f?f.image:"",chainImage:g?g.logo:"",size:"small"})),de.createElement("div",{className:"to-chain-token"},de.createElement(kc,{tokenImage:S?S.image:"",chainImage:T?T.logo:"",size:"small"}))),end:de.createElement(Sc,null,de.createElement(sy,{size:12,color:"gray"}))}))})):de.createElement(Cc,null))}i(ga,"NotificationContent");import{useManager as cy}from"@rango-dev/queue-manager-react";import{InProgressIcon as uy}from"@rango-dev/ui";import vc from"react";var my=i(()=>{let{manager:t}=cy();return Re(t).map(({swap:o})=>o).find(o=>o.status==="running")?vc.createElement(lc,null,vc.createElement(uy,{color:"info",size:6})):null},"InProgressTransactionBadge"),xc=my;import{EventSeverity as dy}from"@rango-dev/queue-manager-rango-preset";import{Typography as fy}from"@rango-dev/ui";import bc from"react";function Ic(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===dy.WARNING);return o?bc.createElement(ac,{isSever:n},bc.createElement(fy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Ic,"NotificationsBadge");import{RefreshProgressButton as gy}from"@rango-dev/ui";import ha,{useEffect as hy,useState as Ec}from"react";var yy=1e3,Ac=60,Sy=100;function mr({onClick:t}){let[e,o]=Ec(0),[n,r]=Ec(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");hy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ac&&l()},yy):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 ha.createElement(St,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ha.createElement(sc,{onTransitionEnd:()=>r(!1),isRefetched:n},ha.createElement(gy,{size:22,color:t?"black":"gray",progress:e/Ac*Sy})))}i(mr,"RefreshButton");function io(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ke("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(fr,{container:a||_(),side:"top",content:dr.t("Refresh")},Ae.createElement(mr,{onClick:e})),!l&&Ae.createElement(Ty,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:_(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(fr,{container:_(),side:"top",content:dr.t("Notifications")},Ae.createElement(St,{size:"small",variant:"ghost"},Ae.createElement(Cy,{size:18,color:"black"}),Ae.createElement(Ic,null))))),!r.includes("settings")&&Ae.createElement(fr,{container:_(),side:"top",content:dr.t("Settings")},Ae.createElement(St,{size:"small",variant:"ghost",onClick:n},Ae.createElement(ky,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(fr,{container:_(),side:"top",content:dr.t("Transactions History")},Ae.createElement(St,{size:"small",variant:"ghost",onClick:o},Ae.createElement(wy,{size:18,color:"black"}),Ae.createElement(xc,null))))}i(io,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Wc,MessageBox as by,RefreshIcon as Iy}from"@rango-dev/ui";import xo from"react";import{Button as vy,styled as xy}from"@rango-dev/ui";var Nc=xy(vy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Sa(t){let{open:e,onClose:o}=t;return xo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:_()},xo.createElement(by,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},xo.createElement(Wc,{size:30}),xo.createElement(Nc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},xo.createElement(Iy,{size:20,color:"primary"}),xo.createElement(Wc,{size:4,direction:"horizontal"}),ya.t("Refresh"))))}i(Sa,"RefreshModal");function Ca(t){let e=t.target;if(e){let o=e.scrollTop,n=_();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ca,"onScrollContentAttachStatusToContainer");import{css as Ey,styled as Ta}from"@rango-dev/ui";var Lc="700px",gr=Ey({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)"}),Mc=Ta("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Lc},fixed:{height:Lc}}}}),Bc=Ta("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),_c=Ta("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 pe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ri(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=y(),[p,u]=Ly(!1),c=ee.use.connectedWallets(),{config:{features:d,theme:m}}=y(),{watermark:f}=ie(),g=f==="FULL",{activeTheme:S}=lr(m||{}),T=Ke("connectWalletButton",d),{isActiveTab:h,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:E}=ie(),b=Je(),{manager:x}=Ay(),I=Re(x).map(({swap:K})=>K).some(K=>K.status==="running"),A=i(()=>E(eo.forceClaim,I),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),J=typeof r.hasBackButton>"u"||r.hasBackButton,M=$c(null),H=$c(null);return ka(()=>(ar()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(M.current?.addEventListener("scroll",Ca),()=>{M.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Se.createElement(Mc,{height:s,id:ye.SWAP_BOX_ID,className:`${S()} ${gr()}`,ref:H},Se.createElement(Wy,{prefix:Se.createElement(Se.Fragment,null,J&&Se.createElement(pa,{onClick:()=>{b(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!T&&Se.createElement(ma,{container:_(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Se.createElement(ua,{onClick:r.onCancel}))}),Se.createElement(Bc,{ref:M},n),Se.createElement(la,{open:k,onClose:()=>v(!1),onConfirm:A}),Se.createElement(_c,null,Se.createElement("div",{className:"footer__content"},C&&!h&&Se.createElement("div",{className:"footer__alert"},Se.createElement(aa,{onActivateTab:A}),Se.createElement(Pc,{size:10})),a),Se.createElement(Pc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(Ny,null))),Se.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(pe,"Layout");import{styled as My}from"@rango-dev/ui";var Dc="$20 $20 $10 $20",Xo=My("div",{padding:Dc,overflowY:"auto",flexGrow:1});import{styled as By}from"@rango-dev/ui";var me=By("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 Fy}from"@rango-dev/ui";import va from"react";import{i18n as bo}from"@lingui/core";import{Image as $y,MessageBox as wa,WalletState as Dy}from"@rango-dev/ui";import ao from"react";import{keyframes as _y,styled as hr}from"@rango-dev/ui";var aW=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),yr=hr("div",{position:"relative"}),Py=_y({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Sr=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Py} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Fc=hr("div",{"& img":{borderRadius:"50%"}});function Oc(t){let{state:e,image:o,error:n}=t;return e===Dy.CONNECTED?ao.createElement(wa,{type:"success",title:bo.t("Wallet Connected"),description:bo.t("Your wallet is connected, you can use it to swap.")}):n?ao.createElement(wa,{type:"error",title:bo.t("Failed to Connect"),description:n||bo.t("Your wallet is not connected. Please try again.")}):ao.createElement(wa,{type:"loading",title:bo.t("Connecting to your wallet"),description:bo.t("Click connect in your wallet popup."),icon:ao.createElement(yr,null,ao.createElement(Fc,null,ao.createElement($y,{src:o,size:45})),ao.createElement(Sr,null))})}i(Oc,"ModalContent");function jo(t){let{open:e,onClose:o,...n}=t;return va.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},va.createElement(Oc,{...n}),va.createElement(Fy,{direction:"vertical",size:32}))}i(jo,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as Uy,Checkbox as zy,Image as zc,ListItemButton as qy,MessageBox as Qy,Radio as Hy,RadioRoot as Gy}from"@rango-dev/ui";import{Namespace as Io}from"@rango-dev/wallets-shared";import We,{useMemo as Vy,useState as Xy}from"react";import{styled as Oy}from"@rango-dev/ui";var Uc=Oy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var jy={[Io.Evm]:"ETH",[Io.Solana]:"SOLANA",[Io.Cosmos]:"COSMOS",[Io.Utxo]:"BTC",[Io.Starknet]:"STARKNET",[Io.Tron]:"TRON"},Ky=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function so(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Xy([]),a=y().blockchains(),s=Vy(()=>o?.map(u=>({name:u,logo:Ky(a,jy[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?We.createElement(Gy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},We.createElement(Qy,{type:"info",title:xa.t("Select chain types"),description:xa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(yr,null,We.createElement(cr,null,We.createElement(zc,{src:t.image,size:45})),We.createElement(Sr,null))}),We.createElement(Uc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(qy,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(zc,{src:u.logo,size:22}),end:e?We.createElement(Hy,{value:u.name}):We.createElement(zy,{checked:n.includes(u.name)})}))))),We.createElement(Uy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(so,"WalletNamespacesModal");var tS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),oS=Hc(me,{textAlign:"center"}),Tr=3e3,ba=300;function Gc(){let{fetchStatus:t}=y(),[e,o]=Cr("ALL"),n=y().blockchains(),[r,a]=Cr(!1),[s,l]=Cr(null),[p,u]=Cr(""),c=null,d=ie.use.isActiveTab(),{list:m,handleClick:f,error:g,disconnectConnectingWallets:S}=wo({onBeforeConnect:w=>{c=setTimeout(()=>{a(!0),u(w)},ba)},onConnect:()=>{c&&clearTimeout(c),setTimeout(()=>{a(!1)},Tr)}}),T=i(()=>{S(),a(!1)},"handleCloseWalletModal"),h=m.find(w=>w.type===p),C=h?.image||"",k=h?.state||Qc.NOT_INSTALLED,v=Bl(m,n),b=Zy(v)!==1,x=_l(m,e);return st.createElement(pe,{header:{title:qc.t("Connect Wallets")}},st.createElement(oS,null,b&&st.createElement(st.Fragment,null,st.createElement(Jy,{setCategory:o,category:e,blockchains:v,isLoading:t==="loading"}),st.createElement(Yy,{size:24})),st.createElement(Ry,{variant:"title",size:"xmedium",align:"center"},qc.t("Choose a wallet to connect.")),st.createElement(tS,null,x.map((w,I)=>{let A=`wallet-${I}-${w.type}`;return st.createElement(eS,{key:A,...w,container:_(),onClick:B=>{w.namespaces&&w.state===Qc.DISCONNECTED?l({providerType:B,providerImage:w.image,availableNamespaces:w.namespaces,singleNamespace:w.singleNamespace}):f(B)},isLoading:t==="loading",disabled:!d})}),st.createElement(jo,{open:!!r,onClose:T,image:C,state:k,error:g}),st.createElement(so,{open:!!s,onClose:()=>l(null),onConfirm:w=>{f(s?.providerType,w),l(null)},image:s?.providerImage,namespaces:s?.availableNamespaces,singleNamespace:s?.singleNamespace}))))}i(Gc,"WalletsPage");import{keyframes as nS,styled as Ia}from"@rango-dev/ui";var Vc=Ia("div",{position:"relative"}),rS=nS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Xc=Ia("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${rS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),jc=Ia("div",{"& img":{borderRadius:"50%"}});var lS=7;function Aa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=ee.use.connectedWallets(),{blockchains:u}=y(),[c,d]=Eo(""),[m,f]=Eo(null),[g,S]=Eo(!1),[T,h]=Eo(null),[C,k]=Eo(null),{suggestAndConnect:v}=wr(),E=null,{list:b,error:x,handleClick:w,disconnectWallet:I,disconnectConnectingWallets:A}=wo({chain:e,onBeforeConnect:W=>{E=setTimeout(()=>{d(W)},ba)},onConnect:W=>{s?.(W),E&&clearTimeout(E),setTimeout(()=>{d("")},Tr)}}),[B,J]=Eo(b),M=b.length,H=r&&M-r>0,K=i(async W=>{S(!1),h("in-progress");try{await v(W.walletType,W.chain),h("completed")}catch{h("rejected")}},"addExperimentalChain"),ae=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Zc(()=>{J(W=>{let U=b.findIndex(Y=>o(Y.type,e));return H&&U>1?[b[U]].concat(b.filter((Y,re)=>re!==U)):W.map(Y=>b.find(re=>re.type===Y.type)??Y)})},[JSON.stringify(b)]);let Q=document.getElementById(ye.SWAP_BOX_ID);Zc(()=>{let W=null;return(T==="completed"||T==="rejected")&&(W=setTimeout(()=>h(null),Tr)),()=>{W&&clearTimeout(W)}},[T]);let oe=i(()=>{A(),d("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,B.slice(0,r).map(W=>{let U=Wl({connectedWallets:p,walletType:W.type,chain:e}),Y=U?Bn(U,lS):"",re=Ln(u(),e),Te=!p.find(Ue=>Ue.walletType===W.type&&Ue.chain===e),P=re&&Te&&W.state===Yc.CONNECTED,Oe=P?lt.t({id:"Add {chain} chain",values:{chain:e}}):Y,nt=i(async()=>{W.state===Yc.DISCONNECTED?W.namespaces?ae(W):w(W.type):W.namespaces&&!Y?(await I(W.type),ae(W)):P?(f({walletType:W.type,chain:e,address:U??""}),S(!0)):n({walletType:W.type,chain:e,address:U??""})},"onClick"),fe=m?.chain?Dn(m.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${fe}`},ue.createElement(jo,{open:c===W.type,onClose:oe,image:W.image,state:W.state,error:x}),ue.createElement(so,{open:!!C,onClose:()=>k(null),onConfirm:Ue=>{w(C?.providerType,Ue),k(null)},image:C?.providerImage,namespaces:C?.availableNamespaces,singleNamespace:C?.singleNamespace}),!!m&&ue.createElement(ne,{open:!!m&&g,container:Q,onClose:()=>{f(null)}},ue.createElement(kr,{title:lt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),type:"warning",description:lt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}})},ue.createElement(Ea,{size:18}),ue.createElement(Ea,{size:32}),ue.createElement(iS,{onClick:K.bind(null,m),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},lt.t("Confirm")))),T&&ue.createElement(ne,{open:!!T,onClose:h.bind(null,null),container:Q},T==="in-progress"&&ue.createElement(kr,{type:"loading",title:lt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:fe}}),description:lt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:fe}}),icon:ue.createElement(Vc,null,ue.createElement(jc,null,ue.createElement(aS,{src:W.image,size:45})),ue.createElement(Xc,null))}),T==="completed"&&ue.createElement(kr,{type:"success",title:lt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:fe}}),description:lt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:fe}})}),T==="rejected"&&ue.createElement(kr,{type:"error",title:lt.t("Request Rejected"),description:lt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:fe}})}),ue.createElement(Ea,{direction:"vertical",size:32})),ue.createElement(sS,{key:W.type,description:Oe,onClick:nt,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(zp,{selected:!1,onClick:a},ue.createElement(Kc,{variant:"label",size:"medium"},lt.t("Show more wallets"),ue.createElement(Kc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",M-(r??0)))))}i(Aa,"WalletList");var CS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=SS(),l=y().config,p=yS(null),u=y().blockchains(),{selectedQuote:c,setSelectedWallets:d,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:S}=j(),{connectedWallets:T,selectWallets:h}=ee(),[C,k]=lo(""),[v,E]=lo([]),[b,x]=lo(""),[w,I]=lo(null),[A,B]=lo(!!g),J=navigator?.userAgent.includes("Firefox"),M=Rt({filter:"all",quote:c}),H=Rt({filter:"required",quote:c}),K=u.find(L=>L.name===c?.swaps[c?.swaps.length-1].to.blockchain),ae=i(L=>H.includes(L),"isWalletRequiredFor"),Q=hS(()=>T.filter(L=>L.selected&&M.includes(L.chain)),[T.length,M.length]),[oe,W]=lo(Q()),[U,Y]=lo([]),re=i((L,G)=>Y(V=>V.concat({blockchain:L,walletType:G})),"addNextSelectedWallets"),Te=v.length>0,P=i((L,G)=>!!oe.find(V=>V.walletType===L&&V.chain===G&&V.selected&&(ae(G)||!ae(G)&&!g)),"isSelected"),Oe=!!g&&A&&K&&!qn(K,g),nt=i(()=>{B(!1),S(null),W(L=>{let G=!1;return L.map(V=>!G&&V.chain===K?.name?(G=!0,{...V,selected:!0}):V)})},"resetCustomDestination"),fe=i(()=>S(""),"handleClearCustomDestination"),Ue=i(async L=>{if(L.preventDefault(),navigator.clipboard!==void 0){let G=await navigator.clipboard.readText();S(G),p?.current?.focus()}},"handlePasteCustomDestination"),xt=i(L=>{L?ae(K?.name??"")||W(G=>G.map(V=>V.chain===K?.name?{...V,selected:!1}:V)):nt()},"handleCustomDestinationCollapsibleOpenChange"),Xe=i(L=>{if(C&&k(""),P(L.walletType,L.chain))return;let V=T.find(Qe=>Qe.walletType===L.walletType&&Qe.chain===L.chain);V&&(n(),L.chain===K?.name&&A&&!ae(K.name)&&(B(!1),S(null)),W(Qe=>Qe.filter(gt=>gt.chain!==L.chain).concat({...V,selected:!0})))},"onChange"),rt=i(()=>{let L=oe.filter(G=>G.selected);h(L),d(L),f(!0),o()},"onConfirmBalance"),it=i(async()=>{E([]),x(""),I(null);let L=await r?.({selectedWallets:oe.filter(V=>V.selected),customDestination:g}),G=L.warnings;G?.balance?.messages&&E(G.balance.messages),G?.quoteUpdate&&I(G.quoteUpdate),L.error&&x(sp(L.error)),!L.error&&!G?.balance?.messages.length?rt():E(G?.balance?.messages??[])},"onConfirmWallets"),ft=i(()=>g?$.createElement(Rc,{onClick:fe,variant:"ghost"},$.createElement(mS,{size:12,color:"gray"})):J?null:$.createElement(Rc,{onClick:Ue,variant:"ghost"},$.createElement(fS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{W(L=>{let G=[];return L.forEach(V=>{!T.some(gt=>gt.chain===V.chain&>.walletType===V.walletType&>.address===V.address)||G.push(V)}),G=G.concat(T.filter(V=>!!!G.find(gt=>gt.chain===V.chain)&&V.selected&&M.includes(V.chain))),G})},[T.length,M.length]),eu(()=>{let L=[];U.length>0&&(U.forEach(G=>{let V=T.find(Qe=>Qe.chain===G.blockchain&&Qe.walletType===G.walletType);V?Xe(V):L.push(G)}),Y(L))},[T.length,U.length]);let ke=document.getElementById(ye.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{m||s("../",{replace:!0}),o()},dismissible:!C,container:ke,...!C&&{footer:$.createElement(jp,null,$.createElement(Jc,{loading:a,disabled:bp(a,A,g,c,oe,K),onClick:it,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ct.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:$.createElement(qp,null,$.createElement(Qp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(uS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},Ct.t({id:"Your {blockchainName} wallets",values:{blockchainName:je(C,u)}})))},anchor:"center"},$.createElement(ne,{open:Te,onClose:E.bind(null,[]),container:ke},$.createElement(dS,{title:Ct.t("Insufficient account balance"),type:"error",description:$.createElement(pS,{messages:v??[]})},$.createElement(Jc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:rt},Ct.t("Proceed anyway")))),C&&$.createElement(Hp,null,$.createElement("div",{className:Gp()},$.createElement(Aa,{chain:C,isSelected:P,selectWallet:Xe,onShowMore:()=>k(C),onConnect:L=>{re(C,L)}}))),!C&&$.createElement($.Fragment,null,b&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"error",title:Ct.t(b)}),$.createElement(Ko,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"warning",title:Rn(w)}),$.createElement(Ko,{size:12})),$.createElement(Yp,null,M.map((L,G)=>{let V=u.find(Jt=>Jt.name===L),Qe=`wallet-${G}`,gt=G===M.length-1;return $.createElement("div",{key:Qe},$.createElement(Op,null,$.createElement(vr,{variant:"title",size:"xmedium"},Ct.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},Ct.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),$.createElement(Ko,{size:24}),$.createElement(Up,null,$.createElement(Aa,{chain:L,isSelected:P,selectWallet:Xe,limit:CS,onShowMore:()=>k(V?.name??""),onConnect:Jt=>{re(L,Jt)}})),!gt&&$.createElement(Ko,{size:32}),gt&&l?.customDestination&&$.createElement(Vp,null,$.createElement(rr,{onOpenChange:xt,hasSelected:!0,open:A,triggerAnchor:"top",trigger:$.createElement(Zp,null,$.createElement("div",{className:"button__content"},$.createElement(gS,{size:18,color:"info"}),$.createElement(Ko,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:A?"$neutral600":void 0},Ct.t("Send to a different address"))),$.createElement(or,{orientation:A?"up":"down"},$.createElement(cS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Jt=>!Jt)},$.createElement(Kp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:Ct.t("Enter {blockchainName} address",{blockchainName:Dn(L,u)}),value:g||"",suffix:ft(),onChange:Jt=>{let Zf=Jt.target.value;S(Zf)},...!g&&{autoFocus:!0}})),Oe&&$.createElement("div",{className:Xp()},$.createElement(Na,{variant:"alarm",type:"error",title:Ct.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as FS}from"@lingui/core";import{Alert as OS,Button as US,InfoIcon as zS}from"@rango-dev/ui";import Ge from"react";import{Alert as wS,Button as vS,Divider as Ma,NoRouteIcon as xS,RefreshIcon as bS,Typography as lu}from"@rango-dev/ui";import He from"react";import{i18n as ou}from"@lingui/core";var TS=24,kS=60;function nu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:ou.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ou.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(nu,"makeInfo");var Wa=(o=>(o[o.small=TS]="small",o[o.large=kS]="large",o))(Wa||{}),La=(o=>(o.small="small",o.large="medium",o))(La||{});import{styled as xr}from"@rango-dev/ui";var ru=xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),iu=xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),au=xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),su=xr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=nu(o,r,()=>a(s,!0),e);return He.createElement(ru,null,He.createElement(xS,{size:Wa[n],color:"gray"}),He.createElement(Ma,{size:4}),He.createElement(lu,{variant:"title",size:La[n]},te().noResultError.title),n==="large"&&He.createElement(Ma,{size:4}),!!l.description&&He.createElement(iu,{size:n},He.createElement(lu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),He.createElement(Ma,{size:n==="large"?"24":"4"}),!!l.alert&&He.createElement(au,{size:n},He.createElement(wS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&He.createElement(vS,{size:"xsmall",type:l.alert.type,prefix:He.createElement(su,null,He.createElement(bS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as ES,Divider as AS,MessageBox as NS,Typography as WS,WarningIcon as LS}from"@rango-dev/ui";import Nt from"react";import{Typography as mu}from"@rango-dev/ui";import _a from"react";import{darkTheme as IS,styled as br}from"@rango-dev/ui";var pu=br("div",{width:"100%"}),Ba=br("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),cu=br("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${IS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uu=br("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function du(t){let{title:e,value:o,valueColor:n}=t;return _a.createElement(cu,null,_a.createElement(mu,{size:"medium",variant:"label",className:"_title"},e),_a.createElement(mu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(du,"QuoteErrorsModalItem");function fu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(ne,{footer:Nt.createElement(ES,{type:"primary",size:"large",prefix:Nt.createElement(LS,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:_()},Nt.createElement(NS,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),Nt.createElement(Ba,null,Nt.createElement(AS,{size:"4"}),Nt.createElement(WS,{size:"small",variant:"title"},Zo.t("Details")),Nt.createElement(Ba,null,l.map((p,u)=>Nt.createElement(du,{key:u,...p})))))}i(fu,"HighValueLossWarningModal");import{i18n as Pa}from"@lingui/core";function gu(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=Pa.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&&(Et(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=te().highValueLossError.title),t.type===1&&(o.title=te().unknownPriceError.title),t.type===2&&(o.title=Pa.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=Pa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(gu,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as hu,Divider as yu,MessageBox as MS,Typography as BS}from"@rango-dev/ui";import po from"react";import{useNavigate as _S}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=_S(),u=e??o;return po.createElement(ne,{anchor:"bottom",open:n,prefix:po.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},po.createElement(BS,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:_(),onClose:r},po.createElement(MS,{type:"warning",title:s.type===3?Ao.t("High slippage"):Ao.t("Low slippage"),description:s.type===3?Ao.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Ao.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},po.createElement(yu,{size:18}),po.createElement(yu,{size:32}),po.createElement(hu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(Su,"SlippageWarningModal");import{Button as PS,MessageBox as $S,WarningIcon as DS}from"@rango-dev/ui";import Ir from"react";function Cu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ir.createElement(ne,{footer:Ir.createElement(PS,{type:"primary",size:"large",prefix:Ir.createElement(DS,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:_()},Ir.createElement($S,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(Cu,"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=gu(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),Ge.createElement(Ge.Fragment,null,m&&Ge.createElement(Yo,{error:o,fetch:s}),!!f&&Ge.createElement(pu,null,Ge.createElement(OS,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:Ge.createElement(uu,{onClick:l},Ge.createElement(zS,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:Ge.createElement(US,{size:"xxsmall",type:f.alertType,onClick:c},FS.t("Change"))}})),e&&Ge.createElement(Ge.Fragment,null,e.type===0&&Ge.createElement(fu,{...d,warning:e}),(e.type===3||e.type===2)&&Ge.createElement(Su,{...d,warning:e}),e.type===1&&Ge.createElement(Cu,{...d,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import SC from"bignumber.js";import Ur from"react";import{i18n as co}from"@lingui/core";import{Alert as iC,Divider as Wo,FullExpandedQuote as aC,InfoIcon as sC,QuoteTag as lC,StepDetails as pC,TokenAmount as cC,Tooltip as Ju,Typography as Lo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as uC,useState as mC}from"react";import{styled as $a}from"@rango-dev/ui";var Da=$a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Tu=$a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ku=$a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as qS,css as Ro,darkTheme as we,Image as wu,styled as $e,Typography as QS}from"@rango-dev/ui";var HS=300,vu=$e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xu=Ro({padding:"$10 $15"}),bu=$e(qS,{backgroundColor:"transparent",border:"1px solid $secondary600",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary600",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Iu=$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",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),Eu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Au=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),No=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Nu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wu=$e(Er.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:{[`& ${wu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${wu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$info300",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Lu=$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"}}}}),Mu=$e(tr,{width:"100%",background:"inherit"}),Fa=$e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${HS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),cB=$e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Bu=$e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),_u=$e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Oa=$e(QS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Pu=$e("div",{display:"flex",flexWrap:"wrap"}),Ua=$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"}}}}),$u=$e("div",{display:"flex"}),Ar=$e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Vt}from"@lingui/core";import{ChevronDownIcon as VS,CloseIcon as XS,Divider as Lr,IconButton as jS,QuoteCost as KS,Tooltip as YS,Typography as pt}from"@rango-dev/ui";import Z,{useState as Uu}from"react";import{css as GS,styled as Nr}from"@rango-dev/ui";var Wr=Nr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),za=Nr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Du=Nr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Fu=Nr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Ou=GS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var ZS=i(t=>t.fee.isZero()?null:Z.createElement(Wr,null,Z.createElement(pt,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(pt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function zu(t){let[e,o]=Uu(!1),[n,r]=Uu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,d=s?.swaps??[],m=_(),f=dp(d);return Z.createElement(Z.Fragment,null,Z.createElement(KS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Vt.t("View more info"):void 0,tooltipContainer:m}),Z.createElement(ne,{container:m,open:e,header:Z.createElement(Fu,null,Z.createElement(pt,{variant:"title",size:"medium"},Vt.t("Gas & Fee Explanation")),Z.createElement(jS,{onClick:()=>o(!1),variant:"ghost"},Z.createElement(XS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(Du,null,Z.createElement(pt,{variant:"title",size:"small"},Vt.t("Details")),Z.createElement(Lr,{size:10}),Object.entries(f.payable).flatMap(([g,S])=>S.map((T,h)=>{let C=`payable-fee-${h}`,k=Qi(T);return Z.createElement(Wr,{key:C},Z.createElement(pt,{variant:"label",size:"medium",color:"neutral600"},Oi[g]),Z.createElement(YS,{content:ce(T.amount),container:m},Z.createElement(pt,{variant:"label",size:"medium"},N(T.amount,2,2)," ",T.asset.symbol," ($",N(k,4,4),")")))})),Z.createElement(Wr,{className:"total_payable_fee"},Z.createElement(pt,{variant:"label",size:"medium"},Vt.t("Total Payable Fee")),Z.createElement(pt,{variant:"label",size:"medium"},"$",N(l,4,4))),Z.createElement(za,null),Object.keys(f.nonePayable).length&&Z.createElement(rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:Z.createElement("div",{className:Ou()},Z.createElement(pt,{size:"small",variant:"body",color:"neutral700"},n?Vt.t("Hide non-payable fees"):Vt.t("Show non-payable fees")),Z.createElement(Lr,{size:4,direction:"horizontal"}),Z.createElement(or,{orientation:n?"up":"down"},Z.createElement(VS,{size:12,color:"gray"}))),open:n},Z.createElement(pt,{size:"small",variant:"title"},Vt.t("Description")),Z.createElement(Lr,{size:4}),Z.createElement(pt,{size:"small",variant:"body",color:"neutral700"},Vt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),Z.createElement(Lr,{size:10}),Object.entries(f.nonePayable).map(([g,S],T)=>{let h=mp(S),C=Oi[g],k=`non-payable-fee-${T}`;return Z.createElement(ZS,{key:k,fee:h,label:C})}),Z.createElement(za,null)))))}i(zu,"QuoteCostDetails");import{i18n as Hu}from"@lingui/core";import{TokenAmount as Gu}from"@rango-dev/ui";import Mr from"react";import{css as JS,styled as RS}from"@rango-dev/ui";var qu=RS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Qu=JS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Mr.createElement(qu,null,Mr.createElement(Gu,{direction:"horizontal",label:Hu.t("Swap input"),type:"input",tooltipContainer:_(),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}}),Mr.createElement("div",{className:Qu()}),Mr.createElement(Gu,{direction:"horizontal",tooltipContainer:_(),label:Hu.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(en,"QuoteSummary");import{i18n as Yu}from"@lingui/core";import{ChevronDownIcon as oC,ChevronRightIcon as nC,Divider as qa,Image as rC,Tooltip as Dr,Typography as _r}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as eC,useState as tn}from"react";var Vu=480,Xu=768,ju=1024,Ku=1200,tC=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=Vu),n(window.innerWidth>Vu&&window.innerWidth<=Xu),a(window.innerWidth>Xu&&window.innerWidth<=ju),l(window.innerWidth>ju&&window.innerWidth<=Ku),u(window.innerWidth>Ku)},"handleResize");return eC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Br=tC;var Pr=4,$r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||_();return F.createElement(Dr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Lu,{className:n,state:a},F.createElement(rC,{src:o,size:16})))},"ImageComponent");function Zu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||_(),u=r.length,c=Lp(r),{isTablet:d,isMobile:m}=Br();return F.createElement(Wu,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:No()},F.createElement(_r,{variant:"body",size:"xsmall"},Yu.t("Via:")),F.createElement(qa,{direction:"horizontal",size:4}),r.map((f,g)=>{let S=`item-${g}`,T=F.createElement(Fa,null,F.createElement(nC,{size:12,color:"black"}));return m||d?F.createElement(F.Fragment,{key:S},F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,T)):F.createElement(F.Fragment,{key:S},u<=Pr||u>Pr&&g<Pr-1?F.createElement(F.Fragment,null,F.createElement(on,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,T)):g===Pr-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},T,r.map((h,C)=>{let k=`image-${C}`;return C>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:h.swapper.displayName,src:h.swapper.image,state:h.state,open:!1}),C!==u-1&&F.createElement(F.Fragment,null,T))}))},F.createElement(Ua,{state:r.find((h,C)=>C>=g&&(h.state==="error"||h.state==="warning"))?.state},F.createElement(_r,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(_r,{variant:"body",size:"xsmall"},Yu.t("Chains:")),F.createElement(qa,{direction:"horizontal",size:4}),c.map((f,g)=>F.createElement(F.Fragment,{key:f.displayName},c.length<=$r||c.length>$r&&g<$r-1?F.createElement(Dr,{container:p,side:"bottom",content:f.displayName,sideOffset:4},F.createElement(on,{content:"",src:f.image,open:!1,className:g!==0?"blockchainImage":""})):g===$r-1&&F.createElement(Dr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},c.map((S,T)=>T>=g&&F.createElement(on,{key:S.displayName,content:"",src:S.image,open:!1,className:T>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(_r,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(oC,{size:12,color:"black"}))))}i(Zu,"QuoteTrigger");function Ha(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:d=!1,container:m}=t,f=y().blockchains(),g=y().tokens(),S=y().swappers(),{customSlippage:T,slippage:h}=y(),C=T||h,[k,v]=mC(t.expanded),E=uC(null),b=N(o.value,6,6),x=N(n.value,6,6),w=n.usdValue?N(n.usdValue,4,4):"",I=Ye(o.usdValue,n.usdValue??null),A=N(I,2,2),B=Et(I??0),J=i((re,Te)=>re.map((P,Oe)=>{let nt,fe=r?.type===3&&r.swap.swapperId===P.swapperId,Ue=r?.type===4&&r.recommendedSlippages?.has(Oe),xt=a?.type===2&&a.recommendedSlippages?.has(Oe),Xe=fe||Ue,rt=xt;Xe?nt="error":rt&&(nt="warning");let it=Xe?co.t("Slippage Error"):co.t("Slippage Warning");return fe&&(it=co.t("Bridge Limit Error")),{swapper:{displayName:zo(P.swapperId,S),image:P.swapperLogo},from:{token:{displayName:P.from.symbol,image:P.from.logo},chain:{displayName:je(P.from.blockchain,f),image:P.from.blockchainLogo},price:{value:Oe===0&&!Te?N(o.value,6,6):N(P.fromAmount,6,6),usdValue:N((P.from.usdPrice??0)*parseFloat(P.fromAmount),4,4),realValue:ce(Oe===0?o.value:P.fromAmount),realUsdValue:ce(new Qa(P.from.usdPrice??0).multipliedBy(P.fromAmount))}},to:{token:{displayName:P.to.symbol,image:P.to.logo},chain:{displayName:je(P.to.blockchain,f),image:P.to.blockchainLogo},price:{value:N(P.toAmount,6,6),usdValue:N((P.to.usdPrice??0)*parseFloat(P.toAmount),4,4),realValue:ce(P.toAmount),realUsdValue:ce(new Qa(P.to.usdPrice??0).multipliedBy(P.toAmount))}},state:nt,alerts:Xe||rt?D.createElement(Tu,{dense:d},D.createElement(iC,{variant:"alarm",type:Xe?"error":"warning",title:it,footer:D.createElement(ku,null,fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {amount} {symbol}",values:{amount:N(P.fromAmount,6,6),symbol:P?.from.symbol}}))),(Ue||xt)&&!fe&&D.createElement("div",null,D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Oe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Oe)}}})),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Lo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Fo(P.estimatedTimeInSeconds),fee:N(qi(P,g),2,2),internalSwaps:P.internalSwaps?J(P.internalSwaps):void 0}}),"getQuoteSteps"),M=J(e?.swaps??[]),H=M.length,K=m||_(),ae=Bp(t.quote.tags||[]),Q=!!c,oe=Fo(In(e?.swaps)),W=Gn(e?.swaps??[],g),U=N(W,2,2),Y=W.gte(new Qa(ap));return d?D.createElement(aC,{selected:l,fee:U,time:oe,tooltipContainer:Do(),steps:M,tags:ae,feeWarning:Y,percentageChange:A,warningLevel:B,outputPrice:{value:x,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(Iu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:Eu()},!p&&ae.length?D.createElement(D.Fragment,null,D.createElement($u,null,ae.map((re,Te)=>{let P=`${re.value}_${Te}`;return D.createElement(D.Fragment,{key:P},D.createElement(lC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Ar,null),!Q&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:Au()},D.createElement(zu,{quote:e,time:oe,fee:U,feeWarning:Y,showModalFee:u,steps:H}),Q&&D.createElement(bu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Lo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},co.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Nu()},D.createElement(_u,null,D.createElement(sC,{size:12,color:"gray"})),D.createElement(Pu,null,D.createElement(Oa,{size:"small",variant:"body"},`${b} ${M[0].from.token.displayName} = `),D.createElement(Ju,{content:ce(n.value),container:K,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${x} ${M[M.length-1].to.token.displayName}`))),D.createElement(Ju,{content:ce(n.usdValue),container:K},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Lo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&D.createElement(cC,{tooltipContainer:K,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:M[H-1].to.token.displayName,image:M[H-1].to.token.image},chain:{image:M[H-1].to.chain.image},percentageChange:A,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:M[0].from,to:M[H-1].to,percentageChange:A,warningLevel:B}),D.createElement(Wo,{size:4}))),D.createElement(vu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},D.createElement(Zu,{type:s,quoteRef:E,selected:l,setExpanded:v,container:K,expanded:k,steps:M}),D.createElement(Mu,{open:k},D.createElement(Bu,null),D.createElement("div",{className:xu()},M.map((re,Te)=>{let P=`item-${Te}`;return D.createElement(pC,{type:"quote-details",key:P,tooltipContainer:K,step:re,hasSeparator:Te!==M.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as hC,Skeleton as yC}from"@rango-dev/ui";import Lt from"react";import{darkTheme as dC,styled as Fr}from"@rango-dev/ui";var Ru=Fr("div",{$$color:"$colors$neutral100",[`.${dC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),em=Fr("div",{paddingTop:"$2"}),tm=Fr("div",{paddingLeft:"$8"}),om=Fr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as mm,Divider as ct,Skeleton as Ve}from"@rango-dev/ui";import q from"react";import{css as fC,styled as Wt}from"@rango-dev/ui";var Ga=Wt("div",{display:"flex"}),nm=Wt("div",{padding:"$10 $0 $20"}),rm=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),im=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),am=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),sm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),lm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),pm=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),cm=Wt("div",{padding:"$15 $0 $15 $0"}),um=fC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(am,null,q.createElement(lm,null,q.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(ct,{size:8,direction:"horizontal"}),q.createElement(pm,null,q.createElement(Ve,{height:10,width:60,variant:"rounded"}),q.createElement(ct,{size:4}),q.createElement(Ve,{height:15,variant:"rounded"}))),q.createElement(Ve,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Ga,null,q.createElement(Ve,{width:65,height:20,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:65,height:20,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:65,height:20,variant:"rounded"})),q.createElement(Ar,null),!r&&q.createElement(ct,{size:4})),q.createElement("div",{className:um()},q.createElement(Ga,null,q.createElement(Ve,{width:60,height:10,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:60,height:10,variant:"rounded"}),q.createElement(ct,{size:4,direction:"horizontal"}),q.createElement(Ve,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ve,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(nm,null,q.createElement(Ve,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(rm,null,q.createElement(im,null,q.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(ct,{direction:"horizontal",size:4}),q.createElement(Ve,{height:15,width:150,variant:"rounded"})),q.createElement(ct,{size:10}),q.createElement(Ve,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(ct,{size:4}),q.createElement(cm,null,n,q.createElement(sm,null),n),q.createElement(ct,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Xa,NextIcon as gC,Skeleton as Or}from"@rango-dev/ui";import ve from"react";import{styled as rn}from"@rango-dev/ui";var dm=rn("div",{display:"flex",alignItems:"start"}),fm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),gm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),hm=rn("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return ve.createElement(ve.Fragment,null,ve.createElement(hm,null,ve.createElement(Or,{height:22,width:22,variant:"circular"}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Or,{height:15,width:148,variant:"rounded"})),ve.createElement(dm,null,ve.createElement(om,{hideSeparator:!e}),ve.createElement(fm,{extraSpace:e},ve.createElement(Va,null,ve.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})),ve.createElement(gm,null,ve.createElement(gC,{color:"gray",size:16})),ve.createElement(Va,null,ve.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ve.createElement(Xa,{direction:"horizontal",size:8}),ve.createElement(Or,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Lt.createElement(Ru,{expanded:o,rounded:e!=="basic"},Lt.createElement(nn,{type:e,tagHidden:n}),Lt.createElement(em,null,Lt.createElement(yC,{height:15,variant:"rounded"})),o&&Lt.createElement(tm,null,Lt.createElement(hC,{size:24}),Lt.createElement(Tt,null),Lt.createElement(Tt,null),Lt.createElement(Tt,{separator:!1})))}i(an,"QuoteSkeleton");function uo(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:T}=j(),h=e?.outputAmount?new SC(e?.outputAmount):null,C=e?.outputAmount?Xn(e?.outputAmount,Kn(e)||T?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ur.createElement(Da,null,Ur.createElement(an,{tagHidden:l,type:o,expanded:s})):v?Ur.createElement(Da,{onClick:()=>p?.(e)},Ur.createElement(Ha,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:m,input:{value:g,usdValue:S?.toString()??""},output:{value:h?.toString()??"",usdValue:C?.toString()??""}})):null}i(uo,"QuoteInfo");import{calculatePendingSwap as wC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as vC}from"react";import{useRef as CC,useState as TC}from"react";var kC=2e3;function zr({request:t}){let[e,o]=TC(!1),n=CC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,kC)),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(zr,"useFetch");function Sm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Sm,"useFetchConfirmQuote");function qr(t){if(!t.swaps)throw new Error(te().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ja(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(qr,"throwErrorIfResponseIsNotValid");function ja(t){if(pp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=fp(t);if(o){let n=Vn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ja,"getQuoteError");function Cm(t,e,o){let n=!1;t&&(n=Np(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=So(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Tp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(yo(e)),percentageChange:N(Ye(yo(t)??"",yo(e)??""),null,2)}:Hi(t,e)?r.quoteUpdate={type:0}:Gi(t,e)?r.quoteUpdate={type:1}:Vi(t,e)&&(r.quoteUpdate={type:2}));let s=kp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Cm,"generateWarnings");function Qr(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(Qr,"handleQuoteErrors");function Ka(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),d=y().blockchains(),m=y().tokens(),f=u||p,{fetch:g,cancelFetch:S,loading:T}=Sm();return vC(()=>S,[]),{loading:T,fetch:i(async C=>{let k=C.selectedWallets,v=C?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let E=k.reduce((x,w)=>(x[w.chain]=w.address,x),{}),b={requestId:r?.requestId||"",selectedWallets:E,destination:v||void 0};try{return await g(b,!0).then(x=>{let{result:w}=x;qr({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 A={slippage:f.toString(),disabledSwappersGroups:c},B=Cm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:d,tokens:m},selectedWallets:k,userSlippage:f});B.quoteUpdate&&s(!1),l();let J=!!B.balance,M=wC(o.toString(),w,Sp(k),A,!J,{blockchains:d,tokens:m});return{quote:I,swap:M,error:null,warnings:B}})}catch(x){return Qr(x)}},"fetch"),cancelFetch:S}}i(Ka,"useConfirmSwap");var MC=IC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),BC=Ja({flexGrow:1,paddingRight:"$10"}),_C=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),PC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function wm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=LC(),[l,p]=sn(""),u=!n,[c,d]=sn(!1),[m,f]=sn(!1),{isActiveTab:g}=ie(),S=y().getDisabledLiquiditySources(),T=WC(S),{manager:h}=xC(),{fetch:C,loading:k,cancelFetch:v}=Ka(),[E,b]=sn({swap:null,error:null,warnings:null}),[x,w]=sn(!1),I=i(async({selectedWallets:Q,customDestination:oe})=>{let W=await C?.({selectedWallets:Q,customDestination:oe});return b(W),W},"onConfirmSwap"),A=i(async()=>{if(E.swap&&n)try{await h?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let Q=`../${z.swaps}/${E.swap.requestId}`;s(Q,{replace:!0}),setTimeout(()=>{e("")},0)}catch(Q){p("Error: "+Q?.message)}},"addNewSwap"),B=i(async()=>{f(!0),await A(),f(!1)},"onConfirm"),J=i(async()=>{E?.warnings?.quote&&!a?w(!0):await B()},"onStartConfirmSwap"),M=i(async()=>{b({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(Q=>{b(Q)}).catch(Q=>console.error(Q))},"onRefresh");Hr(()=>{!!T.current.length&&!S.length&&M(),T.current=S},[S.length]),Hr(()=>{u&&v()},[u]),Hr(()=>{u&&d(u)},[u]),Hr(()=>{u||C({selectedWallets:o,customDestination:r}).then(Q=>b(Q)).catch(Q=>console.error(Q))},[]),NC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=E.warnings?.quote??null,K=E.error,ae=[];if(l&&ae.push(xe.createElement(Tm,{type:"error",variant:"alarm",title:l})),E.warnings?.quoteUpdate&&ae.push(xe.createElement(Tm,{variant:"alarm",type:"warning",title:E.warnings.quoteUpdate&&Rn(E.warnings.quoteUpdate)})),H||K){let Q=`../${z.settings}`;ae.push(xe.createElement(Jo,{warning:H,error:K,couldChangeSettings:!1,refetchQuote:M,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await A()},onChangeSettings:()=>s(Q)}))}return xe.createElement(pe,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let Q=`../${z.wallets}`;s(Q)}},footer:xe.createElement(MC,null,xe.createElement("div",{className:BC()},xe.createElement(bC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||m,disabled:!!E.error||!g,onClick:J},Ya.t("Start Swap"))),xe.createElement(km,{variant:"contained",type:"primary",size:"large",loading:k||m,disabled:!g,onClick:d.bind(null,!0)},xe.createElement(AC,{size:24})))},c&&xe.createElement(tu,{open:c,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:I}),xe.createElement(me,null,xe.createElement("div",{className:PC()},xe.createElement(EC,{variant:"title",size:"small"},Ya.t("You get")),xe.createElement("div",{className:_C()},xe.createElement(mr,{onClick:!k&&!c&&!x?M:void 0}))),xe.createElement(Za,{size:"12"}),tc(ae.map((Q,oe)=>({element:Q,key:`alert-${oe}`})),xe.createElement(Za,{size:10})),ae.length>0?xe.createElement(Za,{size:10}):null,xe.createElement(uo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:k,warning:E.warnings?.quote??null})))}i(wm,"ConfirmSwapPage");import{i18n as Vr}from"@lingui/core";import{useManager as ZC}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as JC,styled as RC}from"@rango-dev/ui";import Bt,{useState as eT}from"react";import{useNavigate as tT}from"react-router-dom";import{i18n as FC}from"@lingui/core";import{Divider as Em,GroupedVirtualizedList as OC,Skeleton as UC,SwapListItem as Am,Typography as zC}from"@rango-dev/ui";import De,{useCallback as Nm,useEffect as qC,useRef as QC,useState as HC}from"react";function vm(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(vm,"calculateGroupsSoFar");import{css as $C,darkTheme as DC,styled as ln}from"@rango-dev/ui";var Ra=$C(),xm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${DC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),Im=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var GC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=HC([]),l=QC(0),{swaps:p,groupCounts:u,groups:c}=n(e),d=Nm(vm,[]),m=Nm(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,GC),s(d(u,l.current)))},[e.length]);if(qC(()=>{r||m()},[r,m]),r){let f=[1,2];return De.createElement(De.Fragment,null,[f,f].map((S,T)=>De.createElement(es,{key:T},De.createElement(ts,null,De.createElement(UC,{variant:"text",width:60,size:"small"}),De.createElement(Em,{size:16})),De.createElement(Em,{size:4}),De.createElement(bm,null,S.map((C,k)=>De.createElement(Am,{isLoading:!0,key:k}))))))}return De.createElement(OC,{endReached:()=>{l.current<e.length&&m()},groupCounts:a,groupContent:f=>De.createElement(es,null,De.createElement(ts,null,De.createElement(zC,{variant:"label",size:"medium",className:Ra()},c[f]))),itemContent:(f,g)=>{let S=p[f];if(!S)return null;let T=S.steps[0],h=S.steps[S.steps.length-1];return De.createElement(xm,{key:S.requestId},De.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:_(),onlyShowTime:c[g]===FC.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:N(S.inputAmount,6,6),realAmount:ce(S.inputAmount)},to:{token:{image:h.toLogo,displayName:h.toSymbol},blockchain:{image:h.toBlockchainLogo||""},amount:N(h.outputAmount||h.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(h.outputAmount||h.expectedOutputAmountHumanReadable)}}}))}})}i(os,"HistoryGroupedList");import{CloseIcon as XC,IconButton as jC,SearchIcon as KC,TextField as YC}from"@rango-dev/ui";import pn from"react";import{styled as VC}from"@rango-dev/ui";var Wm=VC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(YC,{prefix:pn.createElement(Wm,null,pn.createElement(KC,{color:"black"})),suffix:!!s.length&&pn.createElement(jC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(XC,{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(Mt,"SearchInput");import{i18n as Gr}from"@lingui/core";import Lm from"dayjs";var Mm=i(t=>{let e=new Map([["today",{title:Gr.t("Today"),swaps:[]}],["week",{title:Gr.t("This week"),swaps:[]}],["month",{title:Gr.t("This month"),swaps:[]}],["year",{title:Gr.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=Lm();t.forEach(p=>{let u=Number(p.creationTime),c=Lm(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 oT=RC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),nT=i((t,e)=>t?.length?t.filter(o=>ht(o.fromBlockchain,e)||ht(o.toBlockchain,e)||ht(o.toSymbol,e)||ht(o.fromSymbol,e)).length:!1,"isStepContainsText");function _m(){let t=tT(),{manager:e,state:o}=ZC(),n=Re(e).map(({swap:c})=>c),[r,a]=eT(""),s=!o.loadedFromPersistor,l=i(c=>{let d=c.target.value;a(d)},"searchHandler"),p=n;r&&(p=n.filter(c=>ht(c.inputAmount,r)||ht(c.status,r)||nT(c.steps,r)||ht(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(pe,{header:{title:Vr.t("History")}},Bt.createElement(me,null,Bt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Vr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Bm,{size:"16"}),Bt.createElement(oT,null,u&&Bt.createElement(Im,null,Bt.createElement(Bm,{size:32}),Bt.createElement(JC,{title:Vr.t("No results found"),description:r?Vr.t("Try using different keywords"):""})),!u&&Bt.createElement(os,{list:p,onSwapClick:t,groupBy:Mm,isLoading:s}))))}i(_m,"HistoryPage");import{i18n as wT}from"@lingui/core";import{Button as vT,Divider as Jm,styled as xT,WarningIcon as bT}from"@rango-dev/ui";import IT from"bignumber.js";import ze,{useEffect as Rm,useState as ed}from"react";import{useNavigate as ET}from"react-router-dom";import{i18n as pT}from"@lingui/core";import{Header as cT}from"@rango-dev/ui";import Xt,{useEffect as uT,useState as mT}from"react";import{i18n as iT}from"@lingui/core";import{Divider as rs,FullExpandedQuote as aT,Typography as sT}from"@rango-dev/ui";import ge from"react";import{styled as ns}from"@rango-dev/ui";var Pm=ns("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$m=ns("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Dm=ns("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as rT}from"@rango-dev/ui";import Fm from"react";function Xr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return Fm.createElement(Dm,null,Fm.createElement(rT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Xr,"SelectStrategy");var Om=3;function un(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:T}=y(),h=y().tokens(),C=l||_(),k=!!u&&u.results.length,v=T??S,E=i(w=>{if(!d||!m||!u)return null;let I={requestAmount:u.requestAmount,...w};return So(I,{fromToken:d,toToken:m,userSlippage:v,tokens:h})},"getQuoteWarning"),b=g?.type===0||g?.type===1,x=u?.results?Yn(f,u?.results):[];return ge.createElement(ge.Fragment,null,a&&ge.createElement(ge.Fragment,null,ge.createElement($m,null,ge.createElement(sT,{size:"xmedium",variant:"title"},iT.t("Sort by")),ge.createElement(Xr,{container:C})),ge.createElement(rs,{size:"10"})),e&&Array.from({length:Om},(w,I)=>ge.createElement(ge.Fragment,{key:I},s?ge.createElement(aT,{loading:!0}):ge.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),I!==Om-1&&ge.createElement(rs,{size:16}))),!e&&ge.createElement(ge.Fragment,null,k?x.map((w,I)=>{let A=E(w),B=ja(w.swaps),J=x.length-1===I;return ge.createElement(ge.Fragment,{key:w.requestId},ge.createElement(uo,{showModalFee:r,container:C,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:A,fullExpandedMode:s,onClick:M=>{B||c("warning",A),c("error",B?.options||null),o(M)},type:"list-item"}),!J&&ge.createElement(rs,{size:16}))}):b&&ge.createElement(Pm,null,ge.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as lT,styled as Um}from"@rango-dev/ui";var zm=Um("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${lT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),qm=Um("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var dT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=mT(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",d=Do();return uT(()=>{let m=null;return a?m=setTimeout(()=>{l(!0)},dT):(l(!1),m&&clearTimeout(m)),()=>{m&&clearTimeout(m)}},[a]),Xt.createElement(zm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:ye.EXPANDED_BOX_ID},Xt.createElement(cT,{title:pT.t("Routes"),suffix:Xt.createElement(Xt.Fragment,null,Xt.createElement(Xr,{container:d}),Xt.createElement(io,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Xt.createElement(qm,null,Xt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as Km}from"@lingui/core";import{SwapInput as Ym}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as hT}from"@rango-dev/ui";import ss from"react";import{keyframes as fT,styled as Qm}from"@rango-dev/ui";var as=450,gT=fT({"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)"}}),Hm=Qm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gm=Qm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${gT} ${as}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 ls(){let t=j.use.switchFromAndTo();return ss.createElement(Hm,null,ss.createElement(Gm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(hT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as Vm}from"@rango-dev/ui";var Xm=Vm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),jm=Vm("div",{position:"relative"});function ps(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:T}=ee(),h=a?T(a):null,C=Mn(h)?.amount??"0",k=s&&a?N(h?.amount,h?.decimals):"0",v=!!s&&Ll(S,s.name),E=!zi(g,c,d),b=!zi(g,c,f),x=!d||!f||!f.gt(0)?null:Ye(d.toString(),f.toString());return mn.createElement(Xm,null,mn.createElement(jm,null,mn.createElement(Ym,{label:Km.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:E?void 0:N(d,4,4),realUsdValue:E?void 0:ce(d),error:E?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:_(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ls,null)),mn.createElement(Ym,{sharpBottomStyle:!r&&(!!g||e),label:Km.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Ye(d,f),2,2),warningLevel:Et(x??0),price:{value:N(m,6,6),usdValue:b?void 0:N(f,4,4),realValue:ce(m),realUsdValue:b?void 0:ce(f),error:b?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:_()}))}i(ps,"Inputs");import{useCallback as yT,useEffect as ST,useRef as CT,useState as TT}from"react";function Zm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Zm,"useFetchAllQuotes");var kT=600;function jr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=y().config,s=ee.use.connectedWallets(),l=y().tokens(),{fromToken:p,toToken:u,inputAmount:c,inputUsdValue:d,selectedQuote:m,sortStrategy:f,resetQuote:g,error:S,warning:T,setSelectedQuote:h,updateQuotePartialState:C}=j(),{slippage:k,customSlippage:v,affiliatePercent:E,affiliateRef:b,affiliateWallets:x,fetchStatus:w}=y(),I=y().getLiquiditySources(),A=y().getDisabledLiquiditySources(),B=y().excludeLiquiditySources(),[J,M]=TT(!0),H=CT(c),K=v??k,Q=!p||!u||_e(p,u)||!Oo(c),oe=i(Y=>{M(Y)},"resetState"),W=i(Y=>{let{fromToken:re,toToken:Te,inputAmount:P,liquiditySources:Oe,excludeLiquiditySources:nt,disabledLiquiditySources:fe,slippage:Ue,affiliateRef:xt,affiliatePercent:Xe,affiliateWallets:rt}=Y;if(J||oe(!0),!Q&&re&&Te){g();let it=yp({fromToken:re,toToken:Te,inputAmount:P,liquiditySources:Oe,excludeLiquiditySources:nt,disabledLiquiditySources:fe,wallets:s,slippage:Ue,affiliateRef:xt,affiliatePercent:Xe,affiliateWallets:rt,enableCentralizedSwappers:a});Ql("experimentalRoute",r)&&(it.experimental=!0),e(it).then(ft=>{let ke=Yn(f,ft.results),L=Mp(m,ke,ft.requestAmount);M(!1),C("quotes",ft),h(L),qr({diagnosisMessages:ft.diagnosisMessages,requestId:L?.requestId||"",swaps:L?.swaps});let G=L&&So(L,{fromToken:re,toToken:Te,userSlippage:K,tokens:l});C("warning",G)}).catch(ft=>{let{error:ke}=Qr(ft);(ke?.type===0||ke?.type===1)&&g(),ke?.type!==2&&(C("error",ke),M(!1))})}},"fetch"),U=yT(yl(Y=>{W(Y)},kT),[Q]);return ST(()=>{if(!t){M(!1);return}if(w!=="success")return;if(Q){M(!1),(m||S||T)&&g();return}if(!Oo(c)||d?.eq(0)){oe(!1),o();return}g(),oe(!0);let Y=W;return H.current&&H.current!=c&&(Y=U),H.current=c,Y({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:B,disabledLiquiditySources:A,slippage:K,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),o},[w,c,p?.symbol,p?.address,p?.blockchain,u?.symbol,u?.address,u?.blockchain,Q,I?.length,n,A.length,K,b,E,JSON.stringify(x)]),{fetch:()=>W({inputAmount:c,fromToken:p,toToken:u,liquiditySources:I,excludeLiquiditySources:B,disabledLiquiditySources:A,slippage:K,affiliateRef:b,affiliatePercent:E,affiliateWallets:x}),loading:J}}i(jr,"useSwapInput");var AT=xT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),NT=300;function td(){let t=ET(),{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]=ed(!1),{isLargeScreen:S,isExtraLargeScreen:T}=Br(),{fetch:h,loading:C}=jr({refetchQuote:a}),{config:k,fetchStatus:v}=y(),{connectedWallets:E}=ee(),{isActiveTab:b}=ie(),[x,w]=ed(!1),A=up({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Fl(S,T,k?.variant),J=!!n&&!!e&&!!o&&new IT(n).gt(0)&&!Ip(e,o),M=J&&v==="success"&&C,ae=(!B||B&&p?.results.length)&&(l||s);Rm(()=>{c(),m("refetchQuote",!0)},[]),Rm(()=>{g(J)},[J]);let Q=(r||s)&&!x?h:void 0,oe=i(U=>{B&&f?(g(!1),setTimeout(()=>{t(U)},NT)):t(U)},"onHandleNavigation"),W=i(U=>{r?.requestId!==U.requestId&&(w(!1),u(U))},"onClickOnQuote");return ze.createElement(AT,null,ze.createElement(pe,{height:"auto",footer:ze.createElement(vT,{type:"primary",size:"large",disabled:A.disabled||!b,prefix:A.action==="confirm-warning"&&ze.createElement(bT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?oe(z.wallets):A.action==="confirm-warning"?w(!0):oe(z.confirmSwap)}},A.title),header:{onWallet:()=>{oe(z.wallets)},hasBackButton:!1,title:k.title||wT.t("Swap"),suffix:ze.createElement(io,{hidden:B?["refresh"]:void 0,onClickRefresh:Q,onClickHistory:()=>oe(z.swaps),onClickSettings:()=>{oe(z.settings)}})}},ze.createElement(me,null,ze.createElement(ps,{fetchingQuote:M,fetchMetaStatus:v,isExpandable:B,onClickToken:U=>{oe(U==="from"?z.fromSwap:z.toSwap)}}),ze.createElement(Jm,{size:"2"}),B?null:ze.createElement(uo,{quote:r,loading:M,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{m("refetchQuote",!1),oe(z.routes)}:void 0}),ae?ze.createElement(ze.Fragment,null,ze.createElement(Jm,{size:"10"}),ze.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:h,showWarningModal:x,confirmationDisabled:!b,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),d(!0),oe(z.confirmSwap)},onChangeSettings:()=>oe(z.settings)})):null)),B?ze.createElement(is,{loading:M,onClickOnQuote:W,fetch:h,onClickRefresh:Q,isVisible:f}):null)}i(td,"Home");import{i18n as od}from"@lingui/core";import{Alert as WT,Divider as LT,List as MT,ListItemButton as BT,Radio as _T,RadioRoot as PT,Typography as $T}from"@rango-dev/ui";import kt from"react";function jt(){let{setLanguage:t,language:e,config:o}=y(),n=Gl,r=o?.language||qo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||qo),resetLanguage:()=>t(null)}}i(jt,"useLanguage");function nd(){let{activeLanguage:t,changeLanguage:e,languages:o}=jt(),n=Je(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:kt.createElement($T,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:kt.createElement(_T,{value:s}),start:kt.createElement(p,null)}});return kt.createElement(pe,{header:{title:od.t("Language")}},kt.createElement(me,null,kt.createElement(WT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),kt.createElement(LT,{size:"8"}),kt.createElement(PT,{value:t},kt.createElement(MT,{type:kt.createElement(BT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as _t}from"@lingui/core";import{Button as zT,Checkbox as qT,Image as QT,ListItemButton as HT,NotFound as GT,Typography as VT}from"@rango-dev/ui";import Fe,{useState as XT}from"react";import{Checkbox as OT,Skeleton as id}from"@rango-dev/ui";import fn from"react";import{styled as cs}from"@rango-dev/ui";var dn=cs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),us=cs("div",{width:80,display:"flex",justifyContent:"flex-end"}),ms=cs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as DT,styled as FT}from"@rango-dev/ui";var rd=FT(DT,{height:61});var UT=30;function ds(){return fn.createElement(dn,null,Array.from(Array(UT),(t,e)=>fn.createElement(rd,{hasDivider:!0,key:e,start:fn.createElement(id,{variant:"circular",width:35,height:35}),title:fn.createElement(id,{variant:"text",size:"large",width:90}),end:fn.createElement(OT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=XT(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=Fn(o,n),u={Exchanges:_t.t("Exchanges"),Bridges:_t.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=p.filter(h=>c.includes(h.type)),m=d.length===d.filter(h=>h.selected).length,f=i(()=>{d.forEach(h=>{m?s(h.groupTitle):h.selected||s(h.groupTitle)})},"toggleAllSources"),g=d.map(h=>{let{selected:C,groupTitle:k,logo:v}=h;return{start:Fe.createElement(QT,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Fe.createElement(qT,{checked:C,disabled:l}),title:Fe.createElement(VT,{variant:"title",size:"xmedium"},_t.t(k)),...h}}),S=i(h=>{let C=h.target.value;a(C)},"searchHandler"),T=g;return r&&(T=g.filter(h=>ht(h.groupTitle,r))),Fe.createElement(pe,{header:{title:_t.t(t),suffix:Fe.createElement(us,null,Fe.createElement(zT,{variant:"ghost",size:"xsmall",onClick:f},m?_t.t("Deselect all"):_t.t("Select all")))}},Fe.createElement(me,{view:!0},Fe.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:_t.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Fe.createElement(ds,null),!T.length&&r?Fe.createElement(ms,null,Fe.createElement(GT,{title:_t.t("No results found"),description:_t.t("Try using different keywords")})):e==="success"&&Fe.createElement(dn,{disabled:l},T.map(h=>{let{groupTitle:C,...k}=h;return Fe.createElement(Fe.Fragment,{key:h.id},Fe.createElement(HT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as jT}from"@lingui/core";import Kr from"react";import{useNavigate as KT}from"react-router-dom";function ad(){let t=KT(),e=Je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=jr({refetchQuote:n}),u=i(m=>{r(m),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,d=`../${z.wallets}`;return Kr.createElement(pe,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:jT.t("Routes"),suffix:Kr.createElement(io,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(ad,"RoutesPage");import{i18n as fd}from"@lingui/core";import{Divider as gd,getCategoriesCount as rk,SelectableCategoryList as ik}from"@rango-dev/ui";import Pt,{useState as hd}from"react";import{i18n as gs}from"@lingui/core";import{Divider as md,Image as RT,ListItemButton as ek,NotFound as tk,Typography as dd}from"@rango-dev/ui";import et,{useEffect as ok,useState as nk}from"react";var sd=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as YT,styled as ld}from"@rango-dev/ui";var pd=ld("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Yr=ld(Xo,{padding:0,margin:0,listStyle:"none",[`& ${YT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ZT,Skeleton as cd}from"@rango-dev/ui";import Zr from"react";var JT=20;function ud(){return Zr.createElement(Yr,null,Array.from(Array(JT),t=>Zr.createElement(ZT,{key:t,hasDivider:!0,start:Zr.createElement(cd,{variant:"circular",width:35,height:35}),title:Zr.createElement(cd,{variant:"text",size:"large",width:90})})))}i(ud,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=nk(e),{fetchStatus:l}=y();ok(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?et.createElement(et.Fragment,null,et.createElement(md,{size:32}),et.createElement(tk,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):et.createElement(Yr,{as:"ul",key:`${r}-${o}`},a.map(u=>et.createElement(ek,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:et.createElement(RT,{src:u.logo,size:30}),title:et.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return et.createElement(pd,null,et.createElement(dd,{variant:"label",size:"large"},gs.t("Select Blockchain")),et.createElement(md,{size:4}),l==="loading"&&et.createElement(ud,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Je(),[n,r]=hd(""),[a,s]=hd("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=y().fetchStatus,c=y().blockchains({type:e}),m=rk(c)!==1;return Pt.createElement(pe,{header:{title:fd.t("Select Blockchain")}},Pt.createElement(me,{view:!0},m&&Pt.createElement(Pt.Fragment,null,Pt.createElement(ik,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(gd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:fd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Pt.createElement(gd,{size:16}),Pt.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:f=>{e==="source"?p(f):l(f),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as oi}from"@lingui/core";import{Divider as Dd}from"@rango-dev/ui";import mo,{useState as wk}from"react";import{useNavigate as vk}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Jr,Divider as Td,Image as kd,Skeleton as ck,Tooltip as uk,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as lk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ak),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(sk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function ak(t,e){let o=yd,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(ak,"sortByMostUsedBlockchains");function sk(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(sk,"generateSortByPreferredBlockchainsFor");function Sd(t,e){return!!e.list.find(o=>o.name===t)}i(Sd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();lk(()=>{if(e?.selected){let a=Ss(t,o,e);Sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ss(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Cs,"usePrepareBlockchainList");import{styled as pk}from"@rango-dev/ui";var Cd=pk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var mk=12;function ws(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Cs(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 Ne.createElement(Ne.Fragment,null,Ne.createElement(Td,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(Td,{size:12}),Ne.createElement(Cd,null,l==="loading"&&Array.from(Array(mk),f=>Ne.createElement(ck,{key:f,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts.t("All"))),s.list.map(f=>Ne.createElement(uk,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:_()},Ne.createElement(Jr,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Ne.createElement(kd,{src:f.logo,size:30})))),d?Ne.createElement(Jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(kd,{src:s.more[0].logo,size:30})):null,m?Ne.createElement(Jr,{onClick:a,key:"more-blockchains"},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts._("More +{count}",{count:s.more.length}))):null)))}i(ws,"BlockchainsSection");import{i18n as Ms}from"@lingui/core";import{darkTheme as Md,Divider as Bo,ExternalLinkIcon as gk,Image as hk,ListItemButton as yk,NotFound as Sk,PinIcon as Ck,Skeleton as Bd,Typography as ti,VirtualizedList as Tk}from"@rango-dev/ui";import X,{useEffect as _d,useState as Pd}from"react";import{Divider as Wd,ListItem as fk,Skeleton as gn}from"@rango-dev/ui";import ut from"react";import{css as Mo,darkTheme as wd,ImageContainer as dk,styled as tt,Typography as vd}from"@rango-dev/ui";var vs=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Mo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Is=Mo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${wd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Es=Mo({}),As=Mo(),xd=tt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ns=tt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Rr=tt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${xs}`]:{[`& .${Is}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Es}`]:{bottom:"-15px"},[`& .${vs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ws=tt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ls=tt(vd,{}),bd=tt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${wd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ei=tt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),jO=tt("div",{display:"flex",alignItems:"center"}),Id=tt("div",{position:"relative",[`& ${dk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Ed=tt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=tt(vd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Nd=tt("a",{"& svg:hover":{color:"$colors$info"}});function Ld(t){return ut.createElement(Rr,null,Array.from(Array(t.size),e=>ut.createElement(fk,{key:e,hasDivider:!0,start:ut.createElement(gn,{variant:"circular",width:35,height:35}),end:ut.createElement(ei,null,ut.createElement(gn,{variant:"text",size:"large",width:70}),ut.createElement(Wd,{size:4}),ut.createElement(gn,{variant:"text",size:"medium",width:50})),title:ut.createElement("div",null,ut.createElement(gn,{variant:"text",size:"large",width:90}),ut.createElement(Wd,{size:4}),ut.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Ld,"LoadingTokenList");var Bs=20,kk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:xs()},o?X.createElement("div",{className:vs()},o):X.createElement(Ns,{className:bs()},X.createElement(ti,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Bo,{direction:"horizontal",size:4}),X.createElement(Ws,{css:a},X.createElement(Ls,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Is()} ${!o&&Es()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Bo,{size:4,direction:"horizontal"}),X.createElement(Nd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(gk,{size:12}))))},"renderDesc");function $d(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Pd(e),l=y().fetchStatus,p=y().blockchains(),[u,c]=Pd(!0),{getBalanceFor:d,loading:m}=ee(),{isTokenPinned:f}=y(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");_d(()=>{c(e.length>a.length)},[a.length]),_d(()=>{s(e.slice(0,Bs))},[e.length]);let S=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Bo,{size:32}),X.createElement(Sk,{title:Ms.t("No results found"),description:Ms.t("Try using different keywords")})):X.createElement(Tk,{endReached:u?g:void 0,itemContent:T=>{let h=a[T],C=Mn(d(h)),k=h.address||"",v=p.find(I=>I.name===h.blockchain),E=sr(v?.color||"",Rp(v?.color||"")?5:125),b=sr(v?.color||"",-100),x={$$color:E,[`.${Md} &`]:{$$color:b},backgroundColor:"$$color"},w={$$color:b,[`.${Md} &`]:{$$color:E},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(yk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":T,key:`${h.symbol}${h.address}`,id:`${h.symbol}${h.address}`,hasDivider:!0,onClick:()=>n(a[T]),start:X.createElement(Id,null,X.createElement(hk,{src:h.image,size:30}),f(h,t.type)&&X.createElement(Ed,null,X.createElement(Ck,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||h.name||!h.name&&!k?X.createElement(Ns,null,X.createElement(ti,{variant:"title",size:"xmedium"},h.symbol),X.createElement(Bo,{direction:"horizontal",size:4}),X.createElement(Ws,{css:x},X.createElement(Ls,{variant:"body",size:"xsmall",css:w},h.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?kk({address:k,token:a[T],customCssForTag:x,customCssForTagTitle:w,name:h.name,url:v.info.addressUrl.split("{wallet}").join(k)}):h.name||void 0,end:m?X.createElement(ei,null,X.createElement(Bd,{variant:"text",size:"large",width:70}),X.createElement(Bo,{size:4}),X.createElement(Bd,{variant:"text",size:"medium",width:50})):C&&X.createElement(bd,null,X.createElement(Ad,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(ti,{variant:"body",className:As(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(xd,null,X.createElement(ti,{variant:"label",size:"large"},Ms.t("Select Token")),X.createElement(Bo,{size:4}),l==="loading"&&X.createElement(Ld,{size:Bs}),l==="success"&&X.createElement(Rr,{as:"ul"},S()))}i($d,"TokenList");function _s(t){let{type:e}=t,o=vk(),n=Je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=ee.use.getBalanceFor(),[d,m]=wk(""),g=(e==="source"?r:a)?.name??"",S=y().blockchains({type:e}),T=y().tokens({type:e,blockchain:g,searchFor:d,getBalanceFor:c}),h=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:T}}):l({token:v,meta:{blockchains:S,tokens:T}})},"updateToken"),k={source:oi.t("Source"),destination:oi.t("Destination")};return mo.createElement(pe,{header:{title:oi.t("Swap {type}",{type:k[e]})}},mo.createElement(me,null,mo.createElement(ws,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:v=>{h(v)}}),mo.createElement(Dd,{size:24}),mo.createElement(Mt,{value:d,autoFocus:!0,placeholder:oi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>m(""),onChange:v=>m(v.target.value)}),mo.createElement(Dd,{size:16}),mo.createElement($d,{list:T,selectedBlockchain:g,searchedFor:d,type:e,onChange:v=>{C(v);let E=S.find(b=>v.blockchain===b.name);E&&h(E),n()}})))}i(_s,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as jk,Button as Kk,styled as Yk}from"@rango-dev/ui";import fo from"react";import{useInRouterContext as Zk,useSearchParams as Jk}from"react-router-dom";import{i18n as Qd}from"@lingui/core";import{Divider as Ek,InfoIcon as Ak,TextField as Nk,Tooltip as Wk,Typography as Hd}from"@rango-dev/ui";import mt from"react";import{Chip as xk,styled as hn,TextField as bk}from"@rango-dev/ui";var Fd=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${bk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ud=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ni=hn("div",{maxWidth:"280px",padding:"$10"}),zd=hn(xk,{width:"61px",flexShrink:0});import{i18n as Ps}from"@lingui/core";import{Typography as Ik}from"@rango-dev/ui";import yn from"react";function qd(){return yn.createElement(ni,null,yn.createElement(Ik,{variant:"label",size:"medium",color:"neutral700"},Ps.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,Ps.t("Warning")),":",Ps.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(qd,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return mt.createElement(Fd,null,mt.createElement(Ud,null,mt.createElement(Hd,{variant:"title",size:"xmedium"},Qd.t("Slippage tolerance per swap")),mt.createElement(Ek,{direction:"horizontal",size:4}),mt.createElement(Wk,{container:_(),side:"top",sideOffset:4,content:mt.createElement(qd,null)},mt.createElement(Ak,{color:"gray"}))),mt.createElement(Od,null,Vl.map((r,a)=>{let s=`slippage-${a}`;return mt.createElement(zd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),mt.createElement(Nk,{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>=Yl&&s<=Kl?n(s):n(null)},suffix:o&&mt.createElement(Hd,{variant:"body",size:"small"},"%"),placeholder:Qd.t("Custom")})))}i($s,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as Gd,BridgesIcon as Lk,ChevronRightIcon as Ds,DarkModeIcon as Vd,Divider as ri,ExchangeIcon as Mk,InfinityIcon as Bk,InfoIcon as _k,LanguageIcon as Pk,LightModeIcon as Xd,List as $k,ListItem as Dk,ListItemButton as Fk,Skeleton as Ok,styled as Uk,Switch as zk,Tabs as qk,Tooltip as Qk,Typography as ot}from"@rango-dev/ui";import O from"react";import{useNavigate as Hk}from"react-router-dom";var Gk=Uk("div",{width:"202px",height:"$40"}),Vk=[{id:"light",icon:O.createElement(Xd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:O.createElement(Vd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:O.createElement(Gd,{color:"black",size:24}),tooltip:O.createElement(ot,{size:"xsmall",variant:"body"},wt.t("Auto"))}],Xk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Gd,{...e});case"dark":return O.createElement(Vd,{...e});default:return O.createElement(Xd,{...e})}},"getThemeIcon");function jd(){let t=Hk(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=jt(),s=a.find(H=>H.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),d=Ke("theme",c),m=Ke("liquiditySource",c),f=Ke("language",c),g=y().infiniteApprove,S=y().toggleInfiniteApprove,T=Fn(p,u),h=T.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),C=h.length,k=h.filter(H=>H.selected).length,v=T.filter(H=>H.type==="DEX"),E=v.length,b=v.filter(H=>H.selected).length,x=i((H,K)=>{switch(l){case"loading":return O.createElement(Ok,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(ot,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return O.createElement(ot,{variant:"body",size:"medium"},`${H} / ${K}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:O.createElement(O.Fragment,null,x(k,C),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(Lk,{color:"gray",size:16})},I={id:"exchange-item",title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:O.createElement(O.Fragment,null,x(b,E),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement(Mk,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},A={id:"language-item",title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Language")),start:O.createElement(Pk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(ot,{variant:"body",size:"medium"},s),O.createElement(ri,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),O.createElement(ri,{direction:"horizontal",size:4}),O.createElement(Qk,{side:"top",sideOffset:4,container:_(),content:O.createElement(ni,null,O.createElement(ot,{variant:"label",size:"medium",color:"neutral700"},wt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(_k,{color:"gray"}))),start:O.createElement(Bk,{color:"gray",size:16}),end:O.createElement(zk,{checked:g}),onClick:S},J={id:"theme-item",type:O.createElement(Dk,null),title:O.createElement(ot,{variant:"title",size:"xmedium"},wt.t("Theme")),end:O.createElement(Gk,null,O.createElement(qk,{container:_(),items:Vk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Xk(n)},M=m?[]:[w,I];return f||M.push(A),M.push(B),!e?.singleTheme&&!d&&M.push(J),O.createElement($k,{type:O.createElement(Fk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:M})}i(jd,"SettingsLists");var Rk=Yk("div",{paddingLeft:"$8"});function Kd(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Jk(),r=Zk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return fo.createElement(pe,{header:{title:Fs.t("Settings")}},fo.createElement(me,null,o&&fo.createElement(jk,{type:"info",variant:"alarm",title:Fs.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:fo.createElement(Rk,null,fo.createElement(Kk,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),fo.createElement($s,null),fo.createElement(jd,null)))}i(Kd,"SettingsPage");import{i18n as Uw}from"@lingui/core";import{cancelSwap as zw}from"@rango-dev/queue-manager-rango-preset";import{useManager as qw}from"@rango-dev/queue-manager-react";import{Alert as Qw}from"@rango-dev/ui";import tl from"react";import{useParams as Hw}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as kw,getCurrentStep as ww,getRelatedWalletOrNull as vw}from"@rango-dev/queue-manager-rango-preset";import{Button as Ef,CopyIcon as xw,Divider as bw,IconButton as Iw,QuoteCost as Ew,RangoExplorerIcon as Aw,StepDetails as Nw,Tooltip as Ww,Typography as go,useCopyToClipboard as Lw}from"@rango-dev/ui";import{useWallets as Mw}from"@rango-dev/wallets-react";import Af from"bignumber.js";import{PendingSwapNetworkStatus as di}from"rango-types";import R,{useEffect as Nf,useRef as Bw,useState as Wf}from"react";import{useNavigate as _w}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var ew=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Yd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${ew[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Yd,"timeSince");function Zd(t){return t.finishTime?Yd(parseInt(t.finishTime)):Yd(parseInt(t.creationTime))}i(Zd,"getSwapDate");import{PendingSwapNetworkStatus as si}from"rango-types";import li from"react";import{i18n as ii}from"@lingui/core";import{Button as Jd,Divider as Os,MessageBox as tw}from"@rango-dev/ui";import Yt from"react";var Rd=i(({onCancel:t,onClose:e})=>Yt.createElement(Yt.Fragment,null,Yt.createElement(Os,{size:20}),Yt.createElement(tw,{type:"error",title:ii.t("Cancel Swap"),description:ii.t("Are you sure you want to cancel this swap?")}),Yt.createElement(Os,{size:32}),Yt.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Cancel it")),Yt.createElement(Os,{size:12}),Yt.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},ii.t("No, Continue"))),"CancelContent");import{i18n as ai}from"@lingui/core";import{Button as ef,Divider as Us,MessageBox as ow,Typography as nw}from"@rango-dev/ui";import $t from"react";var tf=i(({onDelete:t,onClose:e})=>$t.createElement($t.Fragment,null,$t.createElement(Us,{size:20}),$t.createElement(ow,{type:"error",title:ai.t("Delete Transaction"),description:ai.t("Are you sure you want to delete this swap?")}),$t.createElement(Us,{size:32}),$t.createElement(ef,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Delete it")),$t.createElement(Us,{size:12}),$t.createElement(ef,{variant:"outlined",type:"primary",size:"large",onClick:e},$t.createElement(nw,{variant:"title",size:"medium",color:"primary"},ai.t("No, Cancel")))),"DeleteContent");import{i18n as zs}from"@lingui/core";import{PendingSwapNetworkStatus as qs}from"rango-types";var Qs={[qs.WaitingForNetworkChange]:{type:"loading",title:zs.t("Change Network")},[qs.WaitingForConnectingWallet]:{type:"warning",title:zs.t("Connect Wallet")},[qs.NetworkChanged]:{type:"success",title:zs.t("Network Changed")}};import{debug as rf}from"@rango-dev/logging-core";import{MessageBox as rw,Wallet as iw}from"@rango-dev/ui";import{useWallets as aw}from"@rango-dev/wallets-react";import _o,{useState as sw}from"react";import{styled as of}from"@rango-dev/ui";var nf=of("div",{display:"flex",justifyContent:"center"}),$z=of("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var af=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=aw(),[c,d]=sw(null),m=n?.walletType,f=m?Ai(u(m)):null,g=m?p(m):null;return _o.createElement(_o.Fragment,null,_o.createElement(rw,{type:e,title:o,description:r}),a&&!!m&&!!f&&!!g&&_o.createElement(nf,null,_o.createElement(iw,{container:_(),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(T=>rf(T))}})),_o.createElement(so,{open:!!c,onClose:()=>d(null),onConfirm:T=>{l(c?.providerType,void 0,T).catch(h=>rf(h)),d(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Hs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===si.WaitingForNetworkChange||e===si.WaitingForConnectingWallet||e===si.NetworkChanged;return li.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&li.createElement(af,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==si.WaitingForNetworkChange}),e==="delete"&&li.createElement(tf,{onClose:o,onDelete:n}),e==="cancel"&&li.createElement(Rd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Gs,Divider as pi,MessageBox as sf,TokenAmount as lw,Typography as Vs}from"@rango-dev/ui";import Me from"react";import{useNavigate as pw}from"react-router-dom";function Xs(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=pw();return Me.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(sf,{type:"success",title:Sn.t("Swap Successful")},Me.createElement(lw,{direction:"vertical",tooltipContainer:_(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(pi,{size:12}),Me.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Me.createElement(sf,{type:"error",title:Sn.t("Transaction Failed"),description:d}),Me.createElement(pi,{size:32}),n==="success"&&Me.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Me.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Me.createElement(pi,{size:12}),m&&Me.createElement(Me.Fragment,null,Me.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},Sn.t("Diagnosis")),Me.createElement(pi,{size:12})),Me.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import Tw from"react";import{i18n as hw}from"@lingui/core";import{Alert as vf,IconButton as yw,LinkIcon as Sw}from"@rango-dev/ui";import Zt,{Fragment as Cw}from"react";import{Alert as mw,ChevronDownIcon as dw,IconButton as fw}from"@rango-dev/ui";import $o,{useState as gw}from"react";import{css as Cn,darkTheme as cw,styled as Dt,Typography as uw}from"@rango-dev/ui";var lf=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ci=Dt("div",{width:"100%"}),pf=Dt(Xo,{padding:"$0 $20 $20 $20"}),Sq=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),cf=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Cq=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Po=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${cw} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),uf=Cn({padding:"$5 0"}),ui=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),mf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),df=Cn({width:"100%",padding:"0 $20 $10"}),ff=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),gf=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),mi=Dt(uw,{wordBreak:"break-word"});import{styled as js}from"@rango-dev/ui";var hf=js("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=js("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Sf=js("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Cf(t){let{message:e}=t,[o,n]=gw(!1);return $o.createElement(mw,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(fw,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(yf,{rotated:o},$o.createElement(dw,{size:12,color:"gray"}))),footer:$o.createElement(Sf,{open:o},$o.createElement(mi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Cf,"FailedAlert");import{i18n as Tf}from"@lingui/core";import{Alert as Ks,Button as kf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import Tn from"react";function wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Tf.t("Change"))}):r===Ys.WaitingForConnectingWallet?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},Tf.t("Connect"))}):Tn.createElement(Ks,{type:"warning",title:n.shortMessage})}i(wf,"WarningAlert");function Zs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Go(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Zt.createElement(hf,null,a.explorerUrl?.map((d,m,f)=>{let g=m+d.url,S=m===f.length-1,T=(S&&u||p)&&!c,h=S&&a.status==="failed";return Zt.createElement(Cw,{key:g},Zt.createElement(vf,{type:S&&(T&&"loading"||h&&"error")||"success",title:d.description?`${d.description} Tx`:hw.t("View transaction"),action:d.url&&Zt.createElement(yw,{variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},Zt.createElement(Sw,{size:12}))}))}),c&&Zt.createElement(vf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Zt.createElement(wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Zt.createElement(Cf,{message:r}))}i(Zs,"SwapDetailsAlerts");var xf=2e3;var bf=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:je(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:je(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:zo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:je(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:je(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:zo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Tw.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function If(t){if(Go(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(If,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Mw(),p=y().blockchains(),u=y().swappers(),c=y().tokens(),d=j.use.retry(),m=ie.use.isActiveTab(),f=_w(),[g,S]=Lw(xf),T=Bw(null),[h,C]=Wf(null),[k,v]=Wf(null),E=i(()=>{r(),C(null)},"onCancel"),b=Ee.use.getNotifications(),x=Ee.use.removeNotification(),w=b(),I=ww(e),A=I?.networkStatus;Nf(()=>{w.find(L=>L.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Nf(()=>{Q?C(di.WaitingForNetworkChange):A===di.WaitingForConnectingWallet||A===di.NetworkChanged?C(A):C(null)},[A]);let B=vp(e),J=I?kw(e,I):null,M=I?vw(e,I):null,H=Zd(e),K=xp(e),ae=i(ke=>!!l(ke)?.mobileWallet,"isMobileWallet"),Q=A===di.WaitingForNetworkChange&&!!J&&!!M?.walletType&&(ae(M.walletType)||a(M.walletType,J)),oe=Q?s.bind(null,M.walletType,J):void 0,W=wp(e,I),U=bf({swap:e,switchNetwork:oe,showNetworkModal:A,setNetworkModal:C,message:W,blockchains:p,swappers:u}),Y=U.length,[re,Te]=[e.steps[0],e.steps[Y-1]],P=Te.outputAmount||Te.expectedOutputAmountHumanReadable,Oe=e.steps.reduce((ke,L)=>ke+parseFloat(L.feeInUsd||""),0),nt=e.steps.find(ke=>ke.diagnosisUrl)?.diagnosisUrl,fe=N(parseFloat(N(P,6,6))*(Te.toUsdPrice||0),4,4),Ue=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),xt=P?ce(new Af(P).multipliedBy(Te.toUsdPrice||0)):"",Xe=ce(new Af(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),rt=Ye(Ue,fe),it=W.detailedMessage.content||W.shortMessage,ft=e.status==="success"?vt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(P,6,6),token:U[Y-1].to.token.displayName,conciseAddress:Bn(e.wallets[U[Y-1].to.chain.displayName]?.address||""),chain:U[Y-1].to.chain.displayName}}):R.createElement(gf,null,R.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},it?"":vt.t("Transaction was not sent."),B?`${vt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),it&&R.createElement(mi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",it));return R.createElement(pe,{header:{title:vt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(vo,null,R.createElement(Ef,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},R.createElement(go,{size:"medium",variant:"label",color:"error"},vt.t("Delete"))))},footer:K&&!k&&R.createElement(Ef,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{d(e,{blockchains:p,tokens:c}),setTimeout(()=>{f("../../")},0)}},vt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(ci,null,R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${vt.t("Request ID")}:`),R.createElement("div",{className:ui()},R.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Iw,{variant:"ghost",onClick:S.bind(null,o||"")},R.createElement(xw,{size:16,color:"gray"})),R.createElement(ff,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(Ww,{container:_(),content:vt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Aw,{size:20}))))),R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${vt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(go,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:mf()},R.createElement(Ew,{fee:N(String(Oe),2,2),time:Fo(In(e.steps)),steps:Y}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Ue,realUsdValue:Xe,realValue:e.inputAmount},token:{displayName:U[0].from.token.displayName,image:U[0].from.token.image},chain:{image:U[0].from.chain.image,displayName:U[0].from.chain.displayName}},to:{price:{value:N(P,6,6),usdValue:fe,realUsdValue:xt,realValue:P},token:{displayName:U[Y-1].to.token.displayName,image:U[Y-1].to.token.image},chain:{image:U[Y-1].to.chain.image,displayName:U[Y-1].to.chain.displayName}},percentageChange:N(rt,2,2),warningLevel:Et(rt??0)})),R.createElement("div",{className:df()},R.createElement(go,{variant:"title",size:"small"},vt.t("Swaps steps"))),R.createElement(bw,{size:8}),R.createElement(pf,{ref:T},U.map((ke,L)=>{let G=L,V=If(e.steps[L]),Qe=V==="error"||V==="in-progress"||V==="warning"||V==="completed"&&L===U.length-1;return R.createElement(Nw,{key:G,step:ke,type:"swap-progress",ref:T,state:V,hasSeparator:L!==0,tabIndex:G,isFocused:Qe,tooltipContainer:_()})}))),R.createElement(Hs,{state:h,onClose:()=>C(null),onCancel:E,onDelete:n,message:W.detailedMessage.content,currentStepWallet:M,walletButtonDisabled:!m}),R.createElement(Xs,{open:!!k,diagnosisUrl:nt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:N(P,6,6),usdValue:fe,realUsdValue:xt,realValue:ce(P),percentageChange:N(rt,2,2),token:{displayName:U[Y-1].to.token.displayName,image:U[Y-1].to.token.image},chain:{image:U[Y-1].to.chain.image},description:ft}))}i(Js,"SwapDetails");import{i18n as gi}from"@lingui/core";import{Divider as Bf,NotFound as Ow,Skeleton as wn,Typography as hi}from"@rango-dev/ui";import he from"react";import{i18n as Pw}from"@lingui/core";import{Divider as $w,Skeleton as Dw,Typography as Fw}from"@rango-dev/ui";import Ce from"react";import{css as dt,styled as Rs}from"@rango-dev/ui";var Lf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),fi=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),LQ=dt({display:"flex",justifyContent:"space-between",alignItems:"center"}),MQ=dt({display:"flex",justifyContent:"space-between",alignItems:"center"}),BQ=dt({paddingTop:"$15",display:"flex"}),_Q=dt({padding:"$15 $0"}),PQ=dt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),$Q=dt({paddingBottom:"$10"}),DQ=dt({display:"flex",justifyContent:"start",alignItems:"center"}),FQ=dt({paddingTop:"$5",display:"flex",alignItems:"center"}),OQ=dt({display:"flex",alignItems:"center"}),UQ=dt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Mf=dt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Ce.createElement(Lf,null,Ce.createElement(nn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Fw,{variant:"title",size:"small"},Pw.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1}),Ce.createElement("div",{className:Mf()},Ce.createElement($w,{direction:"horizontal",size:20}),Ce.createElement(Dw,{height:22,variant:"rectangular"}))),Ce.createElement(fi,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1})),Ce.createElement(fi,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1})),Ce.createElement(fi,null),Ce.createElement(kn,null,Ce.createElement(Tt,{separator:!1}))))}i(el,"LoadingSwapDetails");function _f(t){let{requestId:e,showSkeleton:o}=t;return he.createElement(pe,{header:{title:gi.t("Swap and Bridge"),suffix:he.createElement(vo,null)}},o&&he.createElement(lf,null,he.createElement(ci,null,he.createElement("div",{className:Po()},he.createElement(hi,{variant:"label",size:"large",color:"neutral700"},`${gi.t("Request ID")}:`),he.createElement("div",{className:ui()},he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(Bf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}),he.createElement(Bf,{direction:"horizontal",size:4}),he.createElement(wn,{width:16,height:16,variant:"rectangular"}))),he.createElement("div",{className:Po()},he.createElement(hi,{className:uf(),variant:"label",size:"large",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})),he.createElement(hi,{variant:"label",size:"small",color:"neutral700"},he.createElement(wn,{width:60,height:10,variant:"rounded"})))),he.createElement(el,null)),!o&&he.createElement(cf,null,he.createElement(Ow,{title:gi.t("Not found"),description:gi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_f,"SwapDetailsPlaceholder");function Pf(){let{manager:t,state:e}=qw(),o=!e.loadedFromPersistor,n=Re(t),{requestId:r}=Hw(),a=Je(),{fetchStatus:s}=y();if(!r)return tl.createElement(Qw,{containerStyles:{margin:"20px"},type:"error",title:Uw.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&&zw(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?tl.createElement(_f,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:d,requestId:r,onCancel:u,onDelete:c})}i(Pf,"SwapDetailsPage");function $f(){return _p(),Yi(),Gw([{path:z.home,element:qe.createElement(td,null)},{path:z.routes,element:qe.createElement(ad,null)},{path:z.fromSwap,children:[{index:!0,element:qe.createElement(_s,{type:"source"})},{path:z.blockchains,element:qe.createElement(ys,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:qe.createElement(_s,{type:"destination"})},{path:z.blockchains,element:qe.createElement(ys,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:qe.createElement(Kd,null)},{path:z.languages,element:qe.createElement(nd,null)},{path:z.exchanges,element:qe.createElement(fs,{sourceType:"Exchanges"})},{path:z.bridges,element:qe.createElement(fs,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:qe.createElement(_m,null)},{path:z.swapDetails,element:qe.createElement(Pf,null)}]},{path:z.wallets,element:qe.createElement(Gc,null)},{path:z.confirmSwap,element:qe.createElement(wm,null)}])}i($f,"AppRoutes");import{useQueueManager as tv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as ov}from"@rango-dev/wallets-shared";import{isEvmBlockchain as nv}from"rango-sdk";import{useContext as rv,useEffect as iv,useState as Qf}from"react";import{globalCss as Vw}from"@rango-dev/ui";var Df=i(()=>Vw({"@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 Ff(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${It("BASE_URL")}/meta/dapp/config?apiKey=${It("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(Ff,"useFetchApiConfig");import{useWallets as Xw}from"@rango-dev/wallets-react";import{useEffect as jw,useRef as Kw}from"react";function Of(){let{connect:t,state:e}=Xw(),o=Kw({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);jw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Of,"useForceAutoConnect");import{isApprovalTX as Yw,MainEvents as yi,RouteEventType as Uf,StepEventType as zf,StepExecutionEventStatus as Zw,useEvents as Jw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as qf}from"react";function ol(){let t=y().tokens(),e=ee.use.connectedWallets(),o=ee.use.getWalletsDetails(),n=Ee.use.setNotification(),r=Jw();qf(()=>{let a=i(s=>{let{event:l,step:p,route:u}=s;if(l.type===zf.TX_EXECUTION&&l.status===Zw.TX_SENT&&!Yw(p)||l.type===zf.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(yi.StepEvent,a),()=>r.off(yi.StepEvent,a)},[r,e.length]),qf(()=>{let a=i(s=>{let{event:l,route:p}=s;(l.type===Uf.FAILED||l.type===Uf.SUCCEEDED)&&n(l,p)},"handleRouteEvent");return r.on(yi.RouteEvent,a),()=>r.off(yi.RouteEvent,a)},[r,e.length])}i(ol,"useSubscribeToWidgetEvents");import{useManager as Rw}from"@rango-dev/queue-manager-react";import{useEffect as ev}from"react";function nl(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=Rw();ev(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Re(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Of(),Df(),ol(),nl();let t=y().blockchains(),{canSwitchNetworkTo:e}=wr(),[o,n]=Qf(""),[r,a]=Qf(),s=rv(Un),l=t.filter(nv),{fetchApiConfig:p}=Ff();tv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),iv(()=>(eo.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===ov(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(rl,"useBootstrap");import{styled as av}from"@rango-dev/ui";var Hf=av("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Si(){rl();let{config:t}=y(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=jt();return il.createElement(sv,{language:o},il.createElement(Hf,{id:"swap-container",className:e()},il.createElement($f,null)))}i(Si,"Main");import{setSolanaSignerConfig as Ev}from"@rango-dev/signer-solana";import sl,{useEffect as Kf,useMemo as Av}from"react";import{useState as lv}from"react";var pv=i(()=>{let[t,e]=lv(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=Cl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Gf=pv;import{checkWaitingForNetworkChange as cv,makeQueueDefinition as uv}from"@rango-dev/queue-manager-rango-preset";import{Provider as mv}from"@rango-dev/queue-manager-react";import{useWallets as dv}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as fv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as gv}from"rango-types";import hv,{useMemo as yv}from"react";function Sv(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=dv(),l=yv(()=>uv({API_KEY:t.apiKey||It("API_KEY"),BASE_URL:It("BASE_URL")}),[t.apiKey]),p=y().blockchains(),c={blockchains:ee.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(gv),S=i(k=>{let{supportedChains:v}=s(k);return Nn(v)},"getSupportedChainNames"),T=e(),h={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:fv(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:T,switchNetwork:d,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:m},C=ie.use.isActiveTab();return hv.createElement(mv,{queuesDefs:[l],context:h,onPersistedDataLoaded:k=>{cv(k)},isPaused:!C},t.children)}i(Sv,"QueueManager");var Vf=Sv;import{useManager as vv}from"@rango-dev/queue-manager-react";import xv,{createContext as bv,useContext as Iv}from"react";import{cancelSwap as Cv,getCurrentBlockchainOfOrNull as Tv,getCurrentStep as kv,getRelatedWalletOrNull as wv}from"@rango-dev/queue-manager-rango-preset";var Ci=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Re(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&Cv(o)}getCurrentStepInfo(e){let o=kv(e);return{step:o,wallet:o?wv(e,o):null,network:o?Tv(e,o):null}}};var Xf=bv(void 0);function al(t){let{manager:e}=vv(),o=ie.use.isActiveTab(),n=j.use.retry(),r=new Ci(e,{retrySwap:n}),a=ee.use.connectedWallets(),s=ee.use.loading(),l=El(a),p=ee.use.getWalletsDetails(),u=y().blockchains(),c=y().tokens(),d=y().swappers(),m=y().fetchStatus,f=jt().resetLanguage,g=Ee().getNotifications(),S={isActiveTab:o,setCurrentTabAsActive:eo.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 xv.createElement(Xf.Provider,{value:S},t.children)}i(al,"WidgetInfo");function jf(){let t=Iv(Xf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(jf,"useWidget");function Ti(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Gf();return Kf(()=>{n&&r(n)},[n]),Av(()=>{Pl({API_KEY:o?.apiKey||vn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Kf(()=>{t.config?.signers?.customSolanaRPC&&Ev("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(zn,{config:o,onUpdateState:e},sl.createElement(Vf,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(Ti,"WidgetProvider");function Yf(t){let e=t.config?.externalWallets;return ki.createElement(ip,null,e?ki.createElement(Si,null):ki.createElement(Ti,{config:t.config??Bi},ki.createElement(Si,null)))}i(Yf,"Widget");export{jV as EventSeverity,KV as MainEvents,i2 as Networks,l2 as PendingSwapNetworkStatus,YV as RouteEventType,wi as SUPPORTED_FONTS,ZV as StepEventType,JV as StepExecutionBlockedEventStatus,RV as StepExecutionEventStatus,ye as UI_ID,n2 as WalletEvents,a2 as WalletTypes,Yf as Widget,Ti as WidgetProvider,zn as WidgetWallets,ra as customizedThemeTokens,o2 as readAccountAddress,wr as useWallets,jf as useWidget,e2 as useWidgetEvents};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|