@rango-dev/widget-embedded 0.30.1-next.0 → 0.30.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var og=Object.defineProperty;var i=(t,e)=>og(t,"name",{value:e,configurable:!0});import{EventSeverity as P2,RouteEventType as _2,StepEventType as D2,StepExecutionBlockedEventStatus as $2,StepExecutionEventStatus as F2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as U2,useWallets as br,Events as Q2}from"@rango-dev/wallets-react";import{Networks as q2,WalletTypes as H2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as V2}from"rango-types";import{UI_ID as ng}from"@rango-dev/ui";var Nn="c6381a79-2817-4602-83bf-6a641a409e32",gl="https://api.rango.exchange",hl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...ng};var yl="Roboto",bi=[{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 zi,Provider as Zg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Jg}from"rango-sdk";import Vn,{createContext as Rg,useEffect as up,useMemo as eh,useRef as mp}from"react";import{useEffect as xg}from"react";import{create as kg}from"zustand";import{subscribeWithSelector as vg}from"zustand/middleware";import rg from"mitt";var we=rg(),ig={on:we.on,off:we.off};import{RangoClient as Cg}from"rango-sdk";import{BlockchainCategories as mg,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as dg}from"@rango-dev/wallets-react";import{detectInstallLink as fg,getCosmosExperimentalChainInfo as gg,isEvmAddress as hg,KEPLR_COMPATIBLE_WALLETS as mx,Networks as Nl}from"@rango-dev/wallets-shared";import Li from"bignumber.js";import{isCosmosBlockchain as yg}from"rango-types";import ag from"bignumber.js";var $e=new ag(0);import{WalletTypes as sg}from"@rango-dev/wallets-shared";var Sl=[sg.LEAP];import{BlockchainCategories as Ei,WalletState as ug}from"@rango-dev/ui";import{TransactionType as Wn}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Ni(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ni,"areEqual");function xl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(xl,"debounce");function Et(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Et,"containsText");function kl(t,e){return t.toLowerCase()===e.toLowerCase()}i(kl,"exactText");function vl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(vl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),zo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function wl(t,e,o){let n=!!e&&kl(e,t),r=!!o&&kl(o,t);return n!==r?n?-1:1:0}i(wl,"compareExactMatchText");function Ii(t,e,o){let n=!!e&&Et(e,t),r=!!o&&Et(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ii,"compareContainsText");function Ai(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ai,"compareStartWithText");function bl(t,e,o){if(!o)return 0;let n=wl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=wl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ai(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ii(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ai(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ii(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ai(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ii(o,t.address,e.address);if(r!==0)return r}return 0}i(bl,"compareWithSearchFor");var Mn=i((t,e)=>{switch(e){case Ei.ALL:return!0;case Ei.UTXO:return t===Wn.TRANSFER;case Ei.OTHER:return t!==Wn.TRANSFER&&t!==Wn.COSMOS&&t!==Wn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),El=i(t=>bi.find(o=>o.value===t)?.url,"getFontUrlByName");function Ln(t,e){let o=!!t.find(n=>n.state===ug.CONNECTED);return e===!1&&o}i(Ln,"isSingleWalletActive");function Bn(t,e){return e.find(o=>o.name===t)?.displayName}i(Bn,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}i(Re,"getBlockchainShortNameFor");function Il(t,e){return e.find(o=>o.name===t)?.logo}i(Il,"getBlockchainImage");function qo(t,e){return e.find(o=>o.id===t)?.title}i(qo,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>o.name===t)??null}i(Wi,"findBlockchain");function Mi(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Mi,"isTokenNative");function Ft(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ft,"createTokenHash");import{BigNumber as Al}from"bignumber.js";var Ho=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"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Al(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Al(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 Pn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var St=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Go=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Bi(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}i(Bi,"mapStatusToWalletState");function Wl(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:m,needsDerivationPath:f}=e(r),d=To(m.map(S=>S.type)),g=Bi(t(r));return{title:a,image:s,link:fg(l),state:g,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d,needsDerivationPath:f}})}i(Wl,"mapWalletTypesToWalletInfo");function $n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i($n,"walletAndSupportedChainsNames");function Ml(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=dg(p),m=l.length>0,f=l.includes(c),d=c===Nl.Unknown;if(m&&!f&&!d)return;let S=c===Nl.Unknown&&hg(u);if(d&&!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(Ml,"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 m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Fn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Fn,"isAccountAndWalletMatched");function Ll(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 Li(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Ll,"makeBalanceFor");function Bl(t){return{...t,loading:!1,error:!0}}i(Bl,"resetConnectedWalletState");var Pl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Li(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return Sg(r)},"calculateWalletUsdValue");function Sg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Sg,"numberWithThousandSeparator");var On=i((t,e)=>{let o=gg(Object.entries(t).map(([,n])=>n).filter(yg));return o&&o[e]?.experimental},"isExperimentalChain");function Un(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Un,"formatBalance");function _l(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(_l,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Dl(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}i(Dl,"sortWalletsBasedOnConnectionState");function Qn(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(Qn,"getConciseAddress");function $l({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i($l,"getAddress");function zn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Li(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},r=o?Ft({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(zn,"makeTokensBalance");var Fl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ol(t){return t.map(e=>e.state).join("-")}i(Ol,"hashWalletsState");function Ul(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(Ul,"filterBlockchainsByWalletTypes");function Ql(t,e){return e===mg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Mn(n,e))return!0;return!1})}i(Ql,"filterWalletsByCategory");var Pi={API_KEY:Nn};function It(t){return Pi[t]||""}i(It,"getConfig");function zl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Pi=e,Pi}i(zl,"initConfig");var ql=20,Hl=25,_i="theme-widget",Vo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Di=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Gl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var qn,Ot=i(()=>qn||(qn=new Cg(It("API_KEY"),It("BASE_URL")),qn),"httpService");import{WidgetEvents as Vl}from"@rango-dev/queue-manager-rango-preset";var $i=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))($i||{}),Fi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Fi||{}),Xo=(r=>(r[r.RouteEvent=Vl.RouteEvent]="RouteEvent",r[r.StepEvent=Vl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Xo||{});var Tg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ut=Tg;var te=Ut(kg()(vg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});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=>{n.connectedWallets.find(l=>l.walletType===o)&&we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});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:zn(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=>Fn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(S=>Fn(S,f)),g=p.find(S=>S.address===f.address&&S.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:Ll(g,n),loading:!1}:f});return{loading:!1,balances:zn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Fn(m,c))?Bl(c):c);return{loading:!1,balances:zn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ft(o);return n[r]??null}}))));import{allProviders as wg}from"@rango-dev/provider-all";function Hn(t,e){let o=wg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});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(Hn,"matchAndGenerateProviders");function Xl(t,e){return Hn(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function Kl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Kl,"hashProviders");function Oi(t,e){let o=te.use.clearConnectedWallet(),n=Hn(t,e);return xg(()=>{o(),n=Hn(t,e)},[Kl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Oi,"useWalletProviders");import Hg,{createContext as Gg,useContext as Vg,useEffect as Xg,useRef as Kg}from"react";import{create as zg}from"zustand";import{persist as qg}from"zustand/middleware";var Ui={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},bg={clientUrl:void 0},Eg={liquiditySources:void 0},jl=i((t,e,o)=>({config:{...Ui,...t},iframe:bg,campaignMode:Eg,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 Gn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(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(Gn,"getUniqueSwappersGroups");function Yl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Yl,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function Zl(t,e){return e?.[t]==="enabled"}i(Zl,"isFeatureEnabled");var Jl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_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()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Vo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(Et(c.symbol,o.searchFor)||Et(c.address||"",o.searchFor)||Et(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=_l(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Mi(c,g),y=Mi(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=bl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Ft(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(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(Yl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Ft(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Ig,English as Ag,Finland as Ng,French as Wg,German as Mg,Greece as Lg,Italian as Bg,Japanese as Pg,Netherlands as _g,Poland as Dg,Portuguese as $g,Russian as Fg,Spanish as Og,Swedish as Ug,Ukrainian as Qg}from"@rango-dev/ui";var Rl=[{title:"English",label:"English",local:"en",SVGFlag:Ag},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Og},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Wg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Pg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:$g},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Ig},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Fg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Mg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Qg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ug},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Ng},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:_g},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Lg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Bg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Dg}],ko="en";var ep=[.5,1,3],tp=1,op=5,np=100,rp=0;var ip=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:tp,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=To(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=et("theme",n),s=et("language",n),l=et("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||ko},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||ko}})}}),"createSettingsSlice");function ap(t){return zg()(qg((...e)=>({...Jl(...e),...ip(...e),...jl(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(ap,"createAppStore");var sp=Gg(null);function h(){let t=Vg(sp);if(Xg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function lp(t){let e=Kg();return e.current||(e.current=ap(t.config)),Hg.createElement(sp.Provider,{value:e.current},t.children)}i(lp,"AppStoreProvider");import{create as Yg}from"zustand";var pp="rango-widget";var Ko=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(pp),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 ae=Ut(Yg()((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 Ko({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Xn=Rg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function th(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Oi(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=mp(),f=mp();up(()=>{n().catch(console.log)},[]),up(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Jg).map(y=>y.name),g=i((y,T,k,v,I)=>{if(T===zi.ACCOUNTS)if(k){let N=$n(I.supportedBlockchains),x=Ml(y,k,d,N,I.isContractWallet);x.length&&u(x,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===zi.ACCOUNTS&&v.connected){let N=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===zi.NETWORK&&v.network){let N=`${y}-${v.network}`;m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,I)},"onUpdateState"),S=ae.use.isActiveTab(),C=eh(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Vn.createElement(Xn.Provider,{value:C},Vn.createElement(Zg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(th,"Main");function Kn(t){let{config:e,...o}=t;return Vn.createElement(lp,{config:e},Vn.createElement(th,{...o,config:e}))}i(Kn,"WidgetWallets");import xi from"react";import oh,{Fragment as nh}from"react";import{MemoryRouter as rh,useInRouterContext as ih}from"react-router";function dp({children:t}){let o=ih()?nh:rh;return oh.createElement(o,null,t)}i(dp,"AppRouter");import{I18nManager as yw}from"@rango-dev/ui";import ml from"react";import Ge from"react";import{useRoutes as nw}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as xo,useRef as ir}from"react";import Oe from"bignumber.js";import{create as lh}from"zustand";import{subscribeWithSelector as ph}from"zustand/middleware";import{getLastSuccessfulStep as sh}from"@rango-dev/queue-manager-rango-preset";import XE from"bignumber.js";function qi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(qi,"getFeeLabel");var Hi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],fp=30;import{i18n as ct}from"@lingui/core";import{RouteEventType as ME}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as Zn}from"rango-types";function jn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.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:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function gp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(gp,"getQuoteErrorMessage");import{i18n as Yn}from"@lingui/core";var to=i(()=>({connectWallet:Yn.t("Connect Wallet"),swap:Yn.t("Swap"),swapAnyway:Yn.t("Swap anyway"),ethWarning:Yn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function hp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}i(hp,"hasHighValueLoss");function yp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(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(yp,"hasLimitError");function Sp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(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 Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ct.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ct.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ct.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ct.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Sp,"getLimitErrorMessage");function Cp(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(Cp,"getSwapButtonState");function Gi(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Gi,"canComputePriceImpact");function Vi(t,e){let o=$e;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Fe(r.amount).multipliedBy(a||0))}return o}i(Vi,"getUsdFeeOfStep");function Jn(t,e){return t.reduce((o,n)=>o.plus(Vi(n,e)),$e)}i(Jn,"getTotalFeeInUsd");function Xi(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}i(Xi,"getUsdFee");function Tp(t){return t.reduce((e,o)=>e.plus(Xi(o)),$e)}i(Tp,"getTotalFeesInUsd");function kp(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(kp,"getFeesGroup");function vp(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(vp,"checkSlippageErrors");function wp(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(wp,"checkSlippageWarnings");function Rn(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(Rn,"getMinRequiredSlippage");function xp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(xp,"hasProperSlippage");function bp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,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:m??void 0,affiliateWallets:f??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(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(bp,"createQuoteRequestBody");function Ep(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ep,"getWalletsForNewSwap");function vo(t){return t?.outputAmount||null}i(vo,"getQuoteOutputAmount");function Ip(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}i(Ip,"getPercentageChange");function Ap(t,e){let o=vo(t),n=vo(e);if(!o||!n)return!1;let r=tt(o,n);return r?r<=-1:!0}i(Ap,"isOutputAmountChangedALot");function Np(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=>_p(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Fe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Fe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ct.t(" for input and network fee")),ct.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:Re(s.asset.blockchain,o)}})})}i(Np,"generateBalanceWarnings");function er(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}i(er,"calcOutputUsdValue");function jo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Zn.NetworkChanged}i(jo,"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,"")),jo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Zn.WaitingForConnectingWallet:n=n||ct.t("Waiting for connecting wallet");break;case Zn.WaitingForQueue:n=n||ct.t("Waiting for other running tasks to be finished");break;case Zn.WaitingForNetworkChange:n=n||ct.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 Mp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Mp,"getLastConvertedTokenInFailedSwap");function Lp(t){return t.status==="failed"}i(Lp,"shouldRetrySwap");function Bp(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(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?jn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Bp,"isConfirmSwapDisabled");function Pp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Pp,"isTokensIdentical");function or(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(or,"getQuoteToTokenUsdPrice");function Ki(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ki,"isNumberOfSwapsChanged");function ji(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ni(o,n)}i(ji,"isQuoteSwappersUpdated");function Yi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ni(o,n)}i(Yi,"isQuoteInternalCoinsUpdated");function $p(t,e){return Ki(t,e)||ji(t,e)||Yi(t,e)}i($p,"isQuoteChanged");function _p(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(_p,"getRequiredBalanceOfWallet");function At(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(At,"getPriceImpactLevel");function nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=sh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Wi(a?a.toBlockchain:n.fromBlockchain,e),p=Wi(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(nr,"createRetryQuote");function wo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=tt(s.toString(),l.toString());if(!!c&&hp(s,c)){let f=Jn(t?.swaps,r),d=At(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Rn(t.swaps),u=a>op;if(xp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:wp(t,a),minRequiredSlippage:p};return null}i(wo,"generateQuoteWarnings");function tt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ip(t.toString(),e.toString());return n&&n<0?n:null}i(tt,"getPriceImpact");var Fp=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"),rr=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"),Op=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"),Up=i(t=>{let e=i((o,n)=>{let r=Hi.indexOf(o.value),a=Hi.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 Oe(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(lh()(ph(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Oe(0),outputUsdValue:new Oe(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=$e;return Go(o.inputAmount)?(e&&(n=e?.outputAmount?new Oe(e?.outputAmount):null,r=er(e?.outputAmount,or(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 Oe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Oe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},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:new Oe(0)}})},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 Oe(0),outputUsdValue:new Oe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new Oe(0),toBlockchain:r,toToken:a,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 Oe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Oe(0),inputUsdValue:new Oe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Oe(0),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})})))),Qp=Y.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function zp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Y(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,I=c?.to?.blockchains,N=ir(void 0),x=ir(void 0),w=ir(void 0),b=ir(void 0);xo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.from?.blockchain),_=c?.from?.token,Q=_&&g(_);(E||!E&&w.current)&&n(E??null),Q?a({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&N.current&&a({token:null}),w.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),xo(()=>{Vo(s,T)&&a({token:null}),Di(p,k)&&n(null)},[T,k]),xo(()=>{Vo(l,v)&&a({token:null}),Di(u,I)&&o(null)},[v,I]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.to?.blockchain),_=c?.to?.token,Q=_&&g(_);(E||!E&&b.current)&&o(E??null),Q?e({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&x.current&&e({token:null}),b.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),xo(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(zp,"useSyncStoresWithConfig");import{useEffect as Ri,useRef as ch}from"react";import{useInRouterContext as uh,useLocation as mh,useSearchParams as dh}from"react-router-dom";function Zi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Zi,"convertTokenSearchParamToAsset");function Ji(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ji,"tokenToSearchParam");function ea(){let t=mh(),[e,o]=dh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=Y(),d=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=uh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=ch(),{findToken:I}=h(),N=i(()=>{let w={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(w[B]=Z);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),_=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:E,fromToken:_,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:w}},"getUrlSearchParams"),x=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Ri(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:E}=N();C&&d==="success"&&x({fromBlockchain:n?.name,fromToken:Ji(a),toBlockchain:r?.name,toToken:Ji(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),Ri(()=>{if(!C)return;let w=N();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&f(w.fromAmount),d==="success"){let b=g.find(A=>A.name===w.fromBlockchain),E=w.fromToken&&b?I(Zi(w.fromToken,b)):void 0,_=g.find(A=>A.name===w.toBlockchain),Q=w.toToken&&_?I(Zi(w.toToken,_)):void 0;b&&(p(b),E&&c({token:E,meta:{blockchains:g,tokens:S}})),_&&(u(_),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[d]),Ri(()=>{let{clientUrl:w,liquiditySources:b}=N();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(ea,"useSyncUrlAndStore");import{i18n as os}from"@lingui/core";import{useManager as FC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as OC,css as rs,Divider as ns,IconButton as km,styled as UC,Typography as QC,WalletIcon as zC}from"@rango-dev/ui";import Ie,{useEffect as Xr,useLayoutEffect as qC,useRef as HC,useState as dn}from"react";import{useNavigate as GC}from"react-router-dom";import{i18n as kt}from"@lingui/core";import{Alert as _a,BalanceErrors as vS,Button as Jc,ChevronDownIcon as wS,ChevronLeftIcon as xS,CloseIcon as bS,Divider as tn,IconButton as Rc,MessageBox as ES,PasteIcon as IS,Typography as Er,WalletIcon as AS}from"@rango-dev/ui";import $,{useCallback as NS,useEffect as eu,useMemo as WS,useRef as MS,useState as uo}from"react";import{useNavigate as LS}from"react-router-dom";import{i18n as ar}from"@lingui/core";function sr(t){switch(t.type){case 0:return ar.t("Route has been updated.");case 3:return ar.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return ar.t("Route swappers has been updated.");case 2:return ar.t("Route internal coins has been updated.");default:return""}}i(sr,"getQuoteUpdateWarningMessage");import{Modal as gh}from"@rango-dev/ui";import hh from"react";function re(t){let{watermark:e}=ae();return hh.createElement(gh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import ur,{useRef as Ch}from"react";import*as bo from"@radix-ui/react-collapsible";import{keyframes as Hp,styled as lr}from"@rango-dev/ui";var ta=300,yh=Hp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Sh=Hp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Gp=lr(bo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),oa=lr(bo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),pr=lr(bo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${yh} ${ta}ms ease-out`},false:{animation:`${Sh} ${ta}ms ease-out`}}}}),cr=lr("div",{transition:`all ${ta}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function mr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Ch(null);return ur.createElement(Gp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s),ur.createElement(pr,{className:"collapsible_content",open:e},r),l==="bottom"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s))}i(mr,"CustomCollapsible");import{css as Vp,darkTheme as Yo,IconButton as Th,styled as ot,TextField as kh}from"@rango-dev/ui";var Xp=ot("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Kp=ot("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),vh=ot("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),jp=ot(vh,{alignSelf:"stretch",minHeight:"93px"}),Yp=ot("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Zp=ot(Th,{position:"absolute",left:"$20"}),Jp=ot("div",{paddingTop:"$20"}),Rp=Vp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ec=ot("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),tc=Vp({paddingTop:"$5"}),oc=ot("div",{display:"flex"}),nc=ot(kh,{backgroundColor:"$neutral100",padding:"$15"}),rc=ot("div",{overflow:"visible",width:"100%"}),ic=ot("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Yo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as ut}from"@lingui/core";import{Button as SS,Divider as Ba,Image as CS,MessageBox as xr,SelectableWallet as TS,Typography as jc,WalletState as Yc}from"@rango-dev/ui";import ue,{useEffect as Zc,useState as co}from"react";import{WalletState as na}from"@rango-dev/ui";import{useWallets as wh}from"@rango-dev/wallets-react";import{detectMobileScreens as xh,KEPLR_COMPATIBLE_WALLETS as bh,WalletTypes as Eo}from"@rango-dev/wallets-shared";import{useCallback as Eh,useEffect as Ih,useState as Ah}from"react";var Nh=Object.values(Eo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=wh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Nh,d=Wl(s,p,f,e);d=xh()?d.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):d;let g=Dl(d),[S,C]=Ah(""),y=i(x=>!c.find(w=>w.walletType===x&&w.chain===e),"isExperimentalChainNotAdded"),T=i(async(x,w)=>{let b=s(x);try{if(S&&C(""),b.connected)await l(x);else{if(Ln(d,a.multiWallets))return;o?.(x),await u(x,void 0,w),n?.(x)}}catch(E){r?.(E?.message),C("Error: "+E?.message)}},"handleClick"),k=Eh(()=>{let x=d?.filter(w=>w.state===na.CONNECTING)||[];for(let w of x)l(w.type)},[Ol(d)]),v=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");Ih(()=>()=>{k()},[]);let I=i(x=>{let w=x.find(E=>E.type===Eo.DEFAULT);return!w||w.state===na.NOT_INSTALLED?!1:x.filter(E=>E.state!=na.NOT_INSTALLED&&![Eo.DEFAULT,Eo.WALLET_CONNECT_2,Eo.LEDGER].includes(E.type)&&p(E.type).supportedChains.filter(_=>_.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,w,b)=>On(b,w)&&y(x)&&!bh.includes(x)||x==Eo.DEFAULT&&!I(d),"shouldExcludeWallet");return{list:g.filter(x=>!N(x.type,e??"",m)),error:S,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(no,"useWalletList");import{i18n as zc}from"@lingui/core";import{Divider as pS,getCategoriesCount as cS,SelectableCategoryList as uS,styled as Hc,Typography as mS,Wallet as dS,WalletState as qc}from"@rango-dev/ui";import it,{useState as en}from"react";import{useManager as Py}from"@rango-dev/queue-manager-react";import{BottomLogo as _y,Divider as Wc,Header as Dy}from"@rango-dev/ui";import Te,{useEffect as ba,useRef as Mc,useState as $y}from"react";import{useRef as Wh}from"react";function dr(){return window.self!==window.top}i(dr,"isAppLoadedIntoIframe");function ra(){let t=Wh(null),{iframe:e}=h(),o=dr()&&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(ra,"useIframe");import{useNavigate as Mh}from"react-router-dom";function nt(){let t=Mh();return()=>t(-1)}i(nt,"useNavigateBack");import{createTheme as ua,darkTheme as Gh,lightTheme as Vh}from"@rango-dev/ui";import{useEffect as Xh,useState as Kh}from"react";import{theme as qh,darkColors as Hh}from"@rango-dev/ui";import pa from"react";function Lh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Lh,"expandShortHexColor");function Bh(t){return/[0-9]+$/.test(t)}i(Bh,"isOverridingColor");function Ph(t,e){return t.padStart(e,"0")}i(Ph,"pad");function ia(t){let e=Math.min(Math.max(Math.round(t),0),255);return Ph(e.toString(16),2)}i(ia,"intToHex");function _h(t){return`#${ia(t.red)}${ia(t.green)}${ia(t.blue)}`}i(_h,"rgbToHex");function Dh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Dh,"hexToRGB");function $h(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i($h,"generateShade");function Fh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Fh,"generateTint");function Oh(t){return ac(t,$h)}i(Oh,"calculateShades");function Uh(t){return ac(t,Fh)}i(Uh,"calculateTints");function ac(t,e){let o=Dh(t),n=[];for(let r=1;r<9;r++)n.push(_h(e(o,r)));return n}i(ac,"calculateColors");function aa(t,e,o){let a=Uh(t).reverse().concat(t),s=Oh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(aa,"createTintsAndShades");function sa(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Bh(r)){let p=Lh(a);Object.assign(n,aa(p,r,s))}}return{...n,...e}}i(sa,"expandToGenerateThemeColors");var sc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Qh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=sc(o%52)+e;return sc(o%52)+e},"toAlphabeticName"),zh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),la=i(t=>Qh(zh(5381,JSON.stringify(t))>>>0),"toHash");function ca(t){let e=qh.colors,o={...e,...Hh},n,r;if(t?.light){let s={colors:sa(e,t.light)};n={id:`${_i}-light-${la(s)}`,tokens:s}}if(t?.dark){let s={colors:sa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${_i}-dark-${la(s)}`,tokens:s}}return{light:n,dark:r}}i(ca,"customizedThemeTokens");function lc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>pa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(pa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(pa.cloneElement(e,{key:l}))}}),o}i(lc,"joinList");function fr(t){let{colors:e,fontFamily:o=yl,borderRadius:n=ql,secondaryBorderRadius:r=Hl}=t,[a,s]=Kh("light"),{theme:l}=h(),{dark:p,light:u}=ca(e),c=ua({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Vh.className],f=[c.className,Gh.className];if(u){let g=ua(u.id,u.tokens);m.push(g.className)}if(p){let g=ua(p.id,p.tokens);f.push(g.className)}return Xh(()=>{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=m.join(" "),S=f.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(fr,"useTheme");var rt=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 pc}from"@lingui/core";import{Alert as jh,Button as Yh}from"@rango-dev/ui";import cc from"react";function ma(t){return cc.createElement(jh,{action:cc.createElement(Yh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},pc.t("Activate this tab")),type:"warning",variant:"alarm",title:pc.t("Another tab is open and handles transactions.")})}i(ma,"ActivateTabAlert");import{i18n as da}from"@lingui/core";import{Button as Zh,Divider as Jh,MessageBox as Rh}from"@rango-dev/ui";import gr from"react";function fa(t){let{open:e,onClose:o,onConfirm:n}=t;return gr.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},gr.createElement(Rh,{title:da.t("Activate current tab"),type:"warning",description:da.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.")},gr.createElement(Jh,{size:20}),gr.createElement(Zh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},da.t("Confirm"))))}i(fa,"ActivateTabModal");import{ChevronLeftIcon as oy}from"@rango-dev/ui";import yc from"react";import{css as ey,darkTheme as uc,IconButton as ty,styled as ro}from"@rango-dev/ui";var Tt=ro(ty,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${uc} &`]:{backgroundColor:"$neutral"}}}),mc=ro("div",{position:"absolute",background:"$secondary500",[`.${uc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Io=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),dc=ro("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"}}}}),fc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),gc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),hc=ey({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),hr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ga(t){return yc.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},yc.createElement(oy,{color:"black",size:16}))}i(ga,"BackButton");import{i18n as ny}from"@lingui/core";import{Button as ry,Typography as iy}from"@rango-dev/ui";import ha from"react";function ya(t){return ha.createElement(Io,null,ha.createElement(ry,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ha.createElement(iy,{variant:"label",size:"medium",color:"error500"},ny.t("Cancel"))))}i(ya,"CancelButton");import{i18n as ay}from"@lingui/core";import{Image as sy,Tooltip as ly,WalletIcon as py}from"@rango-dev/ui";import io from"react";function Sa(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:hc()},o.map(r=>io.createElement(hr,{key:r.title},io.createElement(sy,{src:r.image,size:14})))):ay.t("Connect Wallet");return io.createElement(ly,{container:t.container,side:"bottom",content:n},io.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(mc,null),io.createElement(py,{size:18,color:"black"})))}i(Sa,"WalletButton");import{i18n as Sr}from"@lingui/core";import{NotificationsIcon as by,Popover as Ey,SettingsIcon as Iy,Tooltip as Cr,TransactionIcon as Ay}from"@rango-dev/ui";import We from"react";import{Notifications as dy}from"@rango-dev/ui";import fy from"react";import{useNavigate as gy}from"react-router-dom";import{create as cy}from"zustand";import{persist as uy,subscribeWithSelector as my}from"zustand/middleware";var xe=Ut(cy()(uy(my((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.sort((r,a)=>a.creationTime-r.creationTime):[]},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}})));function Ca(){let t=gy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return fy.createElement(dy,{list:n,getBlockchainImage:l=>Il(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ca,"NotificationContent");import{useManager as hy}from"@rango-dev/queue-manager-react";import{InProgressIcon as yy}from"@rango-dev/ui";import Sc from"react";var Sy=i(()=>{let{manager:t}=hy();return rt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Sc.createElement(gc,null,Sc.createElement(yy,{color:"info",size:6})):null},"InProgressTransactionBadge"),Cc=Sy;import{EventSeverity as Cy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ty}from"@rango-dev/ui";import Tc from"react";function kc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Cy.WARNING);return o?Tc.createElement(dc,{isSever:n},Tc.createElement(Ty,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(kc,"NotificationsBadge");import{RefreshProgressButton as ky}from"@rango-dev/ui";import Ta,{useEffect as vy,useState as vc}from"react";var wy=1e3,wc=60,xy=100;function yr({onClick:t}){let[e,o]=vc(0),[n,r]=vc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");vy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===wc&&l()},wy):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 Ta.createElement(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ta.createElement(fc,{onTransitionEnd:()=>r(!1),isRefetched:n},Ta.createElement(ky,{size:22,color:t?"black":"gray",progress:e/wc*xy})))}i(yr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Cr,{container:a||P(),side:"top",content:Sr.t("Refresh")},We.createElement(yr,{onClick:e})),!l&&We.createElement(Ey,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:We.createElement(Ca,null)},We.createElement("div",null,We.createElement(Cr,{container:P(),side:"top",content:Sr.t("Notifications")},We.createElement(Tt,{size:"small",variant:"ghost"},We.createElement(by,{size:18,color:"black"}),We.createElement(kc,null))))),!r.includes("settings")&&We.createElement(Cr,{container:P(),side:"top",content:Sr.t("Settings")},We.createElement(Tt,{size:"small",variant:"ghost",onClick:n},We.createElement(Iy,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Cr,{container:P(),side:"top",content:Sr.t("Transactions History")},We.createElement(Tt,{size:"small",variant:"ghost",onClick:o},We.createElement(Ay,{size:18,color:"black"}),We.createElement(Cc,null))))}i(ao,"HeaderButtons");import{i18n as ka}from"@lingui/core";import{Divider as bc,MessageBox as My,RefreshIcon as Ly}from"@rango-dev/ui";import Ao from"react";import{Button as Ny,styled as Wy}from"@rango-dev/ui";var xc=Wy(Ny,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function va(t){let{open:e,onClose:o}=t;return Ao.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},Ao.createElement(My,{title:ka.t("Something went wrong"),type:"error",description:ka.t("Something went wrong. Please refresh the app.")},Ao.createElement(bc,{size:30}),Ao.createElement(xc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Ao.createElement(Ly,{size:20,color:"primary"}),Ao.createElement(bc,{size:4,direction:"horizontal"}),ka.t("Refresh"))))}i(va,"RefreshModal");function wa(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(wa,"onScrollContentAttachStatusToContainer");import{css as By,styled as xa}from"@rango-dev/ui";var Ec="700px",Tr=By({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ic=xa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ec},fixed:{height:Ec}}}}),Ac=xa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Nc=xa("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 ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ra(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=$y(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ae(),g=d==="FULL",{activeTheme:S}=fr(f||{}),C=et("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:I}=ae(),N=nt(),{manager:x}=Py(),b=rt(x).map(({swap:j})=>j).some(j=>j.status==="running"),E=i(()=>I(eo.forceClaim,b),"onActivateTab"),_=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Mc(null),z=Mc(null);return ba(()=>(dr()&&z.current&&e(z.current),()=>{o()}),[]),ba(()=>(A.current?.addEventListener("scroll",wa),()=>{A.current?.removeEventListener("scroll",wa)}),[]),ba(()=>{u(l==="failed")},[l]),Te.createElement(Ic,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${Tr()}`,ref:z},Te.createElement(Dy,{prefix:Te.createElement(Te.Fragment,null,Q&&Te.createElement(ga,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!C&&Te.createElement(Sa,{container:P(),onClick:_,isConnected:!!c?.length}),r.onCancel&&Te.createElement(ya,{onClick:r.onCancel}))}),Te.createElement(Ac,{ref:A},n),Te.createElement(fa,{open:k,onClose:()=>v(!1),onConfirm:E}),Te.createElement(Nc,null,Te.createElement("div",{className:"footer__content"},T&&!y&&Te.createElement("div",{className:"footer__alert"},Te.createElement(ma,{onActivateTab:E}),Te.createElement(Wc,{size:10})),a),Te.createElement(Wc,{size:12}),Te.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Te.createElement(_y,null))),Te.createElement(va,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Fy}from"@rango-dev/ui";var Lc="$20 $20 $10 $20",Zo=Fy("div",{padding:Lc,overflowY:"auto",flexGrow:1});import{styled as Oy}from"@rango-dev/ui";var fe=Oy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Lo}from"@lingui/core";import{Button as qy,Divider as _c,Image as Hy,MessageBox as Gy,Select as Vy,TextField as Xy}from"@rango-dev/ui";import qe,{useEffect as Ky,useState as Dc}from"react";import{Namespace as No}from"@rango-dev/wallets-shared";var Jo={[No.Evm]:{mainBlockchain:"ETH",title:"Ethereum",derivationPaths:[{id:"metamask",label:"Metamask (m/44'/60'/0'/0/index)",generateDerivationPath:t=>`44'/60'/0'/0/${t}`},{id:"ledgerLive",label:"LedgerLive (m/44'/60'/index'/0/0)",generateDerivationPath:t=>`44'/60'/${t}'/0/0`},{id:"legacy",label:"Legacy (m/44'/60'/0'/index)",generateDerivationPath:t=>`44'/60'/0'/${t}`}]},[No.Solana]:{mainBlockchain:"SOLANA",title:"Solana",derivationPaths:[{id:"(m/44'/501'/index')",label:"(m/44'/501'/index')",generateDerivationPath:t=>`44'/501'/${t}'`},{id:"(m/44'/501'/0'/index)",label:"(m/44'/501'/0'/index)",generateDerivationPath:t=>`44'/501'/0'/${t}`}]},[No.Cosmos]:{mainBlockchain:"COSMOS",title:"Cosmos"},[No.Utxo]:{mainBlockchain:"BTC",title:"Utxo"},[No.Starknet]:{title:"Starknet",mainBlockchain:"STARKNET"},[No.Tron]:{title:"Tron",mainBlockchain:"TRON"}};import{keyframes as Uy,styled as kr}from"@rango-dev/ui";var TW=kr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=kr("div",{position:"relative"}),Qy=Uy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mo=kr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Qy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vr=kr("div",{"& img":{borderRadius:"50%"}});import{styled as Bc,Typography as zy}from"@rango-dev/ui";var Pc=Bc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ea=Bc(zy,{paddingLeft:"$10"}),Ia={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Fc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function $c(t){let e=t?Jo[t].derivationPaths:null;return e?[...e,Fc]:[]}i($c,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Dc(null),[u,c]=Dc("0"),m=l===Fc.id,f=$c(n),d=i(({value:S})=>{let C=f?.find(y=>y.id===S);C&&p(C.id)},"handleDerivationPathItemClick"),g=i(()=>{let S=f.find(C=>C.id===l);if(S)o(S.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Ky(()=>{p($c(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement(_c,{size:20}),qe.createElement(Gy,{type:"info",title:Lo.t("Select Derivation Path"),description:Lo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:qe.createElement(Wo,null,qe.createElement(vr,null,qe.createElement(Hy,{src:r,size:45})),qe.createElement(Mo,null))}),qe.createElement(Pc,null,qe.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),qe.createElement(Vy,{value:l||"",options:f.map(S=>({value:S.id,label:S.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ia}}),qe.createElement(_c,{size:20}),qe.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},m?Lo.t("Enter Path"):Lo.t("Enter Index")),qe.createElement(Xy,{type:m?"text":"number",variant:"contained",value:u,onChange:S=>c(S.target.value),style:Ia})),qe.createElement(qy,{type:"primary",onClick:g,disabled:!f||!l||!u},Lo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as Zy}from"@rango-dev/ui";import Na from"react";import{i18n as Bo}from"@lingui/core";import{Image as jy,MessageBox as Aa,WalletState as Yy}from"@rango-dev/ui";import lo from"react";function Oc(t){let{state:e,image:o,error:n}=t;return e===Yy.CONNECTED?lo.createElement(Aa,{type:"success",title:Bo.t("Wallet Connected"),description:Bo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Aa,{type:"error",title:Bo.t("Failed to Connect"),description:n||Bo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Aa,{type:"loading",title:Bo.t("Connecting to your wallet"),description:Bo.t("Click connect in your wallet popup."),icon:lo.createElement(Wo,null,lo.createElement(vr,null,lo.createElement(jy,{src:o,size:45})),lo.createElement(Mo,null))})}i(Oc,"ModalContent");function Ro(t){let{open:e,onClose:o,...n}=t;return Na.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Na.createElement(Oc,{...n}),Na.createElement(Zy,{direction:"vertical",size:32}))}i(Ro,"WalletModal");import{i18n as Wa}from"@lingui/core";import{Button as Ry,Checkbox as eS,Divider as tS,Image as Qc,ListItemButton as oS,MessageBox as nS,Radio as rS,RadioRoot as iS}from"@rango-dev/ui";import Me,{useMemo as aS,useState as sS}from"react";import{styled as Jy}from"@rango-dev/ui";var Uc=Jy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var lS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=sS([]),a=h().blockchains(),s=aS(()=>o?.map(u=>({name:u,logo:lS(a,Jo[u].mainBlockchain),title:Jo[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Me.createElement(iS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(tS,{size:20}),Me.createElement(nS,{type:"info",title:Wa.t("Select chain types"),description:Wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Me.createElement(Wo,null,Me.createElement(hr,null,Me.createElement(Qc,{src:t.image,size:45})),Me.createElement(Mo,null))}),Me.createElement(Uc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(oS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(Qc,{src:u.logo,size:22}),end:e?Me.createElement(rS,{value:u.name}):Me.createElement(eS,{checked:n.includes(u.name)})}))))),Me.createElement(Ry,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Wa.t("Confirm")))}i(po,"WalletNamespacesModal");var fS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),gS=Hc(fe,{textAlign:"center"}),wr=3e3,Ma=300;function Gc(){let{fetchStatus:t}=h(),[e,o]=en("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=en(!1),[l,p]=en(null),[u,c]=en(null),[m,f]=en(""),d=null,g=ae.use.isActiveTab(),{list:S,handleClick:C,error:y,disconnectConnectingWallets:T}=no({onBeforeConnect:G=>{d=setTimeout(()=>{s(!0),f(G)},Ma)},onConnect:()=>{d&&clearTimeout(d),setTimeout(()=>{s(!1)},wr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),I=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=S.find(G=>G.type===m),x=N?.image||"",w=N?.state||qc.NOT_INSTALLED,b=Ul(S,n),_=cS(b)!==1,Q=Ql(S,e),A=i((G,B)=>{Ln(S,r.multiWallets)||(B.namespaces&&B.state===qc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):C(G))},"handleWalletItemClick"),z=i(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):C(l?.providerType,G.map(Z=>({namespace:Z}))),v()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&C(u.providerType,[{namespace:u.namespace,derivationPath:G}]),I()},"handleDerivationPathConfirm");return it.createElement(ce,{header:{title:zc.t("Connect Wallets")}},it.createElement(gS,null,_&&it.createElement(it.Fragment,null,it.createElement(uS,{setCategory:o,category:e,blockchains:b,isLoading:t==="loading"}),it.createElement(pS,{size:24})),it.createElement(mS,{variant:"title",size:"xmedium",align:"center"},zc.t("Choose a wallet to connect.")),it.createElement(fS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return it.createElement(dS,{key:Z,...G,container:P(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!g})}),it.createElement(Ro,{open:!!a,onClose:k,image:x,state:w,error:y}),it.createElement(po,{open:!!l?.open,onClose:v,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),it.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:I,onConfirm:j}))))}i(Gc,"WalletsPage");import{keyframes as hS,styled as La}from"@rango-dev/ui";var Vc=La("div",{position:"relative"}),yS=hS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Xc=La("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${yS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Kc=La("div",{"& img":{borderRadius:"50%"}});var kS=7;function Pa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=co(""),[f,d]=co(null),[g,S]=co(!1),[C,y]=co(null),[T,k]=co(null),[v,I]=co(null),{suggestAndConnect:N}=br(),x=null,{list:w,error:b,handleClick:E,disconnectWallet:_,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{m(L)},Ma)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{m("")},wr)}}),[A,z]=co(w),j=w.length,G=r&&j-r>0,B=i(async L=>{S(!1),y("in-progress");try{await N(L.walletType,L.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),Z=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{v&&I({...v,open:!1})},"handleCloseDerivationPathModal"),J=i(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=i(L=>{let me=A.find(se=>se.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?I({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):E(T?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&v?.namespace&&E(v.providerType,[{namespace:v.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");Zc(()=>{z(L=>{let me=w.findIndex(se=>o(se.type,e));return G&&me>1?[w[me]].concat(w.filter((se,_e)=>_e!==me)):L.map(se=>w.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(w)]);let Ce=document.getElementById(he.SWAP_BOX_ID);Zc(()=>{let L=null;return(C==="completed"||C==="rejected")&&(L=setTimeout(()=>y(null),wr)),()=>{L&&clearTimeout(L)}},[C]);let D=i(()=>{Q(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=$l({connectedWallets:p,walletType:L.type,chain:e}),se=me?Qn(me,kS):"",_e=On(u(),e),pt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&pt&&L.state===Yc.CONNECTED,Ve=De?ut.t({id:"Add {chain} chain",values:{chain:e}}):se,Xe=i(async()=>{L.state===Yc.DISCONNECTED?L.namespaces?J(L):E(L.type):L.namespaces&&!se?(await _(L.type),J(L)):De?(d({walletType:L.type,chain:e,address:me??""}),S(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=f?.chain?Bn(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Ro,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:b}),ue.createElement(po,{open:!!T?.open,onClose:Z,onConfirm:ne,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),ue.createElement(so,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ie,onConfirm:ge}),!!f&&ue.createElement(re,{open:!!f&&g,container:Ce,onClose:()=>{d(null)}},ue.createElement(xr,{title:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:ut.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Ba,{size:18}),ue.createElement(Ba,{size:32}),ue.createElement(SS,{onClick:B.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ut.t("Confirm")))),C&&ue.createElement(re,{open:!!C,onClose:y.bind(null,null),container:Ce},C==="in-progress"&&ue.createElement(xr,{type:"loading",title:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:ut.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(Vc,null,ue.createElement(Kc,null,ue.createElement(CS,{src:L.image,size:45})),ue.createElement(Xc,null))}),C==="completed"&&ue.createElement(xr,{type:"success",title:ut.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:ut.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ve}})}),C==="rejected"&&ue.createElement(xr,{type:"error",title:ut.t("Request Rejected"),description:ut.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Ba,{direction:"vertical",size:32})),ue.createElement(TS,{key:L.type,description:Ve,onClick:Xe,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(jp,{selected:!1,onClick:a},ue.createElement(jc,{variant:"label",size:"medium"},ut.t("Show more wallets"),ue.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(Pa,"WalletList");var BS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=LS(),l=h().config,p=MS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:S}=Y(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=uo(""),[v,I]=uo([]),[N,x]=uo(""),[w,b]=uo(null),[E,_]=uo(!!g),Q=navigator?.userAgent.includes("Firefox"),A=WS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=i(W=>z.includes(W),"isWalletRequiredFor"),B=NS(()=>C.filter(W=>W.selected&&A.includes(W.chain)),[C,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((W,V)=>ne(X=>X.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=v.length>0,D=i((W,V)=>!!Z.find(X=>X.walletType===W&&X.chain===V&&X.selected&&(G(V)||!G(V)&&!g)),"isSelected"),L=!!g&&E&&j&&!jn(j,g),me=i(()=>{_(!1),S(null),ie(W=>{let V=!1;return W.map(X=>!V&&X.chain===j?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),se=i(()=>S(""),"handleClearCustomDestination"),_e=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),pt=i(W=>{W?G(j?.name??"")||ie(V=>V.map(X=>X.chain===j?.name?{...X,selected:!1}:X)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=i(W=>{if(T&&k(""),D(W.walletType,W.chain))return;let X=C.find(Ke=>Ke.walletType===W.walletType&&Ke.chain===W.chain);X&&(n(),W.chain===j?.name&&E&&!G(j.name)&&(_(!1),S(null)),ie(Ke=>Ke.filter(yt=>yt.chain!==W.chain).concat({...X,selected:!0})))},"onChange"),Ve=i(()=>{let W=Z.filter(V=>V.selected);y(W),m(W),d(!0),o()},"onConfirmBalance"),Xe=i(async()=>{I([]),x(""),b(null);let W=await r?.({selectedWallets:Z.filter(X=>X.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&I(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),W.error&&x(gp(W.error)),!W.error&&!V?.balance?.messages.length?Ve():I(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>g?$.createElement(Rc,{onClick:se,variant:"ghost"},$.createElement(bS,{size:12,color:"gray"})):Q?null:$.createElement(Rc,{onClick:_e,variant:"ghost"},$.createElement(IS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{ie(W=>{let V=[];return W.forEach(X=>{!C.some(yt=>yt.chain===X.chain&&yt.walletType===X.walletType&&yt.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(yt=>yt.chain===X.chain)&&X.selected&&A.includes(X.chain))),V})},[C,A]),eu(()=>{let W=[];J.length>0&&(J.forEach(V=>{let X=C.find(Ke=>Ke.chain===V.blockchain&&Ke.walletType===V.walletType);X?De(X):W.push(V)}),ne(W))},[C,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!T,container:de,...!T&&{footer:$.createElement(oc,null,$.createElement(Jc,{loading:a,disabled:Bp(a,E,g,c,Z,j),onClick:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},kt.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Yp,null,$.createElement(Zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(xS,{size:16})),$.createElement(Er,{variant:"headline",size:"small"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:I.bind(null,[]),container:de},$.createElement(ES,{title:kt.t("Insufficient account balance"),type:"error",description:$.createElement(vS,{messages:v??[]})},$.createElement(Jc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ve},kt.t("Proceed anyway")))),T&&$.createElement(Jp,null,$.createElement("div",{className:Rp()},$.createElement(Pa,{chain:T,isSelected:D,selectWallet:De,onShowMore:()=>k(T),onConnect:W=>{ge(T,W)}}))),!T&&$.createElement($.Fragment,null,N&&$.createElement($.Fragment,null,$.createElement(_a,{variant:"alarm",type:"error",title:kt.t(N)}),$.createElement(tn,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(_a,{variant:"alarm",type:"warning",title:sr(w)}),$.createElement(tn,{size:12})),$.createElement(rc,null,A.map((W,V)=>{let X=u.find(Zt=>Zt.name===W),Ke=`wallet-${V}`,yt=V===A.length-1;return $.createElement("div",{key:Ke},$.createElement(Xp,null,$.createElement(Er,{variant:"title",size:"xmedium"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(Er,{variant:"label",color:"$neutral700",size:"medium"},kt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(tn,{size:24}),$.createElement(Kp,null,$.createElement(Pa,{chain:W,isSelected:D,selectWallet:De,limit:BS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!yt&&$.createElement(tn,{size:32}),yt&&l?.customDestination!==!1&&$.createElement(ec,null,$.createElement(mr,{onOpenChange:pt,hasSelected:!0,open:E,triggerAnchor:"top",trigger:$.createElement(ic,null,$.createElement("div",{className:"button__content"},$.createElement(AS,{size:18,color:"info"}),$.createElement(tn,{size:4,direction:"horizontal"}),$.createElement(Er,{variant:"label",size:"medium",color:E?"$neutral600":void 0},kt.t("Send to a different address"))),$.createElement(cr,{orientation:E?"up":"down"},$.createElement(wS,{size:10,color:"secondary"}))),onClickTrigger:()=>_(Zt=>!Zt)},$.createElement(nc,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:kt.t("Enter {blockchainName} address",{blockchainName:Bn(W,u)}),value:g||"",suffix:ve(),onChange:Zt=>{let tg=Zt.target.value;S(tg)},...!g&&{autoFocus:!0}})),L&&$.createElement("div",{className:tc()},$.createElement(_a,{variant:"alarm",type:"error",title:kt.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as JS}from"@lingui/core";import{Alert as RS,Button as eC,InfoIcon as tC}from"@rango-dev/ui";import Ye from"react";import{Alert as DS,Button as $S,Divider as Fa,NoRouteIcon as FS,RefreshIcon as OS,Typography as lu}from"@rango-dev/ui";import je from"react";import{i18n as ou}from"@lingui/core";var PS=24,_S=60;function nu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:ou.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ou.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(nu,"makeInfo");var Da=(o=>(o[o.small=PS]="small",o[o.large=_S]="large",o))(Da||{}),$a=(o=>(o.small="small",o.large="medium",o))($a||{});import{styled as Ir}from"@rango-dev/ui";var ru=Ir("div",{display:"flex",flexDirection:"column",alignItems:"center"}),iu=Ir("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),au=Ir("div",{variants:{size:{small:{width:"100%"},large:{}}}}),su=Ir("div",{padding:"$6 $0"});function on(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=nu(o,r,()=>a(s,!0),e);return je.createElement(ru,null,je.createElement(FS,{size:Da[n],color:"gray"}),je.createElement(Fa,{size:4}),je.createElement(lu,{variant:"title",size:$a[n]},oe().noResultError.title),n==="large"&&je.createElement(Fa,{size:4}),!!l.description&&je.createElement(iu,{size:n},je.createElement(lu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),je.createElement(Fa,{size:n==="large"?"24":"4"}),!!l.alert&&je.createElement(au,{size:n},je.createElement(DS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&je.createElement($S,{size:"xsmall",type:l.alert.type,prefix:je.createElement(su,null,je.createElement(OS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(on,"NoResult");import{i18n as nn}from"@lingui/core";import{Button as QS,Divider as zS,MessageBox as qS,Typography as HS,WarningIcon as GS}from"@rango-dev/ui";import Nt from"react";import{Typography as mu}from"@rango-dev/ui";import Ua from"react";import{darkTheme as US,styled as Ar}from"@rango-dev/ui";var pu=Ar("div",{width:"100%"}),Oa=Ar("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),cu=Ar("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${US} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uu=Ar("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function du(t){let{title:e,value:o,valueColor:n}=t;return Ua.createElement(cu,null,Ua.createElement(mu,{size:"medium",variant:"label",className:"_title"},e),Ua.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:nn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:nn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:nn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:nn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(re,{footer:Nt.createElement(QS,{type:"primary",size:"large",prefix:Nt.createElement(GS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Nt.createElement(qS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Nt.createElement(Oa,null,Nt.createElement(zS,{size:"4"}),Nt.createElement(HS,{size:"small",variant:"title"},nn.t("Details")),Nt.createElement(Oa,null,l.map((p,u)=>Nt.createElement(du,{key:u,...p})))))}i(fu,"HighValueLossWarningModal");import{i18n as Qa}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=Qa.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&&(At(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Qa.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=Qa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(gu,"makeAlerts");import{i18n as Po}from"@lingui/core";import{Button as hu,Divider as yu,MessageBox as VS,Typography as XS}from"@rango-dev/ui";import mo from"react";import{useNavigate as KS}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=KS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(XS,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:P(),onClose:r},mo.createElement(VS,{type:"warning",title:s.type===3?Po.t("High slippage"):Po.t("Low slippage"),description:s.type===3?Po.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Po.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(yu,{size:18}),mo.createElement(yu,{size:32}),mo.createElement(hu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Po.t("Confirm anyway"))))}i(Su,"SlippageWarningModal");import{Button as jS,MessageBox as YS,WarningIcon as ZS}from"@rango-dev/ui";import Nr from"react";function Cu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Nr.createElement(re,{footer:Nr.createElement(jS,{type:"primary",size:"large",prefix:Nr.createElement(ZS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Nr.createElement(YS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cu,"UnknownPriceWarningModal");function rn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=gu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),Ye.createElement(Ye.Fragment,null,f&&Ye.createElement(on,{error:o,fetch:s}),!!d&&Ye.createElement(pu,null,Ye.createElement(RS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ye.createElement(uu,{onClick:l},Ye.createElement(tC,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:Ye.createElement(eC,{size:"xxsmall",type:d.alertType,onClick:c},JS.t("Change"))}})),e&&Ye.createElement(Ye.Fragment,null,e.type===0&&Ye.createElement(fu,{...m,warning:e}),(e.type===3||e.type===2)&&Ye.createElement(Su,{...m,warning:e}),e.type===1&&Ye.createElement(Cu,{...m,warning:e})))}i(rn,"QuoteWarningsAndErrors");import LC from"bignumber.js";import qr from"react";import{i18n as fo}from"@lingui/core";import{Alert as CC,Divider as Do,FullExpandedQuote as TC,InfoIcon as kC,NumericTooltip as Ju,QuoteTag as vC,StepDetails as wC,TokenAmount as xC,Typography as $o}from"@rango-dev/ui";import ja from"bignumber.js";import F,{useRef as bC,useState as EC}from"react";import{styled as za}from"@rango-dev/ui";var qa=za("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Tu=za("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ku=za("div",{width:"100%",display:"flex"});import*as Wr from"@radix-ui/react-collapsible";import{Button as oC,css as an,darkTheme as be,Image as vu,styled as Ue,Typography as nC}from"@rango-dev/ui";var rC=300,wu=Ue(Wr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xu=an({padding:"$10 $15"}),bu=Ue(oC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Eu=Ue("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",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Iu=an({width:"100%",padding:"$15 $15 $10 $15"}),Au=an({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=an({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Nu=an({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wu=Ue(Wr.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:{[`& ${vu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${vu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Mu=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Lu=Ue(pr,{width:"100%",background:"inherit"}),Ha=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${rC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),UB=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Bu=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Pu=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ga=Ue(nC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),_u=Ue("div",{display:"flex",flexWrap:"wrap"}),Va=Ue("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"}}}}),Du=Ue("div",{display:"flex"}),Mr=Ue("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as vt}from"@lingui/core";import{ChevronDownIcon as aC,CloseIcon as sC,Divider as Pr,IconButton as lC,NumericTooltip as pC,QuoteCost as cC,Typography as mt}from"@rango-dev/ui";import ee,{useState as Uu}from"react";import{css as iC,styled as Lr}from"@rango-dev/ui";var Br=Lr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Xa=Lr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),$u=Lr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Fu=Lr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Ou=iC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var uC=i(t=>t.fee.isZero()?null:ee.createElement(Br,null,ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(mt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Qu(t){let[e,o]=Uu(!1),[n,r]=Uu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=kp(m);return ee.createElement(ee.Fragment,null,ee.createElement(cC,{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:f}),ee.createElement(re,{container:f,open:e,header:ee.createElement(Fu,null,ee.createElement(mt,{variant:"title",size:"medium"},vt.t("Gas & Fee Explanation")),ee.createElement(lC,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(sC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement($u,null,ee.createElement(mt,{variant:"title",size:"small"},vt.t("Details")),ee.createElement(Pr,{size:10}),Object.entries(d.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Xi(C);return ee.createElement(Br,{key:T},ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},qi(g,vt.t)),ee.createElement(pC,{content:C.amount,container:f},ee.createElement(mt,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),ee.createElement(Br,{className:"total_payable_fee"},ee.createElement(mt,{variant:"label",size:"medium"},vt.t("Total Payable Fee")),ee.createElement(mt,{variant:"label",size:"medium"},"$",M(l,4,4))),ee.createElement(Xa,null),Object.keys(d.nonePayable).length&&ee.createElement(mr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:ee.createElement("div",{className:Ou()},ee.createElement(mt,{size:"small",variant:"body",color:"neutral700"},n?vt.t("Hide non-payable fees"):vt.t("Show non-payable fees")),ee.createElement(Pr,{size:4,direction:"horizontal"}),ee.createElement(cr,{orientation:n?"up":"down"},ee.createElement(aC,{size:12,color:"gray"}))),open:n},ee.createElement(mt,{size:"small",variant:"title"},vt.t("Description")),ee.createElement(Pr,{size:4}),ee.createElement(mt,{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.`)),ee.createElement(Pr,{size:10}),Object.entries(d.nonePayable).map(([g,S],C)=>{let y=Tp(S),T=qi(g,vt.t),k=`non-payable-fee-${C}`;return ee.createElement(uC,{key:k,fee:y,label:T})}),ee.createElement(Xa,null)))))}i(Qu,"QuoteCostDetails");import{i18n as Hu}from"@lingui/core";import{TokenAmount as Gu}from"@rango-dev/ui";import _r from"react";import{css as mC,styled as dC}from"@rango-dev/ui";var zu=dC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qu=mC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return _r.createElement(zu,null,_r.createElement(Gu,{direction:"horizontal",label:Hu.t("Swap input"),type:"input",tooltipContainer:P(),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}}),_r.createElement("div",{className:qu()}),_r.createElement(Gu,{direction:"horizontal",tooltipContainer:P(),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(sn,"QuoteSummary");import{i18n as Yu}from"@lingui/core";import{ChevronDownIcon as hC,ChevronRightIcon as yC,Divider as Ka,Image as SC,Tooltip as Ur,Typography as $r}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as fC,useState as ln}from"react";var Vu=480,Xu=768,Ku=1024,ju=1200,gC=i(()=>{let[t,e]=ln(!1),[o,n]=ln(!1),[r,a]=ln(!1),[s,l]=ln(!1),[p,u]=ln(!1),c=i(()=>{e(window.innerWidth<=Vu),n(window.innerWidth>Vu&&window.innerWidth<=Xu),a(window.innerWidth>Xu&&window.innerWidth<=Ku),l(window.innerWidth>Ku&&window.innerWidth<=ju),u(window.innerWidth>ju)},"handleResize");return fC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Dr=gC;var Fr=4,Or=6,pn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return O.createElement(Ur,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Mu,{className:n,state:a},O.createElement(SC,{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||P(),u=r.length,c=Fp(r),{isTablet:m,isMobile:f}=Dr();return O.createElement(Wu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Via:")),O.createElement(Ka,{direction:"horizontal",size:4}),r.map((d,g)=>{let S=`item-${g}`,C=O.createElement(Ha,null,O.createElement(yC,{size:12,color:"black"}));return f||m?O.createElement(O.Fragment,{key:S},O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):O.createElement(O.Fragment,{key:S},u<=Fr||u>Fr&&g<Fr-1?O.createElement(O.Fragment,null,O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):g===Fr-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&O.createElement(O.Fragment,{key:k},O.createElement(pn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,C))}))},O.createElement(Va,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},O.createElement($r,{size:"xsmall",variant:"body"},"+",u-g))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Chains:")),O.createElement(Ka,{direction:"horizontal",size:4}),c.map((d,g)=>O.createElement(O.Fragment,{key:d.displayName},c.length<=Or||c.length>Or&&g<Or-1?O.createElement(Ur,{container:p,side:"bottom",content:d.displayName,sideOffset:4},O.createElement(pn,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===Or-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},c.map((S,C)=>C>=g&&O.createElement(pn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},O.createElement(Va,{className:"blockchainImage"},O.createElement($r,{size:"xsmall",variant:"body"},"+",c.length-g))))),O.createElement(Ka,{direction:"horizontal",size:32}))),O.createElement(Ha,{orientation:a?"up":"down"},O.createElement(hC,{size:12,color:"black"}))))}i(Zu,"QuoteTrigger");function Ya(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:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=EC(t.expanded),I=bC(null),N=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",b=tt(o.usdValue,n.usdValue??null),E=M(b,2,2),_=At(b??0),Q=i((ge,Ce)=>ge.map((D,L)=>{let me,se=r?.type===3&&r.swap.swapperId===D.swapperId,_e=r?.type===4&&r.recommendedSlippages?.has(L),pt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=pt;De?me="error":Ve&&(me="warning");let Xe=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Xe=fo.t("Bridge Limit Error")),{swapper:{displayName:qo(D.swapperId,S)??"",image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Re(D.from.blockchain,d)??"",image:D.from.blockchainLogo},price:{value:L===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:L===0?o.value:D.fromAmount,realUsdValue:new ja(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Re(D.to.blockchain,d)||"",image:D.to.blockchainLogo},price:{value:M(D.toAmount,6,6),usdValue:M((D.to.usdPrice??0)*parseFloat(D.toAmount),4,4),realValue:D.toAmount,realUsdValue:new ja(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ve?F.createElement(Tu,{dense:m},F.createElement(CC,{variant:"alarm",type:De?"error":"warning",title:Xe,footer:F.createElement(ku,null,se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(_e||pt)&&!se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Ho(D.estimatedTimeInSeconds),fee:M(Vi(D,g),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=f||P(),G=Up(t.quote.tags||[]),B=!!c,Z=Ho(Pn(e?.swaps)),ie=Jn(e?.swaps??[],g),J=M(ie,2,2),ne=ie.gte(new ja(fp));return m?F.createElement(TC,{selected:l,fee:J,time:Z,tooltipContainer:zo(),steps:A,tags:G,feeWarning:ne,percentageChange:E,warningLevel:_,outputPrice:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Eu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Iu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Du,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(vC,{label:ge.label,value:ge.value}),F.createElement(Do,{size:4,direction:"horizontal"}))})),F.createElement(Mr,null),!B&&F.createElement(Do,{size:4})):null,F.createElement("div",{id:"portal-root",className:Au()},F.createElement(Qu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(bu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement($o,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Nu()},F.createElement(Pu,null,F.createElement(kC,{size:12,color:"gray"})),F.createElement(_u,null,F.createElement(Ga,{size:"small",variant:"body"},`${N} ${A[0].from.token.displayName} = `),F.createElement(Ju,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Ga,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(Ju,{content:n.usdValue,container:j},F.createElement(Do,{size:2,direction:"horizontal"}),F.createElement($o,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(xC,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:E,warningLevel:_}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(sn,{from:A[0].from,to:A[z-1].to,percentageChange:E,warningLevel:_}),F.createElement(Do,{size:4}))),F.createElement(wu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(Zu,{type:s,quoteRef:I,selected:l,setExpanded:v,container:j,expanded:k,steps:A}),F.createElement(Lu,{open:k},F.createElement(Bu,null),F.createElement("div",{className:xu()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(wC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Ya,"Quote");import{Divider as WC,Skeleton as MC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as IC,styled as Qr}from"@rango-dev/ui";var Ru=Qr("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"}}}}),em=Qr("div",{paddingTop:"$2"}),tm=Qr("div",{paddingLeft:"$8"}),om=Qr("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 dt,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as AC,styled as Wt}from"@rango-dev/ui";var Za=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=AC({display:"flex",justifyContent:"space-between",alignItems:"center"});function cn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(am,null,H.createElement(lm,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(dt,{size:8,direction:"horizontal"}),H.createElement(pm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(dt,{size:4}),H.createElement(Ze,{height:15,variant:"rounded"}))),H.createElement(Ze,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Za,null,H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Mr,null),!r&&H.createElement(dt,{size:4})),H.createElement("div",{className:um()},H.createElement(Za,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ze,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(nm,null,H.createElement(Ze,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(rm,null,H.createElement(im,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(dt,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(dt,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(dt,{size:4}),H.createElement(cm,null,n,H.createElement(sm,null),n),H.createElement(dt,{size:12})))}i(cn,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Ra,NextIcon as NC,Skeleton as zr}from"@rango-dev/ui";import Ee from"react";import{styled as un}from"@rango-dev/ui";var dm=un("div",{display:"flex",alignItems:"start"}),fm=un("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ja=un("div",{display:"flex",alignItems:"center",flexGrow:1}),gm=un("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),hm=un("div",{display:"flex",alignItems:"center"});function wt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(hm,null,Ee.createElement(zr,{height:22,width:22,variant:"circular"}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:15,width:148,variant:"rounded"})),Ee.createElement(dm,null,Ee.createElement(om,{hideSeparator:!e}),Ee.createElement(fm,{extraSpace:e},Ee.createElement(Ja,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:12,variant:"rounded"})),Ee.createElement(gm,null,Ee.createElement(NC,{color:"gray",size:16})),Ee.createElement(Ja,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:12,variant:"rounded"})))))}i(wt,"StepSkeleton");function mn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Ru,{expanded:o,rounded:e!=="basic"},Mt.createElement(cn,{type:e,tagHidden:n}),Mt.createElement(em,null,Mt.createElement(MC,{height:15,variant:"rounded"})),o&&Mt.createElement(tm,null,Mt.createElement(WC,{size:24}),Mt.createElement(wt,null),Mt.createElement(wt,null),Mt.createElement(wt,{separator:!1})))}i(mn,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=Y(),y=e?.outputAmount?new LC(e?.outputAmount):null,T=e?.outputAmount?er(e?.outputAmount,or(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?qr.createElement(qa,null,qr.createElement(mn,{tagHidden:l,type:o,expanded:s})):v?qr.createElement(qa,{onClick:()=>p?.(e)},qr.createElement(Ya,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as DC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as $C}from"react";import{useRef as BC,useState as PC}from"react";var _C=2e3;function Hr({request:t}){let[e,o]=PC(!1),n=BC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,_C)),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(Hr,"useFetch");function Sm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Sm,"useFetchConfirmQuote");function Gr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=es(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Gr,"throwErrorIfResponseIsNotValid");function es(t){if(yp(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=vp(t);if(o){let n=Rn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(es,"getQuoteError");function Cm(t,e,o){let n=!1;t&&(n=$p(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=wo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Ap(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(vo(e)),percentageChange:M(tt(vo(t)??"",vo(e)??""),null,2)}:Ki(t,e)?r.quoteUpdate={type:0}:ji(t,e)?r.quoteUpdate={type:1}:Yi(t,e)&&(r.quoteUpdate={type:2}));let s=Np(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Cm,"generateWarnings");function Vr(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(Vr,"handleQuoteErrors");function ts(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=Sm();return $C(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,I=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),x={requestId:r?.requestId||"",selectedWallets:N,destination:I||void 0};try{return await S(x,!0).then(w=>{let{result:b}=w;Gr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let E={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(E);let _={slippage:g.toString(),disabledSwappersGroups:c},Q=Cm(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=DC(o.toString(),b,Ep(v),_,!A,{blockchains:m,tokens:f});return{quote:E,swap:z,error:null,warnings:Q}})}catch(w){return Vr(w)}},"fetch"),cancelFetch:C}}i(ts,"useConfirmSwap");var VC=UC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),XC=rs({flexGrow:1,paddingRight:"$10"}),KC=rs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),jC=rs({display:"flex",justifyContent:"space-between",alignItems:"center"});function vm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=GC(),[l,p]=dn(""),u=!n,[c,m]=dn(!1),[f,d]=dn(!1),{isActiveTab:g}=ae(),S=h().getDisabledLiquiditySources(),C=HC(S),{manager:y}=FC(),{fetch:T,loading:k,cancelFetch:v}=ts(),[I,N]=dn({swap:null,error:null,warnings:null}),[x,w]=dn(!1),b=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await T?.({selectedWallets:B,customDestination:Z});return N(ie),ie},"onConfirmSwap"),E=i(async()=>{if(I.swap&&n)try{await y?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let B=`../${q.swaps}/${I.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),_=i(async()=>{d(!0),await E(),d(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await _()},"onStartConfirmSwap"),A=i(async()=>{N({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(B=>{N(B)}).catch(B=>console.error(B))},"onRefresh");Xr(()=>{!!C.current.length&&!S.length&&A(),C.current=S},[S.length]),Xr(()=>{u&&v()},[u]),Xr(()=>{u&&m(u)},[u]),Xr(()=>{u||T({selectedWallets:o,customDestination:r}).then(B=>N(B)).catch(B=>console.error(B))},[]),qC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=I.warnings?.quote??null,j=I.error,G=[];if(l&&G.push(Ie.createElement(Tm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&G.push(Ie.createElement(Tm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&sr(I.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(rn,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await E()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:os.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(VC,null,Ie.createElement("div",{className:XC()},Ie.createElement(OC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!I.error||!g,onClick:Q},os.t("Start Swap"))),Ie.createElement(km,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},Ie.createElement(zC,{size:24})))},c&&Ie.createElement(tu,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),Ie.createElement(fe,null,Ie.createElement("div",{className:jC()},Ie.createElement(QC,{variant:"title",size:"small"},os.t("You get")),Ie.createElement("div",{className:KC()},Ie.createElement(yr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(ns,{size:"12"}),lc(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(ns,{size:10})),G.length>0?Ie.createElement(ns,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:I.error,loading:k,warning:I.warnings?.quote??null})))}i(vm,"ConfirmSwapPage");import{i18n as jr}from"@lingui/core";import{useManager as uT}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as mT,styled as dT}from"@rango-dev/ui";import Bt,{useState as fT}from"react";import{useNavigate as gT}from"react-router-dom";import{i18n as JC}from"@lingui/core";import{Divider as Im,GroupedVirtualizedList as RC,Skeleton as eT,SwapListItem as Am,Typography as tT}from"@rango-dev/ui";import Qe,{useCallback as Nm,useEffect as oT,useRef as nT,useState as rT}from"react";function wm(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(wm,"calculateGroupsSoFar");import{css as YC,darkTheme as ZC,styled as fn}from"@rango-dev/ui";var is=YC(),xm=fn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),as=fn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${is}`]:{$$color:"$colors$neutral600",[`.${ZC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ss=fn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bm=fn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Em=fn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var iT=10;function ls(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=rT([]),l=nT(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Nm(wm,[]),f=Nm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,iT),s(m(u,l.current)))},[e.length]);if(oT(()=>{r||f()},[r,f]),r){let d=[1,2];return Qe.createElement(Qe.Fragment,null,[d,d].map((S,C)=>Qe.createElement(as,{key:C},Qe.createElement(ss,null,Qe.createElement(eT,{variant:"text",width:60,size:"small"}),Qe.createElement(Im,{size:16})),Qe.createElement(Im,{size:4}),Qe.createElement(bm,null,S.map((T,k)=>Qe.createElement(Am,{isLoading:!0,key:k}))))))}return Qe.createElement(RC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>Qe.createElement(as,null,Qe.createElement(ss,null,Qe.createElement(tT,{variant:"label",size:"medium",className:is()},c[d]))),itemContent:(d,g)=>{let S=p[d];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return Qe.createElement(xm,{key:S.requestId},Qe.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===JC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(S.inputAmount,6,6),realAmount:S.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(ls,"HistoryGroupedList");import{CloseIcon as sT,IconButton as lT,SearchIcon as pT,TextField as cT}from"@rango-dev/ui";import gn from"react";import{styled as aT}from"@rango-dev/ui";var Wm=aT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return gn.createElement(cT,{prefix:gn.createElement(Wm,null,gn.createElement(pT,{color:"black"})),suffix:!!s.length&&gn.createElement(lT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},gn.createElement(sT,{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(Lt,"SearchInput");import{i18n as Kr}from"@lingui/core";import Mm from"dayjs";var Lm=i(t=>{let e=new Map([["today",{title:Kr.t("Today"),swaps:[]}],["week",{title:Kr.t("This week"),swaps:[]}],["month",{title:Kr.t("This month"),swaps:[]}],["year",{title:Kr.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=Mm();t.forEach(p=>{let u=Number(p.creationTime),c=Mm(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 m=new Date(u).getFullYear().toString();o(m,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 hT=dT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),yT=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function Pm(){let t=gT(),{manager:e,state:o}=uT(),n=rt(e).map(({swap:c})=>c),[r,a]=fT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>St(c.inputAmount,r)||St(c.status,r)||yT(c.steps,r)||St(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(ce,{header:{title:jr.t("History")}},Bt.createElement(fe,null,Bt.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:jr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Bm,{size:"16"}),Bt.createElement(hT,null,u&&Bt.createElement(Em,null,Bt.createElement(Bm,{size:32}),Bt.createElement(mT,{title:jr.t("No results found"),description:r?jr.t("Try using different keywords"):""})),!u&&Bt.createElement(ls,{list:p,onSwapClick:t,groupBy:Lm,isLoading:s}))))}i(Pm,"HistoryPage");import{i18n as DT}from"@lingui/core";import{Button as $T,Divider as Jm,styled as FT,WarningIcon as OT}from"@rango-dev/ui";import UT from"bignumber.js";import He,{useEffect as Rm,useState as ed}from"react";import{useNavigate as QT}from"react-router-dom";import{i18n as wT}from"@lingui/core";import{Header as xT}from"@rango-dev/ui";import Vt,{useEffect as bT,useState as ET}from"react";import{i18n as CT}from"@lingui/core";import{Divider as cs,FullExpandedQuote as TT,Typography as kT}from"@rango-dev/ui";import ye from"react";import{styled as ps}from"@rango-dev/ui";var _m=ps("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Dm=ps("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),$m=ps("div",{width:"146px"});import{i18n as hn}from"@lingui/core";import{Select as ST}from"@rango-dev/ui";import Fm from"react";function Yr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:hn.t("Smart Routing")},{value:"FEE",label:hn.t("Lowest Fee")},{value:"SPEED",label:hn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hn.t("Maximum Return")},{value:"PRICE",label:hn.t("Maximum Output")}];return Fm.createElement($m,null,Fm.createElement(ST,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Yr,"SelectStrategy");var Om=3;function yn(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:m,toToken:f,sortStrategy:d,error:g}=Y(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||P(),k=!!u&&u.results.length,v=C??S,I=i(w=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...w};return wo(b,{fromToken:m,toToken:f,userSlippage:v,findToken:y})},"getQuoteWarning"),N=g?.type===0||g?.type===1,x=u?.results?rr(d,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Dm,null,ye.createElement(kT,{size:"xmedium",variant:"title"},CT.t("Sort by")),ye.createElement(Yr,{container:T})),ye.createElement(cs,{size:"10"})),e&&Array.from({length:Om},(w,b)=>ye.createElement(ye.Fragment,{key:b},s?ye.createElement(TT,{loading:!0}):ye.createElement(mn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Om-1&&ye.createElement(cs,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((w,b)=>{let E=I(w),_=es(w.swaps),Q=x.length-1===b;return ye.createElement(ye.Fragment,{key:w.requestId},ye.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:_?.options||null,warning:E,fullExpandedMode:s,onClick:A=>{_||c("warning",E),c("error",_?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(cs,{size:16}))}):N&&ye.createElement(_m,null,ye.createElement(on,{size:s?"large":"small",error:g,fetch:n}))))}i(yn,"Quotes");import{darkTheme as vT,styled as Um}from"@rango-dev/ui";var Qm=Um("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${vT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),zm=Um("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var IT=100;function us(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=ET(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=zo();return bT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},IT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Qm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Tr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(xT,{title:wT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Yr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(zm,null,Vt.createElement(yn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:zo(),onClickOnQuote:n,fullExpandedMode:c})))}i(us,"ExpandedQuotes");import{i18n as jm}from"@lingui/core";import{SwapInput as Ym}from"@rango-dev/ui";import Sn from"react";import{ReverseIcon as WT}from"@rango-dev/ui";import ds from"react";import{keyframes as AT,styled as qm}from"@rango-dev/ui";var ms=450,NT=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)"}}),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:`${NT} ${ms}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 fs(){let t=Y.use.switchFromAndTo();return ds.createElement(Hm,null,ds.createElement(Gm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ms),t()}},ds.createElement(WT,{size:12})))}i(fs,"SwitchFromAndToButton");import{styled as Vm}from"@rango-dev/ui";var Xm=Vm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Km=Vm("div",{position:"relative"});function gs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=Y(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Un(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Fl(S,s.name),I=!Gi(g,c,m),N=!Gi(g,c,d),x=!m||!d||!d.gt(0)?null:tt(m.toString(),d.toString());return Sn.createElement(Xm,null,Sn.createElement(Km,null,Sn.createElement(Ym,{label:jm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:I?void 0:M(m,4,4),realUsdValue:I?void 0:m?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),Sn.createElement(fs,null)),Sn.createElement(Ym,{sharpBottomStyle:!r&&(!!g||e),label:jm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(tt(m,d),2,2),warningLevel:At(x??0),price:{value:M(f,6,6),usdValue:N?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:N?void 0:d?.toString(),error:N?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(gs,"Inputs");import{useCallback as MT,useEffect as LT,useRef as BT,useState as PT}from"react";function Zm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Zm,"useFetchAllQuotes");var _T=600;function Zr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=Y(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:I,affiliateWallets:N,fetchStatus:x}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),E=h().excludeLiquiditySources(),{findToken:_}=h(),[Q,A]=PT(!0),z=BT(u),j=k??T,B=!l||!p||Rt(l,p)||!Go(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve}=ne;if(Q||Z(!0),!B&&ge&&Ce){d();let Xe=bp({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve,enableCentralizedSwappers:a});Zl("experimentalRoute",r)&&(Xe.experimental=!0),e(Xe).then(ve=>{let de=rr(f,ve.results),W=Op(m,de,ve.requestAmount);A(!1),y("quotes",ve),C(W),Gr({diagnosisMessages:ve.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&wo(W,{fromToken:ge,toToken:Ce,userSlippage:j,findToken:_});y("warning",V)}).catch(ve=>{let{error:de}=Vr(ve);(de?.type===0||de?.type===1)&&d(),de?.type!==2&&(y("error",de),A(!1))})}},"fetch"),J=MT(xl(ne=>{ie(ne)},_T),[B]);return LT(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(m||g||S)&&d();return}if(!Go(u)||c?.eq(0)){Z(!1),o();return}d(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,w?.length,n,b.length,j,I,v,JSON.stringify(N)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),loading:Q}}i(Zr,"useSwapInput");var zT=FT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),qT=300;function td(){let t=QT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=Y(),[d,g]=ed(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Dr(),{fetch:y,loading:T}=Zr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:I}=te(),{isActiveTab:N}=ae(),[x,w]=ed(!1),E=Cp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),_=Gl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new UT(n).gt(0)&&!Pp(e,o),A=Q&&v==="success"&&T,G=(!_||_&&p?.results.length)&&(l||s);Rm(()=>{c(),f("refetchQuote",!0)},[]),Rm(()=>{g(Q)},[Q]);let B=(r||s)&&!x?y:void 0,Z=i(J=>{_&&d?(g(!1),setTimeout(()=>{t(J)},qT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(w(!1),u(J))},"onClickOnQuote");return He.createElement(zT,null,He.createElement(ce,{height:"auto",footer:He.createElement($T,{type:"primary",size:"large",disabled:E.disabled||!N,prefix:E.action==="confirm-warning"&&He.createElement(OT,null),fullWidth:!0,onClick:()=>{E.action==="connect-wallet"?Z(q.wallets):E.action==="confirm-warning"?w(!0):Z(q.confirmSwap)}},E.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||DT.t("Swap"),suffix:He.createElement(ao,{hidden:_?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},He.createElement(fe,null,He.createElement(gs,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:_,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(Jm,{size:"2"}),_?null:He.createElement(go,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),Z(q.routes)}:void 0}),G?He.createElement(He.Fragment,null,He.createElement(Jm,{size:"10"}),He.createElement(rn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!N,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),_?He.createElement(us,{loading:A,onClickOnQuote:ie,fetch:y,onClickRefresh:B,isVisible:d}):null)}i(td,"Home");import{i18n as od}from"@lingui/core";import{Alert as HT,Divider as GT,List as VT,ListItemButton as XT,Radio as KT,RadioRoot as jT,Typography as YT}from"@rango-dev/ui";import xt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Rl,r=o?.language||ko;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||ko),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function nd(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=nt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(YT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(KT,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(ce,{header:{title:od.t("Language")}},xt.createElement(fe,null,xt.createElement(HT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(GT,{size:"8"}),xt.createElement(jT,{value:t},xt.createElement(VT,{type:xt.createElement(XT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as tk,Checkbox as ok,Image as nk,ListItemButton as rk,NotFound as ik,Typography as ak}from"@rango-dev/ui";import ze,{useState as sk}from"react";import{Checkbox as RT,Skeleton as id}from"@rango-dev/ui";import Tn from"react";import{styled as hs}from"@rango-dev/ui";var Cn=hs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ys=hs("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ss=hs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as ZT,styled as JT}from"@rango-dev/ui";var rd=JT(ZT,{height:61});var ek=30;function Cs(){return Tn.createElement(Cn,null,Array.from(Array(ek),(t,e)=>Tn.createElement(rd,{hasDivider:!0,key:e,start:Tn.createElement(id,{variant:"circular",width:35,height:35}),title:Tn.createElement(id,{variant:"text",size:"large",width:90}),end:Tn.createElement(RT,{checked:!1})})))}i(Cs,"LoadingLiquiditySourceList");function Ts({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=sk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Gn(o,n),u={Exchanges:Pt.t("Exchanges"),Bridges:Pt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:ze.createElement(nk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(ok,{checked:T,disabled:l}),title:ze.createElement(ak,{variant:"title",size:"xmedium"},Pt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>St(y.groupTitle,r))),ze.createElement(ce,{header:{title:Pt.t(t),suffix:ze.createElement(ys,null,ze.createElement(tk,{variant:"ghost",size:"xsmall",onClick:d},f?Pt.t("Deselect all"):Pt.t("Select all")))}},ze.createElement(fe,{view:!0},ze.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Pt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&ze.createElement(Cs,null),!C.length&&r?ze.createElement(Ss,null,ze.createElement(ik,{title:Pt.t("No results found"),description:Pt.t("Try using different keywords")})):e==="success"&&ze.createElement(Cn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return ze.createElement(ze.Fragment,{key:y.id},ze.createElement(rk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ts,"LiquiditySourcePage");import{i18n as lk}from"@lingui/core";import Jr from"react";import{useNavigate as pk}from"react-router-dom";function ad(){let t=pk(),e=nt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=Zr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Jr.createElement(ce,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:lk.t("Routes"),suffix:Jr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Jr.createElement(fe,null,Jr.createElement(yn,{fetch:l,loading:p,onClickOnQuote:u})))}i(ad,"RoutesPage");import{i18n as fd}from"@lingui/core";import{Divider as gd,getCategoriesCount as Sk,SelectableCategoryList as Ck}from"@rango-dev/ui";import _t,{useState as hd}from"react";import{i18n as ks}from"@lingui/core";import{Divider as md,Image as dk,ListItemButton as fk,NotFound as gk,Typography as dd}from"@rango-dev/ui";import at,{useEffect as hk,useState as yk}from"react";var sd=i((t,e,o)=>t.filter(n=>Mn(n.type,o)).filter(n=>Et(n.name,e)||Et(n.displayName,e)),"filterBlockchains");import{ImageContainer as ck,styled as ld}from"@rango-dev/ui";var pd=ld("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Rr=ld(Zo,{padding:0,margin:0,listStyle:"none",[`& ${ck}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as uk,Skeleton as cd}from"@rango-dev/ui";import ei from"react";var mk=20;function ud(){return ei.createElement(Rr,null,Array.from(Array(mk),t=>ei.createElement(uk,{key:t,hasDivider:!0,start:ei.createElement(cd,{variant:"circular",width:35,height:35}),title:ei.createElement(cd,{variant:"text",size:"large",width:90})})))}i(ud,"LoadingBlockchainList");function vs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=yk(e),{fetchStatus:l}=h();hk(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?at.createElement(at.Fragment,null,at.createElement(md,{size:32}),at.createElement(gk,{title:ks.t("No results found"),description:ks.t("Try using different keywords")})):at.createElement(Rr,{as:"ul",key:`${r}-${o}`},a.map(u=>at.createElement(fk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:at.createElement(dk,{src:u.logo,size:30}),title:at.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return at.createElement(pd,null,at.createElement(dd,{variant:"label",size:"large"},ks.t("Select Blockchain")),at.createElement(md,{size:4}),l==="loading"&&at.createElement(ud,null),l==="success"&&p())}i(vs,"BlockchainList");function ws(t){let{type:e}=t,o=nt(),[n,r]=hd(""),[a,s]=hd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=Sk(c)!==1;return _t.createElement(ce,{header:{title:fd.t("Select Blockchain")}},_t.createElement(fe,{view:!0},f&&_t.createElement(_t.Fragment,null,_t.createElement(Ck,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),_t.createElement(gd,{size:24})),_t.createElement(Lt,{value:n,autoFocus:!0,placeholder:fd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),_t.createElement(gd,{size:16}),_t.createElement(vs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ws,"SelectBlockchainPage");import{i18n as ii}from"@lingui/core";import{Divider as $d}from"@rango-dev/ui";import ho,{useState as Dk}from"react";import{useNavigate as $k}from"react-router-dom";import{i18n as Es}from"@lingui/core";import{BlockchainsChip as ti,Divider as Td,Image as kd,Skeleton as xk,Tooltip as bk,Typography as Is}from"@rango-dev/ui";import Le from"react";import{useEffect as vk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function xs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Tk),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(kk(s)),r=n.splice(a)}return{list:n,more:r}}i(xs,"prepare");function Tk(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(Tk,"sortByMostUsedBlockchains");function kk(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(kk,"generateSortByPreferredBlockchainsFor");function Sd(t,e){return!!e.list.find(o=>o.name===t)}i(Sd,"isInVisibleList");function bs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();vk(()=>{if(e?.selected){let a=xs(t,o,e);Sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=xs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(bs,"usePrepareBlockchainList");import{styled as wk}from"@rango-dev/ui";var Cd=wk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Ek=12;function As(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=bs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Le.createElement(Le.Fragment,null,Le.createElement(Td,{size:12}),Le.createElement(Is,{variant:"label",size:"large"},Es.t("Select Blockchain")),Le.createElement(Td,{size:12}),Le.createElement(Cd,null,l==="loading"&&Array.from(Array(Ek),d=>Le.createElement(xk,{key:d,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(ti,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es.t("All"))),s.list.map(d=>Le.createElement(bk,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Le.createElement(ti,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Le.createElement(kd,{src:d.logo,size:30})))),m?Le.createElement(ti,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(kd,{src:s.more[0].logo,size:30})):null,f?Le.createElement(ti,{onClick:a,key:"more-blockchains"},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es._("More +{count}",{count:s.more.length}))):null)))}i(As,"BlockchainsSection");import{i18n as Fs}from"@lingui/core";import{darkTheme as Ld,Divider as Oo,ExternalLinkIcon as Nk,Image as Wk,ListItemButton as Mk,NotFound as Lk,PinIcon as Bk,Skeleton as Bd,Typography as ri,VirtualizedList as Pk}from"@rango-dev/ui";import K,{useEffect as Pd,useState as _d}from"react";import{Divider as Wd,ListItem as Ak,Skeleton as kn}from"@rango-dev/ui";import ft from"react";import{css as Fo,darkTheme as vd,ImageContainer as Ik,styled as st,Typography as wd}from"@rango-dev/ui";var Ns=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ws=Fo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ms=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ls=Fo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Bs=Fo({}),Ps=Fo(),xd=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),_s=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),oi=st("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ws}`]:{[`& .${Ls}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Bs}`]:{bottom:"-15px"},[`& .${Ns}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ms}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ds=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),$s=st(wd,{}),bd=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ps}`]:{$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ni=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),xU=st("div",{display:"flex",alignItems:"center"}),Ed=st("div",{position:"relative",[`& ${Ik}`]:{borderRadius:"$xm",overflow:"hidden"}}),Id=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=st(wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Nd=st("a",{"& svg:hover":{color:"$colors$info"}});function Md(t){return ft.createElement(oi,null,Array.from(Array(t.size),e=>ft.createElement(Ak,{key:e,hasDivider:!0,start:ft.createElement(kn,{variant:"circular",width:35,height:35}),end:ft.createElement(ni,null,ft.createElement(kn,{variant:"text",size:"large",width:70}),ft.createElement(Wd,{size:4}),ft.createElement(kn,{variant:"text",size:"medium",width:50})),title:ft.createElement("div",null,ft.createElement(kn,{variant:"text",size:"large",width:90}),ft.createElement(Wd,{size:4}),ft.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(Md,"LoadingTokenList");var Os=20,_k=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:Ws()},o?K.createElement("div",{className:Ns()},o):K.createElement(_s,{className:Ms()},K.createElement(ri,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:a},K.createElement($s,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Ls()} ${!o&&Bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Oo,{size:4,direction:"horizontal"}),K.createElement(Nd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(Nk,{size:12}))))},"renderDesc");function Dd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=_d(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=_d(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Os))},"loadNextPage");Pd(()=>{c(e.length>a.length)},[a.length]),Pd(()=>{s(e.slice(0,Os))},[e.length,r]);let S=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Oo,{size:32}),K.createElement(Lk,{title:Fs.t("No results found"),description:Fs.t("Try using different keywords")})):K.createElement(Pk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Un(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),I=aa(v.color,"main"),N={$$color:I.main150,[`.${Ld} &`]:{$$color:I.main750},backgroundColor:"$$color"},x={$$color:I.main750,[`.${Ld} &`]:{$$color:I.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(Mk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(Ed,null,K.createElement(Wk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(Id,null,K.createElement(Bk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(_s,null,K.createElement(ri,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:N},K.createElement($s,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?_k({address:k,token:a[C],customCssForTag:N,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(ni,null,K.createElement(Bd,{variant:"text",size:"large",width:70}),K.createElement(Oo,{size:4}),K.createElement(Bd,{variant:"text",size:"medium",width:50})):T&&K.createElement(bd,null,K.createElement(Ad,{variant:"title",size:"small"},T.amount),K.createElement("div",null),T.usdValue&&K.createElement(ri,{variant:"body",className:Ps(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(xd,null,K.createElement(ri,{variant:"label",size:"large"},Fs.t("Select Token")),K.createElement(Oo,{size:4}),l==="loading"&&K.createElement(Md,{size:Os}),l==="success"&&K.createElement(oi,{as:"ul"},S()))}i(Dd,"TokenList");function Us(t){let{type:e}=t,o=$k(),n=nt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[m,f]=Dk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ii.t("Source"),destination:ii.t("Destination")};return ho.createElement(ce,{header:{title:ii.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(As,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{y(v)}}),ho.createElement($d,{size:24}),ho.createElement(Lt,{value:m,autoFocus:!0,placeholder:ii.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:v=>f(v.target.value)}),ho.createElement($d,{size:16}),ho.createElement(Dd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let I=S.find(N=>v.blockchain===N.name);I&&y(I),n()}})))}i(Us,"SelectSwapItemsPage");import{i18n as Hs}from"@lingui/core";import{Alert as lv,Button as pv,styled as cv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as uv,useSearchParams as mv}from"react-router-dom";import{i18n as qd}from"@lingui/core";import{Divider as Qk,InfoIcon as zk,TextField as qk,Tooltip as Hk,Typography as Hd}from"@rango-dev/ui";import gt from"react";import{Chip as Fk,styled as vn,TextField as Ok}from"@rango-dev/ui";var Fd=vn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ok}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ud=vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ai=vn("div",{maxWidth:"280px",padding:"$10"}),Qd=vn(Fk,{width:"61px",flexShrink:0});import{i18n as Qs}from"@lingui/core";import{Typography as Uk}from"@rango-dev/ui";import wn from"react";function zd(){return wn.createElement(ai,null,wn.createElement(Uk,{variant:"label",size:"medium",color:"neutral700"},Qs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),wn.createElement("br",null),wn.createElement("br",null),wn.createElement("b",null,Qs.t("Warning")),":",Qs.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(zd,"SlippageTooltipContent");function zs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return gt.createElement(Fd,null,gt.createElement(Ud,null,gt.createElement(Hd,{variant:"title",size:"xmedium"},qd.t("Slippage tolerance per swap")),gt.createElement(Qk,{direction:"horizontal",size:4}),gt.createElement(Hk,{container:P(),side:"top",sideOffset:4,content:gt.createElement(zd,null)},gt.createElement(zk,{color:"gray"}))),gt.createElement(Od,null,ep.map((r,a)=>{let s=`slippage-${a}`;return gt.createElement(Qd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),gt.createElement(qk,{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>=rp&&s<=np?n(s):n(null)},suffix:o&&gt.createElement(Hd,{variant:"body",size:"small"},"%"),placeholder:qd.t("Custom")})))}i(zs,"Slippage");import{i18n as bt}from"@lingui/core";import{AutoThemeIcon as Gd,BridgesIcon as Gk,ChevronRightIcon as qs,DarkModeIcon as Vd,Divider as si,ExchangeIcon as Vk,InfinityIcon as Xk,InfoIcon as Kk,LanguageIcon as jk,LightModeIcon as Xd,List as Yk,ListItem as Zk,ListItemButton as Jk,Skeleton as Rk,styled as ev,Switch as tv,Tabs as ov,Tooltip as nv,Typography as lt}from"@rango-dev/ui";import U from"react";import{useNavigate as rv}from"react-router-dom";var iv=ev("div",{width:"202px",height:"$40"}),av=[{id:"light",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:U.createElement(Vd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:U.createElement(Gd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Auto"))}],sv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Gd,{...e});case"dark":return U.createElement(Vd,{...e});default:return U.createElement(Xd,{...e})}},"getThemeIcon");function Kd(){let t=rv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=et("theme",c),f=et("liquiditySource",c),d=et("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=Gn(p,u),y=C.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),T=y.length,k=y.filter(z=>z.selected).length,v=C.filter(z=>z.type==="DEX"),I=v.length,N=v.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(Rk,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(lt,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return U.createElement(lt,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,T),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(Gk,{color:"gray",size:16})},b={id:"exchange-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Exchanges")),end:U.createElement(U.Fragment,null,x(N,I),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),start:U.createElement(Vk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},E={id:"language-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Language")),start:U.createElement(jk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"body",size:"medium"},s),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.languages)},_={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),U.createElement(si,{direction:"horizontal",size:4}),U.createElement(nv,{side:"top",sideOffset:4,container:P(),content:U.createElement(ai,null,U.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},bt.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.")))},U.createElement(Kk,{color:"gray"}))),start:U.createElement(Xk,{color:"gray",size:16}),end:U.createElement(tv,{checked:g}),onClick:S},Q={id:"theme-item",type:U.createElement(Zk,null),title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Theme")),end:U.createElement(iv,null,U.createElement(ov,{container:P(),items:av,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:sv(n)},A=f?[]:[w,b];return d||A.push(E),A.push(_),!e?.singleTheme&&!m&&A.push(Q),U.createElement(Yk,{type:U.createElement(Jk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Kd,"SettingsLists");var dv=cv("div",{paddingLeft:"$8"});function jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=mv(),r=uv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:Hs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(lv,{type:"info",variant:"alarm",title:Hs.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:yo.createElement(dv,null,yo.createElement(pv,{type:"secondary",size:"small",onClick:a},Hs.t("Reset")))}),yo.createElement(zs,null),yo.createElement(Kd,null)))}i(jd,"SettingsPage");import{i18n as Jv}from"@lingui/core";import{cancelSwap as Rv}from"@rango-dev/queue-manager-rango-preset";import{useManager as ew}from"@rango-dev/queue-manager-react";import{Alert as tw}from"@rango-dev/ui";import ll from"react";import{useParams as ow}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Bv,getCurrentStep as Pv,getRelatedWalletOrNull as _v}from"@rango-dev/queue-manager-rango-preset";import{Button as Af,CopyIcon as Dv,Divider as $v,DoneIcon as Fv,IconButton as Ov,QuoteCost as Uv,RangoExplorerIcon as Qv,StepDetails as zv,Tooltip as Nf,Typography as Co,useCopyToClipboard as qv}from"@rango-dev/ui";import{useWallets as Hv}from"@rango-dev/wallets-react";import Wf from"bignumber.js";import{PendingSwapNetworkStatus as hi}from"rango-types";import R,{useEffect as Mf,useRef as Gv,useState as Lf}from"react";import{useNavigate as Vv}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var fv=[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"):`${fv[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 ci}from"rango-types";import ui from"react";import{i18n as li}from"@lingui/core";import{Button as Jd,Divider as Gs,MessageBox as gv}from"@rango-dev/ui";import jt from"react";var Rd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Gs,{size:20}),jt.createElement(gv,{type:"error",title:li.t("Cancel Swap"),description:li.t("Are you sure you want to cancel this swap?")}),jt.createElement(Gs,{size:32}),jt.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},li.t("Yes, Cancel it")),jt.createElement(Gs,{size:12}),jt.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},li.t("No, Continue"))),"CancelContent");import{i18n as pi}from"@lingui/core";import{Button as ef,Divider as Vs,MessageBox as hv,Typography as yv}from"@rango-dev/ui";import Dt from"react";var tf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(Vs,{size:20}),Dt.createElement(hv,{type:"error",title:pi.t("Delete Transaction"),description:pi.t("Are you sure you want to delete this swap?")}),Dt.createElement(Vs,{size:32}),Dt.createElement(ef,{variant:"contained",type:"primary",size:"large",onClick:t},pi.t("Yes, Delete it")),Dt.createElement(Vs,{size:12}),Dt.createElement(ef,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(yv,{variant:"title",size:"medium",color:"primary"},pi.t("No, Cancel")))),"DeleteContent");import{i18n as Xs}from"@lingui/core";import{PendingSwapNetworkStatus as Ks}from"rango-types";var js={[Ks.WaitingForNetworkChange]:{type:"loading",title:Xs.t("Change Network")},[Ks.WaitingForConnectingWallet]:{type:"warning",title:Xs.t("Connect Wallet")},[Ks.NetworkChanged]:{type:"success",title:Xs.t("Network Changed")}};import{debug as Ys}from"@rango-dev/logging-core";import{MessageBox as Sv,Wallet as Cv}from"@rango-dev/ui";import{useWallets as Tv}from"@rango-dev/wallets-react";import So,{useState as rf}from"react";import{styled as of}from"@rango-dev/ui";var nf=of("div",{display:"flex",justifyContent:"center"}),mz=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}=Tv(),[c,m]=rf(null),[f,d]=rf(null),g=n?.walletType,S=g?Bi(u(g)):null,C=g?p(g):null,y=a&&!!g&&!!S&&!!C,T=i(()=>{c&&m({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{f&&d({...f,open:!1})},"handleCloseDerivationPathModal"),v=i(N=>{C?.needsDerivationPath&&C?.singleNamespace&&N[0]&&g?d({open:!0,providerType:g,providerImage:C.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Ys(x)),T()},"handleConfirmNamespaces"),I=i(N=>{N&&f?.namespace&&l(f?.providerType,void 0,[{namespace:f.namespace,derivationPath:N}]).catch(x=>Ys(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(Sv,{type:e,title:o,description:r}),y&&So.createElement(nf,null,So.createElement(Cv,{container:P(),title:C.name,image:C.img,type:g,state:S,link:C.installLink,disabled:s,onClick:async()=>{C.namespaces?m({open:!0,providerType:g,providerImage:C.img,availableNamespaces:C.namespaces,singleNamespace:C.singleNamespace}):l(g).catch(N=>Ys(N))}})),So.createElement(po,{open:!!c?.open,onClose:T,onConfirm:v,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!f?.open,selectedNamespace:f?.namespace,type:f?.providerType,image:f?.providerImage,onClose:k,onConfirm:I}))},"WalletStateContent");function Zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ci.WaitingForNetworkChange||e===ci.WaitingForConnectingWallet||e===ci.NetworkChanged;return ui.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ui.createElement(af,{type:js[e].type,title:js[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ci.WaitingForNetworkChange}),e==="delete"&&ui.createElement(tf,{onClose:o,onDelete:n}),e==="cancel"&&ui.createElement(Rd,{onClose:o,onCancel:r}))}i(Zs,"SwapDetailsModal");import{i18n as xn}from"@lingui/core";import{Button as Js,Divider as mi,MessageBox as sf,TokenAmount as kv,Typography as Rs}from"@rango-dev/ui";import Pe from"react";import{useNavigate as vv}from"react-router-dom";function el(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=vv();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(sf,{type:"success",title:xn.t("Swap Successful")},Pe.createElement(kv,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(mi,{size:12}),Pe.createElement(Rs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Pe.createElement(sf,{type:"error",title:xn.t("Transaction Failed"),description:m}),Pe.createElement(mi,{size:32}),n==="success"&&Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Pe.createElement(Rs,{variant:"title",size:"medium",color:"neutral100"},xn.t("Done"))),Pe.createElement(mi,{size:12}),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},xn.t("Diagnosis")),Pe.createElement(mi,{size:12})),Pe.createElement(Js,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(Rs,{variant:"title",size:"medium",color:"primary"},xn.t("See Details"))))}i(el,"SwapDetailsCompleteModal");import Lv from"react";import{i18n as Av}from"@lingui/core";import{Alert as xf,IconButton as Nv,LinkIcon as Wv}from"@rango-dev/ui";import Yt,{Fragment as Mv}from"react";import{Alert as xv,ChevronDownIcon as bv,IconButton as Ev}from"@rango-dev/ui";import Qo,{useState as Iv}from"react";import{css as bn,darkTheme as lf,styled as $t,Typography as wv}from"@rango-dev/ui";var pf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),di=$t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${lf} &`]:{color:"$secondary500"}}}}}),cf=$t(Zo,{padding:"$0 $20 $20 $20"}),jz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),uf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Yz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=bn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${lf} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),mf=bn({padding:"$5 0"}),fi=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),df=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),ff=bn({width:"100%",padding:"0 $20 $10"}),gf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),hf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),gi=$t(wv,{wordBreak:"break-word"});import{styled as tl}from"@rango-dev/ui";var yf=tl("div",{display:"flex",flexDirection:"column",gap:"$10"}),Sf=tl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Cf=tl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Tf(t){let{message:e}=t,[o,n]=Iv(!1);return Qo.createElement(xv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qo.createElement(Ev,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Qo.createElement(Sf,{rotated:o},Qo.createElement(bv,{size:12,color:"gray"}))),footer:Qo.createElement(Cf,{open:o},Qo.createElement(gi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Tf,"FailedAlert");import{i18n as kf}from"@lingui/core";import{Alert as ol,Button as vf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as nl}from"rango-types";import En from"react";function wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(vf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},kf.t("Change"))}):r===nl.WaitingForConnectingWallet?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(vf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForConnectingWallet)}},kf.t("Connect"))}):En.createElement(ol,{type:"warning",title:n.shortMessage})}i(wf,"WarningAlert");function rl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=jo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(yf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,S=f===d.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Yt.createElement(Mv,{key:g},Yt.createElement(xf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Av.t("View transaction"),action:m.url&&Yt.createElement(Nv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(Wv,{size:12}))}))}),c&&Yt.createElement(xf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Tf,{message:r}))}i(rl,"SwapDetailsAlerts");var bf=2e3;var Ef=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:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:qo(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Lv.createElement(rl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function If(t){if(jo(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 il(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Hv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=Y.use.retry(),f=ae.use.isActiveTab(),d=Vv(),[g,S]=qv(bf),C=Gv(null),[y,T]=Lf(null),[k,v]=Lf(null),I=i(()=>{r(),T(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),w=N(),b=Pv(e),E=b?.networkStatus;Mf(()=>{w.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Mf(()=>{B?T(hi.WaitingForNetworkChange):E===hi.WaitingForConnectingWallet||E===hi.NetworkChanged?T(E):T(null)},[E]);let _=Mp(e),Q=b?Bv(e,b):null,A=b?_v(e,b):null,z=Zd(e),j=Lp(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=E===hi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Wp(e,b),J=Ef({swap:e,switchNetwork:Z,showNetworkModal:E,setNetworkModal:T,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,W)=>de+parseFloat(W.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),pt=D?new Wf(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Wf(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=tt(_e,se),Xe=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?Je.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:Qn(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):R.createElement(hf,null,R.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xe?"":Je.t("Transaction was not sent."),_?`${Je.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:_.outputAmount,symbol:_.symbol,blockchain:_.blockchain}})}`:""),Xe&&R.createElement(gi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",Xe));return R.createElement(ce,{header:{title:Je.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(Io,null,R.createElement(Af,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(Co,{size:"medium",variant:"label",color:"error"},Je.t("Delete"))))},footer:j&&!k&&R.createElement(Af,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=nr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},Je.t("Try again"))},R.createElement(fe,{compact:!0,view:!0},R.createElement(di,null,R.createElement("div",{className:Uo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${Je.t("Request ID")}:`),R.createElement("div",{className:fi()},R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Nf,{container:P(),content:g?Je.t("Copied To Clipboard"):Je.t("Copy Request ID"),open:g||void 0,side:"bottom",alignOffset:-16,align:"end"},R.createElement(Ov,{variant:"ghost",onClick:S.bind(null,o||"")},g?R.createElement(Fv,{size:16,color:"secondary"}):R.createElement(Dv,{size:16,color:"gray"}))),R.createElement(gf,{target:"_blank",href:`${hl}/swap/${o}`},R.createElement(Nf,{container:P(),content:Je.t("View on Rango Explorer"),side:"bottom"},R.createElement(Qv,{size:20}))))),R.createElement("div",{className:Uo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Je.t("Finished at"):Je.t("Created at")),R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),R.createElement("div",{className:df()},R.createElement(Uv,{fee:M(String(L),2,2),time:Ho(Pn(e.steps)),steps:ne}),R.createElement(sn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||""},token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image,displayName:J[ne-1].to.chain.displayName}},percentageChange:M(Ve,2,2),warningLevel:At(Ve??0)})),R.createElement("div",{className:ff()},R.createElement(Co,{variant:"title",size:"small"},Je.t("Swaps steps"))),R.createElement($v,{size:8}),R.createElement(cf,{ref:C},J.map((de,W)=>{let V=W,X=If(e.steps[W]),Ke=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===J.length-1;return R.createElement(zv,{key:V,step:de,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Ke,tooltipContainer:P()})}))),R.createElement(Zs,{state:y,onClose:()=>T(null),onCancel:I,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!f}),R.createElement(el,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||"",percentageChange:M(Ve,2,2),token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image},description:ve}))}i(il,"SwapDetails");import{i18n as Si}from"@lingui/core";import{Divider as _f,NotFound as Zv,Skeleton as An,Typography as Ci}from"@rango-dev/ui";import Se from"react";import{i18n as Xv}from"@lingui/core";import{Divider as Kv,Skeleton as jv,Typography as Yv}from"@rango-dev/ui";import ke from"react";import{css as ht,styled as al}from"@rango-dev/ui";var Bf=al("div",{width:"100%",height:"100%",padding:"$10 $20"}),In=al("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),yi=al("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),lH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),pH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),cH=ht({paddingTop:"$15",display:"flex"}),uH=ht({padding:"$15 $0"}),mH=ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),dH=ht({paddingBottom:"$10"}),fH=ht({display:"flex",justifyContent:"start",alignItems:"center"}),gH=ht({paddingTop:"$5",display:"flex",alignItems:"center"}),hH=ht({display:"flex",alignItems:"center"}),yH=ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Pf=ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function sl(){return ke.createElement(Bf,null,ke.createElement(cn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(Yv,{variant:"title",size:"small"},Xv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(In,null,ke.createElement(wt,{separator:!1}),ke.createElement("div",{className:Pf()},ke.createElement(Kv,{direction:"horizontal",size:20}),ke.createElement(jv,{height:22,variant:"rectangular"}))),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(wt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(wt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(wt,{separator:!1}))))}i(sl,"LoadingSwapDetails");function Df(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:Si.t("Swap Details"),suffix:Se.createElement(Io,null)}},o&&Se.createElement(pf,null,Se.createElement(di,null,Se.createElement("div",{className:Uo()},Se.createElement(Ci,{variant:"label",size:"large",color:"neutral700"},`${Si.t("Request ID")}:`),Se.createElement("div",{className:fi()},Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(_f,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}),Se.createElement(_f,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Uo()},Se.createElement(Ci,{className:mf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})))),Se.createElement(sl,null)),!o&&Se.createElement(uf,null,Se.createElement(Zv,{title:Si.t("Not found"),description:Si.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Df,"SwapDetailsPlaceholder");function $f(){let{manager:t,state:e}=ew(),o=!e.loadedFromPersistor,n=rt(t),{requestId:r}=ow(),a=nt(),{fetchStatus:s}=h();if(!r)return ll.createElement(tw,{containerStyles:{margin:"20px"},type:"error",title:Jv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&Rv(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?ll.createElement(Df,{requestId:r,showSkeleton:l}):ll.createElement(il,{swap:m,requestId:r,onCancel:u,onDelete:c})}i($f,"SwapDetailsPage");function Ff(){return zp(),ea(),nw([{path:q.home,element:Ge.createElement(td,null)},{path:q.routes,element:Ge.createElement(ad,null)},{path:q.fromSwap,children:[{index:!0,element:Ge.createElement(Us,{type:"source"})},{path:q.blockchains,element:Ge.createElement(ws,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ge.createElement(Us,{type:"destination"})},{path:q.blockchains,element:Ge.createElement(ws,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ge.createElement(jd,null)},{path:q.languages,element:Ge.createElement(nd,null)},{path:q.exchanges,element:Ge.createElement(Ts,{sourceType:"Exchanges"})},{path:q.bridges,element:Ge.createElement(Ts,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ge.createElement(Pm,null)},{path:q.swapDetails,element:Ge.createElement($f,null)}]},{path:q.wallets,element:Ge.createElement(Gc,null)},{path:q.confirmSwap,element:Ge.createElement(vm,null)}])}i(Ff,"AppRoutes");import{useQueueManager as mw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as dw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as fw}from"rango-sdk";import{useContext as gw,useEffect as Gf,useState as Vf}from"react";import{globalCss as rw}from"@rango-dev/ui";var Of=i(()=>rw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Uf(){let{setWatermark:t}=ae();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(Uf,"useFetchApiConfig");import{useWallets as iw}from"@rango-dev/wallets-react";import{useEffect as aw,useRef as sw}from"react";function Qf(){let{connect:t,state:e}=iw(),o=sw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);aw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Qf,"useForceAutoConnect");import{isApprovalTX as lw,RouteEventType as zf,StepEventType as qf,StepExecutionEventStatus as pw,WidgetEvents as Ti}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Hf}from"react";function pl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();Hf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===qf.TX_EXECUTION&&s.status===pw.TX_SENT&&!lw(l)||s.type===qf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return we.on(Ti.StepEvent,r),()=>we.off(Ti.StepEvent,r)},[we,t]),Hf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===zf.FAILED||s.type===zf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Ti.RouteEvent,r),()=>we.off(Ti.RouteEvent,r)},[we])}i(pl,"useSubscribeToWidgetEvents");import{useManager as cw}from"@rango-dev/queue-manager-react";import{useEffect as uw}from"react";function cl(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=cw();uw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(rt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(cl,"useSyncNotifications");function ul(){Qf(),Of(),pl(),cl();let t=h().blockchains(),{canSwitchNetworkTo:e}=br(),[o,n]=Vf(""),[r,a]=Vf(),s=gw(Xn),l=t.filter(fw),{fetchApiConfig:p}=Uf();Gf(()=>()=>Qp(),[]),mw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Gf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===dw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(ul,"useBootstrap");import{styled as hw}from"@rango-dev/ui";var Xf=hw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ki(){ul();let{config:t}=h(),{activeTheme:e}=fr(t?.theme||{}),{activeLanguage:o}=Xt();return ml.createElement(yw,{language:o},ml.createElement(Xf,{id:"swap-container",className:e()},ml.createElement(Ff,null)))}i(ki,"Main");import{setSolanaSignerConfig as $w}from"@rango-dev/signer-solana";import fl,{useEffect as Jf,useMemo as Fw}from"react";import{useState as Sw}from"react";var Cw=i(()=>{let[t,e]=Sw(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=El(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Kf=Cw;import{checkWaitingForNetworkChange as Tw,makeQueueDefinition as kw}from"@rango-dev/queue-manager-rango-preset";import{Provider as vw}from"@rango-dev/queue-manager-react";import{useWallets as ww}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as xw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bw}from"rango-types";import Ew,{useMemo as Iw}from"react";function Aw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=ww(),l=Iw(()=>kw({API_KEY:t.apiKey||It("API_KEY"),BASE_URL:It("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(bw),S=i(k=>{let{supportedChains:v}=s(k);return $n(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:xw(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},T=ae.use.isActiveTab();return Ew.createElement(vw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Tw(k)},isPaused:!T},t.children)}i(Aw,"QueueManager");var jf=Aw;import{useManager as Bw}from"@rango-dev/queue-manager-react";import Pw,{createContext as _w,useContext as Dw}from"react";import{cancelSwap as Nw,getCurrentBlockchainOfOrNull as Ww,getCurrentStep as Mw,getRelatedWalletOrNull as Lw}from"@rango-dev/queue-manager-rango-preset";var vi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return rt(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){let n=nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Nw(o)}getCurrentStepInfo(e){let o=Mw(e);return{step:o,wallet:o?Lw(e,o):null,network:o?Ww(e,o):null}}};var Yf=_w(void 0);function dl(t){let{manager:e}=Bw(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new vi(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Pl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,S=xe().getNotifications(),C=xe().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:C}};return Pw.createElement(Yf.Provider,{value:y},t.children)}i(dl,"WidgetInfo");function Zf(){let t=Dw(Yf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Zf,"useWidget");function wi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Kf();return Jf(()=>{n&&r(n)},[n]),Fw(()=>{zl({API_KEY:o?.apiKey||Nn,BASE_URL:o?.apiUrl||gl})},[o.apiKey,o.apiUrl]),Jf(()=>{t.config?.signers?.customSolanaRPC&&$w("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),fl.createElement(Kn,{config:o,onUpdateState:e},fl.createElement(jf,{apiKey:o.apiKey},fl.createElement(dl,null,t.children)))}i(wi,"WidgetProvider");function Rf(t){let e=t.config?.externalWallets;return xi.createElement(dp,null,e?xi.createElement(ki,null):xi.createElement(wi,{config:t.config??Ui},xi.createElement(ki,null)))}i(Rf,"Widget");function eg(){let{on:t,off:e}=we;return{on:t,off:e}}i(eg,"useWidgetEvents");export{P2 as EventSeverity,Xo as MainEvents,q2 as Networks,V2 as PendingSwapNetworkStatus,$i as QuoteEventTypes,_2 as RouteEventType,bi as SUPPORTED_FONTS,D2 as StepEventType,$2 as StepExecutionBlockedEventStatus,F2 as StepExecutionEventStatus,he as UI_ID,Fi as WalletEventTypes,Q2 as WalletEvents,H2 as WalletTypes,Rf as Widget,Xo as WidgetEvents,wi as WidgetProvider,Kn as WidgetWallets,ca as customizedThemeTokens,U2 as readAccountAddress,no as useWalletList,br as useWallets,Zf as useWidget,eg as useWidgetEvents,ig as widgetEventEmitter};
1
+ var og=Object.defineProperty;var i=(t,e)=>og(t,"name",{value:e,configurable:!0});import{EventSeverity as B2,RouteEventType as P2,StepEventType as _2,StepExecutionBlockedEventStatus as D2,StepExecutionEventStatus as $2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as O2,useWallets as wr,Events as U2}from"@rango-dev/wallets-react";import{Networks as z2,WalletTypes as q2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as G2}from"rango-types";import{UI_ID as ng}from"@rango-dev/ui";var In="c6381a79-2817-4602-83bf-6a641a409e32",dl="https://api.rango.exchange",fl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...ng};var gl="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 Ui,Provider as Zg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Jg}from"rango-sdk";import Hn,{createContext as Rg,useEffect as pp,useMemo as eh,useRef as cp}from"react";import{useEffect as xg}from"react";import{create as kg}from"zustand";import{subscribeWithSelector as vg}from"zustand/middleware";import rg from"mitt";var we=rg(),ig={on:we.on,off:we.off};import{RangoClient as Cg}from"rango-sdk";import{BlockchainCategories as mg,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as dg}from"@rango-dev/wallets-react";import{detectInstallLink as fg,getCosmosExperimentalChainInfo as gg,isEvmAddress as hg,KEPLR_COMPATIBLE_WALLETS as dx,Networks as Il}from"@rango-dev/wallets-shared";import Ni from"bignumber.js";import{isCosmosBlockchain as yg}from"rango-types";import ag from"bignumber.js";var $e=new ag(0);import{WalletTypes as sg}from"@rango-dev/wallets-shared";var hl=[sg.LEAP];import{BlockchainCategories as xi,WalletState as ug}from"@rango-dev/ui";import{TransactionType as An}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Ii(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ii,"areEqual");function vl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(vl,"debounce");function Et(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Et,"containsText");function Cl(t,e){return t.toLowerCase()===e.toLowerCase()}i(Cl,"exactText");function Tl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Tl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),Qo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function kl(t,e,o){let n=!!e&&Cl(e,t),r=!!o&&Cl(o,t);return n!==r?n?-1:1:0}i(kl,"compareExactMatchText");function bi(t,e,o){let n=!!e&&Et(e,t),r=!!o&&Et(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(bi,"compareContainsText");function Ei(t,e,o){let n=!!e&&Tl(e,t),r=!!o&&Tl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ei,"compareStartWithText");function wl(t,e,o){if(!o)return 0;let n=kl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=kl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ei(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ei(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=bi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ei(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=bi(o,t.address,e.address);if(r!==0)return r}return 0}i(wl,"compareWithSearchFor");var Wn=i((t,e)=>{switch(e){case xi.ALL:return!0;case xi.UTXO:return t===An.TRANSFER;case xi.OTHER:return t!==An.TRANSFER&&t!==An.COSMOS&&t!==An.EVM;default:return t===e}},"isBlockchainTypeInCategory"),xl=i(t=>wi.find(o=>o.value===t)?.url,"getFontUrlByName");function Nn(t,e){let o=!!t.find(n=>n.state===ug.CONNECTED);return e===!1&&o}i(Nn,"isSingleWalletActive");function Mn(t,e){return e.find(o=>o.name===t)?.displayName}i(Mn,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}i(Re,"getBlockchainShortNameFor");function bl(t,e){return e.find(o=>o.name===t)?.logo}i(bl,"getBlockchainImage");function zo(t,e){return e.find(o=>o.id===t)?.title}i(zo,"getSwapperDisplayName");function Ai(t,e){return e.find(o=>o.name===t)??null}i(Ai,"findBlockchain");function Wi(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Wi,"isTokenNative");function Ft(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ft,"createTokenHash");import{BigNumber as El}from"bignumber.js";var qo=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"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new El(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new El(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 Ln=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var St=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ho=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Mi(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}i(Mi,"mapStatusToWalletState");function Al(t,e,o,n){return o.filter(r=>!hl.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:m,needsDerivationPath:f}=e(r),d=To(m.map(S=>S.type)),g=Mi(t(r));return{title:a,image:s,link:fg(l),state:g,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d,needsDerivationPath:f}})}i(Al,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function Wl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=dg(p),m=l.length>0,f=l.includes(c),d=c===Il.Unknown;if(m&&!f&&!d)return;let S=c===Il.Unknown&&hg(u);if(d&&!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(Wl,"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 m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");function Nl(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 Ni(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Nl,"makeBalanceFor");function Ml(t){return{...t,loading:!1,error:!0}}i(Ml,"resetConnectedWalletState");var Ll=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=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ni(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return Sg(r)},"calculateWalletUsdValue");function Sg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Sg,"numberWithThousandSeparator");var $n=i((t,e)=>{let o=gg(Object.entries(t).map(([,n])=>n).filter(yg));return o&&o[e]?.experimental},"isExperimentalChain");function Fn(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Fn,"formatBalance");function Bl(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(Bl,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Pl(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}i(Pl,"sortWalletsBasedOnConnectionState");function On(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(On,"getConciseAddress");function _l({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(_l,"getAddress");function Un(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ni(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},r=o?Ft({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(Un,"makeTokensBalance");var Dl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function $l(t){return t.map(e=>e.state).join("-")}i($l,"hashWalletsState");function Fl(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(Fl,"filterBlockchainsByWalletTypes");function Ol(t,e){return e===mg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Wn(n,e))return!0;return!1})}i(Ol,"filterWalletsByCategory");var Li={API_KEY:In};function It(t){return Li[t]||""}i(It,"getConfig");function Ul(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Li=e,Li}i(Ul,"initConfig");var Ql=20,zl=25,Bi="theme-widget",Go=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Pi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),ql=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Qn,Ot=i(()=>Qn||(Qn=new Cg(It("API_KEY"),It("BASE_URL")),Qn),"httpService");import{WidgetEvents as Hl}from"@rango-dev/queue-manager-rango-preset";var _i=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(_i||{}),Di=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Di||{}),Vo=(r=>(r[r.RouteEvent=Hl.RouteEvent]="RouteEvent",r[r.StepEvent=Hl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Vo||{});var Tg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ut=Tg;var te=Ut(kg()(vg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});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=>{n.connectedWallets.find(l=>l.walletType===o)&&we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});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:Un(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=>Dn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(S=>Dn(S,f)),g=p.find(S=>S.address===f.address&&S.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:Nl(g,n),loading:!1}:f});return{loading:!1,balances:Un(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Dn(m,c))?Ml(c):c);return{loading:!1,balances:Un(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ft(o);return n[r]??null}}))));import{allProviders as wg}from"@rango-dev/provider-all";function zn(t,e){let o=wg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});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(zn,"matchAndGenerateProviders");function Gl(t,e){return zn(t,e).map(r=>r.config.type)}i(Gl,"configWalletsToWalletName");function Vl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Vl,"hashProviders");function $i(t,e){let o=te.use.clearConnectedWallet(),n=zn(t,e);return xg(()=>{o(),n=zn(t,e)},[Vl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i($i,"useWalletProviders");import Hg,{createContext as Gg,useContext as Vg,useEffect as Xg,useRef as Kg}from"react";import{create as zg}from"zustand";import{persist as qg}from"zustand/middleware";var Fi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},bg={clientUrl:void 0},Eg={liquiditySources:void 0},Xl=i((t,e,o)=>({config:{...Fi,...t},iframe:bg,campaignMode:Eg,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 qn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(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(qn,"getUniqueSwappersGroups");function Kl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Kl,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function jl(t,e){return e?.[t]==="enabled"}i(jl,"isFeatureEnabled");var Yl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_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()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Go(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(Et(c.symbol,o.searchFor)||Et(c.address||"",o.searchFor)||Et(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=Bl(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Wi(c,g),y=Wi(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=wl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Ft(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(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(Kl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Ft(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Ig,English as Ag,Finland as Wg,French as Ng,German as Mg,Greece as Lg,Italian as Bg,Japanese as Pg,Netherlands as _g,Poland as Dg,Portuguese as $g,Russian as Fg,Spanish as Og,Swedish as Ug,Ukrainian as Qg}from"@rango-dev/ui";var Zl=[{title:"English",label:"English",local:"en",SVGFlag:Ag},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Og},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Ng},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Pg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:$g},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Ig},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Fg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Mg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Qg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ug},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Wg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:_g},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Lg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Bg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Dg}],ko="en";var Jl=[.5,1,3],Rl=1,ep=5,tp=100,op=0;var np=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Rl,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=To(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=et("theme",n),s=et("language",n),l=et("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||ko},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||ko}})}}),"createSettingsSlice");function rp(t){return zg()(qg((...e)=>({...Yl(...e),...np(...e),...Xl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(rp,"createAppStore");var ip=Gg(null);function h(){let t=Vg(ip);if(Xg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function ap(t){let e=Kg();return e.current||(e.current=rp(t.config)),Hg.createElement(ip.Provider,{value:e.current},t.children)}i(ap,"AppStoreProvider");import{create as Yg}from"zustand";var sp="rango-widget";var Xo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(sp),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 ae=Ut(Yg()((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 Xo({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Gn=Rg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function th(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=$i(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=cp(),f=cp();pp(()=>{n().catch(console.log)},[]),pp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Jg).map(y=>y.name),g=i((y,T,k,v,I)=>{if(T===Ui.ACCOUNTS)if(k){let W=_n(I.supportedBlockchains),x=Wl(y,k,d,W,I.isContractWallet);x.length&&u(x,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Ui.ACCOUNTS&&v.connected){let W=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(W):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===Ui.NETWORK&&v.network){let W=`${y}-${v.network}`;m.current?m.current(W):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,I)},"onUpdateState"),S=ae.use.isActiveTab(),C=eh(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Hn.createElement(Gn.Provider,{value:C},Hn.createElement(Zg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(th,"Main");function Vn(t){let{config:e,...o}=t;return Hn.createElement(ap,{config:e},Hn.createElement(th,{...o,config:e}))}i(Vn,"WidgetWallets");import vi from"react";import oh,{Fragment as nh}from"react";import{MemoryRouter as rh,useInRouterContext as ih}from"react-router";function up({children:t}){let o=ih()?nh:rh;return oh.createElement(o,null,t)}i(up,"AppRouter");import{I18nManager as Sw}from"@rango-dev/ui";import cl from"react";import Ge from"react";import{useRoutes as rw}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as xo,useRef as nr}from"react";import Oe from"bignumber.js";import{create as lh}from"zustand";import{subscribeWithSelector as ph}from"zustand/middleware";import{getLastSuccessfulStep as sh}from"@rango-dev/queue-manager-rango-preset";import KE from"bignumber.js";function Qi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Qi,"getFeeLabel");var zi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],mp=30;import{i18n as ct}from"@lingui/core";import{RouteEventType as LE}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as jn}from"rango-types";function Xn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Xn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.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:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function dp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(dp,"getQuoteErrorMessage");import{i18n as Kn}from"@lingui/core";var to=i(()=>({connectWallet:Kn.t("Connect Wallet"),swap:Kn.t("Swap"),swapAnyway:Kn.t("Swap anyway"),ethWarning:Kn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function fp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}i(fp,"hasHighValueLoss");function gp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(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(gp,"hasLimitError");function hp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(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 Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ct.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ct.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ct.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ct.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(hp,"getLimitErrorMessage");function yp(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(yp,"getSwapButtonState");function qi(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(qi,"canComputePriceImpact");function Hi(t,e){let o=$e;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Fe(r.amount).multipliedBy(a||0))}return o}i(Hi,"getUsdFeeOfStep");function Yn(t,e){return t.reduce((o,n)=>o.plus(Hi(n,e)),$e)}i(Yn,"getTotalFeeInUsd");function Gi(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}i(Gi,"getUsdFee");function Sp(t){return t.reduce((e,o)=>e.plus(Gi(o)),$e)}i(Sp,"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 Tp(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(Tp,"checkSlippageErrors");function kp(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(kp,"checkSlippageWarnings");function Zn(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(Zn,"getMinRequiredSlippage");function vp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(vp,"hasProperSlippage");function wp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,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:m??void 0,affiliateWallets:f??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(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(wp,"createQuoteRequestBody");function xp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(xp,"getWalletsForNewSwap");function vo(t){return t?.outputAmount||null}i(vo,"getQuoteOutputAmount");function bp(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}i(bp,"getPercentageChange");function Ep(t,e){let o=vo(t),n=vo(e);if(!o||!n)return!1;let r=tt(o,n);return r?r<=-1:!0}i(Ep,"isOutputAmountChangedALot");function Ip(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=>Bp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Fe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Fe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ct.t(" for input and network fee")),ct.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:Re(s.asset.blockchain,o)}})})}i(Ip,"generateBalanceWarnings");function Jn(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}i(Jn,"calcOutputUsdValue");function Ko(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==jn.NetworkChanged}i(Ko,"isNetworkStatusInWarningState");function Ap(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Ko(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case jn.WaitingForConnectingWallet:n=n||ct.t("Waiting for connecting wallet");break;case jn.WaitingForQueue:n=n||ct.t("Waiting for other running tasks to be finished");break;case jn.WaitingForNetworkChange:n=n||ct.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(Ap,"getSwapMessages");function Wp(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(Wp,"getLastConvertedTokenInFailedSwap");function Np(t){return t.status==="failed"}i(Np,"shouldRetrySwap");function Mp(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(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?Xn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Mp,"isConfirmSwapDisabled");function Lp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Lp,"isTokensIdentical");function er(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(er,"getQuoteToTokenUsdPrice");function Vi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Vi,"isNumberOfSwapsChanged");function Xi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ii(o,n)}i(Xi,"isQuoteSwappersUpdated");function Ki(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ii(o,n)}i(Ki,"isQuoteInternalCoinsUpdated");function _p(t,e){return Vi(t,e)||Xi(t,e)||Ki(t,e)}i(_p,"isQuoteChanged");function Bp(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Bp,"getRequiredBalanceOfWallet");function At(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(At,"getPriceImpactLevel");function tr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=sh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ai(a?a.toBlockchain:n.fromBlockchain,e),p=Ai(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(tr,"createRetryQuote");function wo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=tt(s.toString(),l.toString());if(!!c&&fp(s,c)){let f=Yn(t?.swaps,r),d=At(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Zn(t.swaps),u=a>ep;if(vp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:kp(t,a),minRequiredSlippage:p};return null}i(wo,"generateQuoteWarnings");function tt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:bp(t.toString(),e.toString());return n&&n<0?n:null}i(tt,"getPriceImpact");var Dp=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"),or=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"),$p=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"),Fp=i(t=>{let e=i((o,n)=>{let r=zi.indexOf(o.value),a=zi.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 Oe(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(lh()(ph(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Oe(0),outputUsdValue:new Oe(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=$e;return Ho(o.inputAmount)?(e&&(n=e?.outputAmount?new Oe(e?.outputAmount):null,r=Jn(e?.outputAmount,er(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 Oe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Oe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},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:new Oe(0)}})},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 Oe(0),outputUsdValue:new Oe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new Oe(0),toBlockchain:r,toToken:a,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 Oe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Oe(0),inputUsdValue:new Oe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Oe(0),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})})))),Op=Y.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function Up(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Y(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,I=c?.to?.blockchains,W=nr(void 0),x=nr(void 0),w=nr(void 0),b=nr(void 0);xo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.from?.blockchain),_=c?.from?.token,Q=_&&g(_);(E||!E&&w.current)&&n(E??null),Q?a({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&W.current&&a({token:null}),w.current=c?.from?.blockchain,W.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),xo(()=>{Go(s,T)&&a({token:null}),Pi(p,k)&&n(null)},[T,k]),xo(()=>{Go(l,v)&&a({token:null}),Pi(u,I)&&o(null)},[v,I]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.to?.blockchain),_=c?.to?.token,Q=_&&g(_);(E||!E&&b.current)&&o(E??null),Q?e({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&x.current&&e({token:null}),b.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),xo(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Up,"useSyncStoresWithConfig");import{useEffect as Zi,useRef as ch}from"react";import{useInRouterContext as uh,useLocation as mh,useSearchParams as dh}from"react-router-dom";function ji(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(ji,"convertTokenSearchParamToAsset");function Yi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Yi,"tokenToSearchParam");function Ji(){let t=mh(),[e,o]=dh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=Y(),d=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=uh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=ch(),{findToken:I}=h(),W=i(()=>{let w={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(w[B]=Z);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),_=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:E,fromToken:_,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:w}},"getUrlSearchParams"),x=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Zi(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:E}=W();C&&d==="success"&&x({fromBlockchain:n?.name,fromToken:Yi(a),toBlockchain:r?.name,toToken:Yi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),Zi(()=>{if(!C)return;let w=W();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&f(w.fromAmount),d==="success"){let b=g.find(A=>A.name===w.fromBlockchain),E=w.fromToken&&b?I(ji(w.fromToken,b)):void 0,_=g.find(A=>A.name===w.toBlockchain),Q=w.toToken&&_?I(ji(w.toToken,_)):void 0;b&&(p(b),E&&c({token:E,meta:{blockchains:g,tokens:S}})),_&&(u(_),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[d]),Zi(()=>{let{clientUrl:w,liquiditySources:b}=W();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(Ji,"useSyncUrlAndStore");import{i18n as es}from"@lingui/core";import{useManager as OC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as UC,css as os,Divider as ts,IconButton as km,styled as QC,Typography as zC,WalletIcon as qC}from"@rango-dev/ui";import Ie,{useEffect as Gr,useLayoutEffect as HC,useRef as GC,useState as un}from"react";import{useNavigate as VC}from"react-router-dom";import{i18n as kt}from"@lingui/core";import{Alert as Ba,BalanceErrors as wS,Button as Jc,ChevronDownIcon as xS,ChevronLeftIcon as bS,CloseIcon as ES,Divider as Ro,IconButton as Rc,MessageBox as IS,PasteIcon as AS,Typography as xr,WalletIcon as WS}from"@rango-dev/ui";import $,{useCallback as NS,useEffect as eu,useMemo as MS,useRef as LS,useState as uo}from"react";import{useNavigate as BS}from"react-router-dom";import{i18n as rr}from"@lingui/core";function ir(t){switch(t.type){case 0:return rr.t("Route has been updated.");case 3:return rr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return rr.t("Route swappers has been updated.");case 2:return rr.t("Route internal coins has been updated.");default:return""}}i(ir,"getQuoteUpdateWarningMessage");import{Modal as gh}from"@rango-dev/ui";import hh from"react";function re(t){let{watermark:e}=ae();return hh.createElement(gh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import pr,{useRef as Ch}from"react";import*as bo from"@radix-ui/react-collapsible";import{keyframes as zp,styled as ar}from"@rango-dev/ui";var Ri=300,yh=zp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Sh=zp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),qp=ar(bo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ea=ar(bo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),sr=ar(bo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${yh} ${Ri}ms ease-out`},false:{animation:`${Sh} ${Ri}ms ease-out`}}}}),lr=ar("div",{transition:`all ${Ri}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function cr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Ch(null);return pr.createElement(qp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&pr.createElement(ea,{className:"collapsible_trigger",onClick:a},s),pr.createElement(sr,{className:"collapsible_content",open:e},r),l==="bottom"&&pr.createElement(ea,{className:"collapsible_trigger",onClick:a},s))}i(cr,"CustomCollapsible");import{css as Hp,darkTheme as jo,IconButton as Th,styled as ot,TextField as kh}from"@rango-dev/ui";var Gp=ot("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Vp=ot("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),vh=ot("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${jo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${jo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${jo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Xp=ot(vh,{alignSelf:"stretch",minHeight:"93px"}),Kp=ot("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),jp=ot(Th,{position:"absolute",left:"$20"}),Yp=ot("div",{paddingTop:"$20"}),Zp=Hp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Jp=ot("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Rp=Hp({paddingTop:"$5"}),ec=ot("div",{display:"flex"}),tc=ot(kh,{backgroundColor:"$neutral100",padding:"$15"}),oc=ot("div",{overflow:"visible",width:"100%"}),nc=ot("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${jo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${jo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as ut}from"@lingui/core";import{Button as CS,Divider as Ma,Image as TS,MessageBox as vr,SelectableWallet as kS,Typography as jc,WalletState as Yc}from"@rango-dev/ui";import ue,{useEffect as Zc,useState as co}from"react";import{WalletState as ta}from"@rango-dev/ui";import{useWallets as wh}from"@rango-dev/wallets-react";import{detectMobileScreens as xh,KEPLR_COMPATIBLE_WALLETS as bh,WalletTypes as Eo}from"@rango-dev/wallets-shared";import{useCallback as Eh,useEffect as Ih,useState as Ah}from"react";var Wh=Object.values(Eo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=wh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Gl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Wh,d=Al(s,p,f,e);d=xh()?d.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):d;let g=Pl(d),[S,C]=Ah(""),y=i(x=>!c.find(w=>w.walletType===x&&w.chain===e),"isExperimentalChainNotAdded"),T=i(async(x,w)=>{let b=s(x);try{if(S&&C(""),b.connected)await l(x);else{if(Nn(d,a.multiWallets))return;o?.(x),await u(x,void 0,w),n?.(x)}}catch(E){r?.(E?.message),C("Error: "+E?.message)}},"handleClick"),k=Eh(()=>{let x=d?.filter(w=>w.state===ta.CONNECTING)||[];for(let w of x)l(w.type)},[$l(d)]),v=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");Ih(()=>()=>{k()},[]);let I=i(x=>{let w=x.find(E=>E.type===Eo.DEFAULT);return!w||w.state===ta.NOT_INSTALLED?!1:x.filter(E=>E.state!=ta.NOT_INSTALLED&&![Eo.DEFAULT,Eo.WALLET_CONNECT_2,Eo.LEDGER].includes(E.type)&&p(E.type).supportedChains.filter(_=>_.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),W=i((x,w,b)=>$n(b,w)&&y(x)&&!bh.includes(x)||x==Eo.DEFAULT&&!I(d),"shouldExcludeWallet");return{list:g.filter(x=>!W(x.type,e??"",m)),error:S,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(no,"useWalletList");import{i18n as zc}from"@lingui/core";import{Divider as cS,getCategoriesCount as uS,SelectableCategoryList as mS,styled as Hc,Typography as dS,Wallet as fS,WalletState as qc}from"@rango-dev/ui";import it,{useState as Jo}from"react";import{useManager as Py}from"@rango-dev/queue-manager-react";import{BottomLogo as _y,Divider as Wc,Header as Dy}from"@rango-dev/ui";import Te,{useEffect as wa,useRef as Nc,useState as $y}from"react";import{useRef as Nh}from"react";function ur(){return window.self!==window.top}i(ur,"isAppLoadedIntoIframe");function oa(){let t=Nh(null),{iframe:e}=h(),o=ur()&&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(oa,"useIframe");import{useNavigate as Mh}from"react-router-dom";function nt(){let t=Mh();return()=>t(-1)}i(nt,"useNavigateBack");import{createTheme as pa,darkTheme as Gh,lightTheme as Vh}from"@rango-dev/ui";import{useEffect as Xh,useState as Kh}from"react";import{theme as qh,darkColors as Hh}from"@rango-dev/ui";import sa from"react";function Lh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Lh,"expandShortHexColor");function Bh(t){return/[0-9]+$/.test(t)}i(Bh,"isOverridingColor");function Ph(t,e){return t.padStart(e,"0")}i(Ph,"pad");function na(t){let e=Math.min(Math.max(Math.round(t),0),255);return Ph(e.toString(16),2)}i(na,"intToHex");function _h(t){return`#${na(t.red)}${na(t.green)}${na(t.blue)}`}i(_h,"rgbToHex");function Dh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(Dh,"hexToRGB");function $h(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i($h,"generateShade");function Fh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(Fh,"generateTint");function Oh(t){return rc(t,$h)}i(Oh,"calculateShades");function Uh(t){return rc(t,Fh)}i(Uh,"calculateTints");function rc(t,e){let o=Dh(t),n=[];for(let r=1;r<9;r++)n.push(_h(e(o,r)));return n}i(rc,"calculateColors");function ra(t,e,o){let a=Uh(t).reverse().concat(t),s=Oh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ra,"createTintsAndShades");function ia(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Bh(r)){let p=Lh(a);Object.assign(n,ra(p,r,s))}}return{...n,...e}}i(ia,"expandToGenerateThemeColors");var ic=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Qh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=ic(o%52)+e;return ic(o%52)+e},"toAlphabeticName"),zh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),aa=i(t=>Qh(zh(5381,JSON.stringify(t))>>>0),"toHash");function la(t){let e=qh.colors,o={...e,...Hh},n,r;if(t?.light){let s={colors:ia(e,t.light)};n={id:`${Bi}-light-${aa(s)}`,tokens:s}}if(t?.dark){let s={colors:ia(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Bi}-dark-${aa(s)}`,tokens:s}}return{light:n,dark:r}}i(la,"customizedThemeTokens");function ac(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>sa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(sa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(sa.cloneElement(e,{key:l}))}}),o}i(ac,"joinList");function sc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(sc,"doesWindowPreferDarkColorScheme");function mr(t){let{colors:e,fontFamily:o=gl,borderRadius:n=Ql,secondaryBorderRadius:r=zl}=t,[a,s]=Kh(sc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=la(e),c=pa({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Vh.className],f=[c.className,Gh.className];if(u){let g=pa(u.id,u.tokens);m.push(g.className)}if(p){let g=pa(p.id,p.tokens);f.push(g.className)}return Xh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return sc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),S=f.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(mr,"useTheme");var rt=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 lc}from"@lingui/core";import{Alert as jh,Button as Yh}from"@rango-dev/ui";import pc from"react";function ca(t){return pc.createElement(jh,{action:pc.createElement(Yh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},lc.t("Activate this tab")),type:"warning",variant:"alarm",title:lc.t("Another tab is open and handles transactions.")})}i(ca,"ActivateTabAlert");import{i18n as ua}from"@lingui/core";import{Button as Zh,Divider as Jh,MessageBox as Rh}from"@rango-dev/ui";import dr from"react";function ma(t){let{open:e,onClose:o,onConfirm:n}=t;return dr.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},dr.createElement(Rh,{title:ua.t("Activate current tab"),type:"warning",description:ua.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.")},dr.createElement(Jh,{size:20}),dr.createElement(Zh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ua.t("Confirm"))))}i(ma,"ActivateTabModal");import{ChevronLeftIcon as oy}from"@rango-dev/ui";import hc from"react";import{css as ey,darkTheme as cc,IconButton as ty,styled as ro}from"@rango-dev/ui";var Tt=ro(ty,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${cc} &`]:{backgroundColor:"$neutral"}}}),uc=ro("div",{position:"absolute",background:"$secondary500",[`.${cc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Io=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),mc=ro("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"}}}}),dc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),fc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),gc=ey({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),fr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function da(t){return hc.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},hc.createElement(oy,{color:"black",size:16}))}i(da,"BackButton");import{i18n as ny}from"@lingui/core";import{Button as ry,Typography as iy}from"@rango-dev/ui";import fa from"react";function ga(t){return fa.createElement(Io,null,fa.createElement(ry,{variant:"ghost",onClick:t.onClick,size:"xsmall"},fa.createElement(iy,{variant:"label",size:"medium",color:"error500"},ny.t("Cancel"))))}i(ga,"CancelButton");import{i18n as ay}from"@lingui/core";import{Image as sy,Tooltip as ly,WalletIcon as py}from"@rango-dev/ui";import io from"react";function ha(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:gc()},o.map(r=>io.createElement(fr,{key:r.title},io.createElement(sy,{src:r.image,size:14})))):ay.t("Connect Wallet");return io.createElement(ly,{container:t.container,side:"bottom",content:n},io.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(uc,null),io.createElement(py,{size:18,color:"black"})))}i(ha,"WalletButton");import{i18n as hr}from"@lingui/core";import{NotificationsIcon as by,Popover as Ey,SettingsIcon as Iy,Tooltip as yr,TransactionIcon as Ay}from"@rango-dev/ui";import Ne from"react";import{Notifications as dy}from"@rango-dev/ui";import fy from"react";import{useNavigate as gy}from"react-router-dom";import{create as cy}from"zustand";import{persist as uy,subscribeWithSelector as my}from"zustand/middleware";var xe=Ut(cy()(uy(my((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.sort((r,a)=>a.creationTime-r.creationTime):[]},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}})));function ya(){let t=gy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return fy.createElement(dy,{list:n,getBlockchainImage:l=>bl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ya,"NotificationContent");import{useManager as hy}from"@rango-dev/queue-manager-react";import{InProgressIcon as yy}from"@rango-dev/ui";import yc from"react";var Sy=i(()=>{let{manager:t}=hy();return rt(t).map(({swap:o})=>o).find(o=>o.status==="running")?yc.createElement(fc,null,yc.createElement(yy,{color:"info",size:6})):null},"InProgressTransactionBadge"),Sc=Sy;import{EventSeverity as Cy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ty}from"@rango-dev/ui";import Cc from"react";function Tc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Cy.WARNING);return o?Cc.createElement(mc,{isSever:n},Cc.createElement(Ty,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Tc,"NotificationsBadge");import{RefreshProgressButton as ky}from"@rango-dev/ui";import Sa,{useEffect as vy,useState as kc}from"react";var wy=1e3,vc=60,xy=100;function gr({onClick:t}){let[e,o]=kc(0),[n,r]=kc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");vy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===vc&&l()},wy):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 Sa.createElement(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Sa.createElement(dc,{onTransitionEnd:()=>r(!1),isRefetched:n},Sa.createElement(ky,{size:22,color:t?"black":"gray",progress:e/vc*xy})))}i(gr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||r.includes("notifications");return Ne.createElement(Ne.Fragment,null,!r.includes("refresh")&&Ne.createElement(yr,{container:a||P(),side:"top",content:hr.t("Refresh")},Ne.createElement(gr,{onClick:e})),!l&&Ne.createElement(Ey,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ne.createElement(ya,null)},Ne.createElement("div",null,Ne.createElement(yr,{container:P(),side:"top",content:hr.t("Notifications")},Ne.createElement(Tt,{size:"small",variant:"ghost"},Ne.createElement(by,{size:18,color:"black"}),Ne.createElement(Tc,null))))),!r.includes("settings")&&Ne.createElement(yr,{container:P(),side:"top",content:hr.t("Settings")},Ne.createElement(Tt,{size:"small",variant:"ghost",onClick:n},Ne.createElement(Iy,{size:18,color:"black"}))),!r.includes("history")&&Ne.createElement(yr,{container:P(),side:"top",content:hr.t("Transactions History")},Ne.createElement(Tt,{size:"small",variant:"ghost",onClick:o},Ne.createElement(Ay,{size:18,color:"black"}),Ne.createElement(Sc,null))))}i(ao,"HeaderButtons");import{i18n as Ca}from"@lingui/core";import{Divider as xc,MessageBox as My,RefreshIcon as Ly}from"@rango-dev/ui";import Ao from"react";import{Button as Wy,styled as Ny}from"@rango-dev/ui";var wc=Ny(Wy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Ta(t){let{open:e,onClose:o}=t;return Ao.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},Ao.createElement(My,{title:Ca.t("Something went wrong"),type:"error",description:Ca.t("Something went wrong. Please refresh the app.")},Ao.createElement(xc,{size:30}),Ao.createElement(wc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Ao.createElement(Ly,{size:20,color:"primary"}),Ao.createElement(xc,{size:4,direction:"horizontal"}),Ca.t("Refresh"))))}i(Ta,"RefreshModal");function ka(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ka,"onScrollContentAttachStatusToContainer");import{css as By,styled as va}from"@rango-dev/ui";var bc="700px",Sr=By({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ec=va("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:bc},fixed:{height:bc}}}}),Ic=va("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Ac=va("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 ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=oa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=$y(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ae(),g=d==="FULL",{activeTheme:S}=mr(f||{}),C=et("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:I}=ae(),W=nt(),{manager:x}=Py(),b=rt(x).map(({swap:j})=>j).some(j=>j.status==="running"),E=i(()=>I(eo.forceClaim,b),"onActivateTab"),_=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Nc(null),z=Nc(null);return wa(()=>(ur()&&z.current&&e(z.current),()=>{o()}),[]),wa(()=>(A.current?.addEventListener("scroll",ka),()=>{A.current?.removeEventListener("scroll",ka)}),[]),wa(()=>{u(l==="failed")},[l]),Te.createElement(Ec,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${Sr()}`,ref:z},Te.createElement(Dy,{prefix:Te.createElement(Te.Fragment,null,Q&&Te.createElement(da,{onClick:()=>{W(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!C&&Te.createElement(ha,{container:P(),onClick:_,isConnected:!!c?.length}),r.onCancel&&Te.createElement(ga,{onClick:r.onCancel}))}),Te.createElement(Ic,{ref:A},n),Te.createElement(ma,{open:k,onClose:()=>v(!1),onConfirm:E}),Te.createElement(Ac,null,Te.createElement("div",{className:"footer__content"},T&&!y&&Te.createElement("div",{className:"footer__alert"},Te.createElement(ca,{onActivateTab:E}),Te.createElement(Wc,{size:10})),a),Te.createElement(Wc,{size:12}),Te.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Te.createElement(_y,null))),Te.createElement(Ta,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Fy}from"@rango-dev/ui";var Mc="$20 $20 $10 $20",Yo=Fy("div",{padding:Mc,overflowY:"auto",flexGrow:1});import{styled as Oy}from"@rango-dev/ui";var fe=Oy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Mo}from"@lingui/core";import{Button as qy,Divider as Pc,Image as Hy,MessageBox as Gy,Select as Vy,TextField as Xy}from"@rango-dev/ui";import{namespaces as Ky}from"@rango-dev/wallets-shared";import qe,{useEffect as jy,useState as _c}from"react";import{keyframes as Uy,styled as Cr}from"@rango-dev/ui";var CN=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=Cr("div",{position:"relative"}),Qy=Uy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),No=Cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Qy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Tr=Cr("div",{"& img":{borderRadius:"50%"}});import{styled as Lc,Typography as zy}from"@rango-dev/ui";var Bc=Lc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),xa=Lc(zy,{paddingLeft:"$10"}),ba={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var $c={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Dc(t){let e=t?Ky[t].derivationPaths:null;return e?[...e,$c]:[]}i(Dc,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=_c(null),[u,c]=_c("0"),m=l===$c.id,f=Dc(n),d=i(({value:S})=>{let C=f?.find(y=>y.id===S);C&&p(C.id)},"handleDerivationPathItemClick"),g=i(()=>{let S=f.find(C=>C.id===l);if(S)o(S.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return jy(()=>{p(Dc(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement(Pc,{size:20}),qe.createElement(Gy,{type:"info",title:Mo.t("Select Derivation Path"),description:Mo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:qe.createElement(Wo,null,qe.createElement(Tr,null,qe.createElement(Hy,{src:r,size:45})),qe.createElement(No,null))}),qe.createElement(Bc,null,qe.createElement(xa,{variant:"body",size:"xsmall",color:"$neutral600"},Mo.t("Choose Derivation Path Template")),qe.createElement(Vy,{value:l||"",options:f.map(S=>({value:S.id,label:S.label})),variant:"filled",handleItemClick:d,styles:{trigger:ba}}),qe.createElement(Pc,{size:20}),qe.createElement(xa,{variant:"body",size:"xsmall",color:"$neutral600"},m?Mo.t("Enter Path"):Mo.t("Enter Index")),qe.createElement(Xy,{type:m?"text":"number",variant:"contained",value:u,onChange:S=>c(S.target.value),style:ba})),qe.createElement(qy,{type:"primary",onClick:g,disabled:!f||!l||!u},Mo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as Jy}from"@rango-dev/ui";import Ia from"react";import{i18n as Lo}from"@lingui/core";import{Image as Yy,MessageBox as Ea,WalletState as Zy}from"@rango-dev/ui";import lo from"react";function Fc(t){let{state:e,image:o,error:n}=t;return e===Zy.CONNECTED?lo.createElement(Ea,{type:"success",title:Lo.t("Wallet Connected"),description:Lo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Ea,{type:"error",title:Lo.t("Failed to Connect"),description:n||Lo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Ea,{type:"loading",title:Lo.t("Connecting to your wallet"),description:Lo.t("Click connect in your wallet popup."),icon:lo.createElement(Wo,null,lo.createElement(Tr,null,lo.createElement(Yy,{src:o,size:45})),lo.createElement(No,null))})}i(Fc,"ModalContent");function Zo(t){let{open:e,onClose:o,...n}=t;return Ia.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ia.createElement(Fc,{...n}),Ia.createElement(Jy,{direction:"vertical",size:32}))}i(Zo,"WalletModal");import{i18n as Aa}from"@lingui/core";import{Button as eS,Checkbox as tS,Divider as oS,Image as Uc,ListItemButton as nS,MessageBox as rS,Radio as iS,RadioRoot as aS}from"@rango-dev/ui";import{namespaces as Qc}from"@rango-dev/wallets-shared";import Me,{useMemo as sS,useState as lS}from"react";import{styled as Ry}from"@rango-dev/ui";var Oc=Ry("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var pS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=lS([]),a=h().blockchains(),s=sS(()=>o?.map(u=>({name:u,logo:pS(a,Qc[u].mainBlockchain),title:Qc[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Me.createElement(aS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(oS,{size:20}),Me.createElement(rS,{type:"info",title:Aa.t("Select chain types"),description:Aa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Me.createElement(Wo,null,Me.createElement(fr,null,Me.createElement(Uc,{src:t.image,size:45})),Me.createElement(No,null))}),Me.createElement(Oc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(nS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(Uc,{src:u.logo,size:22}),end:e?Me.createElement(iS,{value:u.name}):Me.createElement(tS,{checked:n.includes(u.name)})}))))),Me.createElement(eS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Aa.t("Confirm")))}i(po,"WalletNamespacesModal");var gS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),hS=Hc(fe,{textAlign:"center"}),kr=3e3,Wa=300;function Gc(){let{fetchStatus:t}=h(),[e,o]=Jo("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Jo(!1),[l,p]=Jo(null),[u,c]=Jo(null),[m,f]=Jo(""),d=null,g=ae.use.isActiveTab(),{list:S,handleClick:C,error:y,disconnectConnectingWallets:T}=no({onBeforeConnect:G=>{d=setTimeout(()=>{s(!0),f(G)},Wa)},onConnect:()=>{d&&clearTimeout(d),setTimeout(()=>{s(!1)},kr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),I=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),W=S.find(G=>G.type===m),x=W?.image||"",w=W?.state||qc.NOT_INSTALLED,b=Fl(S,n),_=uS(b)!==1,Q=Ol(S,e),A=i((G,B)=>{Nn(S,r.multiWallets)||(B.namespaces&&B.state===qc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):C(G))},"handleWalletItemClick"),z=i(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):C(l?.providerType,G.map(Z=>({namespace:Z}))),v()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&C(u.providerType,[{namespace:u.namespace,derivationPath:G}]),I()},"handleDerivationPathConfirm");return it.createElement(ce,{header:{title:zc.t("Connect Wallets")}},it.createElement(hS,null,_&&it.createElement(it.Fragment,null,it.createElement(mS,{setCategory:o,category:e,blockchains:b,isLoading:t==="loading"}),it.createElement(cS,{size:24})),it.createElement(dS,{variant:"title",size:"xmedium",align:"center"},zc.t("Choose a wallet to connect.")),it.createElement(gS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return it.createElement(fS,{key:Z,...G,container:P(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!g})}),it.createElement(Zo,{open:!!a,onClose:k,image:x,state:w,error:y}),it.createElement(po,{open:!!l?.open,onClose:v,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),it.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:I,onConfirm:j}))))}i(Gc,"WalletsPage");import{keyframes as yS,styled as Na}from"@rango-dev/ui";var Vc=Na("div",{position:"relative"}),SS=yS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Xc=Na("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${SS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Kc=Na("div",{"& img":{borderRadius:"50%"}});var vS=7;function La(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=co(""),[f,d]=co(null),[g,S]=co(!1),[C,y]=co(null),[T,k]=co(null),[v,I]=co(null),{suggestAndConnect:W}=wr(),x=null,{list:w,error:b,handleClick:E,disconnectWallet:_,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{m(L)},Wa)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{m("")},kr)}}),[A,z]=co(w),j=w.length,G=r&&j-r>0,B=i(async L=>{S(!1),y("in-progress");try{await W(L.walletType,L.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),Z=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{v&&I({...v,open:!1})},"handleCloseDerivationPathModal"),J=i(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=i(L=>{let me=A.find(se=>se.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?I({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):E(T?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&v?.namespace&&E(v.providerType,[{namespace:v.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");Zc(()=>{z(L=>{let me=w.findIndex(se=>o(se.type,e));return G&&me>1?[w[me]].concat(w.filter((se,_e)=>_e!==me)):L.map(se=>w.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(w)]);let Ce=document.getElementById(he.SWAP_BOX_ID);Zc(()=>{let L=null;return(C==="completed"||C==="rejected")&&(L=setTimeout(()=>y(null),kr)),()=>{L&&clearTimeout(L)}},[C]);let D=i(()=>{Q(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=_l({connectedWallets:p,walletType:L.type,chain:e}),se=me?On(me,vS):"",_e=$n(u(),e),pt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&pt&&L.state===Yc.CONNECTED,Ve=De?ut.t({id:"Add {chain} chain",values:{chain:e}}):se,Xe=i(async()=>{L.state===Yc.DISCONNECTED?L.namespaces?J(L):E(L.type):L.namespaces&&!se?(await _(L.type),J(L)):De?(d({walletType:L.type,chain:e,address:me??""}),S(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=f?.chain?Mn(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Zo,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:b}),ue.createElement(po,{open:!!T?.open,onClose:Z,onConfirm:ne,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),ue.createElement(so,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ie,onConfirm:ge}),!!f&&ue.createElement(re,{open:!!f&&g,container:Ce,onClose:()=>{d(null)}},ue.createElement(vr,{title:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:ut.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Ma,{size:18}),ue.createElement(Ma,{size:32}),ue.createElement(CS,{onClick:B.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ut.t("Confirm")))),C&&ue.createElement(re,{open:!!C,onClose:y.bind(null,null),container:Ce},C==="in-progress"&&ue.createElement(vr,{type:"loading",title:ut.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:ut.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(Vc,null,ue.createElement(Kc,null,ue.createElement(TS,{src:L.image,size:45})),ue.createElement(Xc,null))}),C==="completed"&&ue.createElement(vr,{type:"success",title:ut.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:ut.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ve}})}),C==="rejected"&&ue.createElement(vr,{type:"error",title:ut.t("Request Rejected"),description:ut.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Ma,{direction:"vertical",size:32})),ue.createElement(kS,{key:L.type,description:Ve,onClick:Xe,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(Xp,{selected:!1,onClick:a},ue.createElement(jc,{variant:"label",size:"medium"},ut.t("Show more wallets"),ue.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(La,"WalletList");var PS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=BS(),l=h().config,p=LS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:S}=Y(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=uo(""),[v,I]=uo([]),[W,x]=uo(""),[w,b]=uo(null),[E,_]=uo(!!g),Q=navigator?.userAgent.includes("Firefox"),A=MS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(N=>N.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=i(N=>z.includes(N),"isWalletRequiredFor"),B=NS(()=>C.filter(N=>N.selected&&A.includes(N.chain)),[C,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((N,V)=>ne(X=>X.concat({blockchain:N,walletType:V})),"addNextSelectedWallets"),Ce=v.length>0,D=i((N,V)=>!!Z.find(X=>X.walletType===N&&X.chain===V&&X.selected&&(G(V)||!G(V)&&!g)),"isSelected"),L=!!g&&E&&j&&!Xn(j,g),me=i(()=>{_(!1),S(null),ie(N=>{let V=!1;return N.map(X=>!V&&X.chain===j?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),se=i(()=>S(""),"handleClearCustomDestination"),_e=i(async N=>{if(N.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),pt=i(N=>{N?G(j?.name??"")||ie(V=>V.map(X=>X.chain===j?.name?{...X,selected:!1}:X)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=i(N=>{if(T&&k(""),D(N.walletType,N.chain))return;let X=C.find(Ke=>Ke.walletType===N.walletType&&Ke.chain===N.chain);X&&(n(),N.chain===j?.name&&E&&!G(j.name)&&(_(!1),S(null)),ie(Ke=>Ke.filter(yt=>yt.chain!==N.chain).concat({...X,selected:!0})))},"onChange"),Ve=i(()=>{let N=Z.filter(V=>V.selected);y(N),m(N),d(!0),o()},"onConfirmBalance"),Xe=i(async()=>{I([]),x(""),b(null);let N=await r?.({selectedWallets:Z.filter(X=>X.selected),customDestination:g}),V=N.warnings;V?.balance?.messages&&I(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),N.error&&x(dp(N.error)),!N.error&&!V?.balance?.messages.length?Ve():I(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>g?$.createElement(Rc,{onClick:se,variant:"ghost"},$.createElement(ES,{size:12,color:"gray"})):Q?null:$.createElement(Rc,{onClick:_e,variant:"ghost"},$.createElement(AS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{ie(N=>{let V=[];return N.forEach(X=>{!C.some(yt=>yt.chain===X.chain&&yt.walletType===X.walletType&&yt.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(yt=>yt.chain===X.chain)&&X.selected&&A.includes(X.chain))),V})},[C,A]),eu(()=>{let N=[];J.length>0&&(J.forEach(V=>{let X=C.find(Ke=>Ke.chain===V.blockchain&&Ke.walletType===V.walletType);X?De(X):N.push(V)}),ne(N))},[C,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!T,container:de,...!T&&{footer:$.createElement(ec,null,$.createElement(Jc,{loading:a,disabled:Mp(a,E,g,c,Z,j),onClick:Xe,variant:"contained",type:"primary",fullWidth:!0,size:"large"},kt.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Kp,null,$.createElement(jp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(bS,{size:16})),$.createElement(xr,{variant:"headline",size:"small"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:I.bind(null,[]),container:de},$.createElement(IS,{title:kt.t("Insufficient account balance"),type:"error",description:$.createElement(wS,{messages:v??[]})},$.createElement(Jc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ve},kt.t("Proceed anyway")))),T&&$.createElement(Yp,null,$.createElement("div",{className:Zp()},$.createElement(La,{chain:T,isSelected:D,selectWallet:De,onShowMore:()=>k(T),onConnect:N=>{ge(T,N)}}))),!T&&$.createElement($.Fragment,null,W&&$.createElement($.Fragment,null,$.createElement(Ba,{variant:"alarm",type:"error",title:kt.t(W)}),$.createElement(Ro,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(Ba,{variant:"alarm",type:"warning",title:ir(w)}),$.createElement(Ro,{size:12})),$.createElement(oc,null,A.map((N,V)=>{let X=u.find(Zt=>Zt.name===N),Ke=`wallet-${V}`,yt=V===A.length-1;return $.createElement("div",{key:Ke},$.createElement(Gp,null,$.createElement(xr,{variant:"title",size:"xmedium"},kt.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(xr,{variant:"label",color:"$neutral700",size:"medium"},kt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Ro,{size:24}),$.createElement(Vp,null,$.createElement(La,{chain:N,isSelected:D,selectWallet:De,limit:PS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{ge(N,Zt)}})),!yt&&$.createElement(Ro,{size:32}),yt&&l?.customDestination!==!1&&$.createElement(Jp,null,$.createElement(cr,{onOpenChange:pt,hasSelected:!0,open:E,triggerAnchor:"top",trigger:$.createElement(nc,null,$.createElement("div",{className:"button__content"},$.createElement(WS,{size:18,color:"info"}),$.createElement(Ro,{size:4,direction:"horizontal"}),$.createElement(xr,{variant:"label",size:"medium",color:E?"$neutral600":void 0},kt.t("Send to a different address"))),$.createElement(lr,{orientation:E?"up":"down"},$.createElement(xS,{size:10,color:"secondary"}))),onClickTrigger:()=>_(Zt=>!Zt)},$.createElement(tc,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:kt.t("Enter {blockchainName} address",{blockchainName:Mn(N,u)}),value:g||"",suffix:ve(),onChange:Zt=>{let tg=Zt.target.value;S(tg)},...!g&&{autoFocus:!0}})),L&&$.createElement("div",{className:Rp()},$.createElement(Ba,{variant:"alarm",type:"error",title:kt.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as RS}from"@lingui/core";import{Alert as eC,Button as tC,InfoIcon as oC}from"@rango-dev/ui";import Ye from"react";import{Alert as $S,Button as FS,Divider as Da,NoRouteIcon as OS,RefreshIcon as US,Typography as lu}from"@rango-dev/ui";import je from"react";import{i18n as ou}from"@lingui/core";var _S=24,DS=60;function nu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:ou.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ou.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(nu,"makeInfo");var Pa=(o=>(o[o.small=_S]="small",o[o.large=DS]="large",o))(Pa||{}),_a=(o=>(o.small="small",o.large="medium",o))(_a||{});import{styled as br}from"@rango-dev/ui";var ru=br("div",{display:"flex",flexDirection:"column",alignItems:"center"}),iu=br("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),au=br("div",{variants:{size:{small:{width:"100%"},large:{}}}}),su=br("div",{padding:"$6 $0"});function en(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=nu(o,r,()=>a(s,!0),e);return je.createElement(ru,null,je.createElement(OS,{size:Pa[n],color:"gray"}),je.createElement(Da,{size:4}),je.createElement(lu,{variant:"title",size:_a[n]},oe().noResultError.title),n==="large"&&je.createElement(Da,{size:4}),!!l.description&&je.createElement(iu,{size:n},je.createElement(lu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),je.createElement(Da,{size:n==="large"?"24":"4"}),!!l.alert&&je.createElement(au,{size:n},je.createElement($S,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&je.createElement(FS,{size:"xsmall",type:l.alert.type,prefix:je.createElement(su,null,je.createElement(US,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(en,"NoResult");import{i18n as tn}from"@lingui/core";import{Button as zS,Divider as qS,MessageBox as HS,Typography as GS,WarningIcon as VS}from"@rango-dev/ui";import Wt from"react";import{Typography as mu}from"@rango-dev/ui";import Fa from"react";import{darkTheme as QS,styled as Er}from"@rango-dev/ui";var pu=Er("div",{width:"100%"}),$a=Er("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),cu=Er("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${QS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uu=Er("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function du(t){let{title:e,value:o,valueColor:n}=t;return Fa.createElement(cu,null,Fa.createElement(mu,{size:"medium",variant:"label",className:"_title"},e),Fa.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:tn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:tn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:tn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:tn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Wt.createElement(re,{footer:Wt.createElement(zS,{type:"primary",size:"large",prefix:Wt.createElement(VS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Wt.createElement(HS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Wt.createElement($a,null,Wt.createElement(qS,{size:"4"}),Wt.createElement(GS,{size:"small",variant:"title"},tn.t("Details")),Wt.createElement($a,null,l.map((p,u)=>Wt.createElement(du,{key:u,...p})))))}i(fu,"HighValueLossWarningModal");import{i18n as Oa}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=Oa.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&&(At(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Oa.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=Oa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(gu,"makeAlerts");import{i18n as Bo}from"@lingui/core";import{Button as hu,Divider as yu,MessageBox as XS,Typography as KS}from"@rango-dev/ui";import mo from"react";import{useNavigate as jS}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=jS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(KS,{variant:"label",size:"medium",color:"$neutral900"},Bo.t("Change settings"))),container:P(),onClose:r},mo.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}})},mo.createElement(yu,{size:18}),mo.createElement(yu,{size:32}),mo.createElement(hu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Bo.t("Confirm anyway"))))}i(Su,"SlippageWarningModal");import{Button as YS,MessageBox as ZS,WarningIcon as JS}from"@rango-dev/ui";import Ir from"react";function Cu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ir.createElement(re,{footer:Ir.createElement(YS,{type:"primary",size:"large",prefix:Ir.createElement(JS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Ir.createElement(ZS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cu,"UnknownPriceWarningModal");function on(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=gu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),Ye.createElement(Ye.Fragment,null,f&&Ye.createElement(en,{error:o,fetch:s}),!!d&&Ye.createElement(pu,null,Ye.createElement(eC,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ye.createElement(uu,{onClick:l},Ye.createElement(oC,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:Ye.createElement(tC,{size:"xxsmall",type:d.alertType,onClick:c},RS.t("Change"))}})),e&&Ye.createElement(Ye.Fragment,null,e.type===0&&Ye.createElement(fu,{...m,warning:e}),(e.type===3||e.type===2)&&Ye.createElement(Su,{...m,warning:e}),e.type===1&&Ye.createElement(Cu,{...m,warning:e})))}i(on,"QuoteWarningsAndErrors");import BC from"bignumber.js";import Qr from"react";import{i18n as fo}from"@lingui/core";import{Alert as TC,Divider as _o,FullExpandedQuote as kC,InfoIcon as vC,NumericTooltip as Ju,QuoteTag as wC,StepDetails as xC,TokenAmount as bC,Typography as Do}from"@rango-dev/ui";import Xa from"bignumber.js";import F,{useRef as EC,useState as IC}from"react";import{styled as Ua}from"@rango-dev/ui";var Qa=Ua("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Tu=Ua("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ku=Ua("div",{width:"100%",display:"flex"});import*as Ar from"@radix-ui/react-collapsible";import{Button as nC,css as nn,darkTheme as be,Image as vu,styled as Ue,Typography as rC}from"@rango-dev/ui";var iC=300,wu=Ue(Ar.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xu=nn({padding:"$10 $15"}),bu=Ue(nC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Eu=Ue("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",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Iu=nn({width:"100%",padding:"$15 $15 $10 $15"}),Au=nn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Po=nn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Wu=nn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Nu=Ue(Ar.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:{[`& ${vu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${vu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Mu=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Lu=Ue(sr,{width:"100%",background:"inherit"}),za=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${iC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),OB=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Bu=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Pu=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),qa=Ue(rC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),_u=Ue("div",{display:"flex",flexWrap:"wrap"}),Ha=Ue("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"}}}}),Du=Ue("div",{display:"flex"}),Wr=Ue("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as vt}from"@lingui/core";import{ChevronDownIcon as sC,CloseIcon as lC,Divider as Lr,IconButton as pC,NumericTooltip as cC,QuoteCost as uC,Typography as mt}from"@rango-dev/ui";import ee,{useState as Uu}from"react";import{css as aC,styled as Nr}from"@rango-dev/ui";var Mr=Nr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ga=Nr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),$u=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=aC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var mC=i(t=>t.fee.isZero()?null:ee.createElement(Mr,null,ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(mt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Qu(t){let[e,o]=Uu(!1),[n,r]=Uu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=Cp(m);return ee.createElement(ee.Fragment,null,ee.createElement(uC,{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:f}),ee.createElement(re,{container:f,open:e,header:ee.createElement(Fu,null,ee.createElement(mt,{variant:"title",size:"medium"},vt.t("Gas & Fee Explanation")),ee.createElement(pC,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(lC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement($u,null,ee.createElement(mt,{variant:"title",size:"small"},vt.t("Details")),ee.createElement(Lr,{size:10}),Object.entries(d.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Gi(C);return ee.createElement(Mr,{key:T},ee.createElement(mt,{variant:"label",size:"medium",color:"neutral600"},Qi(g,vt.t)),ee.createElement(cC,{content:C.amount,container:f},ee.createElement(mt,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),ee.createElement(Mr,{className:"total_payable_fee"},ee.createElement(mt,{variant:"label",size:"medium"},vt.t("Total Payable Fee")),ee.createElement(mt,{variant:"label",size:"medium"},"$",M(l,4,4))),ee.createElement(Ga,null),Object.keys(d.nonePayable).length&&ee.createElement(cr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:ee.createElement("div",{className:Ou()},ee.createElement(mt,{size:"small",variant:"body",color:"neutral700"},n?vt.t("Hide non-payable fees"):vt.t("Show non-payable fees")),ee.createElement(Lr,{size:4,direction:"horizontal"}),ee.createElement(lr,{orientation:n?"up":"down"},ee.createElement(sC,{size:12,color:"gray"}))),open:n},ee.createElement(mt,{size:"small",variant:"title"},vt.t("Description")),ee.createElement(Lr,{size:4}),ee.createElement(mt,{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.`)),ee.createElement(Lr,{size:10}),Object.entries(d.nonePayable).map(([g,S],C)=>{let y=Sp(S),T=Qi(g,vt.t),k=`non-payable-fee-${C}`;return ee.createElement(mC,{key:k,fee:y,label:T})}),ee.createElement(Ga,null)))))}i(Qu,"QuoteCostDetails");import{i18n as Hu}from"@lingui/core";import{TokenAmount as Gu}from"@rango-dev/ui";import Br from"react";import{css as dC,styled as fC}from"@rango-dev/ui";var zu=fC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qu=dC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Br.createElement(zu,null,Br.createElement(Gu,{direction:"horizontal",label:Hu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Br.createElement("div",{className:qu()}),Br.createElement(Gu,{direction:"horizontal",tooltipContainer:P(),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(rn,"QuoteSummary");import{i18n as Yu}from"@lingui/core";import{ChevronDownIcon as yC,ChevronRightIcon as SC,Divider as Va,Image as CC,Tooltip as Fr,Typography as _r}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as gC,useState as an}from"react";var Vu=480,Xu=768,Ku=1024,ju=1200,hC=i(()=>{let[t,e]=an(!1),[o,n]=an(!1),[r,a]=an(!1),[s,l]=an(!1),[p,u]=an(!1),c=i(()=>{e(window.innerWidth<=Vu),n(window.innerWidth>Vu&&window.innerWidth<=Xu),a(window.innerWidth>Xu&&window.innerWidth<=Ku),l(window.innerWidth>Ku&&window.innerWidth<=ju),u(window.innerWidth>ju)},"handleResize");return gC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Pr=hC;var Dr=4,$r=6,sn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return O.createElement(Fr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Mu,{className:n,state:a},O.createElement(CC,{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||P(),u=r.length,c=Dp(r),{isTablet:m,isMobile:f}=Pr();return O.createElement(Nu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},O.createElement("div",{className:Po()},O.createElement(_r,{variant:"body",size:"xsmall"},Yu.t("Via:")),O.createElement(Va,{direction:"horizontal",size:4}),r.map((d,g)=>{let S=`item-${g}`,C=O.createElement(za,null,O.createElement(SC,{size:12,color:"black"}));return f||m?O.createElement(O.Fragment,{key:S},O.createElement(sn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):O.createElement(O.Fragment,{key:S},u<=Dr||u>Dr&&g<Dr-1?O.createElement(O.Fragment,null,O.createElement(sn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):g===Dr-1&&O.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Po()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&O.createElement(O.Fragment,{key:k},O.createElement(sn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,C))}))},O.createElement(Ha,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},O.createElement(_r,{size:"xsmall",variant:"body"},"+",u-g))))})),O.createElement("div",{className:Po()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:Po()},O.createElement(_r,{variant:"body",size:"xsmall"},Yu.t("Chains:")),O.createElement(Va,{direction:"horizontal",size:4}),c.map((d,g)=>O.createElement(O.Fragment,{key:d.displayName},c.length<=$r||c.length>$r&&g<$r-1?O.createElement(Fr,{container:p,side:"bottom",content:d.displayName,sideOffset:4},O.createElement(sn,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===$r-1&&O.createElement(Fr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Po()},c.map((S,C)=>C>=g&&O.createElement(sn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},O.createElement(Ha,{className:"blockchainImage"},O.createElement(_r,{size:"xsmall",variant:"body"},"+",c.length-g))))),O.createElement(Va,{direction:"horizontal",size:32}))),O.createElement(za,{orientation:a?"up":"down"},O.createElement(yC,{size:12,color:"black"}))))}i(Zu,"QuoteTrigger");function Ka(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:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=IC(t.expanded),I=EC(null),W=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",b=tt(o.usdValue,n.usdValue??null),E=M(b,2,2),_=At(b??0),Q=i((ge,Ce)=>ge.map((D,L)=>{let me,se=r?.type===3&&r.swap.swapperId===D.swapperId,_e=r?.type===4&&r.recommendedSlippages?.has(L),pt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=pt;De?me="error":Ve&&(me="warning");let Xe=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Xe=fo.t("Bridge Limit Error")),{swapper:{displayName:zo(D.swapperId,S)??"",image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Re(D.from.blockchain,d)??"",image:D.from.blockchainLogo},price:{value:L===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:L===0?o.value:D.fromAmount,realUsdValue:new Xa(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Re(D.to.blockchain,d)||"",image:D.to.blockchainLogo},price:{value:M(D.toAmount,6,6),usdValue:M((D.to.usdPrice??0)*parseFloat(D.toAmount),4,4),realValue:D.toAmount,realUsdValue:new Xa(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ve?F.createElement(Tu,{dense:m},F.createElement(TC,{variant:"alarm",type:De?"error":"warning",title:Xe,footer:F.createElement(ku,null,se&&F.createElement("div",null,F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(_o,{direction:"vertical",size:2}),F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(_e||pt)&&!se&&F.createElement("div",null,F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement(_o,{direction:"vertical",size:2}),F.createElement(Do,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:qo(D.estimatedTimeInSeconds),fee:M(Hi(D,g),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=f||P(),G=Fp(t.quote.tags||[]),B=!!c,Z=qo(Ln(e?.swaps)),ie=Yn(e?.swaps??[],g),J=M(ie,2,2),ne=ie.gte(new Xa(mp));return m?F.createElement(kC,{selected:l,fee:J,time:Z,tooltipContainer:Qo(),steps:A,tags:G,feeWarning:ne,percentageChange:E,warningLevel:_,outputPrice:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Eu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Iu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Du,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(wC,{label:ge.label,value:ge.value}),F.createElement(_o,{size:4,direction:"horizontal"}))})),F.createElement(Wr,null),!B&&F.createElement(_o,{size:4})):null,F.createElement("div",{id:"portal-root",className:Au()},F.createElement(Qu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(bu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Do,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Wu()},F.createElement(Pu,null,F.createElement(vC,{size:12,color:"gray"})),F.createElement(_u,null,F.createElement(qa,{size:"small",variant:"body"},`${W} ${A[0].from.token.displayName} = `),F.createElement(Ju,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(qa,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(Ju,{content:n.usdValue,container:j},F.createElement(_o,{size:2,direction:"horizontal"}),F.createElement(Do,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(bC,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:E,warningLevel:_}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(rn,{from:A[0].from,to:A[z-1].to,percentageChange:E,warningLevel:_}),F.createElement(_o,{size:4}))),F.createElement(wu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(Zu,{type:s,quoteRef:I,selected:l,setExpanded:v,container:j,expanded:k,steps:A}),F.createElement(Lu,{open:k},F.createElement(Bu,null),F.createElement("div",{className:xu()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(xC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Ka,"Quote");import{Divider as MC,Skeleton as LC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as AC,styled as Or}from"@rango-dev/ui";var Ru=Or("div",{$$color:"$colors$neutral100",[`.${AC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),em=Or("div",{paddingTop:"$2"}),tm=Or("div",{paddingLeft:"$8"}),om=Or("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 dt,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as WC,styled as Nt}from"@rango-dev/ui";var ja=Nt("div",{display:"flex"}),nm=Nt("div",{padding:"$10 $0 $20"}),rm=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),im=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),am=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),sm=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),lm=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),pm=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),cm=Nt("div",{padding:"$15 $0 $15 $0"}),um=WC({display:"flex",justifyContent:"space-between",alignItems:"center"});function ln(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(am,null,H.createElement(lm,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(dt,{size:8,direction:"horizontal"}),H.createElement(pm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(dt,{size:4}),H.createElement(Ze,{height:15,variant:"rounded"}))),H.createElement(Ze,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(ja,null,H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Wr,null),!r&&H.createElement(dt,{size:4})),H.createElement("div",{className:um()},H.createElement(ja,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(dt,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ze,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(nm,null,H.createElement(Ze,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(rm,null,H.createElement(im,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(dt,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(dt,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(dt,{size:4}),H.createElement(cm,null,n,H.createElement(sm,null),n),H.createElement(dt,{size:12})))}i(ln,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Za,NextIcon as NC,Skeleton as Ur}from"@rango-dev/ui";import Ee from"react";import{styled as pn}from"@rango-dev/ui";var dm=pn("div",{display:"flex",alignItems:"start"}),fm=pn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ya=pn("div",{display:"flex",alignItems:"center",flexGrow:1}),gm=pn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),hm=pn("div",{display:"flex",alignItems:"center"});function wt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(hm,null,Ee.createElement(Ur,{height:22,width:22,variant:"circular"}),Ee.createElement(Za,{direction:"horizontal",size:8}),Ee.createElement(Ur,{height:15,width:148,variant:"rounded"})),Ee.createElement(dm,null,Ee.createElement(om,{hideSeparator:!e}),Ee.createElement(fm,{extraSpace:e},Ee.createElement(Ya,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Za,{direction:"horizontal",size:8}),Ee.createElement(Ur,{height:12,variant:"rounded"})),Ee.createElement(gm,null,Ee.createElement(NC,{color:"gray",size:16})),Ee.createElement(Ya,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Za,{direction:"horizontal",size:8}),Ee.createElement(Ur,{height:12,variant:"rounded"})))))}i(wt,"StepSkeleton");function cn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Ru,{expanded:o,rounded:e!=="basic"},Mt.createElement(ln,{type:e,tagHidden:n}),Mt.createElement(em,null,Mt.createElement(LC,{height:15,variant:"rounded"})),o&&Mt.createElement(tm,null,Mt.createElement(MC,{size:24}),Mt.createElement(wt,null),Mt.createElement(wt,null),Mt.createElement(wt,{separator:!1})))}i(cn,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=Y(),y=e?.outputAmount?new BC(e?.outputAmount):null,T=e?.outputAmount?Jn(e?.outputAmount,er(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Qr.createElement(Qa,null,Qr.createElement(cn,{tagHidden:l,type:o,expanded:s})):v?Qr.createElement(Qa,{onClick:()=>p?.(e)},Qr.createElement(Ka,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as $C}from"@rango-dev/queue-manager-rango-preset";import{useEffect as FC}from"react";import{useRef as PC,useState as _C}from"react";var DC=2e3;function zr({request:t}){let[e,o]=_C(!1),n=PC(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(zr,"useFetch");function Sm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Sm,"useFetchConfirmQuote");function qr(t){if(!t.swaps)throw new Error(oe().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(gp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=hp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Tp(t);if(o){let n=Zn(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=_p(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=wo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Ep(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(vo(e)),percentageChange:M(tt(vo(t)??"",vo(e)??""),null,2)}:Vi(t,e)?r.quoteUpdate={type:0}:Xi(t,e)?r.quoteUpdate={type:1}:Ki(t,e)&&(r.quoteUpdate={type:2}));let s=Ip(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Cm,"generateWarnings");function Hr(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(Hr,"handleQuoteErrors");function Ra(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=Sm();return FC(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,I=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let W=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),x={requestId:r?.requestId||"",selectedWallets:W,destination:I||void 0};try{return await S(x,!0).then(w=>{let{result:b}=w;qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let E={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(E);let _={slippage:g.toString(),disabledSwappersGroups:c},Q=Cm(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=$C(o.toString(),b,xp(v),_,!A,{blockchains:m,tokens:f});return{quote:E,swap:z,error:null,warnings:Q}})}catch(w){return Hr(w)}},"fetch"),cancelFetch:C}}i(Ra,"useConfirmSwap");var XC=QC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),KC=os({flexGrow:1,paddingRight:"$10"}),jC=os({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),YC=os({display:"flex",justifyContent:"space-between",alignItems:"center"});function vm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=VC(),[l,p]=un(""),u=!n,[c,m]=un(!1),[f,d]=un(!1),{isActiveTab:g}=ae(),S=h().getDisabledLiquiditySources(),C=GC(S),{manager:y}=OC(),{fetch:T,loading:k,cancelFetch:v}=Ra(),[I,W]=un({swap:null,error:null,warnings:null}),[x,w]=un(!1),b=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await T?.({selectedWallets:B,customDestination:Z});return W(ie),ie},"onConfirmSwap"),E=i(async()=>{if(I.swap&&n)try{await y?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let B=`../${q.swaps}/${I.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),_=i(async()=>{d(!0),await E(),d(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await _()},"onStartConfirmSwap"),A=i(async()=>{W({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(B=>{W(B)}).catch(B=>console.error(B))},"onRefresh");Gr(()=>{!!C.current.length&&!S.length&&A(),C.current=S},[S.length]),Gr(()=>{u&&v()},[u]),Gr(()=>{u&&m(u)},[u]),Gr(()=>{u||T({selectedWallets:o,customDestination:r}).then(B=>W(B)).catch(B=>console.error(B))},[]),HC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=I.warnings?.quote??null,j=I.error,G=[];if(l&&G.push(Ie.createElement(Tm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&G.push(Ie.createElement(Tm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&ir(I.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(on,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await E()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:es.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(XC,null,Ie.createElement("div",{className:KC()},Ie.createElement(UC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!I.error||!g,onClick:Q},es.t("Start Swap"))),Ie.createElement(km,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},Ie.createElement(qC,{size:24})))},c&&Ie.createElement(tu,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),Ie.createElement(fe,null,Ie.createElement("div",{className:YC()},Ie.createElement(zC,{variant:"title",size:"small"},es.t("You get")),Ie.createElement("div",{className:jC()},Ie.createElement(gr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(ts,{size:"12"}),ac(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(ts,{size:10})),G.length>0?Ie.createElement(ts,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:I.error,loading:k,warning:I.warnings?.quote??null})))}i(vm,"ConfirmSwapPage");import{i18n as Xr}from"@lingui/core";import{useManager as mT}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as dT,styled as fT}from"@rango-dev/ui";import Bt,{useState as gT}from"react";import{useNavigate as hT}from"react-router-dom";import{i18n as RC}from"@lingui/core";import{Divider as Im,GroupedVirtualizedList as eT,Skeleton as tT,SwapListItem as Am,Typography as oT}from"@rango-dev/ui";import Qe,{useCallback as Wm,useEffect as nT,useRef as rT,useState as iT}from"react";function wm(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(wm,"calculateGroupsSoFar");import{css as ZC,darkTheme as JC,styled as mn}from"@rango-dev/ui";var ns=ZC(),xm=mn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),rs=mn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ns}`]:{$$color:"$colors$neutral600",[`.${JC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),is=mn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bm=mn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Em=mn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var aT=10;function as(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=iT([]),l=rT(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Wm(wm,[]),f=Wm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,aT),s(m(u,l.current)))},[e.length]);if(nT(()=>{r||f()},[r,f]),r){let d=[1,2];return Qe.createElement(Qe.Fragment,null,[d,d].map((S,C)=>Qe.createElement(rs,{key:C},Qe.createElement(is,null,Qe.createElement(tT,{variant:"text",width:60,size:"small"}),Qe.createElement(Im,{size:16})),Qe.createElement(Im,{size:4}),Qe.createElement(bm,null,S.map((T,k)=>Qe.createElement(Am,{isLoading:!0,key:k}))))))}return Qe.createElement(eT,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>Qe.createElement(rs,null,Qe.createElement(is,null,Qe.createElement(oT,{variant:"label",size:"medium",className:ns()},c[d]))),itemContent:(d,g)=>{let S=p[d];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return Qe.createElement(xm,{key:S.requestId},Qe.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===RC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(S.inputAmount,6,6),realAmount:S.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(as,"HistoryGroupedList");import{CloseIcon as lT,IconButton as pT,SearchIcon as cT,TextField as uT}from"@rango-dev/ui";import dn from"react";import{styled as sT}from"@rango-dev/ui";var Nm=sT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return dn.createElement(uT,{prefix:dn.createElement(Nm,null,dn.createElement(cT,{color:"black"})),suffix:!!s.length&&dn.createElement(pT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},dn.createElement(lT,{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(Lt,"SearchInput");import{i18n as Vr}from"@lingui/core";import Mm from"dayjs";var Lm=i(t=>{let e=new Map([["today",{title:Vr.t("Today"),swaps:[]}],["week",{title:Vr.t("This week"),swaps:[]}],["month",{title:Vr.t("This month"),swaps:[]}],["year",{title:Vr.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=Mm();t.forEach(p=>{let u=Number(p.creationTime),c=Mm(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 m=new Date(u).getFullYear().toString();o(m,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 yT=fT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ST=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function Pm(){let t=hT(),{manager:e,state:o}=mT(),n=rt(e).map(({swap:c})=>c),[r,a]=gT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>St(c.inputAmount,r)||St(c.status,r)||ST(c.steps,r)||St(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(ce,{header:{title:Xr.t("History")}},Bt.createElement(fe,null,Bt.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Bm,{size:"16"}),Bt.createElement(yT,null,u&&Bt.createElement(Em,null,Bt.createElement(Bm,{size:32}),Bt.createElement(dT,{title:Xr.t("No results found"),description:r?Xr.t("Try using different keywords"):""})),!u&&Bt.createElement(as,{list:p,onSwapClick:t,groupBy:Lm,isLoading:s}))))}i(Pm,"HistoryPage");import{i18n as $T}from"@lingui/core";import{Button as FT,Divider as Jm,styled as OT,WarningIcon as UT}from"@rango-dev/ui";import QT from"bignumber.js";import He,{useEffect as Rm,useState as ed}from"react";import{useNavigate as zT}from"react-router-dom";import{i18n as xT}from"@lingui/core";import{Header as bT}from"@rango-dev/ui";import Vt,{useEffect as ET,useState as IT}from"react";import{i18n as TT}from"@lingui/core";import{Divider as ls,FullExpandedQuote as kT,Typography as vT}from"@rango-dev/ui";import ye from"react";import{styled as ss}from"@rango-dev/ui";var _m=ss("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Dm=ss("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),$m=ss("div",{width:"146px"});import{i18n as fn}from"@lingui/core";import{Select as CT}from"@rango-dev/ui";import Fm from"react";function Kr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:fn.t("Smart Routing")},{value:"FEE",label:fn.t("Lowest Fee")},{value:"SPEED",label:fn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:fn.t("Maximum Return")},{value:"PRICE",label:fn.t("Maximum Output")}];return Fm.createElement($m,null,Fm.createElement(CT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Kr,"SelectStrategy");var Om=3;function gn(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:m,toToken:f,sortStrategy:d,error:g}=Y(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||P(),k=!!u&&u.results.length,v=C??S,I=i(w=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...w};return wo(b,{fromToken:m,toToken:f,userSlippage:v,findToken:y})},"getQuoteWarning"),W=g?.type===0||g?.type===1,x=u?.results?or(d,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Dm,null,ye.createElement(vT,{size:"xmedium",variant:"title"},TT.t("Sort by")),ye.createElement(Kr,{container:T})),ye.createElement(ls,{size:"10"})),e&&Array.from({length:Om},(w,b)=>ye.createElement(ye.Fragment,{key:b},s?ye.createElement(kT,{loading:!0}):ye.createElement(cn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Om-1&&ye.createElement(ls,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((w,b)=>{let E=I(w),_=Ja(w.swaps),Q=x.length-1===b;return ye.createElement(ye.Fragment,{key:w.requestId},ye.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:_?.options||null,warning:E,fullExpandedMode:s,onClick:A=>{_||c("warning",E),c("error",_?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(ls,{size:16}))}):W&&ye.createElement(_m,null,ye.createElement(en,{size:s?"large":"small",error:g,fetch:n}))))}i(gn,"Quotes");import{darkTheme as wT,styled as Um}from"@rango-dev/ui";var Qm=Um("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${wT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),zm=Um("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var AT=100;function ps(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=IT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Qo();return ET(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},AT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Qm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Sr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(bT,{title:xT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Kr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(zm,null,Vt.createElement(gn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Qo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ps,"ExpandedQuotes");import{i18n as jm}from"@lingui/core";import{SwapInput as Ym}from"@rango-dev/ui";import hn from"react";import{ReverseIcon as MT}from"@rango-dev/ui";import us from"react";import{keyframes as WT,styled as qm}from"@rango-dev/ui";var cs=450,NT=WT({"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:`${NT} ${cs}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 ms(){let t=Y.use.switchFromAndTo();return us.createElement(Hm,null,us.createElement(Gm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},cs),t()}},us.createElement(MT,{size:12})))}i(ms,"SwitchFromAndToButton");import{styled as Vm}from"@rango-dev/ui";var Xm=Vm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Km=Vm("div",{position:"relative"});function ds(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=Y(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Fn(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Dl(S,s.name),I=!qi(g,c,m),W=!qi(g,c,d),x=!m||!d||!d.gt(0)?null:tt(m.toString(),d.toString());return hn.createElement(Xm,null,hn.createElement(Km,null,hn.createElement(Ym,{label:jm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:I?void 0:M(m,4,4),realUsdValue:I?void 0:m?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),hn.createElement(ms,null)),hn.createElement(Ym,{sharpBottomStyle:!r&&(!!g||e),label:jm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(tt(m,d),2,2),warningLevel:At(x??0),price:{value:M(f,6,6),usdValue:W?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:W?void 0:d?.toString(),error:W?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ds,"Inputs");import{useCallback as LT,useEffect as BT,useRef as PT,useState as _T}from"react";function Zm(){let{fetch:t,loading:e,cancelFetch:o}=zr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Zm,"useFetchAllQuotes");var DT=600;function jr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=Y(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:I,affiliateWallets:W,fetchStatus:x}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),E=h().excludeLiquiditySources(),{findToken:_}=h(),[Q,A]=_T(!0),z=PT(u),j=k??T,B=!l||!p||Rt(l,p)||!Ho(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve}=ne;if(Q||Z(!0),!B&&ge&&Ce){d();let Xe=wp({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve,enableCentralizedSwappers:a});jl("experimentalRoute",r)&&(Xe.experimental=!0),e(Xe).then(ve=>{let de=or(f,ve.results),N=$p(m,de,ve.requestAmount);A(!1),y("quotes",ve),C(N),qr({diagnosisMessages:ve.diagnosisMessages,requestId:N?.requestId||"",swaps:N?.swaps});let V=N&&wo(N,{fromToken:ge,toToken:Ce,userSlippage:j,findToken:_});y("warning",V)}).catch(ve=>{let{error:de}=Hr(ve);(de?.type===0||de?.type===1)&&d(),de?.type!==2&&(y("error",de),A(!1))})}},"fetch"),J=LT(vl(ne=>{ie(ne)},DT),[B]);return BT(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(m||g||S)&&d();return}if(!Ho(u)||c?.eq(0)){Z(!1),o();return}d(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:W}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,w?.length,n,b.length,j,I,v,JSON.stringify(W)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:W}),loading:Q}}i(jr,"useSwapInput");var qT=OT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),HT=300;function td(){let t=zT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=Y(),[d,g]=ed(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Pr(),{fetch:y,loading:T}=jr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:I}=te(),{isActiveTab:W}=ae(),[x,w]=ed(!1),E=yp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),_=ql(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new QT(n).gt(0)&&!Lp(e,o),A=Q&&v==="success"&&T,G=(!_||_&&p?.results.length)&&(l||s);Rm(()=>{c(),f("refetchQuote",!0)},[]),Rm(()=>{g(Q)},[Q]);let B=(r||s)&&!x?y:void 0,Z=i(J=>{_&&d?(g(!1),setTimeout(()=>{t(J)},HT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(w(!1),u(J))},"onClickOnQuote");return He.createElement(qT,null,He.createElement(ce,{height:"auto",footer:He.createElement(FT,{type:"primary",size:"large",disabled:E.disabled||!W,prefix:E.action==="confirm-warning"&&He.createElement(UT,null),fullWidth:!0,onClick:()=>{E.action==="connect-wallet"?Z(q.wallets):E.action==="confirm-warning"?w(!0):Z(q.confirmSwap)}},E.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||$T.t("Swap"),suffix:He.createElement(ao,{hidden:_?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},He.createElement(fe,null,He.createElement(ds,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:_,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(Jm,{size:"2"}),_?null:He.createElement(go,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),Z(q.routes)}:void 0}),G?He.createElement(He.Fragment,null,He.createElement(Jm,{size:"10"}),He.createElement(on,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!W,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),_?He.createElement(ps,{loading:A,onClickOnQuote:ie,fetch:y,onClickRefresh:B,isVisible:d}):null)}i(td,"Home");import{i18n as od}from"@lingui/core";import{Alert as GT,Divider as VT,List as XT,ListItemButton as KT,Radio as jT,RadioRoot as YT,Typography as ZT}from"@rango-dev/ui";import xt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Zl,r=o?.language||ko;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||ko),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function nd(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=nt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(ZT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(jT,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(ce,{header:{title:od.t("Language")}},xt.createElement(fe,null,xt.createElement(GT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(VT,{size:"8"}),xt.createElement(YT,{value:t},xt.createElement(XT,{type:xt.createElement(KT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as ok,Checkbox as nk,Image as rk,ListItemButton as ik,NotFound as ak,Typography as sk}from"@rango-dev/ui";import ze,{useState as lk}from"react";import{Checkbox as ek,Skeleton as id}from"@rango-dev/ui";import Sn from"react";import{styled as fs}from"@rango-dev/ui";var yn=fs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),gs=fs("div",{width:80,display:"flex",justifyContent:"flex-end"}),hs=fs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as JT,styled as RT}from"@rango-dev/ui";var rd=RT(JT,{height:61});var tk=30;function ys(){return Sn.createElement(yn,null,Array.from(Array(tk),(t,e)=>Sn.createElement(rd,{hasDivider:!0,key:e,start:Sn.createElement(id,{variant:"circular",width:35,height:35}),title:Sn.createElement(id,{variant:"text",size:"large",width:90}),end:Sn.createElement(ek,{checked:!1})})))}i(ys,"LoadingLiquiditySourceList");function Ss({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=lk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=qn(o,n),u={Exchanges:Pt.t("Exchanges"),Bridges:Pt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:ze.createElement(rk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(nk,{checked:T,disabled:l}),title:ze.createElement(sk,{variant:"title",size:"xmedium"},Pt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>St(y.groupTitle,r))),ze.createElement(ce,{header:{title:Pt.t(t),suffix:ze.createElement(gs,null,ze.createElement(ok,{variant:"ghost",size:"xsmall",onClick:d},f?Pt.t("Deselect all"):Pt.t("Select all")))}},ze.createElement(fe,{view:!0},ze.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Pt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&ze.createElement(ys,null),!C.length&&r?ze.createElement(hs,null,ze.createElement(ak,{title:Pt.t("No results found"),description:Pt.t("Try using different keywords")})):e==="success"&&ze.createElement(yn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return ze.createElement(ze.Fragment,{key:y.id},ze.createElement(ik,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ss,"LiquiditySourcePage");import{i18n as pk}from"@lingui/core";import Yr from"react";import{useNavigate as ck}from"react-router-dom";function ad(){let t=ck(),e=nt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=jr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Yr.createElement(ce,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:pk.t("Routes"),suffix:Yr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Yr.createElement(fe,null,Yr.createElement(gn,{fetch:l,loading:p,onClickOnQuote:u})))}i(ad,"RoutesPage");import{i18n as fd}from"@lingui/core";import{Divider as gd,getCategoriesCount as Ck,SelectableCategoryList as Tk}from"@rango-dev/ui";import _t,{useState as hd}from"react";import{i18n as Cs}from"@lingui/core";import{Divider as md,Image as fk,ListItemButton as gk,NotFound as hk,Typography as dd}from"@rango-dev/ui";import at,{useEffect as yk,useState as Sk}from"react";var sd=i((t,e,o)=>t.filter(n=>Wn(n.type,o)).filter(n=>Et(n.name,e)||Et(n.displayName,e)),"filterBlockchains");import{ImageContainer as uk,styled as ld}from"@rango-dev/ui";var pd=ld("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Zr=ld(Yo,{padding:0,margin:0,listStyle:"none",[`& ${uk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as mk,Skeleton as cd}from"@rango-dev/ui";import Jr from"react";var dk=20;function ud(){return Jr.createElement(Zr,null,Array.from(Array(dk),t=>Jr.createElement(mk,{key:t,hasDivider:!0,start:Jr.createElement(cd,{variant:"circular",width:35,height:35}),title:Jr.createElement(cd,{variant:"text",size:"large",width:90})})))}i(ud,"LoadingBlockchainList");function Ts(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=Sk(e),{fetchStatus:l}=h();yk(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?at.createElement(at.Fragment,null,at.createElement(md,{size:32}),at.createElement(hk,{title:Cs.t("No results found"),description:Cs.t("Try using different keywords")})):at.createElement(Zr,{as:"ul",key:`${r}-${o}`},a.map(u=>at.createElement(gk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:at.createElement(fk,{src:u.logo,size:30}),title:at.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return at.createElement(pd,null,at.createElement(dd,{variant:"label",size:"large"},Cs.t("Select Blockchain")),at.createElement(md,{size:4}),l==="loading"&&at.createElement(ud,null),l==="success"&&p())}i(Ts,"BlockchainList");function ks(t){let{type:e}=t,o=nt(),[n,r]=hd(""),[a,s]=hd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=Ck(c)!==1;return _t.createElement(ce,{header:{title:fd.t("Select Blockchain")}},_t.createElement(fe,{view:!0},f&&_t.createElement(_t.Fragment,null,_t.createElement(Tk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),_t.createElement(gd,{size:24})),_t.createElement(Lt,{value:n,autoFocus:!0,placeholder:fd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),_t.createElement(gd,{size:16}),_t.createElement(Ts,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ks,"SelectBlockchainPage");import{i18n as ni}from"@lingui/core";import{Divider as $d}from"@rango-dev/ui";import ho,{useState as $k}from"react";import{useNavigate as Fk}from"react-router-dom";import{i18n as xs}from"@lingui/core";import{BlockchainsChip as Rr,Divider as Td,Image as kd,Skeleton as bk,Tooltip as Ek,Typography as bs}from"@rango-dev/ui";import Le from"react";import{useEffect as wk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function vs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(kk),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(vk(s)),r=n.splice(a)}return{list:n,more:r}}i(vs,"prepare");function kk(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(kk,"sortByMostUsedBlockchains");function vk(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(vk,"generateSortByPreferredBlockchainsFor");function Sd(t,e){return!!e.list.find(o=>o.name===t)}i(Sd,"isInVisibleList");function ws(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();wk(()=>{if(e?.selected){let a=vs(t,o,e);Sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=vs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ws,"usePrepareBlockchainList");import{styled as xk}from"@rango-dev/ui";var Cd=xk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Ik=12;function Es(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ws(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Le.createElement(Le.Fragment,null,Le.createElement(Td,{size:12}),Le.createElement(bs,{variant:"label",size:"large"},xs.t("Select Blockchain")),Le.createElement(Td,{size:12}),Le.createElement(Cd,null,l==="loading"&&Array.from(Array(Ik),d=>Le.createElement(bk,{key:d,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(Rr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(bs,{variant:"body",size:"xsmall",color:"secondary500"},xs.t("All"))),s.list.map(d=>Le.createElement(Ek,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Le.createElement(Rr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Le.createElement(kd,{src:d.logo,size:30})))),m?Le.createElement(Rr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(kd,{src:s.more[0].logo,size:30})):null,f?Le.createElement(Rr,{onClick:a,key:"more-blockchains"},Le.createElement(bs,{variant:"body",size:"xsmall",color:"secondary500"},xs._("More +{count}",{count:s.more.length}))):null)))}i(Es,"BlockchainsSection");import{i18n as Ds}from"@lingui/core";import{darkTheme as Ld,Divider as Fo,ExternalLinkIcon as Nk,Image as Mk,ListItemButton as Lk,NotFound as Bk,PinIcon as Pk,Skeleton as Bd,Typography as oi,VirtualizedList as _k}from"@rango-dev/ui";import K,{useEffect as Pd,useState as _d}from"react";import{Divider as Nd,ListItem as Wk,Skeleton as Cn}from"@rango-dev/ui";import ft from"react";import{css as $o,darkTheme as vd,ImageContainer as Ak,styled as st,Typography as wd}from"@rango-dev/ui";var Is=$o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),As=$o({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ws=$o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ns=$o({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ms=$o({}),Ls=$o(),xd=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Bs=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ei=st("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${As}`]:{[`& .${Ns}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ms}`]:{bottom:"-15px"},[`& .${Is}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ws}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ps=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),_s=st(wd,{}),bd=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ls}`]:{$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ti=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),wU=st("div",{display:"flex",alignItems:"center"}),Ed=st("div",{position:"relative",[`& ${Ak}`]:{borderRadius:"$xm",overflow:"hidden"}}),Id=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=st(wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Wd=st("a",{"& svg:hover":{color:"$colors$info"}});function Md(t){return ft.createElement(ei,null,Array.from(Array(t.size),e=>ft.createElement(Wk,{key:e,hasDivider:!0,start:ft.createElement(Cn,{variant:"circular",width:35,height:35}),end:ft.createElement(ti,null,ft.createElement(Cn,{variant:"text",size:"large",width:70}),ft.createElement(Nd,{size:4}),ft.createElement(Cn,{variant:"text",size:"medium",width:50})),title:ft.createElement("div",null,ft.createElement(Cn,{variant:"text",size:"large",width:90}),ft.createElement(Nd,{size:4}),ft.createElement(Cn,{variant:"text",size:"medium",width:90}))})))}i(Md,"LoadingTokenList");var $s=20,Dk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:As()},o?K.createElement("div",{className:Is()},o):K.createElement(Bs,{className:Ws()},K.createElement(oi,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Fo,{direction:"horizontal",size:4}),K.createElement(Ps,{css:a},K.createElement(_s,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Ns()} ${!o&&Ms()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Fo,{size:4,direction:"horizontal"}),K.createElement(Wd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(Nk,{size:12}))))},"renderDesc");function Dd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=_d(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=_d(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+$s))},"loadNextPage");Pd(()=>{c(e.length>a.length)},[a.length]),Pd(()=>{s(e.slice(0,$s))},[e.length,r]);let S=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Fo,{size:32}),K.createElement(Bk,{title:Ds.t("No results found"),description:Ds.t("Try using different keywords")})):K.createElement(_k,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Fn(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),I=ra(v.color,"main"),W={$$color:I.main150,[`.${Ld} &`]:{$$color:I.main750},backgroundColor:"$$color"},x={$$color:I.main750,[`.${Ld} &`]:{$$color:I.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(Lk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(Ed,null,K.createElement(Mk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(Id,null,K.createElement(Pk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Bs,null,K.createElement(oi,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Fo,{direction:"horizontal",size:4}),K.createElement(Ps,{css:W},K.createElement(_s,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?Dk({address:k,token:a[C],customCssForTag:W,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(ti,null,K.createElement(Bd,{variant:"text",size:"large",width:70}),K.createElement(Fo,{size:4}),K.createElement(Bd,{variant:"text",size:"medium",width:50})):T&&K.createElement(bd,null,K.createElement(Ad,{variant:"title",size:"small"},T.amount),K.createElement("div",null),T.usdValue&&K.createElement(oi,{variant:"body",className:Ls(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(xd,null,K.createElement(oi,{variant:"label",size:"large"},Ds.t("Select Token")),K.createElement(Fo,{size:4}),l==="loading"&&K.createElement(Md,{size:$s}),l==="success"&&K.createElement(ei,{as:"ul"},S()))}i(Dd,"TokenList");function Fs(t){let{type:e}=t,o=Fk(),n=nt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[m,f]=$k(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ni.t("Source"),destination:ni.t("Destination")};return ho.createElement(ce,{header:{title:ni.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(Es,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{y(v)}}),ho.createElement($d,{size:24}),ho.createElement(Lt,{value:m,autoFocus:!0,placeholder:ni.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:v=>f(v.target.value)}),ho.createElement($d,{size:16}),ho.createElement(Dd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let I=S.find(W=>v.blockchain===W.name);I&&y(I),n()}})))}i(Fs,"SelectSwapItemsPage");import{i18n as zs}from"@lingui/core";import{Alert as pv,Button as cv,styled as uv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as mv,useSearchParams as dv}from"react-router-dom";import{i18n as qd}from"@lingui/core";import{Divider as zk,InfoIcon as qk,TextField as Hk,Tooltip as Gk,Typography as Hd}from"@rango-dev/ui";import gt from"react";import{Chip as Ok,styled as Tn,TextField as Uk}from"@rango-dev/ui";var Fd=Tn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=Tn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Uk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ud=Tn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ri=Tn("div",{maxWidth:"280px",padding:"$10"}),Qd=Tn(Ok,{width:"61px",flexShrink:0});import{i18n as Os}from"@lingui/core";import{Typography as Qk}from"@rango-dev/ui";import kn from"react";function zd(){return kn.createElement(ri,null,kn.createElement(Qk,{variant:"label",size:"medium",color:"neutral700"},Os.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),kn.createElement("br",null),kn.createElement("br",null),kn.createElement("b",null,Os.t("Warning")),":",Os.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(zd,"SlippageTooltipContent");function Us(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return gt.createElement(Fd,null,gt.createElement(Ud,null,gt.createElement(Hd,{variant:"title",size:"xmedium"},qd.t("Slippage tolerance per swap")),gt.createElement(zk,{direction:"horizontal",size:4}),gt.createElement(Gk,{container:P(),side:"top",sideOffset:4,content:gt.createElement(zd,null)},gt.createElement(qk,{color:"gray"}))),gt.createElement(Od,null,Jl.map((r,a)=>{let s=`slippage-${a}`;return gt.createElement(Qd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),gt.createElement(Hk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=op&&s<=tp?n(s):n(null)},suffix:o&&gt.createElement(Hd,{variant:"body",size:"small"},"%"),placeholder:qd.t("Custom")})))}i(Us,"Slippage");import{i18n as bt}from"@lingui/core";import{AutoThemeIcon as Gd,BridgesIcon as Vk,ChevronRightIcon as Qs,DarkModeIcon as Vd,Divider as ii,ExchangeIcon as Xk,InfinityIcon as Kk,InfoIcon as jk,LanguageIcon as Yk,LightModeIcon as Xd,List as Zk,ListItem as Jk,ListItemButton as Rk,Skeleton as ev,styled as tv,Switch as ov,Tabs as nv,Tooltip as rv,Typography as lt}from"@rango-dev/ui";import U from"react";import{useNavigate as iv}from"react-router-dom";var av=tv("div",{width:"202px",height:"$40"}),sv=[{id:"light",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Light"))},{id:"dark",icon:U.createElement(Vd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Dark"))},{id:"auto",icon:U.createElement(Gd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},bt.t("Auto"))}],lv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Gd,{...e});case"dark":return U.createElement(Vd,{...e});default:return U.createElement(Xd,{...e})}},"getThemeIcon");function Kd(){let t=iv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=et("theme",c),f=et("liquiditySource",c),d=et("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=qn(p,u),y=C.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),T=y.length,k=y.filter(z=>z.selected).length,v=C.filter(z=>z.type==="DEX"),I=v.length,W=v.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(ev,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(lt,{variant:"body",size:"medium",color:"$error500"},bt.t("Loading failed"));default:return U.createElement(lt,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,T),U.createElement(ii,{direction:"horizontal",size:8}),U.createElement(Qs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(Vk,{color:"gray",size:16})},b={id:"exchange-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Exchanges")),end:U.createElement(U.Fragment,null,x(W,I),U.createElement(ii,{direction:"horizontal",size:8}),U.createElement(Qs,{color:"black"})),start:U.createElement(Xk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},E={id:"language-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Language")),start:U.createElement(Yk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"body",size:"medium"},s),U.createElement(ii,{direction:"horizontal",size:8}),U.createElement(Qs,{color:"black"})),onClick:()=>t(q.languages)},_={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Infinite approval")),U.createElement(ii,{direction:"horizontal",size:4}),U.createElement(rv,{side:"top",sideOffset:4,container:P(),content:U.createElement(ri,null,U.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},bt.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.")))},U.createElement(jk,{color:"gray"}))),start:U.createElement(Kk,{color:"gray",size:16}),end:U.createElement(ov,{checked:g}),onClick:S},Q={id:"theme-item",type:U.createElement(Jk,null),title:U.createElement(lt,{variant:"title",size:"xmedium"},bt.t("Theme")),end:U.createElement(av,null,U.createElement(nv,{container:P(),items:sv,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:lv(n)},A=f?[]:[w,b];return d||A.push(E),A.push(_),!e?.singleTheme&&!m&&A.push(Q),U.createElement(Zk,{type:U.createElement(Rk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Kd,"SettingsLists");var fv=uv("div",{paddingLeft:"$8"});function jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=dv(),r=mv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:zs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(pv,{type:"info",variant:"alarm",title:zs.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:yo.createElement(fv,null,yo.createElement(cv,{type:"secondary",size:"small",onClick:a},zs.t("Reset")))}),yo.createElement(Us,null),yo.createElement(Kd,null)))}i(jd,"SettingsPage");import{i18n as Rv}from"@lingui/core";import{cancelSwap as ew}from"@rango-dev/queue-manager-rango-preset";import{useManager as tw}from"@rango-dev/queue-manager-react";import{Alert as ow}from"@rango-dev/ui";import al from"react";import{useParams as nw}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Pv,getCurrentStep as _v,getRelatedWalletOrNull as Dv}from"@rango-dev/queue-manager-rango-preset";import{Button as Af,CopyIcon as $v,Divider as Fv,DoneIcon as Ov,IconButton as Uv,QuoteCost as Qv,RangoExplorerIcon as zv,StepDetails as qv,Tooltip as Wf,Typography as Co,useCopyToClipboard as Hv}from"@rango-dev/ui";import{useWallets as Gv}from"@rango-dev/wallets-react";import Nf from"bignumber.js";import{PendingSwapNetworkStatus as fi}from"rango-types";import R,{useEffect as Mf,useRef as Vv,useState as Lf}from"react";import{useNavigate as Xv}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var gv=[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"):`${gv[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 li}from"rango-types";import pi from"react";import{i18n as ai}from"@lingui/core";import{Button as Jd,Divider as qs,MessageBox as hv}from"@rango-dev/ui";import jt from"react";var Rd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(qs,{size:20}),jt.createElement(hv,{type:"error",title:ai.t("Cancel Swap"),description:ai.t("Are you sure you want to cancel this swap?")}),jt.createElement(qs,{size:32}),jt.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},ai.t("Yes, Cancel it")),jt.createElement(qs,{size:12}),jt.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},ai.t("No, Continue"))),"CancelContent");import{i18n as si}from"@lingui/core";import{Button as ef,Divider as Hs,MessageBox as yv,Typography as Sv}from"@rango-dev/ui";import Dt from"react";var tf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(Hs,{size:20}),Dt.createElement(yv,{type:"error",title:si.t("Delete Transaction"),description:si.t("Are you sure you want to delete this swap?")}),Dt.createElement(Hs,{size:32}),Dt.createElement(ef,{variant:"contained",type:"primary",size:"large",onClick:t},si.t("Yes, Delete it")),Dt.createElement(Hs,{size:12}),Dt.createElement(ef,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(Sv,{variant:"title",size:"medium",color:"primary"},si.t("No, Cancel")))),"DeleteContent");import{i18n as Gs}from"@lingui/core";import{PendingSwapNetworkStatus as Vs}from"rango-types";var Xs={[Vs.WaitingForNetworkChange]:{type:"loading",title:Gs.t("Change Network")},[Vs.WaitingForConnectingWallet]:{type:"warning",title:Gs.t("Connect Wallet")},[Vs.NetworkChanged]:{type:"success",title:Gs.t("Network Changed")}};import{debug as Ks}from"@rango-dev/logging-core";import{MessageBox as Cv,Wallet as Tv}from"@rango-dev/ui";import{useWallets as kv}from"@rango-dev/wallets-react";import So,{useState as rf}from"react";import{styled as of}from"@rango-dev/ui";var nf=of("div",{display:"flex",justifyContent:"center"}),uz=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}=kv(),[c,m]=rf(null),[f,d]=rf(null),g=n?.walletType,S=g?Mi(u(g)):null,C=g?p(g):null,y=a&&!!g&&!!S&&!!C,T=i(()=>{c&&m({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{f&&d({...f,open:!1})},"handleCloseDerivationPathModal"),v=i(W=>{C?.needsDerivationPath&&C?.singleNamespace&&W[0]&&g?d({open:!0,providerType:g,providerImage:C.img,namespace:W[0]}):l(c?.providerType,void 0,W.map(x=>({namespace:x}))).catch(x=>Ks(x)),T()},"handleConfirmNamespaces"),I=i(W=>{W&&f?.namespace&&l(f?.providerType,void 0,[{namespace:f.namespace,derivationPath:W}]).catch(x=>Ks(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(Cv,{type:e,title:o,description:r}),y&&So.createElement(nf,null,So.createElement(Tv,{container:P(),title:C.name,image:C.img,type:g,state:S,link:C.installLink,disabled:s,onClick:async()=>{C.namespaces?m({open:!0,providerType:g,providerImage:C.img,availableNamespaces:C.namespaces,singleNamespace:C.singleNamespace}):l(g).catch(W=>Ks(W))}})),So.createElement(po,{open:!!c?.open,onClose:T,onConfirm:v,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!f?.open,selectedNamespace:f?.namespace,type:f?.providerType,image:f?.providerImage,onClose:k,onConfirm:I}))},"WalletStateContent");function js(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===li.WaitingForNetworkChange||e===li.WaitingForConnectingWallet||e===li.NetworkChanged;return pi.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&pi.createElement(af,{type:Xs[e].type,title:Xs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==li.WaitingForNetworkChange}),e==="delete"&&pi.createElement(tf,{onClose:o,onDelete:n}),e==="cancel"&&pi.createElement(Rd,{onClose:o,onCancel:r}))}i(js,"SwapDetailsModal");import{i18n as vn}from"@lingui/core";import{Button as Ys,Divider as ci,MessageBox as sf,TokenAmount as vv,Typography as Zs}from"@rango-dev/ui";import Pe from"react";import{useNavigate as wv}from"react-router-dom";function Js(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=wv();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(sf,{type:"success",title:vn.t("Swap Successful")},Pe.createElement(vv,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(ci,{size:12}),Pe.createElement(Zs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Pe.createElement(sf,{type:"error",title:vn.t("Transaction Failed"),description:m}),Pe.createElement(ci,{size:32}),n==="success"&&Pe.createElement(Ys,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Pe.createElement(Zs,{variant:"title",size:"medium",color:"neutral100"},vn.t("Done"))),Pe.createElement(ci,{size:12}),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Ys,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},vn.t("Diagnosis")),Pe.createElement(ci,{size:12})),Pe.createElement(Ys,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(Zs,{variant:"title",size:"medium",color:"primary"},vn.t("See Details"))))}i(Js,"SwapDetailsCompleteModal");import Bv from"react";import{i18n as Wv}from"@lingui/core";import{Alert as xf,IconButton as Nv,LinkIcon as Mv}from"@rango-dev/ui";import Yt,{Fragment as Lv}from"react";import{Alert as bv,ChevronDownIcon as Ev,IconButton as Iv}from"@rango-dev/ui";import Uo,{useState as Av}from"react";import{css as wn,darkTheme as lf,styled as $t,Typography as xv}from"@rango-dev/ui";var pf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ui=$t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${lf} &`]:{color:"$secondary500"}}}}}),cf=$t(Yo,{padding:"$0 $20 $20 $20"}),Kz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),uf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),jz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Oo=wn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${lf} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),mf=wn({padding:"$5 0"}),mi=wn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),df=wn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),ff=wn({width:"100%",padding:"0 $20 $10"}),gf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),hf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),di=$t(xv,{wordBreak:"break-word"});import{styled as Rs}from"@rango-dev/ui";var yf=Rs("div",{display:"flex",flexDirection:"column",gap:"$10"}),Sf=Rs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Cf=Rs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Tf(t){let{message:e}=t,[o,n]=Av(!1);return Uo.createElement(bv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Uo.createElement(Iv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Uo.createElement(Sf,{rotated:o},Uo.createElement(Ev,{size:12,color:"gray"}))),footer:Uo.createElement(Cf,{open:o},Uo.createElement(di,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Tf,"FailedAlert");import{i18n as kf}from"@lingui/core";import{Alert as el,Button as vf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as tl}from"rango-types";import xn from"react";function wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?xn.createElement(el,{type:"warning",title:n.shortMessage,action:xn.createElement(vf,{size:"xxsmall",type:"warning",onClick:()=>{o(tl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},kf.t("Change"))}):r===tl.WaitingForConnectingWallet?xn.createElement(el,{type:"warning",title:n.shortMessage,action:xn.createElement(vf,{size:"xxsmall",type:"warning",onClick:()=>{o(tl.WaitingForConnectingWallet)}},kf.t("Connect"))}):xn.createElement(el,{type:"warning",title:n.shortMessage})}i(wf,"WarningAlert");function ol(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Ko(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(yf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,S=f===d.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Yt.createElement(Lv,{key:g},Yt.createElement(xf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Wv.t("View transaction"),action:m.url&&Yt.createElement(Nv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(Mv,{size:12}))}))}),c&&Yt.createElement(xf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Tf,{message:r}))}i(ol,"SwapDetailsAlerts");var bf=2e3;var Ef=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:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(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:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:zo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Bv.createElement(ol,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function If(t){if(Ko(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 nl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Gv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=Y.use.retry(),f=ae.use.isActiveTab(),d=Xv(),[g,S]=Hv(bf),C=Vv(null),[y,T]=Lf(null),[k,v]=Lf(null),I=i(()=>{r(),T(null)},"onCancel"),W=xe.use.getNotifications(),x=xe.use.removeNotification(),w=W(),b=_v(e),E=b?.networkStatus;Mf(()=>{w.find(N=>N.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Mf(()=>{B?T(fi.WaitingForNetworkChange):E===fi.WaitingForConnectingWallet||E===fi.NetworkChanged?T(E):T(null)},[E]);let _=Wp(e),Q=b?Pv(e,b):null,A=b?Dv(e,b):null,z=Zd(e),j=Np(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=E===fi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Ap(e,b),J=Ef({swap:e,switchNetwork:Z,showNetworkModal:E,setNetworkModal:T,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,N)=>de+parseFloat(N.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),pt=D?new Nf(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Nf(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=tt(_e,se),Xe=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?Je.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:On(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):R.createElement(hf,null,R.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xe?"":Je.t("Transaction was not sent."),_?`${Je.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:_.outputAmount,symbol:_.symbol,blockchain:_.blockchain}})}`:""),Xe&&R.createElement(di,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",Xe));return R.createElement(ce,{header:{title:Je.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(Io,null,R.createElement(Af,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(Co,{size:"medium",variant:"label",color:"error"},Je.t("Delete"))))},footer:j&&!k&&R.createElement(Af,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=tr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},Je.t("Try again"))},R.createElement(fe,{compact:!0,view:!0},R.createElement(ui,null,R.createElement("div",{className:Oo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${Je.t("Request ID")}:`),R.createElement("div",{className:mi()},R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Wf,{container:P(),content:g?Je.t("Copied To Clipboard"):Je.t("Copy Request ID"),open:g||void 0,side:"bottom",alignOffset:-16,align:"end"},R.createElement(Uv,{variant:"ghost",onClick:S.bind(null,o||"")},g?R.createElement(Ov,{size:16,color:"secondary"}):R.createElement($v,{size:16,color:"gray"}))),R.createElement(gf,{target:"_blank",href:`${fl}/swap/${o}`},R.createElement(Wf,{container:P(),content:Je.t("View on Rango Explorer"),side:"bottom"},R.createElement(zv,{size:20}))))),R.createElement("div",{className:Oo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Je.t("Finished at"):Je.t("Created at")),R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),R.createElement("div",{className:df()},R.createElement(Qv,{fee:M(String(L),2,2),time:qo(Ln(e.steps)),steps:ne}),R.createElement(rn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||""},token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image,displayName:J[ne-1].to.chain.displayName}},percentageChange:M(Ve,2,2),warningLevel:At(Ve??0)})),R.createElement("div",{className:ff()},R.createElement(Co,{variant:"title",size:"small"},Je.t("Swaps steps"))),R.createElement(Fv,{size:8}),R.createElement(cf,{ref:C},J.map((de,N)=>{let V=N,X=If(e.steps[N]),Ke=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&N===J.length-1;return R.createElement(qv,{key:V,step:de,type:"swap-progress",ref:C,state:X,hasSeparator:N!==0,tabIndex:V,isFocused:Ke,tooltipContainer:P()})}))),R.createElement(js,{state:y,onClose:()=>T(null),onCancel:I,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!f}),R.createElement(Js,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||"",percentageChange:M(Ve,2,2),token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image},description:ve}))}i(nl,"SwapDetails");import{i18n as hi}from"@lingui/core";import{Divider as _f,NotFound as Jv,Skeleton as En,Typography as yi}from"@rango-dev/ui";import Se from"react";import{i18n as Kv}from"@lingui/core";import{Divider as jv,Skeleton as Yv,Typography as Zv}from"@rango-dev/ui";import ke from"react";import{css as ht,styled as rl}from"@rango-dev/ui";var Bf=rl("div",{width:"100%",height:"100%",padding:"$10 $20"}),bn=rl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),gi=rl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),sH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),lH=ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),pH=ht({paddingTop:"$15",display:"flex"}),cH=ht({padding:"$15 $0"}),uH=ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),mH=ht({paddingBottom:"$10"}),dH=ht({display:"flex",justifyContent:"start",alignItems:"center"}),fH=ht({paddingTop:"$5",display:"flex",alignItems:"center"}),gH=ht({display:"flex",alignItems:"center"}),hH=ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Pf=ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function il(){return ke.createElement(Bf,null,ke.createElement(ln,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(Zv,{variant:"title",size:"small"},Kv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(bn,null,ke.createElement(wt,{separator:!1}),ke.createElement("div",{className:Pf()},ke.createElement(jv,{direction:"horizontal",size:20}),ke.createElement(Yv,{height:22,variant:"rectangular"}))),ke.createElement(gi,null),ke.createElement(bn,null,ke.createElement(wt,{separator:!1})),ke.createElement(gi,null),ke.createElement(bn,null,ke.createElement(wt,{separator:!1})),ke.createElement(gi,null),ke.createElement(bn,null,ke.createElement(wt,{separator:!1}))))}i(il,"LoadingSwapDetails");function Df(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:hi.t("Swap Details"),suffix:Se.createElement(Io,null)}},o&&Se.createElement(pf,null,Se.createElement(ui,null,Se.createElement("div",{className:Oo()},Se.createElement(yi,{variant:"label",size:"large",color:"neutral700"},`${hi.t("Request ID")}:`),Se.createElement("div",{className:mi()},Se.createElement(yi,{variant:"label",size:"small",color:"neutral700"},Se.createElement(En,{width:60,height:10,variant:"rounded"})),Se.createElement(_f,{direction:"horizontal",size:4}),Se.createElement(En,{width:16,height:16,variant:"rectangular"}),Se.createElement(_f,{direction:"horizontal",size:4}),Se.createElement(En,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Oo()},Se.createElement(yi,{className:mf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(En,{width:60,height:10,variant:"rounded"})),Se.createElement(yi,{variant:"label",size:"small",color:"neutral700"},Se.createElement(En,{width:60,height:10,variant:"rounded"})))),Se.createElement(il,null)),!o&&Se.createElement(uf,null,Se.createElement(Jv,{title:hi.t("Not found"),description:hi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Df,"SwapDetailsPlaceholder");function $f(){let{manager:t,state:e}=tw(),o=!e.loadedFromPersistor,n=rt(t),{requestId:r}=nw(),a=nt(),{fetchStatus:s}=h();if(!r)return al.createElement(ow,{containerStyles:{margin:"20px"},type:"error",title:Rv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&ew(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?al.createElement(Df,{requestId:r,showSkeleton:l}):al.createElement(nl,{swap:m,requestId:r,onCancel:u,onDelete:c})}i($f,"SwapDetailsPage");function Ff(){return Up(),Ji(),rw([{path:q.home,element:Ge.createElement(td,null)},{path:q.routes,element:Ge.createElement(ad,null)},{path:q.fromSwap,children:[{index:!0,element:Ge.createElement(Fs,{type:"source"})},{path:q.blockchains,element:Ge.createElement(ks,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ge.createElement(Fs,{type:"destination"})},{path:q.blockchains,element:Ge.createElement(ks,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ge.createElement(jd,null)},{path:q.languages,element:Ge.createElement(nd,null)},{path:q.exchanges,element:Ge.createElement(Ss,{sourceType:"Exchanges"})},{path:q.bridges,element:Ge.createElement(Ss,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ge.createElement(Pm,null)},{path:q.swapDetails,element:Ge.createElement($f,null)}]},{path:q.wallets,element:Ge.createElement(Gc,null)},{path:q.confirmSwap,element:Ge.createElement(vm,null)}])}i(Ff,"AppRoutes");import{useQueueManager as dw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as fw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as gw}from"rango-sdk";import{useContext as hw,useEffect as Gf,useState as Vf}from"react";import{globalCss as iw}from"@rango-dev/ui";var Of=i(()=>iw({"@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 Uf(){let{setWatermark:t}=ae();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(Uf,"useFetchApiConfig");import{useWallets as aw}from"@rango-dev/wallets-react";import{useEffect as sw,useRef as lw}from"react";function Qf(){let{connect:t,state:e}=aw(),o=lw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);sw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Qf,"useForceAutoConnect");import{isApprovalTX as pw,RouteEventType as zf,StepEventType as qf,StepExecutionEventStatus as cw,WidgetEvents as Si}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Hf}from"react";function sl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();Hf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===qf.TX_EXECUTION&&s.status===cw.TX_SENT&&!pw(l)||s.type===qf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return we.on(Si.StepEvent,r),()=>we.off(Si.StepEvent,r)},[we,t]),Hf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===zf.FAILED||s.type===zf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Si.RouteEvent,r),()=>we.off(Si.RouteEvent,r)},[we])}i(sl,"useSubscribeToWidgetEvents");import{useManager as uw}from"@rango-dev/queue-manager-react";import{useEffect as mw}from"react";function ll(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=uw();mw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(rt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ll,"useSyncNotifications");function pl(){Qf(),Of(),sl(),ll();let t=h().blockchains(),{canSwitchNetworkTo:e}=wr(),[o,n]=Vf(""),[r,a]=Vf(),s=hw(Gn),l=t.filter(gw),{fetchApiConfig:p}=Uf();Gf(()=>()=>Op(),[]),dw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Gf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===fw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(pl,"useBootstrap");import{styled as yw}from"@rango-dev/ui";var Xf=yw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ci(){pl();let{config:t}=h(),{activeTheme:e}=mr(t?.theme||{}),{activeLanguage:o}=Xt();return cl.createElement(Sw,{language:o},cl.createElement(Xf,{id:"swap-container",className:e()},cl.createElement(Ff,null)))}i(Ci,"Main");import{setSolanaSignerConfig as Fw}from"@rango-dev/signer-solana";import ml,{useEffect as Jf,useMemo as Ow}from"react";import{useState as Cw}from"react";var Tw=i(()=>{let[t,e]=Cw(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=xl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Kf=Tw;import{checkWaitingForNetworkChange as kw,makeQueueDefinition as vw}from"@rango-dev/queue-manager-rango-preset";import{Provider as ww}from"@rango-dev/queue-manager-react";import{useWallets as xw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as bw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ew}from"rango-types";import Iw,{useMemo as Aw}from"react";function Ww(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=xw(),l=Aw(()=>vw({API_KEY:t.apiKey||It("API_KEY"),BASE_URL:It("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(Ew),S=i(k=>{let{supportedChains:v}=s(k);return _n(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:bw(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},T=ae.use.isActiveTab();return Iw.createElement(ww,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{kw(k)},isPaused:!T},t.children)}i(Ww,"QueueManager");var jf=Ww;import{useManager as Pw}from"@rango-dev/queue-manager-react";import _w,{createContext as Dw,useContext as $w}from"react";import{cancelSwap as Nw,getCurrentBlockchainOfOrNull as Mw,getCurrentStep as Lw,getRelatedWalletOrNull as Bw}from"@rango-dev/queue-manager-rango-preset";var Ti=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return rt(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){let n=tr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Nw(o)}getCurrentStepInfo(e){let o=Lw(e);return{step:o,wallet:o?Bw(e,o):null,network:o?Mw(e,o):null}}};var Yf=Dw(void 0);function ul(t){let{manager:e}=Pw(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new Ti(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Ll(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,S=xe().getNotifications(),C=xe().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:C}};return _w.createElement(Yf.Provider,{value:y},t.children)}i(ul,"WidgetInfo");function Zf(){let t=$w(Yf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Zf,"useWidget");function ki(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Kf();return Jf(()=>{n&&r(n)},[n]),Ow(()=>{Ul({API_KEY:o?.apiKey||In,BASE_URL:o?.apiUrl||dl})},[o.apiKey,o.apiUrl]),Jf(()=>{t.config?.signers?.customSolanaRPC&&Fw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),ml.createElement(Vn,{config:o,onUpdateState:e},ml.createElement(jf,{apiKey:o.apiKey},ml.createElement(ul,null,t.children)))}i(ki,"WidgetProvider");function Rf(t){let e=t.config?.externalWallets;return vi.createElement(up,null,e?vi.createElement(Ci,null):vi.createElement(ki,{config:t.config??Fi},vi.createElement(Ci,null)))}i(Rf,"Widget");function eg(){let{on:t,off:e}=we;return{on:t,off:e}}i(eg,"useWidgetEvents");export{B2 as EventSeverity,Vo as MainEvents,z2 as Networks,G2 as PendingSwapNetworkStatus,_i as QuoteEventTypes,P2 as RouteEventType,wi as SUPPORTED_FONTS,_2 as StepEventType,D2 as StepExecutionBlockedEventStatus,$2 as StepExecutionEventStatus,he as UI_ID,Di as WalletEventTypes,U2 as WalletEvents,q2 as WalletTypes,Rf as Widget,Vo as WidgetEvents,ki as WidgetProvider,Vn as WidgetWallets,la as customizedThemeTokens,O2 as readAccountAddress,no as useWalletList,wr as useWallets,Zf as useWidget,eg as useWidgetEvents,ig as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map