@rango-dev/widget-embedded 0.29.1-next.19 → 0.29.1-next.20

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 qf=Object.defineProperty;var i=(t,e)=>qf(t,"name",{value:e,configurable:!0});import{EventSeverity as JV,RouteEventType as RV,StepEventType as e2,StepExecutionBlockedEventStatus as t2,StepExecutionEventStatus as o2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as r2,useWallets as kr,Events as i2}from"@rango-dev/wallets-react";import{Networks as s2,WalletTypes as l2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as c2}from"rango-types";import{UI_ID as Hf}from"@rango-dev/ui";var wn="c6381a79-2817-4602-83bf-6a641a409e32",ll="https://api.rango.exchange",pl="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Hf};var cl="Roboto",ki=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as Fi,Provider as Fg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Og}from"rango-sdk";import Un,{createContext as Ug,useEffect as ip,useMemo as Qg,useRef as ap}from"react";import{useEffect as ug}from"react";import{create as lg}from"zustand";import{subscribeWithSelector as pg}from"zustand/middleware";import Gf from"mitt";var ke=Gf(),Vf={on:ke.on,off:ke.off};import{RangoClient as ag}from"rango-sdk";import{BlockchainCategories as Rf,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as eg}from"@rango-dev/wallets-react";import{detectInstallLink as tg,getCosmosExperimentalChainInfo as og,isEvmAddress as ng,KEPLR_COMPATIBLE_WALLETS as jw,Networks as wl}from"@rango-dev/wallets-shared";import Ai from"bignumber.js";import{isCosmosBlockchain as rg}from"rango-types";import Xf from"bignumber.js";var Be=new Xf(0);import{WalletTypes as Kf}from"@rango-dev/wallets-shared";var ul=[Kf.LEAP];import{BlockchainCategories as vi,WalletState as Jf}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function yl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(yl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function fl(t,e){return t.toLowerCase()===e.toLowerCase()}i(fl,"exactText");function gl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(gl,"startWithText");var P=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Do=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function hl(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:0}i(hl,"compareExactMatchText");function wi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareContainsText");function xi(t,e,o){let n=!!e&&gl(e,t),r=!!o&&gl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareStartWithText");function Sl(t,e,o){if(!o)return 0;let n=hl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=hl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r!==0)return r}return 0}i(Sl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Cl=i(t=>ki.find(o=>o.value===t)?.url,"getFontUrlByName");function En(t,e){let o=!!t.find(n=>n.state===Jf.CONNECTED);return e===!1&&o}i(En,"isSingleWalletActive");function In(t,e){return e.find(o=>o.name===t)?.displayName}i(In,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Tl(t,e){return e.find(o=>o.name===t)?.logo}i(Tl,"getBlockchainImage");function Fo(t,e){return e.find(o=>o.id===t)?.title}i(Fo,"getSwapperDisplayName");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ii(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(Ii,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as vl}from"bignumber.js";var Oo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new vl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new vl(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 An=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Uo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Ni(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Ni,"mapStatusToWalletState");function xl(t,e,o,n){return o.filter(r=>!ul.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),f=yo(m.map(g=>g.type)),d=Ni(t(r));return{title:a,image:s,link:tg(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f}})}i(xl,"mapWalletTypesToWalletInfo");function Mn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Mn,"walletAndSupportedChainsNames");function bl(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}=eg(p),m=l.length>0,f=l.includes(c),d=c===wl.Unknown;if(m&&!f&&!d)return;let T=c===wl.Unknown&&ng(u);if(d&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(c,u)}),a}i(bl,"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 Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"isAccountAndWalletMatched");function El(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 Ai(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(El,"makeBalanceFor");function Il(t){return{...t,loading:!1,error:!0}}i(Il,"resetConnectedWalletState");var Al=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ai(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return ig(r)},"calculateWalletUsdValue");function ig(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ig,"numberWithThousandSeparator");var Bn=i((t,e)=>{let o=og(Object.entries(t).map(([,n])=>n).filter(rg));return o&&o[e]?.experimental},"isExperimentalChain");function Pn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Pn,"formatBalance");function Nl(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(Nl,"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 Wl(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Wl,"sortWalletsBasedOnConnectionState");function _n(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(_n,"getConciseAddress");function Ml({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Ml,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ai(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ll=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Bl(t){return t.map(e=>e.state).join("-")}i(Bl,"hashWalletsState");function Pl(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(Pl,"filterBlockchainsByWalletTypes");function _l(t,e){return e===Rf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(_l,"filterWalletsByCategory");var Wi={API_KEY:wn};function bt(t){return Wi[t]||""}i(bt,"getConfig");function $l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Wi=e,Wi}i($l,"initConfig");var Dl=20,Fl=25,Mi="theme-widget",Qo=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"),Li=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Ol=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Dn,Ft=i(()=>Dn||(Dn=new ag(bt("API_KEY"),bt("BASE_URL")),Dn),"httpService");import{WidgetEvents as Ul}from"@rango-dev/queue-manager-rango-preset";var Bi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Bi||{}),Pi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Pi||{}),zo=(r=>(r[r.RouteEvent=Ul.RouteEvent]="RouteEvent",r[r.StepEvent=Ul.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(zo||{});var sg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ot=sg;var te=Ot(lg()(pg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ke.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)&&ke.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:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Ln(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(T=>Ln(T,f)),g=p.find(T=>T.address===f.address&&T.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:El(g,n),loading:!1}:f});return{loading:!1,balances:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Ln(m,c))?Il(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as cg}from"@rango-dev/provider-all";function Fn(t,e){let o=cg({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(Fn,"matchAndGenerateProviders");function Ql(t,e){return Fn(t,e).map(r=>r.config.type)}i(Ql,"configWalletsToWalletName");function zl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(zl,"hashProviders");function _i(t,e){let o=te.use.clearConnectedWallet(),n=Fn(t,e);return ug(()=>{o(),n=Fn(t,e)},[zl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(_i,"useWalletProviders");import Mg,{createContext as Lg,useContext as Bg,useEffect as Pg,useRef as _g}from"react";import{create as Ng}from"zustand";import{persist as Wg}from"zustand/middleware";var $i={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},mg={clientUrl:void 0},dg={liquiditySources:void 0},ql=i((t,e,o)=>({config:{...$i,...t},iframe:mg,campaignMode:dg,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 On(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(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(On,"getUniqueSwappersGroups");function Hl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Hl,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Gl(t,e){return e?.[t]==="enabled"}i(Gl,"isFeatureEnabled");var Vl=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&&Qo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(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 S=o.getBalanceFor(c),k=o.getBalanceFor(m),w=Nl(S,k);if(w!==0)return w}let g=a.get(c.blockchain),T=a.get(m.blockchain),C=Ii(c,g),y=Ii(m,T);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let S=Sl(c,m,o.searchFor);if(S)return S}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&T?g.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(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(Hl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().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=Dt(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 fg,English as gg,Finland as hg,French as yg,German as Sg,Greece as Cg,Italian as Tg,Japanese as kg,Netherlands as vg,Poland as wg,Portuguese as xg,Russian as bg,Spanish as Eg,Swedish as Ig,Ukrainian as Ag}from"@rango-dev/ui";var Xl=[{title:"English",label:"English",local:"en",SVGFlag:gg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Eg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:yg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:kg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:xg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:fg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:bg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Sg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Ag},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ig},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:hg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:vg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Cg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Tg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:wg}],So="en";var Kl=[.5,1,3],jl=1,Yl=5,Zl=100,Jl=0;var Rl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:jl,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=yo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Ke("theme",n),s=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||So},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||So}})}}),"createSettingsSlice");function ep(t){return Ng()(Wg((...e)=>({...Vl(...e),...Rl(...e),...ql(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(ep,"createAppStore");var tp=Lg(null);function h(){let t=Bg(tp);if(Pg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function op(t){let e=_g();return e.current||(e.current=ep(t.config)),Mg.createElement(tp.Provider,{value:e.current},t.children)}i(op,"AppStoreProvider");import{create as Dg}from"zustand";var np="rango-widget";var qo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(np),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot(Dg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new qo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Qn=Ug({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function zg(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=ap(),f=ap();ip(()=>{n().catch(console.log)},[]),ip(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Og).map(y=>y.name),g=i((y,S,k,w,A)=>{if(S===Fi.ACCOUNTS)if(k){let L=Mn(A.supportedBlockchains),E=bl(y,k,d,L,A.isContractWallet);E.length&&u(E,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(S===Fi.ACCOUNTS&&w.connected){let L=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(S===Fi.NETWORK&&w.network){let L=`${y}-${w.network}`;m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,S,k,w,A)},"onUpdateState"),T=ie.use.isActiveTab(),C=Qg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Un.createElement(Qn.Provider,{value:C},Un.createElement(Fg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!T},t.children))}i(zg,"Main");function zn(t){let{config:e,...o}=t;return Un.createElement(op,{config:e},Un.createElement(zg,{...o,config:e}))}i(zn,"WidgetWallets");import Ti from"react";import qg,{Fragment as Hg}from"react";import{MemoryRouter as Gg,useInRouterContext as Vg}from"react-router";function sp({children:t}){let o=Vg()?Hg:Gg;return qg.createElement(o,null,t)}i(sp,"AppRouter");import{I18nManager as Rv}from"@rango-dev/ui";import il from"react";import Qe from"react";import{useRoutes as Ov}from"react-router-dom";var z={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ko,useRef as Rn}from"react";import It from"bignumber.js";import{create as jg}from"zustand";import{subscribeWithSelector as Yg}from"zustand/middleware";import{getLastSuccessfulStep as Kg}from"@rango-dev/queue-manager-rango-preset";import WE from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Oi={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Ui=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],lp=30;import{i18n as it}from"@lingui/core";import{RouteEventType as fE}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Gn}from"rango-types";function qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(qn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function pp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(pp,"getQuoteErrorMessage");import{i18n as Hn}from"@lingui/core";var to=i(()=>({connectWallet:Hn.t("Connect Wallet"),swap:Hn.t("Swap"),swapAnyway:Hn.t("Swap anyway"),ethWarning:Hn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function cp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(cp,"hasHighValueLoss");function up(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(up,"hasLimitError");function mp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(mp,"getLimitErrorMessage");function dp(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(dp,"getSwapButtonState");function Qi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Qi,"canComputePriceImpact");function zi(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(zi,"getUsdFeeOfStep");function Vn(t,e){return t.reduce((o,n)=>o.plus(zi(n,e)),Be)}i(Vn,"getTotalFeeInUsd");function qi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(qi,"getUsdFee");function fp(t){return t.reduce((e,o)=>e.plus(qi(o)),Be)}i(fp,"getTotalFeesInUsd");function gp(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(gp,"getFeesGroup");function hp(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(hp,"checkSlippageErrors");function yp(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(yp,"checkSlippageWarnings");function Xn(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(Xn,"getMinRequiredSlippage");function Sp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Sp,"hasProperSlippage");function Cp(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,T=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.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:T??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(Cp,"createQuoteRequestBody");function Tp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Tp,"getWalletsForNewSwap");function Co(t){return t?.outputAmount||null}i(Co,"getQuoteOutputAmount");function kp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(kp,"getPercentageChange");function vp(t,e){let o=Co(t),n=Co(e);if(!o||!n)return!1;let r=je(o,n);return r?r<=-1:!0}i(vp,"isOutputAmountChangedALot");function wp(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=>Np(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Xe(s.asset.blockchain,o)}})})}i(wp,"generateBalanceWarnings");function Kn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Kn,"calcOutputUsdValue");function Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Gn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function xp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Gn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Gn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Gn.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(xp,"getSwapMessages");function bp(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(bp,"getLastConvertedTokenInFailedSwap");function Ep(t){return t.status==="failed"}i(Ep,"shouldRetrySwap");function Ip(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?qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Ip,"isConfirmSwapDisabled");function Ap(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ap,"isTokensIdentical");function Yn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Yn,"getQuoteToTokenUsdPrice");function Hi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Hi,"isNumberOfSwapsChanged");function Gi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Gi,"isQuoteSwappersUpdated");function Vi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(Vi,"isQuoteInternalCoinsUpdated");function Mp(t,e){return Hi(t,e)||Gi(t,e)||Vi(t,e)}i(Mp,"isQuoteChanged");function Np(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(Np,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function Zn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Kg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=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(Zn,"createRetryQuote");function To(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=je(s.toString(),l.toString());if(!!c&&cp(s,c)){let f=Vn(t?.swaps,r),d=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>Yl;if(Sp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:yp(t,a),minRequiredSlippage:p};return null}i(To,"generateQuoteWarnings");function je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:kp(t.toString(),e.toString());return n&&n<0?n:null}i(je,"getPriceImpact");var Lp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Jn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Bp=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"),Pp=i(t=>{let e=i((o,n)=>{let r=Ui.indexOf(o.value),a=Ui.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new It(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(jg()(Yg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Be;return Uo(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Kn(e?.outputAmount,Yn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new It(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new It(0),outputUsdValue:new It(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 It(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 It(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),_p=j.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.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&&ke.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 $p(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:C,setAffiliateWallets:y}=h(),S=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,A=c?.to?.blockchains,L=Rn(void 0),E=Rn(void 0),v=Rn(void 0),b=Rn(void 0);ko(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(x||!x&&v.current)&&n(x??null),U?a({token:U,meta:{blockchains:f,tokens:d}}):!U&&L.current&&a({token:null}),v.current=c?.from?.blockchain,L.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),ko(()=>{Qo(s,S)&&a({token:null}),Li(p,k)&&n(null)},[S,k]),ko(()=>{Qo(l,w)&&a({token:null}),Li(u,A)&&o(null)},[w,A]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(x||!x&&b.current)&&o(x??null),U?e({token:U,meta:{blockchains:f,tokens:d}}):!U&&E.current&&e({token:null}),b.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),ko(()=>{T(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i($p,"useSyncStoresWithConfig");import{useEffect as ji,useRef as Zg}from"react";import{useInRouterContext as Jg,useLocation as Rg,useSearchParams as eh}from"react-router-dom";function Xi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Xi,"convertTokenSearchParamToAsset");function Ki(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ki,"tokenToSearchParam");function Yi(){let t=Rg(),[e,o]=eh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=j(),d=h().fetchStatus,g=h().blockchains(),T=h().tokens(),C=Jg(),{updateIframe:y,updateCampaignMode:S}=h(),k=h().isInCampaignMode(),w=Zg(),{findToken:A}=h(),L=i(()=>{let v={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(v[G]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:x,fromToken:B,toBlockchain:U,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:v}},"getUrlSearchParams"),E=i(v=>{for(let b in v)v[b]||delete v[b];o(v,{replace:!0})},"updateUrlSearchParams");ji(()=>{let{autoConnect:v,clientUrl:b,utmQueryParams:x}=L();C&&d==="success"&&E({fromBlockchain:n?.name,fromToken:Ki(a),toBlockchain:r?.name,toToken:Ki(s),fromAmount:l,autoConnect:v??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),ji(()=>{if(!C)return;let v=L();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&f(v.fromAmount),d==="success"){let b=g.find(I=>I.name===v.fromBlockchain),x=v.fromToken&&b?A(Xi(v.fromToken,b)):void 0,B=g.find(I=>I.name===v.toBlockchain),U=v.toToken&&B?A(Xi(v.toToken,B)):void 0;b&&(p(b),x&&c({token:x,meta:{blockchains:g,tokens:T}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:T}}))}},[d]),ji(()=>{let{clientUrl:v,liquiditySources:b}=L();y("clientUrl",v||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(Yi,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as SC}from"@rango-dev/queue-manager-react";import{Alert as pm,Button as CC,css as Ja,Divider as Za,IconButton as cm,styled as TC,Typography as kC,WalletIcon as vC}from"@rango-dev/ui";import be,{useEffect as qr,useLayoutEffect as wC,useRef as xC,useState as sn}from"react";import{useNavigate as bC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Na,BalanceErrors as oS,Button as Qc,ChevronDownIcon as nS,ChevronLeftIcon as rS,CloseIcon as iS,Divider as jo,IconButton as zc,MessageBox as aS,PasteIcon as sS,Typography as vr,WalletIcon as lS}from"@rango-dev/ui";import $,{useCallback as pS,useEffect as qc,useMemo as cS,useRef as uS,useState as po}from"react";import{useNavigate as mS}from"react-router-dom";import{i18n as er}from"@lingui/core";function tr(t){switch(t.type){case 0:return er.t("Route has been updated.");case 3:return er.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return er.t("Route swappers has been updated.");case 2:return er.t("Route internal coins has been updated.");default:return""}}i(tr,"getQuoteUpdateWarningMessage");import{Modal as oh}from"@rango-dev/ui";import nh from"react";function ne(t){let{watermark:e}=ie();return nh.createElement(oh,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import ir,{useRef as ah}from"react";import*as vo from"@radix-ui/react-collapsible";import{keyframes as Fp,styled as or}from"@rango-dev/ui";var Zi=300,rh=Fp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),ih=Fp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Op=or(vo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ji=or(vo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),nr=or(vo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${rh} ${Zi}ms ease-out`},false:{animation:`${ih} ${Zi}ms ease-out`}}}}),rr=or("div",{transition:`all ${Zi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ar(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ah(null);return ir.createElement(Op,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ir.createElement(Ji,{className:"collapsible_trigger",onClick:a},s),ir.createElement(nr,{className:"collapsible_content",open:e},r),l==="bottom"&&ir.createElement(Ji,{className:"collapsible_trigger",onClick:a},s))}i(ar,"CustomCollapsible");import{css as Up,darkTheme as Vo,IconButton as sh,styled as Ye,TextField as lh}from"@rango-dev/ui";var Qp=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),zp=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ph=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),qp=Ye(ph,{alignSelf:"stretch",minHeight:"93px"}),Hp=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Gp=Ye(sh,{position:"absolute",left:"$20"}),Vp=Ye("div",{paddingTop:"$20"}),Xp=Up({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Kp=Ye("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),jp=Up({paddingTop:"$5"}),Yp=Ye("div",{display:"flex"}),Zp=Ye(lh,{backgroundColor:"$neutral100",padding:"$15"}),Jp=Ye("div",{overflow:"visible",width:"100%"}),Rp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as Jy,Divider as Ia,Image as Ry,MessageBox as Tr,SelectableWallet as eS,Typography as Fc,WalletState as Oc}from"@rango-dev/ui";import ue,{useEffect as Uc,useState as Io}from"react";import{WalletState as Ri}from"@rango-dev/ui";import{useWallets as ch}from"@rango-dev/wallets-react";import{detectMobileScreens as uh,KEPLR_COMPATIBLE_WALLETS as mh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as dh,useEffect as fh,useState as gh}from"react";var hh=Object.values(wo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=ch(),{connectedWallets:c}=te(),m=h().blockchains(),f=Ql(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||hh,d=xl(s,p,f,e);d=uh()?d.filter(E=>E.showOnMobile!==!1&&s(E.type).installed):d;let g=Wl(d),[T,C]=gh(""),y=i(E=>!c.find(v=>v.walletType===E&&v.chain===e),"isExperimentalChainNotAdded"),S=i(async(E,v)=>{let b=s(E);try{if(T&&C(""),b.connected)await l(E);else{if(En(d,a.multiWallets))return;o?.(E),await u(E,void 0,v),n?.(E)}}catch(x){r?.(x?.message),C("Error: "+x?.message)}},"handleClick"),k=dh(()=>{let E=d?.filter(v=>v.state===Ri.CONNECTING)||[];for(let v of E)l(v.type)},[Bl(d)]),w=i(async E=>{s(E).connected&&await l(E)},"disconnectWallet");fh(()=>()=>{k()},[]);let A=i(E=>{let v=E.find(x=>x.type===wo.DEFAULT);return!v||v.state===Ri.NOT_INSTALLED?!1:E.filter(x=>x.state!=Ri.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(x.type)&&p(x.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),L=i((E,v,b)=>Bn(b,v)&&y(E)&&!mh.includes(E)||E==wo.DEFAULT&&!A(d),"shouldExcludeWallet");return{list:g.filter(E=>!L(E.type,e??"",m)),error:T,handleClick:S,disconnectConnectingWallets:k,disconnectWallet:w}}i(no,"useWalletList");import{i18n as Mc}from"@lingui/core";import{Divider as qy,getCategoriesCount as Hy,SelectableCategoryList as Gy,styled as Bc,Typography as Vy,Wallet as Xy,WalletState as Lc}from"@rango-dev/ui";import at,{useState as Sr}from"react";import{useManager as ky}from"@rango-dev/queue-manager-react";import{BottomLogo as vy,Divider as xc,Header as wy}from"@rango-dev/ui";import Se,{useEffect as ka,useRef as bc,useState as xy}from"react";import{useRef as yh}from"react";function sr(){return window.self!==window.top}i(sr,"isAppLoadedIntoIframe");function ea(){let t=yh(null),{iframe:e}=h(),o=sr()&&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(ea,"useIframe");import{useNavigate as Sh}from"react-router-dom";function Ze(){let t=Sh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as sa,darkTheme as Lh,lightTheme as Bh}from"@rango-dev/ui";import{useEffect as Ph,useState as _h}from"react";import{theme as Wh,darkColors as Mh}from"@rango-dev/ui";import ia from"react";function Ch(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Ch,"expandShortHexColor");function Th(t){return/[0-9]+$/.test(t)}i(Th,"isOverridingColor");function kh(t,e){return t.padStart(e,"0")}i(kh,"pad");function ta(t){let e=Math.min(Math.max(Math.round(t),0),255);return kh(e.toString(16),2)}i(ta,"intToHex");function vh(t){return`#${ta(t.red)}${ta(t.green)}${ta(t.blue)}`}i(vh,"rgbToHex");function wh(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(wh,"hexToRGB");function xh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(xh,"generateShade");function bh(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(bh,"generateTint");function Eh(t){return ec(t,xh)}i(Eh,"calculateShades");function Ih(t){return ec(t,bh)}i(Ih,"calculateTints");function ec(t,e){let o=wh(t),n=[];for(let r=1;r<9;r++)n.push(vh(e(o,r)));return n}i(ec,"calculateColors");function oa(t,e,o){let a=Ih(t).reverse().concat(t),s=Eh(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(oa,"createTintsAndShades");function na(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)&&!Th(r)){let p=Ch(a);Object.assign(n,oa(p,r,s))}}return{...n,...e}}i(na,"expandToGenerateThemeColors");var tc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ah=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=tc(o%52)+e;return tc(o%52)+e},"toAlphabeticName"),Nh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ra=i(t=>Ah(Nh(5381,JSON.stringify(t))>>>0),"toHash");function aa(t){let e=Wh.colors,o={...e,...Mh},n,r;if(t?.light){let s={colors:na(e,t.light)};n={id:`${Mi}-light-${ra(s)}`,tokens:s}}if(t?.dark){let s={colors:na(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Mi}-dark-${ra(s)}`,tokens:s}}return{light:n,dark:r}}i(aa,"customizedThemeTokens");function oc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ia.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ia.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ia.cloneElement(e,{key:l}))}}),o}i(oc,"joinList");function lr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=Dl,secondaryBorderRadius:r=Fl}=t,[a,s]=_h("light"),{theme:l}=h(),{dark:p,light:u}=aa(e),c=sa({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Bh.className],f=[c.className,Lh.className];if(u){let g=sa(u.id,u.tokens);m.push(g.className)}if(p){let g=sa(p.id,p.tokens);f.push(g.className)}return Ph(()=>{let g=i(T=>{T.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(" "),T=f.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(lr,"useTheme");var Je=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 nc}from"@lingui/core";import{Alert as $h,Button as Dh}from"@rango-dev/ui";import rc from"react";function la(t){return rc.createElement($h,{action:rc.createElement(Dh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},nc.t("Activate this tab")),type:"warning",variant:"alarm",title:nc.t("Another tab is open and handles transactions.")})}i(la,"ActivateTabAlert");import{i18n as pa}from"@lingui/core";import{Button as Fh,Divider as Oh,MessageBox as Uh}from"@rango-dev/ui";import pr from"react";function ca(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},pr.createElement(Uh,{title:pa.t("Activate current tab"),type:"warning",description:pa.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},pr.createElement(Oh,{size:20}),pr.createElement(Fh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pa.t("Confirm"))))}i(ca,"ActivateTabModal");import{ChevronLeftIcon as qh}from"@rango-dev/ui";import uc from"react";import{css as Qh,darkTheme as ic,IconButton as zh,styled as ro}from"@rango-dev/ui";var yt=ro(zh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${ic} &`]:{backgroundColor:"$neutral"}}}),ac=ro("div",{position:"absolute",background:"$secondary500",[`.${ic} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),sc=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"}}}}),lc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),pc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),cc=Qh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ua(t){return uc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},uc.createElement(qh,{color:"black",size:16}))}i(ua,"BackButton");import{i18n as Hh}from"@lingui/core";import{Button as Gh,Typography as Vh}from"@rango-dev/ui";import ma from"react";function da(t){return ma.createElement(xo,null,ma.createElement(Gh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ma.createElement(Vh,{variant:"label",size:"medium",color:"error500"},Hh.t("Cancel"))))}i(da,"CancelButton");import{i18n as Xh}from"@lingui/core";import{Image as Kh,Tooltip as jh,WalletIcon as Yh}from"@rango-dev/ui";import io from"react";function fa(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:cc()},o.map(r=>io.createElement(cr,{key:r.title},io.createElement(Kh,{src:r.image,size:14})))):Xh.t("Connect Wallet");return io.createElement(jh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(ac,null),io.createElement(Yh,{size:18,color:"black"})))}i(fa,"WalletButton");import{i18n as mr}from"@lingui/core";import{NotificationsIcon as my,Popover as dy,SettingsIcon as fy,Tooltip as dr,TransactionIcon as gy}from"@rango-dev/ui";import Ae from"react";import{Notifications as ey}from"@rango-dev/ui";import ty from"react";import{useNavigate as oy}from"react-router-dom";import{create as Zh}from"zustand";import{persist as Jh,subscribeWithSelector as Rh}from"zustand/middleware";var ve=Ot(Zh()(Jh(Rh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.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 ga(){let t=oy(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=h().blockchains(),{findToken:a}=h();return ty.createElement(ey,{list:n,getBlockchainImage:l=>Tl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${z.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ga,"NotificationContent");import{useManager as ny}from"@rango-dev/queue-manager-react";import{InProgressIcon as ry}from"@rango-dev/ui";import mc from"react";var iy=i(()=>{let{manager:t}=ny();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?mc.createElement(pc,null,mc.createElement(ry,{color:"info",size:6})):null},"InProgressTransactionBadge"),dc=iy;import{EventSeverity as ay}from"@rango-dev/queue-manager-rango-preset";import{Typography as sy}from"@rango-dev/ui";import fc from"react";function gc(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ay.WARNING);return o?fc.createElement(sc,{isSever:n},fc.createElement(sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(gc,"NotificationsBadge");import{RefreshProgressButton as ly}from"@rango-dev/ui";import ha,{useEffect as py,useState as hc}from"react";var cy=1e3,yc=60,uy=100;function ur({onClick:t}){let[e,o]=hc(0),[n,r]=hc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");py(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===yc&&l()},cy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ha.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ha.createElement(lc,{onTransitionEnd:()=>r(!1),isRefetched:n},ha.createElement(ly,{size:22,color:t?"black":"gray",progress:e/yc*uy})))}i(ur,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ke("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(dr,{container:a||P(),side:"top",content:mr.t("Refresh")},Ae.createElement(ur,{onClick:e})),!l&&Ae.createElement(dy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(my,{size:18,color:"black"}),Ae.createElement(gc,null))))),!r.includes("settings")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(fy,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(gy,{size:18,color:"black"}),Ae.createElement(dc,null))))}i(ao,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Cc,MessageBox as Sy,RefreshIcon as Cy}from"@rango-dev/ui";import bo from"react";import{Button as hy,styled as yy}from"@rango-dev/ui";var Sc=yy(hy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Sa(t){let{open:e,onClose:o}=t;return bo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},bo.createElement(Sy,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},bo.createElement(Cc,{size:30}),bo.createElement(Sc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},bo.createElement(Cy,{size:20,color:"primary"}),bo.createElement(Cc,{size:4,direction:"horizontal"}),ya.t("Refresh"))))}i(Sa,"RefreshModal");function Ca(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(Ca,"onScrollContentAttachStatusToContainer");import{css as Ty,styled as Ta}from"@rango-dev/ui";var Tc="700px",fr=Ty({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),kc=Ta("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Tc},fixed:{height:Tc}}}}),vc=Ta("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),wc=Ta("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ea(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=xy(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ie(),g=d==="FULL",{activeTheme:T}=lr(f||{}),C=Ke("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:S,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),L=Ze(),{manager:E}=ky(),b=Je(E).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),x=i(()=>A(eo.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,I=bc(null),H=bc(null);return ka(()=>(sr()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(I.current?.addEventListener("scroll",Ca),()=>{I.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Se.createElement(kc,{height:s,id:ye.SWAP_BOX_ID,className:`${T()} ${fr()}`,ref:H},Se.createElement(wy,{prefix:Se.createElement(Se.Fragment,null,U&&Se.createElement(ua,{onClick:()=>{L(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!C&&Se.createElement(fa,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Se.createElement(da,{onClick:r.onCancel}))}),Se.createElement(vc,{ref:I},n),Se.createElement(ca,{open:k,onClose:()=>w(!1),onConfirm:x}),Se.createElement(wc,null,Se.createElement("div",{className:"footer__content"},S&&!y&&Se.createElement("div",{className:"footer__alert"},Se.createElement(la,{onActivateTab:x}),Se.createElement(xc,{size:10})),a),Se.createElement(xc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(vy,null))),Se.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as by}from"@rango-dev/ui";var Ec="$20 $20 $10 $20",Xo=by("div",{padding:Ec,overflowY:"auto",flexGrow:1});import{styled as Ey}from"@rango-dev/ui";var me=Ey("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as My}from"@rango-dev/ui";import wa from"react";import{i18n as Eo}from"@lingui/core";import{Image as Ny,MessageBox as va,WalletState as Wy}from"@rango-dev/ui";import so from"react";import{keyframes as Iy,styled as gr}from"@rango-dev/ui";var tW=gr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),hr=gr("div",{position:"relative"}),Ay=Iy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),yr=gr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ay} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ic=gr("div",{"& img":{borderRadius:"50%"}});function Ac(t){let{state:e,image:o,error:n}=t;return e===Wy.CONNECTED?so.createElement(va,{type:"success",title:Eo.t("Wallet Connected"),description:Eo.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(va,{type:"error",title:Eo.t("Failed to Connect"),description:n||Eo.t("Your wallet is not connected. Please try again.")}):so.createElement(va,{type:"loading",title:Eo.t("Connecting to your wallet"),description:Eo.t("Click connect in your wallet popup."),icon:so.createElement(hr,null,so.createElement(Ic,null,so.createElement(Ny,{src:o,size:45})),so.createElement(yr,null))})}i(Ac,"ModalContent");function Ko(t){let{open:e,onClose:o,...n}=t;return wa.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},wa.createElement(Ac,{...n}),wa.createElement(My,{direction:"vertical",size:32}))}i(Ko,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as By,Checkbox as Py,Image as Wc,ListItemButton as _y,MessageBox as $y,Radio as Dy,RadioRoot as Fy}from"@rango-dev/ui";import{namespaceMainBlockchain as Oy}from"@rango-dev/wallets-shared";import We,{useMemo as Uy,useState as Qy}from"react";import{styled as Ly}from"@rango-dev/ui";var Nc=Ly("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var zy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Qy([]),a=h().blockchains(),s=Uy(()=>o?.map(u=>({name:u,logo:zy(a,Oy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(Fy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},We.createElement($y,{type:"info",title:xa.t("Select chain types"),description:xa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(hr,null,We.createElement(cr,null,We.createElement(Wc,{src:t.image,size:45})),We.createElement(yr,null))}),We.createElement(Nc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(_y,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Wc,{src:u.logo,size:22}),end:e?We.createElement(Dy,{value:u.name}):We.createElement(Py,{checked:n.includes(u.name)})}))))),We.createElement(By,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(lo,"WalletNamespacesModal");var Ky=Bc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),jy=Bc(me,{textAlign:"center"}),Cr=3e3,ba=300;function Pc(){let{fetchStatus:t}=h(),[e,o]=Sr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Sr(!1),[l,p]=Sr(null),[u,c]=Sr(""),m=null,f=ie.use.isActiveTab(),{list:d,handleClick:g,error:T,disconnectConnectingWallets:C}=no({onBeforeConnect:x=>{m=setTimeout(()=>{s(!0),c(x)},ba)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Cr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),S=d.find(x=>x.type===u),k=S?.image||"",w=S?.state||Lc.NOT_INSTALLED,A=Pl(d,n),E=Hy(A)!==1,v=_l(d,e),b=i((x,B)=>{if(B.namespaces&&B.state===Lc.DISCONNECTED){if(En(d,r.multiWallets))return;p({providerType:x,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(x)},"handleWalletClick");return at.createElement(le,{header:{title:Mc.t("Connect Wallets")}},at.createElement(jy,null,E&&at.createElement(at.Fragment,null,at.createElement(Gy,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),at.createElement(qy,{size:24})),at.createElement(Vy,{variant:"title",size:"xmedium",align:"center"},Mc.t("Choose a wallet to connect.")),at.createElement(Ky,null,v.map((x,B)=>{let U=`wallet-${B}-${x.type}`;return at.createElement(Xy,{key:U,...x,container:P(),onClick:I=>b(I,x),isLoading:t==="loading",disabled:!f})}),at.createElement(Ko,{open:!!a,onClose:y,image:k,state:w,error:T}),at.createElement(lo,{open:!!l,onClose:()=>p(null),onConfirm:x=>{g(l?.providerType,x),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Pc,"WalletsPage");import{keyframes as Yy,styled as Ea}from"@rango-dev/ui";var _c=Ea("div",{position:"relative"}),Zy=Yy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),$c=Ea("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Zy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Dc=Ea("div",{"& img":{borderRadius:"50%"}});var tS=7;function Aa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Io(""),[f,d]=Io(null),[g,T]=Io(!1),[C,y]=Io(null),[S,k]=Io(null),{suggestAndConnect:w}=kr(),A=null,{list:L,error:E,handleClick:v,disconnectWallet:b,disconnectConnectingWallets:x}=no({chain:e,onBeforeConnect:W=>{A=setTimeout(()=>{m(W)},ba)},onConnect:W=>{s?.(W),A&&clearTimeout(A),setTimeout(()=>{m("")},Cr)}}),[B,U]=Io(L),I=L.length,H=r&&I-r>0,Y=i(async W=>{T(!1),y("in-progress");try{await w(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Uc(()=>{U(W=>{let Q=L.findIndex(Z=>o(Z.type,e));return H&&Q>1?[L[Q]].concat(L.filter((Z,re)=>re!==Q)):W.map(Z=>L.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(L)]);let G=document.getElementById(ye.SWAP_BOX_ID);Uc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),Cr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{x(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,B.slice(0,r).map(W=>{let Q=Ml({connectedWallets:p,walletType:W.type,chain:e}),Z=Q?_n(Q,tS):"",re=Bn(u(),e),Te=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&Te&&W.state===Oc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===Oc.DISCONNECTED?W.namespaces?pe(W):v(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(d({walletType:W.type,chain:e,address:Q??""}),T(!0)):n({walletType:W.type,chain:e,address:Q??""})},"onClick"),de=f?.chain?In(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${de}`},ue.createElement(Ko,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:E}),ue.createElement(lo,{open:!!S,onClose:()=>k(null),onConfirm:Oe=>{v(S?.providerType,Oe),k(null)},image:S?.providerImage,namespaces:S?.availableNamespaces,singleNamespace:S?.singleNamespace}),!!f&&ue.createElement(ne,{open:!!f&&g,container:G,onClose:()=>{d(null)}},ue.createElement(Tr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}})},ue.createElement(Ia,{size:18}),ue.createElement(Ia,{size:32}),ue.createElement(Jy,{onClick:Y.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(Tr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}}),icon:ue.createElement(_c,null,ue.createElement(Dc,null,ue.createElement(Ry,{src:W.image,size:45})),ue.createElement($c,null))}),C==="completed"&&ue.createElement(Tr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:de}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:de}})}),C==="rejected"&&ue.createElement(Tr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:de}})}),ue.createElement(Ia,{direction:"vertical",size:32})),ue.createElement(eS,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(qp,{selected:!1,onClick:a},ue.createElement(Fc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Fc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Aa,"WalletList");var dS=2;function Hc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=mS(),l=h().config,p=uS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:T}=j(),{connectedWallets:C,selectWallets:y}=te(),[S,k]=po(""),[w,A]=po([]),[L,E]=po(""),[v,b]=po(null),[x,B]=po(!!g),U=navigator?.userAgent.includes("Firefox"),I=cS(()=>Jt({filter:"all",quote:c}),[c]),H=Jt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=pS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C,I]),[ee,W]=po(G()),[Q,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),Te=w.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&x&&Y&&!qn(Y,g),ot=i(()=>{B(!1),T(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),de=i(()=>T(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();T(V),p?.current?.focus()}},"handlePasteCustomDestination"),wt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(S&&k(""),_(M.walletType,M.chain))return;let X=C.find(ze=>ze.walletType===M.walletType&&ze.chain===M.chain);X&&(n(),M.chain===Y?.name&&x&&!pe(Y.name)&&(B(!1),T(null)),W(ze=>ze.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),d(!0),o()},"onConfirmBalance"),rt=i(async()=>{A([]),E(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&E(pp(M.error)),!M.error&&!V?.balance?.messages.length?nt():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(zc,{onClick:de,variant:"ghost"},$.createElement(iS,{size:12,color:"gray"})):U?null:$.createElement(zc,{onClick:Oe,variant:"ghost"},$.createElement(sS,{size:16})),"renderCustomDestinationSuffix");qc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C,I]),qc(()=>{let M=[];Q.length>0&&(Q.forEach(V=>{let X=C.find(ze=>ze.chain===V.blockchain&&ze.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C,Q]);let he=document.getElementById(ye.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!S,container:he,...!S&&{footer:$.createElement(Yp,null,$.createElement(Qc,{loading:a,disabled:Ip(a,x,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...S&&{styles:{container:{padding:"$0"}},header:$.createElement(Hp,null,$.createElement(Gp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(rS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(S,u)}})))},anchor:"center"},$.createElement(ne,{open:Te,onClose:A.bind(null,[]),container:he},$.createElement(aS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(oS,{messages:w??[]})},$.createElement(Qc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),S&&$.createElement(Vp,null,$.createElement("div",{className:Xp()},$.createElement(Aa,{chain:S,isSelected:_,selectWallet:Ve,onShowMore:()=>k(S),onConnect:M=>{re(S,M)}}))),!S&&$.createElement($.Fragment,null,L&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"error",title:St.t(L)}),$.createElement(jo,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"warning",title:tr(v)}),$.createElement(jo,{size:12})),$.createElement(Jp,null,I.map((M,V)=>{let X=u.find(Zt=>Zt.name===M),ze=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:ze},$.createElement(Qp,null,$.createElement(vr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(jo,{size:24}),$.createElement(zp,null,$.createElement(Aa,{chain:M,isSelected:_,selectWallet:Ve,limit:dS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{re(M,Zt)}})),!ft&&$.createElement(jo,{size:32}),ft&&l?.customDestination!==!1&&$.createElement(Kp,null,$.createElement(ar,{onOpenChange:wt,hasSelected:!0,open:x,triggerAnchor:"top",trigger:$.createElement(Rp,null,$.createElement("div",{className:"button__content"},$.createElement(lS,{size:18,color:"info"}),$.createElement(jo,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:x?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(rr,{orientation:x?"up":"down"},$.createElement(nS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Zt=>!Zt)},$.createElement(Zp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:In(M,u)}),value:g||"",suffix:dt(),onChange:Zt=>{let zf=Zt.target.value;T(zf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:jp()},$.createElement(Na,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Hc,"ConfirmWalletsModal");import{i18n as LS}from"@lingui/core";import{Alert as BS,Button as PS,InfoIcon as _S}from"@rango-dev/ui";import He from"react";import{Alert as hS,Button as yS,Divider as La,NoRouteIcon as SS,RefreshIcon as CS,Typography as Zc}from"@rango-dev/ui";import qe from"react";import{i18n as Gc}from"@lingui/core";var fS=24,gS=60;function Vc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Gc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Gc.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(Vc,"makeInfo");var Wa=(o=>(o[o.small=fS]="small",o[o.large=gS]="large",o))(Wa||{}),Ma=(o=>(o.small="small",o.large="medium",o))(Ma||{});import{styled as wr}from"@rango-dev/ui";var Xc=wr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Kc=wr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),jc=wr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Yc=wr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Vc(o,r,()=>a(s,!0),e);return qe.createElement(Xc,null,qe.createElement(SS,{size:Wa[n],color:"gray"}),qe.createElement(La,{size:4}),qe.createElement(Zc,{variant:"title",size:Ma[n]},oe().noResultError.title),n==="large"&&qe.createElement(La,{size:4}),!!l.description&&qe.createElement(Kc,{size:n},qe.createElement(Zc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),qe.createElement(La,{size:n==="large"?"24":"4"}),!!l.alert&&qe.createElement(jc,{size:n},qe.createElement(hS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&qe.createElement(yS,{size:"xsmall",type:l.alert.type,prefix:qe.createElement(Yc,null,qe.createElement(CS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as kS,Divider as vS,MessageBox as wS,Typography as xS,WarningIcon as bS}from"@rango-dev/ui";import At from"react";import{Typography as tu}from"@rango-dev/ui";import Pa from"react";import{darkTheme as TS,styled as xr}from"@rango-dev/ui";var Jc=xr("div",{width:"100%"}),Ba=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Rc=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${TS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),eu=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function ou(t){let{title:e,value:o,valueColor:n}=t;return Pa.createElement(Rc,null,Pa.createElement(tu,{size:"medium",variant:"label",className:"_title"},e),Pa.createElement(tu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ou,"QuoteErrorsModalItem");function nu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(kS,{type:"primary",size:"large",prefix:At.createElement(bS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(wS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ba,null,At.createElement(vS,{size:"4"}),At.createElement(xS,{size:"small",variant:"title"},Zo.t("Details")),At.createElement(Ba,null,l.map((p,u)=>At.createElement(ou,{key:u,...p})))))}i(nu,"HighValueLossWarningModal");import{i18n as _a}from"@lingui/core";function ru(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=_a.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Et(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=_a.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=_a.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(ru,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as iu,Divider as au,MessageBox as ES,Typography as IS}from"@rango-dev/ui";import co from"react";import{useNavigate as AS}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=AS(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(iu,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},co.createElement(IS,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:P(),onClose:r},co.createElement(ES,{type:"warning",title:s.type===3?Ao.t("High slippage"):Ao.t("Low slippage"),description:s.type===3?Ao.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Ao.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(au,{size:18}),co.createElement(au,{size:32}),co.createElement(iu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(su,"SlippageWarningModal");import{Button as NS,MessageBox as WS,WarningIcon as MS}from"@rango-dev/ui";import br from"react";function lu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return br.createElement(ne,{footer:br.createElement(NS,{type:"primary",size:"large",prefix:br.createElement(MS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},br.createElement(WS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(lu,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=ru(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),He.createElement(He.Fragment,null,f&&He.createElement(Yo,{error:o,fetch:s}),!!d&&He.createElement(Jc,null,He.createElement(BS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:He.createElement(eu,{onClick:l},He.createElement(_S,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:He.createElement(PS,{size:"xxsmall",type:d.alertType,onClick:c},LS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(nu,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(su,{...m,warning:e}),e.type===1&&He.createElement(lu,{...m,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import mC from"bignumber.js";import Or from"react";import{i18n as uo}from"@lingui/core";import{Alert as RS,Divider as Wo,FullExpandedQuote as eC,InfoIcon as tC,QuoteTag as oC,StepDetails as nC,TokenAmount as rC,Tooltip as Qu,Typography as Mo}from"@rango-dev/ui";import qa from"bignumber.js";import D,{useRef as iC,useState as aC}from"react";import{styled as $a}from"@rango-dev/ui";var Da=$a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),pu=$a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),cu=$a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as $S,css as Ro,darkTheme as we,Image as uu,styled as _e,Typography as DS}from"@rango-dev/ui";var FS=300,mu=_e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),du=Ro({padding:"$10 $15"}),fu=_e($S,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),gu=_e("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),hu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),yu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),No=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Su=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cu=_e(Er.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${uu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${uu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Tu=_e("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ku=_e(nr,{width:"100%",background:"inherit"}),Fa=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${FS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),iB=_e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),vu=_e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),wu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Oa=_e(DS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),xu=_e("div",{display:"flex",flexWrap:"wrap"}),Ua=_e("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),bu=_e("div",{display:"flex"}),Ir=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Gt}from"@lingui/core";import{ChevronDownIcon as US,CloseIcon as QS,Divider as Wr,IconButton as zS,QuoteCost as qS,Tooltip as HS,Typography as lt}from"@rango-dev/ui";import J,{useState as Nu}from"react";import{css as OS,styled as Ar}from"@rango-dev/ui";var Nr=Ar("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Qa=Ar("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Eu=Ar("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Iu=Ar("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Au=OS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var GS=i(t=>t.fee.isZero()?null:J.createElement(Nr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Wu(t){let[e,o]=Nu(!1),[n,r]=Nu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=gp(m);return J.createElement(J.Fragment,null,J.createElement(qS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Gt.t("View more info"):void 0,tooltipContainer:f}),J.createElement(ne,{container:f,open:e,header:J.createElement(Iu,null,J.createElement(lt,{variant:"title",size:"medium"},Gt.t("Gas & Fee Explanation")),J.createElement(zS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(QS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(Eu,null,J.createElement(lt,{variant:"title",size:"small"},Gt.t("Details")),J.createElement(Wr,{size:10}),Object.entries(d.payable).flatMap(([g,T])=>T.map((C,y)=>{let S=`payable-fee-${y}`,k=qi(C);return J.createElement(Nr,{key:S},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Oi[g]),J.createElement(HS,{content:ce(C.amount),container:f},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Nr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Gt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(Qa,null),Object.keys(d.nonePayable).length&&J.createElement(ar,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:Au()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Gt.t("Hide non-payable fees"):Gt.t("Show non-payable fees")),J.createElement(Wr,{size:4,direction:"horizontal"}),J.createElement(rr,{orientation:n?"up":"down"},J.createElement(US,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Gt.t("Description")),J.createElement(Wr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Gt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),J.createElement(Wr,{size:10}),Object.entries(d.nonePayable).map(([g,T],C)=>{let y=fp(T),S=Oi[g],k=`non-payable-fee-${C}`;return J.createElement(GS,{key:k,fee:y,label:S})}),J.createElement(Qa,null)))))}i(Wu,"QuoteCostDetails");import{i18n as Bu}from"@lingui/core";import{TokenAmount as Pu}from"@rango-dev/ui";import Mr from"react";import{css as VS,styled as XS}from"@rango-dev/ui";var Mu=XS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Lu=VS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Mr.createElement(Mu,null,Mr.createElement(Pu,{direction:"horizontal",label:Bu.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}}),Mr.createElement("div",{className:Lu()}),Mr.createElement(Pu,{direction:"horizontal",tooltipContainer:P(),label:Bu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(en,"QuoteSummary");import{i18n as Ou}from"@lingui/core";import{ChevronDownIcon as YS,ChevronRightIcon as ZS,Divider as za,Image as JS,Tooltip as $r,Typography as Br}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as KS,useState as tn}from"react";var _u=480,$u=768,Du=1024,Fu=1200,jS=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=_u),n(window.innerWidth>_u&&window.innerWidth<=$u),a(window.innerWidth>$u&&window.innerWidth<=Du),l(window.innerWidth>Du&&window.innerWidth<=Fu),u(window.innerWidth>Fu)},"handleResize");return KS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Lr=jS;var Pr=4,_r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement($r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Tu,{className:n,state:a},F.createElement(JS,{src:o,size:16})))},"ImageComponent");function Uu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Lp(r),{isTablet:m,isMobile:f}=Lr();return F.createElement(Cu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Ou.t("Via:")),F.createElement(za,{direction:"horizontal",size:4}),r.map((d,g)=>{let T=`item-${g}`,C=F.createElement(Fa,null,F.createElement(ZS,{size:12,color:"black"}));return f||m?F.createElement(F.Fragment,{key:T},F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:T},u<=Pr||u>Pr&&g<Pr-1?F.createElement(F.Fragment,null,F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===Pr-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},C,r.map((y,S)=>{let k=`image-${S}`;return S>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),S!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Ua,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Br,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Ou.t("Chains:")),F.createElement(za,{direction:"horizontal",size:4}),c.map((d,g)=>F.createElement(F.Fragment,{key:d.displayName},c.length<=_r||c.length>_r&&g<_r-1?F.createElement($r,{container:p,side:"bottom",content:d.displayName,sideOffset:4},F.createElement(on,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===_r-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},c.map((T,C)=>C>=g&&F.createElement(on,{key:T.displayName,content:"",src:T.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(Br,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(za,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(YS,{size:12,color:"black"}))))}i(Uu,"QuoteTrigger");function Ha(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),T=h().swappers(),{customSlippage:C,slippage:y}=h(),S=C||y,[k,w]=aC(t.expanded),A=iC(null),L=N(o.value,6,6),E=N(n.value,6,6),v=n.usdValue?N(n.usdValue,4,4):"",b=je(o.usdValue,n.usdValue??null),x=N(b,2,2),B=Et(b??0),U=i((re,Te)=>re.map((_,Fe)=>{let ot,de=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),wt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=de||Oe,nt=wt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return de&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Fo(_.swapperId,T),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,d),image:_.from.blockchainLogo},price:{value:Fe===0&&!Te?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new qa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,d),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new qa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(pu,{dense:m},D.createElement(RS,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(cu,null,de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||wt)&&!de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Oo(_.estimatedTimeInSeconds),fee:N(zi(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),I=U(e?.swaps??[]),H=I.length,Y=f||P(),pe=Pp(t.quote.tags||[]),G=!!c,ee=Oo(An(e?.swaps)),W=Vn(e?.swaps??[],g),Q=N(W,2,2),Z=W.gte(new qa(lp));return m?D.createElement(eC,{selected:l,fee:Q,time:ee,tooltipContainer:Do(),steps:I,tags:pe,feeWarning:Z,percentageChange:x,warningLevel:B,outputPrice:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(gu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:hu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(bu,null,pe.map((re,Te)=>{let _=`${re.value}_${Te}`;return D.createElement(D.Fragment,{key:_},D.createElement(oC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Ir,null),!G&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:yu()},D.createElement(Wu,{quote:e,time:ee,fee:Q,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(fu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Mo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Su()},D.createElement(wu,null,D.createElement(tC,{size:12,color:"gray"})),D.createElement(xu,null,D.createElement(Oa,{size:"small",variant:"body"},`${L} ${I[0].from.token.displayName} = `),D.createElement(Qu,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${E} ${I[I.length-1].to.token.displayName}`))),D.createElement(Qu,{content:ce(n.usdValue),container:Y},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Mo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&D.createElement(rC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:x,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:I[0].from,to:I[H-1].to,percentageChange:x,warningLevel:B}),D.createElement(Wo,{size:4}))),D.createElement(mu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Uu,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:I}),D.createElement(ku,{open:k},D.createElement(vu,null),D.createElement("div",{className:du()},I.map((re,Te)=>{let _=`item-${Te}`;return D.createElement(nC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:Te!==I.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as cC,Skeleton as uC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as sC,styled as Dr}from"@rango-dev/ui";var zu=Dr("div",{$$color:"$colors$neutral100",[`.${sC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),qu=Dr("div",{paddingTop:"$2"}),Hu=Dr("div",{paddingLeft:"$8"}),Gu=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as tm,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import q from"react";import{css as lC,styled as Nt}from"@rango-dev/ui";var Ga=Nt("div",{display:"flex"}),Vu=Nt("div",{padding:"$10 $0 $20"}),Xu=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ku=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),ju=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Yu=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Zu=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ju=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Ru=Nt("div",{padding:"$15 $0 $15 $0"}),em=lC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(ju,null,q.createElement(Zu,null,q.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{size:8,direction:"horizontal"}),q.createElement(Ju,null,q.createElement(Ge,{height:10,width:60,variant:"rounded"}),q.createElement(pt,{size:4}),q.createElement(Ge,{height:15,variant:"rounded"}))),q.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(Ga,null,q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:65,height:20,variant:"rounded"})),q.createElement(Ir,null),!r&&q.createElement(pt,{size:4})),q.createElement("div",{className:em()},q.createElement(Ga,null,q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"}),q.createElement(pt,{size:4,direction:"horizontal"}),q.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&q.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(Vu,null,q.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Xu,null,q.createElement(Ku,null,q.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(pt,{direction:"horizontal",size:4}),q.createElement(Ge,{height:15,width:150,variant:"rounded"})),q.createElement(pt,{size:10}),q.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(pt,{size:4}),q.createElement(Ru,null,n,q.createElement(Yu,null),n),q.createElement(pt,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as am,Divider as Xa,NextIcon as pC,Skeleton as Fr}from"@rango-dev/ui";import xe from"react";import{styled as rn}from"@rango-dev/ui";var om=rn("div",{display:"flex",alignItems:"start"}),nm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),rm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),im=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return xe.createElement(xe.Fragment,null,xe.createElement(im,null,xe.createElement(Fr,{height:22,width:22,variant:"circular"}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:15,width:148,variant:"rounded"})),xe.createElement(om,null,xe.createElement(Gu,{hideSeparator:!e}),xe.createElement(nm,{extraSpace:e},xe.createElement(Va,null,xe.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})),xe.createElement(rm,null,xe.createElement(pC,{color:"gray",size:16})),xe.createElement(Va,null,xe.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(zu,{expanded:o,rounded:e!=="basic"},Wt.createElement(nn,{type:e,tagHidden:n}),Wt.createElement(qu,null,Wt.createElement(uC,{height:15,variant:"rounded"})),o&&Wt.createElement(Hu,null,Wt.createElement(cC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function mo(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:T,toToken:C}=j(),y=e?.outputAmount?new mC(e?.outputAmount):null,S=e?.outputAmount?Kn(e?.outputAmount,Yn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Or.createElement(Da,null,Or.createElement(an,{tagHidden:l,type:o,expanded:s})):w?Or.createElement(Da,{onClick:()=>p?.(e)},Or.createElement(Ha,{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:T?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as hC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yC}from"react";import{useRef as dC,useState as fC}from"react";var gC=2e3;function Ur({request:t}){let[e,o]=fC(!1),n=dC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,gC)),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(Ur,"useFetch");function sm(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(sm,"useFetchConfirmQuote");function Qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ka(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Qr,"throwErrorIfResponseIsNotValid");function Ka(t){if(up(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=mp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=hp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ka,"getQuoteError");function lm(t,e,o){let n=!1;t&&(n=Mp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=To(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(vp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Co(e)),percentageChange:N(je(Co(t)??"",Co(e)??""),null,2)}:Hi(t,e)?r.quoteUpdate={type:0}:Gi(t,e)?r.quoteUpdate={type:1}:Vi(t,e)&&(r.quoteUpdate={type:2}));let s=wp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(lm,"generateWarnings");function zr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(zr,"handleQuoteErrors");function ja(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:T,cancelFetch:C,loading:y}=sm();return yC(()=>C,[]),{loading:y,fetch:i(async k=>{let w=k.selectedWallets,A=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let L=w.reduce((v,b)=>(v[b.chain]=b.address,v),{}),E={requestId:r?.requestId||"",selectedWallets:L,destination:A||void 0};try{return await T(E,!0).then(v=>{let{result:b}=v;Qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let x={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(x);let B={slippage:g.toString(),disabledSwappersGroups:c},U=lm(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let I=!!U.balance,H=hC(o.toString(),b,Tp(w),B,!I,{blockchains:m,tokens:f});return{quote:x,swap:H,error:null,warnings:U}})}catch(v){return zr(v)}},"fetch"),cancelFetch:C}}i(ja,"useConfirmSwap");var EC=TC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${cm}`]:{width:"$48",height:"$48"}}),IC=Ja({flexGrow:1,paddingRight:"$10"}),AC=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),NC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function um(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=bC(),[l,p]=sn(""),u=!n,[c,m]=sn(!1),[f,d]=sn(!1),{isActiveTab:g}=ie(),T=h().getDisabledLiquiditySources(),C=xC(T),{manager:y}=SC(),{fetch:S,loading:k,cancelFetch:w}=ja(),[A,L]=sn({swap:null,error:null,warnings:null}),[E,v]=sn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await S?.({selectedWallets:G,customDestination:ee});return L(W),W},"onConfirmSwap"),x=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${z.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{d(!0),await x(),d(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{L({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(G=>{L(G)}).catch(G=>console.error(G))},"onRefresh");qr(()=>{!!C.current.length&&!T.length&&I(),C.current=T},[T.length]),qr(()=>{u&&w()},[u]),qr(()=>{u&&m(u)},[u]),qr(()=>{u||S({selectedWallets:o,customDestination:r}).then(G=>L(G)).catch(G=>console.error(G))},[]),wC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(be.createElement(pm,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(be.createElement(pm,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&tr(A.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(be.createElement(Jo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:E,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await x()},onChangeSettings:()=>s(G)}))}return be.createElement(le,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:be.createElement(EC,null,be.createElement("div",{className:IC()},be.createElement(CC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!A.error||!g,onClick:U},Ya.t("Start Swap"))),be.createElement(cm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},be.createElement(vC,{size:24})))},c&&be.createElement(Hc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),be.createElement(me,null,be.createElement("div",{className:NC()},be.createElement(kC,{variant:"title",size:"small"},Ya.t("You get")),be.createElement("div",{className:AC()},be.createElement(ur,{onClick:!k&&!c&&!E?I:void 0}))),be.createElement(Za,{size:"12"}),oc(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),be.createElement(Za,{size:10})),pe.length>0?be.createElement(Za,{size:10}):null,be.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:A.error,loading:k,warning:A.warnings?.quote??null})))}i(um,"ConfirmSwapPage");import{i18n as Gr}from"@lingui/core";import{useManager as GC}from"@rango-dev/queue-manager-react";import{Divider as vm,NotFound as VC,styled as XC}from"@rango-dev/ui";import Lt,{useState as KC}from"react";import{useNavigate as jC}from"react-router-dom";import{i18n as LC}from"@lingui/core";import{Divider as hm,GroupedVirtualizedList as BC,Skeleton as PC,SwapListItem as ym,Typography as _C}from"@rango-dev/ui";import $e,{useCallback as Sm,useEffect as $C,useRef as DC,useState as FC}from"react";function mm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(mm,"calculateGroupsSoFar");import{css as WC,darkTheme as MC,styled as ln}from"@rango-dev/ui";var Ra=WC(),dm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${MC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),fm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),gm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var OC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=FC([]),l=DC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Sm(mm,[]),f=Sm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,OC),s(m(u,l.current)))},[e.length]);if($C(()=>{r||f()},[r,f]),r){let d=[1,2];return $e.createElement($e.Fragment,null,[d,d].map((T,C)=>$e.createElement(es,{key:C},$e.createElement(ts,null,$e.createElement(PC,{variant:"text",width:60,size:"small"}),$e.createElement(hm,{size:16})),$e.createElement(hm,{size:4}),$e.createElement(fm,null,T.map((S,k)=>$e.createElement(ym,{isLoading:!0,key:k}))))))}return $e.createElement(BC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>$e.createElement(es,null,$e.createElement(ts,null,$e.createElement(_C,{variant:"label",size:"medium",className:Ra()},c[d]))),itemContent:(d,g)=>{let T=p[d];if(!T)return null;let C=T.steps[0],y=T.steps[T.steps.length-1];return $e.createElement(dm,{key:T.requestId},$e.createElement(ym,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===LC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(T.inputAmount,6,6),realAmount:ce(T.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(os,"HistoryGroupedList");import{CloseIcon as QC,IconButton as zC,SearchIcon as qC,TextField as HC}from"@rango-dev/ui";import pn from"react";import{styled as UC}from"@rango-dev/ui";var Cm=UC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(HC,{prefix:pn.createElement(Cm,null,pn.createElement(qC,{color:"black"})),suffix:!!s.length&&pn.createElement(zC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(QC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as Hr}from"@lingui/core";import Tm from"dayjs";var km=i(t=>{let e=new Map([["today",{title:Hr.t("Today"),swaps:[]}],["week",{title:Hr.t("This week"),swaps:[]}],["month",{title:Hr.t("This month"),swaps:[]}],["year",{title:Hr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Tm();t.forEach(p=>{let u=Number(p.creationTime),c=Tm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let 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 YC=XC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ZC=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function wm(){let t=jC(),{manager:e,state:o}=GC(),n=Je(e).map(({swap:c})=>c),[r,a]=KC(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||ZC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Gr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Gr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(vm,{size:"16"}),Lt.createElement(YC,null,u&&Lt.createElement(gm,null,Lt.createElement(vm,{size:32}),Lt.createElement(VC,{title:Gr.t("No results found"),description:r?Gr.t("Try using different keywords"):""})),!u&&Lt.createElement(os,{list:p,onSwapClick:t,groupBy:km,isLoading:s}))))}i(wm,"HistoryPage");import{i18n as hT}from"@lingui/core";import{Button as yT,Divider as Qm,styled as ST,WarningIcon as CT}from"@rango-dev/ui";import TT from"bignumber.js";import Ue,{useEffect as zm,useState as qm}from"react";import{useNavigate as kT}from"react-router-dom";import{i18n as nT}from"@lingui/core";import{Header as rT}from"@rango-dev/ui";import Vt,{useEffect as iT,useState as aT}from"react";import{i18n as RC}from"@lingui/core";import{Divider as rs,FullExpandedQuote as eT,Typography as tT}from"@rango-dev/ui";import fe from"react";import{styled as ns}from"@rango-dev/ui";var xm=ns("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),bm=ns("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Em=ns("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as JC}from"@rango-dev/ui";import Im from"react";function Vr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return Im.createElement(Em,null,Im.createElement(JC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Vr,"SelectStrategy");var Am=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=j(),{slippage:T,customSlippage:C}=h(),{findToken:y}=h(),S=l||P(),k=!!u&&u.results.length,w=C??T,A=i(v=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...v};return To(b,{fromToken:m,toToken:f,userSlippage:w,findToken:y})},"getQuoteWarning"),L=g?.type===0||g?.type===1,E=u?.results?Jn(d,u?.results):[];return fe.createElement(fe.Fragment,null,a&&fe.createElement(fe.Fragment,null,fe.createElement(bm,null,fe.createElement(tT,{size:"xmedium",variant:"title"},RC.t("Sort by")),fe.createElement(Vr,{container:S})),fe.createElement(rs,{size:"10"})),e&&Array.from({length:Am},(v,b)=>fe.createElement(fe.Fragment,{key:b},s?fe.createElement(eT,{loading:!0}):fe.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Am-1&&fe.createElement(rs,{size:16}))),!e&&fe.createElement(fe.Fragment,null,k?E.map((v,b)=>{let x=A(v),B=Ka(v.swaps),U=E.length-1===b;return fe.createElement(fe.Fragment,{key:v.requestId},fe.createElement(mo,{showModalFee:r,container:S,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:x,fullExpandedMode:s,onClick:I=>{B||c("warning",x),c("error",B?.options||null),o(I)},type:"list-item"}),!U&&fe.createElement(rs,{size:16}))}):L&&fe.createElement(xm,null,fe.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as oT,styled as Nm}from"@rango-dev/ui";var Wm=Nm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${oT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Mm=Nm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var sT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=aT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Do();return iT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},sT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Wm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${fr()}`,id:ye.EXPANDED_BOX_ID},Vt.createElement(rT,{title:nT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Vr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(Mm,null,Vt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as Fm}from"@lingui/core";import{SwapInput as Om}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as cT}from"@rango-dev/ui";import ss from"react";import{keyframes as lT,styled as Lm}from"@rango-dev/ui";var as=450,pT=lT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Bm=Lm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Pm=Lm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${pT} ${as}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ls(){let t=j.use.switchFromAndTo();return ss.createElement(Bm,null,ss.createElement(Pm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(cT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as _m}from"@rango-dev/ui";var $m=_m("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Dm=_m("div",{position:"relative"});function ps(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=j(),{connectedWallets:T,getBalanceFor:C}=te(),y=a?C(a):null,S=Pn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",w=!!s&&Ll(T,s.name),A=!Qi(g,c,m),L=!Qi(g,c,d),E=!m||!d||!d.gt(0)?null:je(m.toString(),d.toString());return mn.createElement($m,null,mn.createElement(Dm,null,mn.createElement(Om,{label:Fm.t("From"),mode:"From",onInputChange:u,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:A?void 0:N(m,4,4),realUsdValue:A?void 0:ce(m),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ls,null)),mn.createElement(Om,{sharpBottomStyle:!r&&(!!g||e),label:Fm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(je(m,d),2,2),warningLevel:Et(E??0),price:{value:N(f,6,6),usdValue:L?void 0:N(d,4,4),realValue:ce(f),realUsdValue:L?void 0:ce(d),error:L?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ps,"Inputs");import{useCallback as uT,useEffect as mT,useRef as dT,useState as fT}from"react";function Um(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Um,"useFetchAllQuotes");var gT=600;function Xr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Um(),{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:T,setSelectedQuote:C,updateQuotePartialState:y}=j(),{slippage:S,customSlippage:k,affiliatePercent:w,affiliateRef:A,affiliateWallets:L,fetchStatus:E}=h(),v=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),x=h().excludeLiquiditySources(),{findToken:B}=h(),[U,I]=fT(!0),H=dT(u),Y=k??S,G=!l||!p||Rt(l,p)||!Uo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(U||ee(!0),!G&&re&&Te){d();let rt=Cp({fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,wallets:s,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});Gl("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let he=Jn(f,dt.results),M=Bp(m,he,dt.requestAmount);I(!1),y("quotes",dt),C(M),Qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&To(M,{fromToken:re,toToken:Te,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:he}=zr(dt);(he?.type===0||he?.type===1)&&d(),he?.type!==2&&(y("error",he),I(!1))})}},"fetch"),Q=uT(yl(Z=>{W(Z)},gT),[G]);return mT(()=>{if(!t){I(!1);return}if(E!=="success")return;if(G){I(!1),(m||g||T)&&d();return}if(!Uo(u)||c?.eq(0)){ee(!1),o();return}d(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=Q),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,v?.length,n,b.length,Y,A,w,JSON.stringify(L)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),loading:U}}i(Xr,"useSwapInput");var vT=ST("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),wT=300;function Hm(){let t=kT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=j(),[d,g]=qm(!1),{isLargeScreen:T,isExtraLargeScreen:C}=Lr(),{fetch:y,loading:S}=Xr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:L}=ie(),[E,v]=qm(!1),x=dp({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Ol(T,C,k?.variant),U=!!n&&!!e&&!!o&&new TT(n).gt(0)&&!Ap(e,o),I=U&&w==="success"&&S,pe=(!B||B&&p?.results.length)&&(l||s);zm(()=>{c(),f("refetchQuote",!0)},[]),zm(()=>{g(U)},[U]);let G=(r||s)&&!E?y:void 0,ee=i(Q=>{B&&d?(g(!1),setTimeout(()=>{t(Q)},wT)):t(Q)},"onHandleNavigation"),W=i(Q=>{r?.requestId!==Q.requestId&&(v(!1),u(Q))},"onClickOnQuote");return Ue.createElement(vT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(yT,{type:"primary",size:"large",disabled:x.disabled||!L,prefix:x.action==="confirm-warning"&&Ue.createElement(CT,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?ee(z.wallets):x.action==="confirm-warning"?v(!0):ee(z.confirmSwap)}},x.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||hT.t("Swap"),suffix:Ue.createElement(ao,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Ue.createElement(me,null,Ue.createElement(ps,{fetchingQuote:I,fetchMetaStatus:w,isExpandable:B,onClickToken:Q=>{ee(Q==="from"?z.fromSwap:z.toSwap)}}),Ue.createElement(Qm,{size:"2"}),B?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Qm,{size:"10"}),Ue.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:E,confirmationDisabled:!L,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),B?Ue.createElement(is,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:d}):null)}i(Hm,"Home");import{i18n as Gm}from"@lingui/core";import{Alert as xT,Divider as bT,List as ET,ListItemButton as IT,Radio as AT,RadioRoot as NT,Typography as WT}from"@rango-dev/ui";import Tt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Xl,r=o?.language||So;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||So),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function Vm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(WT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(AT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:Gm.t("Language")}},Tt.createElement(me,null,Tt.createElement(xT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(bT,{size:"8"}),Tt.createElement(NT,{value:t},Tt.createElement(ET,{type:Tt.createElement(IT,{title:Gm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Vm,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as _T,Checkbox as $T,Image as DT,ListItemButton as FT,NotFound as OT,Typography as UT}from"@rango-dev/ui";import De,{useState as QT}from"react";import{Checkbox as BT,Skeleton as Km}from"@rango-dev/ui";import fn from"react";import{styled as cs}from"@rango-dev/ui";var dn=cs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),us=cs("div",{width:80,display:"flex",justifyContent:"flex-end"}),ms=cs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as MT,styled as LT}from"@rango-dev/ui";var Xm=LT(MT,{height:61});var PT=30;function ds(){return fn.createElement(dn,null,Array.from(Array(PT),(t,e)=>fn.createElement(Xm,{hasDivider:!0,key:e,start:fn.createElement(Km,{variant:"circular",width:35,height:35}),title:fn.createElement(Km,{variant:"text",size:"large",width:90}),end:fn.createElement(BT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=QT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=On(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.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:S,groupTitle:k,logo:w}=y;return{start:De.createElement(DT,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement($T,{checked:S,disabled:l}),title:De.createElement(UT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),T=i(y=>{let S=y.target.value;a(S)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(us,null,De.createElement(_T,{variant:"ghost",size:"xsmall",onClick:d},f?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&De.createElement(ds,null),!C.length&&r?De.createElement(ms,null,De.createElement(OT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(dn,{disabled:l},C.map(y=>{let{groupTitle:S,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(FT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as zT}from"@lingui/core";import Kr from"react";import{useNavigate as qT}from"react-router-dom";function jm(){let t=qT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Xr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Kr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:zT.t("Routes"),suffix:Kr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(jm,"RoutesPage");import{i18n as nd}from"@lingui/core";import{Divider as rd,getCategoriesCount as JT,SelectableCategoryList as RT}from"@rango-dev/ui";import Pt,{useState as id}from"react";import{i18n as gs}from"@lingui/core";import{Divider as td,Image as XT,ListItemButton as KT,NotFound as jT,Typography as od}from"@rango-dev/ui";import Re,{useEffect as YT,useState as ZT}from"react";var Ym=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as HT,styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),jr=Zm(Xo,{padding:0,margin:0,listStyle:"none",[`& ${HT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as GT,Skeleton as Rm}from"@rango-dev/ui";import Yr from"react";var VT=20;function ed(){return Yr.createElement(jr,null,Array.from(Array(VT),t=>Yr.createElement(GT,{key:t,hasDivider:!0,start:Yr.createElement(Rm,{variant:"circular",width:35,height:35}),title:Yr.createElement(Rm,{variant:"text",size:"large",width:90})})))}i(ed,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=ZT(e),{fetchStatus:l}=h();YT(()=>{s([...Ym(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(td,{size:32}),Re.createElement(jT,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):Re.createElement(jr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(KT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(XT,{src:u.logo,size:30}),title:Re.createElement(od,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(Jm,null,Re.createElement(od,{variant:"label",size:"large"},gs.t("Select Blockchain")),Re.createElement(td,{size:4}),l==="loading"&&Re.createElement(ed,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Ze(),[n,r]=id(""),[a,s]=id("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=JT(c)!==1;return Pt.createElement(le,{header:{title:nd.t("Select Blockchain")}},Pt.createElement(me,{view:!0},f&&Pt.createElement(Pt.Fragment,null,Pt.createElement(RT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(rd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:nd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Pt.createElement(rd,{size:16}),Pt.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as ti}from"@lingui/core";import{Divider as Ed}from"@rango-dev/ui";import fo,{useState as hk}from"react";import{useNavigate as yk}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Zr,Divider as pd,Image as cd,Skeleton as rk,Tooltip as ik,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as ok}from"react";var ad=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ek),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(tk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function ek(t,e){let o=ad,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(ek,"sortByMostUsedBlockchains");function tk(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(tk,"generateSortByPreferredBlockchainsFor");function sd(t,e){return!!e.list.find(o=>o.name===t)}i(sd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();ok(()=>{if(e?.selected){let a=Ss(t,o,e);sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ss(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Cs,"usePrepareBlockchainList");import{styled as nk}from"@rango-dev/ui";var ld=nk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var ak=12;function vs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Cs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(pd,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(pd,{size:12}),Ne.createElement(ld,null,l==="loading"&&Array.from(Array(ak),d=>Ne.createElement(rk,{key:d,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Zr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts.t("All"))),s.list.map(d=>Ne.createElement(ik,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Ne.createElement(Zr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Ne.createElement(cd,{src:d.logo,size:30})))),m?Ne.createElement(Zr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(cd,{src:s.more[0].logo,size:30})):null,f?Ne.createElement(Zr,{onClick:a,key:"more-blockchains"},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts._("More +{count}",{count:s.more.length}))):null)))}i(vs,"BlockchainsSection");import{i18n as Ls}from"@lingui/core";import{darkTheme as kd,Divider as Bo,ExternalLinkIcon as pk,Image as ck,ListItemButton as uk,NotFound as mk,PinIcon as dk,Skeleton as vd,Typography as ei,VirtualizedList as fk}from"@rango-dev/ui";import K,{useEffect as wd,useState as xd}from"react";import{Divider as Cd,ListItem as lk,Skeleton as gn}from"@rango-dev/ui";import ct from"react";import{css as Lo,darkTheme as ud,ImageContainer as sk,styled as et,Typography as md}from"@rango-dev/ui";var ws=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Lo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Es=Lo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Is=Lo({}),As=Lo(),dd=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ns=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Jr=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${xs}`]:{[`& .${Es}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Is}`]:{bottom:"-15px"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ws=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ms=et(md,{}),fd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rr=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),qO=et("div",{display:"flex",alignItems:"center"}),gd=et("div",{position:"relative",[`& ${sk}`]:{borderRadius:"$xm",overflow:"hidden"}}),hd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),yd=et(md,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Sd=et("a",{"& svg:hover":{color:"$colors$info"}});function Td(t){return ct.createElement(Jr,null,Array.from(Array(t.size),e=>ct.createElement(lk,{key:e,hasDivider:!0,start:ct.createElement(gn,{variant:"circular",width:35,height:35}),end:ct.createElement(Rr,null,ct.createElement(gn,{variant:"text",size:"large",width:70}),ct.createElement(Cd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(gn,{variant:"text",size:"large",width:90}),ct.createElement(Cd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Td,"LoadingTokenList");var Bs=20,gk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:xs()},o?K.createElement("div",{className:ws()},o):K.createElement(Ns,{className:bs()},K.createElement(ei,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ws,{css:a},K.createElement(Ms,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Es()} ${!o&&Is()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Bo,{size:4,direction:"horizontal"}),K.createElement(Sd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(pk,{size:12}))))},"renderDesc");function bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=xd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=xd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");wd(()=>{c(e.length>a.length)},[a.length]),wd(()=>{s(e.slice(0,Bs))},[e.length,r]);let T=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Bo,{size:32}),K.createElement(mk,{title:Ls.t("No results found"),description:Ls.t("Try using different keywords")})):K.createElement(fk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],S=Pn(m(y)),k=y.address||"",w=p.find(v=>v.name===y.blockchain),A=oa(w.color,"main"),L={$$color:A.main150,[`.${kd} &`]:{$$color:A.main750},backgroundColor:"$$color"},E={$$color:A.main750,[`.${kd} &`]:{$$color:A.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(uk,{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(gd,null,K.createElement(ck,{src:y.image,size:30}),d(y,t.type)&&K.createElement(hd,null,K.createElement(dk,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Ns,null,K.createElement(ei,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ws,{css:L},K.createElement(Ms,{variant:"body",size:"xsmall",css:E},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?gk({address:k,token:a[C],customCssForTag:L,customCssForTagTitle:E,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(Rr,null,K.createElement(vd,{variant:"text",size:"large",width:70}),K.createElement(Bo,{size:4}),K.createElement(vd,{variant:"text",size:"medium",width:50})):S&&K.createElement(fd,null,K.createElement(yd,{variant:"title",size:"small"},S.amount),K.createElement("div",null),S.usdValue&&K.createElement(ei,{variant:"body",className:As(),size:"xsmall"},`$${S.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(dd,null,K.createElement(ei,{variant:"label",size:"large"},Ls.t("Select Token")),K.createElement(Bo,{size:4}),l==="loading"&&K.createElement(Td,{size:Bs}),l==="success"&&K.createElement(Jr,{as:"ul"},T()))}i(bd,"TokenList");function Ps(t){let{type:e}=t,o=yk(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=te.use.getBalanceFor(),[m,f]=hk(""),g=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),S=i(w=>{e==="source"?s({token:w,meta:{blockchains:T,tokens:C}}):l({token:w,meta:{blockchains:T,tokens:C}})},"updateToken"),k={source:ti.t("Source"),destination:ti.t("Destination")};return fo.createElement(le,{header:{title:ti.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(vs,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:w=>{y(w)}}),fo.createElement(Ed,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:ti.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:w=>f(w.target.value)}),fo.createElement(Ed,{size:16}),fo.createElement(bd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{S(w);let A=T.find(L=>w.blockchain===L.name);A&&y(A),n()}})))}i(Ps,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as zk,Button as qk,styled as Hk}from"@rango-dev/ui";import go from"react";import{useInRouterContext as Gk,useSearchParams as Vk}from"react-router-dom";import{i18n as Ld}from"@lingui/core";import{Divider as kk,InfoIcon as vk,TextField as wk,Tooltip as xk,Typography as Bd}from"@rango-dev/ui";import ut from"react";import{Chip as Sk,styled as hn,TextField as Ck}from"@rango-dev/ui";var Id=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Ad=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ck}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Nd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),oi=hn("div",{maxWidth:"280px",padding:"$10"}),Wd=hn(Sk,{width:"61px",flexShrink:0});import{i18n as _s}from"@lingui/core";import{Typography as Tk}from"@rango-dev/ui";import yn from"react";function Md(){return yn.createElement(oi,null,yn.createElement(Tk,{variant:"label",size:"medium",color:"neutral700"},_s.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,_s.t("Warning")),":",_s.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Md,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement(Id,null,ut.createElement(Nd,null,ut.createElement(Bd,{variant:"title",size:"xmedium"},Ld.t("Slippage tolerance per swap")),ut.createElement(kk,{direction:"horizontal",size:4}),ut.createElement(xk,{container:P(),side:"top",sideOffset:4,content:ut.createElement(Md,null)},ut.createElement(vk,{color:"gray"}))),ut.createElement(Ad,null,Kl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Wd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(wk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Jl&&s<=Zl?n(s):n(null)},suffix:o&&ut.createElement(Bd,{variant:"body",size:"small"},"%"),placeholder:Ld.t("Custom")})))}i($s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Pd,BridgesIcon as bk,ChevronRightIcon as Ds,DarkModeIcon as _d,Divider as ni,ExchangeIcon as Ek,InfinityIcon as Ik,InfoIcon as Ak,LanguageIcon as Nk,LightModeIcon as $d,List as Wk,ListItem as Mk,ListItemButton as Lk,Skeleton as Bk,styled as Pk,Switch as _k,Tabs as $k,Tooltip as Dk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as Fk}from"react-router-dom";var Ok=Pk("div",{width:"202px",height:"$40"}),Uk=[{id:"light",icon:O.createElement($d,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(_d,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(Pd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Qk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Pd,{...e});case"dark":return O.createElement(_d,{...e});default:return O.createElement($d,{...e})}},"getThemeIcon");function Dd(){let t=Fk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Ke("theme",c),f=Ke("liquiditySource",c),d=Ke("language",c),g=h().infiniteApprove,T=h().toggleInfiniteApprove,C=On(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),S=y.length,k=y.filter(H=>H.selected).length,w=C.filter(H=>H.type==="DEX"),A=w.length,L=w.filter(H=>H.selected).length,E=i((H,Y)=>{switch(l){case"loading":return O.createElement(Bk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,E(k,S),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(bk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,E(L,A),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement(Ek,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},x={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Nk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(z.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ni,{direction:"horizontal",size:4}),O.createElement(Dk,{side:"top",sideOffset:4,container:P(),content:O.createElement(oi,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(Ak,{color:"gray"}))),start:O.createElement(Ik,{color:"gray",size:16}),end:O.createElement(_k,{checked:g}),onClick:T},U={id:"theme-item",type:O.createElement(Mk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(Ok,null,O.createElement($k,{container:P(),items:Uk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Qk(n)},I=f?[]:[v,b];return d||I.push(x),I.push(B),!e?.singleTheme&&!m&&I.push(U),O.createElement(Wk,{type:O.createElement(Lk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Dd,"SettingsLists");var Xk=Hk("div",{paddingLeft:"$8"});function Fd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Vk(),r=Gk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Fs.t("Settings")}},go.createElement(me,null,o&&go.createElement(zk,{type:"info",variant:"alarm",title:Fs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:go.createElement(Xk,null,go.createElement(qk,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),go.createElement($s,null),go.createElement(Dd,null)))}i(Fd,"SettingsPage");import{i18n as Pv}from"@lingui/core";import{cancelSwap as _v}from"@rango-dev/queue-manager-rango-preset";import{useManager as $v}from"@rango-dev/queue-manager-react";import{Alert as Dv}from"@rango-dev/ui";import tl from"react";import{useParams as Fv}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as gv,getCurrentStep as hv,getRelatedWalletOrNull as yv}from"@rango-dev/queue-manager-rango-preset";import{Button as hf,CopyIcon as Sv,Divider as Cv,IconButton as Tv,QuoteCost as kv,RangoExplorerIcon as vv,StepDetails as wv,Tooltip as xv,Typography as ho,useCopyToClipboard as bv}from"@rango-dev/ui";import{useWallets as Ev}from"@rango-dev/wallets-react";import yf from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import R,{useEffect as Sf,useRef as Iv,useState as Cf}from"react";import{useNavigate as Av}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var Kk=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Od(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${Kk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Od,"timeSince");function Ud(t){return t.finishTime?Od(parseInt(t.finishTime)):Od(parseInt(t.creationTime))}i(Ud,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ri}from"@lingui/core";import{Button as Qd,Divider as Os,MessageBox as jk}from"@rango-dev/ui";import jt from"react";var zd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Os,{size:20}),jt.createElement(jk,{type:"error",title:ri.t("Cancel Swap"),description:ri.t("Are you sure you want to cancel this swap?")}),jt.createElement(Os,{size:32}),jt.createElement(Qd,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Cancel it")),jt.createElement(Os,{size:12}),jt.createElement(Qd,{variant:"outlined",type:"primary",size:"large",onClick:e},ri.t("No, Continue"))),"CancelContent");import{i18n as ii}from"@lingui/core";import{Button as qd,Divider as Us,MessageBox as Yk,Typography as Zk}from"@rango-dev/ui";import _t from"react";var Hd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Us,{size:20}),_t.createElement(Yk,{type:"error",title:ii.t("Delete Transaction"),description:ii.t("Are you sure you want to delete this swap?")}),_t.createElement(Us,{size:32}),_t.createElement(qd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Delete it")),_t.createElement(Us,{size:12}),_t.createElement(qd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Zk,{variant:"title",size:"medium",color:"primary"},ii.t("No, Cancel")))),"DeleteContent");import{i18n as Qs}from"@lingui/core";import{PendingSwapNetworkStatus as zs}from"rango-types";var qs={[zs.WaitingForNetworkChange]:{type:"loading",title:Qs.t("Change Network")},[zs.WaitingForConnectingWallet]:{type:"warning",title:Qs.t("Connect Wallet")},[zs.NetworkChanged]:{type:"success",title:Qs.t("Network Changed")}};import{debug as Xd}from"@rango-dev/logging-core";import{MessageBox as Jk,Wallet as Rk}from"@rango-dev/ui";import{useWallets as ev}from"@rango-dev/wallets-react";import Po,{useState as tv}from"react";import{styled as Gd}from"@rango-dev/ui";var Vd=Gd("div",{display:"flex",justifyContent:"center"}),MQ=Gd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Kd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=ev(),[c,m]=tv(null),f=n?.walletType,d=f?Ni(u(f)):null,g=f?p(f):null;return Po.createElement(Po.Fragment,null,Po.createElement(Jk,{type:e,title:o,description:r}),a&&!!f&&!!d&&!!g&&Po.createElement(Vd,null,Po.createElement(Rk,{container:P(),title:g.name,image:g.img,type:f,state:d,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:f,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(f).catch(C=>Xd(C))}})),Po.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Xd(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Hs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ai.WaitingForNetworkChange||e===ai.WaitingForConnectingWallet||e===ai.NetworkChanged;return si.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&si.createElement(Kd,{type:qs[e].type,title:qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(Hd,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(zd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Gs,Divider as li,MessageBox as jd,TokenAmount as ov,Typography as Vs}from"@rango-dev/ui";import Le from"react";import{useNavigate as nv}from"react-router-dom";function Xs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=nv();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(jd,{type:"success",title:Sn.t("Swap Successful")},Le.createElement(ov,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(li,{size:12}),Le.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(jd,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(li,{size:32}),n==="success"&&Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Le.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(li,{size:12}),f&&Le.createElement(Le.Fragment,null,Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Sn.t("Diagnosis")),Le.createElement(li,{size:12})),Le.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import fv from"react";import{i18n as cv}from"@lingui/core";import{Alert as mf,IconButton as uv,LinkIcon as mv}from"@rango-dev/ui";import Yt,{Fragment as dv}from"react";import{Alert as av,ChevronDownIcon as sv,IconButton as lv}from"@rango-dev/ui";import $o,{useState as pv}from"react";import{css as Cn,darkTheme as rv,styled as $t,Typography as iv}from"@rango-dev/ui";var Yd=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=$t("div",{width:"100%"}),Zd=$t(Xo,{padding:"$0 $20 $20 $20"}),dz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jd=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),fz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),_o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${rv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Rd=Cn({padding:"$5 0"}),ci=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),ef=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tf=Cn({width:"100%",padding:"0 $20 $10"}),of=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=$t(iv,{wordBreak:"break-word"});import{styled as Ks}from"@rango-dev/ui";var rf=Ks("div",{display:"flex",flexDirection:"column",gap:"$10"}),af=Ks("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),sf=Ks("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function lf(t){let{message:e}=t,[o,n]=pv(!1);return $o.createElement(av,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(lv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(af,{rotated:o},$o.createElement(sv,{size:12,color:"gray"}))),footer:$o.createElement(sf,{open:o},$o.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(lf,"FailedAlert");import{i18n as pf}from"@lingui/core";import{Alert as js,Button as cf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import Tn from"react";function uf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},pf.t("Change"))}):r===Ys.WaitingForConnectingWallet?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},pf.t("Connect"))}):Tn.createElement(js,{type:"warning",title:n.shortMessage})}i(uf,"WarningAlert");function Zs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Go(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(rf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,T=f===d.length-1,C=(T&&u||p)&&!c,y=T&&a.status==="failed";return Yt.createElement(dv,{key:g},Yt.createElement(mf,{type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:cv.t("View transaction"),action:m.url&&Yt.createElement(uv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(mv,{size:12}))}))}),c&&Yt.createElement(mf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(uf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(lf,{message:r}))}i(Zs,"SwapDetailsAlerts");var df=2e3;var ff=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Fo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Fo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:fv.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function gf(t){if(Go(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(gf,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Ev(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=j.use.retry(),f=ie.use.isActiveTab(),d=Av(),[g,T]=bv(df),C=Iv(null),[y,S]=Cf(null),[k,w]=Cf(null),A=i(()=>{r(),S(null)},"onCancel"),L=ve.use.getNotifications(),E=ve.use.removeNotification(),v=L(),b=hv(e),x=b?.networkStatus;Sf(()=>{v.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId)):k&&w(null))},[e.status,e.requestId]),Sf(()=>{G?S(mi.WaitingForNetworkChange):x===mi.WaitingForConnectingWallet||x===mi.NetworkChanged?S(x):S(null)},[x]);let B=bp(e),U=b?gv(e,b):null,I=b?yv(e,b):null,H=Ud(e),Y=Ep(e),pe=i(he=>!!l(he)?.mobileWallet,"isMobileWallet"),G=x===mi.WaitingForNetworkChange&&!!U&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,U)),ee=G?s.bind(null,I.walletType,U):void 0,W=xp(e,b),Q=ff({swap:e,switchNetwork:ee,showNetworkModal:x,setNetworkModal:S,message:W,blockchains:p,swappers:u}),Z=Q.length,[re,Te]=[e.steps[0],e.steps[Z-1]],_=Te.outputAmount||Te.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((he,M)=>he+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(he=>he.diagnosisUrl)?.diagnosisUrl,de=N(parseFloat(N(_,6,6))*(Te.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),wt=_?ce(new yf(_).multipliedBy(Te.toUsdPrice||0)):"",Ve=ce(new yf(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=je(Oe,de),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?vt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:Q[Z-1].to.token.displayName,conciseAddress:_n(e.wallets[Q[Z-1].to.chain.displayName]?.address||""),chain:Q[Z-1].to.chain.displayName}}):R.createElement(nf,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":vt.t("Transaction was not sent."),B?`${vt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),rt&&R.createElement(ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:vt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(xo,null,R.createElement(hf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},vt.t("Delete"))))},footer:Y&&!k&&R.createElement(hf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let he=Zn(e,p,c);m(he),setTimeout(()=>{d("../../")},0)}},vt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(pi,null,R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t("Request ID")}:`),R.createElement("div",{className:ci()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Tv,{variant:"ghost",onClick:T.bind(null,o||"")},R.createElement(Sv,{size:16,color:"gray"})),R.createElement(of,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(xv,{container:P(),content:vt.t("View on Rango Explorer"),side:"bottom"},R.createElement(vv,{size:20}))))),R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:ef()},R.createElement(kv,{fee:N(String(Fe),2,2),time:Oo(An(e.steps)),steps:Z}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:_},token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image,displayName:Q[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:Et(nt??0)})),R.createElement("div",{className:tf()},R.createElement(ho,{variant:"title",size:"small"},vt.t("Swaps steps"))),R.createElement(Cv,{size:8}),R.createElement(Zd,{ref:C},Q.map((he,M)=>{let V=M,X=gf(e.steps[M]),ze=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===Q.length-1;return R.createElement(wv,{key:V,step:he,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:ze,tooltipContainer:P()})}))),R.createElement(Hs,{state:y,onClose:()=>S(null),onCancel:A,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!f}),R.createElement(Xs,{open:!!k,diagnosisUrl:ot,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image},description:dt}))}i(Js,"SwapDetails");import{i18n as fi}from"@lingui/core";import{Divider as vf,NotFound as Bv,Skeleton as vn,Typography as gi}from"@rango-dev/ui";import ge from"react";import{i18n as Nv}from"@lingui/core";import{Divider as Wv,Skeleton as Mv,Typography as Lv}from"@rango-dev/ui";import Ce from"react";import{css as mt,styled as Rs}from"@rango-dev/ui";var Tf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),Eq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Iq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Aq=mt({paddingTop:"$15",display:"flex"}),Nq=mt({padding:"$15 $0"}),Wq=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Mq=mt({paddingBottom:"$10"}),Lq=mt({display:"flex",justifyContent:"start",alignItems:"center"}),Bq=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),Pq=mt({display:"flex",alignItems:"center"}),_q=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),kf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Ce.createElement(Tf,null,Ce.createElement(nn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Lv,{variant:"title",size:"small"},Nv.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}),Ce.createElement("div",{className:kf()},Ce.createElement(Wv,{direction:"horizontal",size:20}),Ce.createElement(Mv,{height:22,variant:"rectangular"}))),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}))))}i(el,"LoadingSwapDetails");function wf(t){let{requestId:e,showSkeleton:o}=t;return ge.createElement(le,{header:{title:fi.t("Swap and Bridge"),suffix:ge.createElement(xo,null)}},o&&ge.createElement(Yd,null,ge.createElement(pi,null,ge.createElement("div",{className:_o()},ge.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),ge.createElement("div",{className:ci()},ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(vf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}),ge.createElement(vf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ge.createElement("div",{className:_o()},ge.createElement(gi,{className:Rd(),variant:"label",size:"large",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})))),ge.createElement(el,null)),!o&&ge.createElement(Jd,null,ge.createElement(Bv,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(wf,"SwapDetailsPlaceholder");function xf(){let{manager:t,state:e}=$v(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=Fv(),a=Ze(),{fetchStatus:s}=h();if(!r)return tl.createElement(Dv,{containerStyles:{margin:"20px"},type:"error",title:Pv.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&&_v(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?tl.createElement(wf,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(xf,"SwapDetailsPage");function bf(){return $p(),Yi(),Ov([{path:z.home,element:Qe.createElement(Hm,null)},{path:z.routes,element:Qe.createElement(jm,null)},{path:z.fromSwap,children:[{index:!0,element:Qe.createElement(Ps,{type:"source"})},{path:z.blockchains,element:Qe.createElement(ys,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:Qe.createElement(Ps,{type:"destination"})},{path:z.blockchains,element:Qe.createElement(ys,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:Qe.createElement(Fd,null)},{path:z.languages,element:Qe.createElement(Vm,null)},{path:z.exchanges,element:Qe.createElement(fs,{sourceType:"Exchanges"})},{path:z.bridges,element:Qe.createElement(fs,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:Qe.createElement(wm,null)},{path:z.swapDetails,element:Qe.createElement(xf,null)}]},{path:z.wallets,element:Qe.createElement(Pc,null)},{path:z.confirmSwap,element:Qe.createElement(um,null)}])}i(bf,"AppRoutes");import{useQueueManager as Kv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as jv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Yv}from"rango-sdk";import{useContext as Zv,useEffect as Lf,useState as Bf}from"react";import{globalCss as Uv}from"@rango-dev/ui";var Ef=i(()=>Uv({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function If(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(If,"useFetchApiConfig");import{useWallets as Qv}from"@rango-dev/wallets-react";import{useEffect as zv,useRef as qv}from"react";function Af(){let{connect:t,state:e}=Qv(),o=qv({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);zv(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Af,"useForceAutoConnect");import{isApprovalTX as Hv,RouteEventType as Nf,StepEventType as Wf,StepExecutionEventStatus as Gv,WidgetEvents as hi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mf}from"react";function ol(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=ve.use.setNotification(),{findToken:n}=h();Mf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Wf.TX_EXECUTION&&s.status===Gv.TX_SENT&&!Hv(l)||s.type===Wf.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 ke.on(hi.StepEvent,r),()=>ke.off(hi.StepEvent,r)},[ke,t]),Mf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Nf.FAILED||s.type===Nf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ke.on(hi.RouteEvent,r),()=>ke.off(hi.RouteEvent,r)},[ke])}i(ol,"useSubscribeToWidgetEvents");import{useManager as Vv}from"@rango-dev/queue-manager-react";import{useEffect as Xv}from"react";function nl(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=Vv();Xv(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Af(),Ef(),ol(),nl();let t=h().blockchains(),{canSwitchNetworkTo:e}=kr(),[o,n]=Bf(""),[r,a]=Bf(),s=Zv(Qn),l=t.filter(Yv),{fetchApiConfig:p}=If();Lf(()=>()=>_p(),[]),Kv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Lf(()=>(eo.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===jv(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(rl,"useBootstrap");import{styled as Jv}from"@rango-dev/ui";var Pf=Jv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function yi(){rl();let{config:t}=h(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=Xt();return il.createElement(Rv,{language:o},il.createElement(Pf,{id:"swap-container",className:e()},il.createElement(bf,null)))}i(yi,"Main");import{setSolanaSignerConfig as Cw}from"@rango-dev/signer-solana";import sl,{useEffect as Of,useMemo as Tw}from"react";import{useState as ew}from"react";var tw=i(()=>{let[t,e]=ew(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Cl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),_f=tw;import{checkWaitingForNetworkChange as ow,makeQueueDefinition as nw}from"@rango-dev/queue-manager-rango-preset";import{Provider as rw}from"@rango-dev/queue-manager-react";import{useWallets as iw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as aw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sw}from"rango-types";import lw,{useMemo as pw}from"react";function cw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=iw(),l=pw(()=>nw({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(sw),T=i(k=>{let{supportedChains:w}=s(k);return Mn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:aw(g),getSupportedChainNames:T},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},S=ie.use.isActiveTab();return lw.createElement(rw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{ow(k)},isPaused:!S},t.children)}i(cw,"QueueManager");var $f=cw;import{useManager as gw}from"@rango-dev/queue-manager-react";import hw,{createContext as yw,useContext as Sw}from"react";import{cancelSwap as uw,getCurrentBlockchainOfOrNull as mw,getCurrentStep as dw,getRelatedWalletOrNull as fw}from"@rango-dev/queue-manager-rango-preset";var Si=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(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=Zn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&uw(o)}getCurrentStepInfo(e){let o=dw(e);return{step:o,wallet:o?fw(e,o):null,network:o?mw(e,o):null}}};var Df=yw(void 0);function al(t){let{manager:e}=gw(),o=ie.use.isActiveTab(),n=j.use.retry(),{findToken:r}=h(),a=new Si(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Al(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,T=ve().getNotifications(),C=ve().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:S=>u(S,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:C}};return hw.createElement(Df.Provider,{value:y},t.children)}i(al,"WidgetInfo");function Ff(){let t=Sw(Df);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Ff,"useWidget");function Ci(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_f();return Of(()=>{n&&r(n)},[n]),Tw(()=>{$l({API_KEY:o?.apiKey||wn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Of(()=>{t.config?.signers?.customSolanaRPC&&Cw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(zn,{config:o,onUpdateState:e},sl.createElement($f,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(Ci,"WidgetProvider");function Uf(t){let e=t.config?.externalWallets;return Ti.createElement(sp,null,e?Ti.createElement(yi,null):Ti.createElement(Ci,{config:t.config??$i},Ti.createElement(yi,null)))}i(Uf,"Widget");function Qf(){let{on:t,off:e}=ke;return{on:t,off:e}}i(Qf,"useWidgetEvents");export{JV as EventSeverity,zo as MainEvents,s2 as Networks,c2 as PendingSwapNetworkStatus,Bi as QuoteEventTypes,RV as RouteEventType,ki as SUPPORTED_FONTS,e2 as StepEventType,t2 as StepExecutionBlockedEventStatus,o2 as StepExecutionEventStatus,ye as UI_ID,Pi as WalletEventTypes,i2 as WalletEvents,l2 as WalletTypes,Uf as Widget,zo as WidgetEvents,Ci as WidgetProvider,zn as WidgetWallets,aa as customizedThemeTokens,r2 as readAccountAddress,no as useWalletList,kr as useWallets,Ff as useWidget,Qf as useWidgetEvents,Vf as widgetEventEmitter};
1
+ var Uf=Object.defineProperty;var i=(t,e)=>Uf(t,"name",{value:e,configurable:!0});import{EventSeverity as KV,RouteEventType as jV,StepEventType as YV,StepExecutionBlockedEventStatus as ZV,StepExecutionEventStatus as JV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as e2,useWallets as Cr,Events as t2}from"@rango-dev/wallets-react";import{Networks as n2,WalletTypes as r2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as a2}from"rango-types";import{UI_ID as Qf}from"@rango-dev/ui";var kn="c6381a79-2817-4602-83bf-6a641a409e32",al="https://api.rango.exchange",sl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Qf};var ll="Roboto",Ci=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as $i,Provider as _g}from"@rango-dev/wallets-react";import{isEvmBlockchain as $g}from"rango-sdk";import Fn,{createContext as Dg,useEffect as op,useMemo as Fg,useRef as np}from"react";import{useEffect as lg}from"react";import{create as ig}from"zustand";import{subscribeWithSelector as ag}from"zustand/middleware";import zf from"mitt";var Te=zf(),qf={on:Te.on,off:Te.off};import{RangoClient as ng}from"rango-sdk";import{BlockchainCategories as Yf,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Zf}from"@rango-dev/wallets-react";import{detectInstallLink as Jf,getCosmosExperimentalChainInfo as Rf,isEvmAddress as eg,KEPLR_COMPATIBLE_WALLETS as Gw,Networks as Tl}from"@rango-dev/wallets-shared";import Ei from"bignumber.js";import{isCosmosBlockchain as tg}from"rango-types";import Hf from"bignumber.js";var Le=new Hf(0);import{WalletTypes as Gf}from"@rango-dev/wallets-shared";var pl=[Gf.LEAP];import{BlockchainCategories as Ti,WalletState as jf}from"@rango-dev/ui";import{TransactionType as vn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function gl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(gl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function ml(t,e){return t.toLowerCase()===e.toLowerCase()}i(ml,"exactText");function dl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(dl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),$o=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function fl(t,e,o){let n=!!e&&ml(e,t),r=!!o&&ml(o,t);return n!==r?n?-1:1:0}i(fl,"compareExactMatchText");function ki(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareContainsText");function vi(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(vi,"compareStartWithText");function hl(t,e,o){if(!o)return 0;let n=fl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=fl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ki(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ki(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ki(o,t.address,e.address);if(r!==0)return r}return 0}i(hl,"compareWithSearchFor");var wn=i((t,e)=>{switch(e){case Ti.ALL:return!0;case Ti.UTXO:return t===vn.TRANSFER;case Ti.OTHER:return t!==vn.TRANSFER&&t!==vn.COSMOS&&t!==vn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),yl=i(t=>Ci.find(o=>o.value===t)?.url,"getFontUrlByName");function xn(t,e){let o=!!t.find(n=>n.state===jf.CONNECTED);return e===!1&&o}i(xn,"isSingleWalletActive");function bn(t,e){return e.find(o=>o.name===t)?.displayName}i(bn,"getBlockchainDisplayNameFor");function Ve(t,e){return e.find(o=>o.name===t)?.shortName}i(Ve,"getBlockchainShortNameFor");function Sl(t,e){return e.find(o=>o.name===t)?.logo}i(Sl,"getBlockchainImage");function Do(t,e){return e.find(o=>o.id===t)?.title}i(Do,"getSwapperDisplayName");function xi(t,e){return e.find(o=>o.name===t)??null}i(xi,"findBlockchain");function bi(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(bi,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as Cl}from"bignumber.js";var Fo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Cl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Cl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var En=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Oo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Ii(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Ii,"mapStatusToWalletState");function kl(t,e,o,n){return o.filter(r=>!pl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),f=ho(m.map(g=>g.type)),d=Ii(t(r));return{title:a,image:s,link:Jf(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f}})}i(kl,"mapWalletTypesToWalletInfo");function Nn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Nn,"walletAndSupportedChainsNames");function vl(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}=Zf(p),m=l.length>0,f=l.includes(c),d=c===Tl.Unknown;if(m&&!f&&!d)return;let T=c===Tl.Unknown&&eg(u);if(d&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(c,u)}),a}i(vl,"prepareAccountsForWalletStore");function Zt(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(Zt,"getQuoteWallets");function Wn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Wn,"isAccountAndWalletMatched");function wl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ei(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(wl,"makeBalanceFor");function xl(t){return{...t,loading:!1,error:!0}}i(xl,"resetConnectedWalletState");var bl=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ei(a?.amount||Le).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Le)||Le).toString();return og(r)},"calculateWalletUsdValue");function og(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(og,"numberWithThousandSeparator");var Mn=i((t,e)=>{let o=Rf(Object.entries(t).map(([,n])=>n).filter(tg));return o&&o[e]?.experimental},"isExperimentalChain");function Ln(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Ln,"formatBalance");function El(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(El,"compareTokenBalance");function Jt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Jt,"areTokensEqual");function Il(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Il,"sortWalletsBasedOnConnectionState");function Bn(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Bn,"getConciseAddress");function Al({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Al,"getAddress");function Pn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ei(o?.usdPrice??Le).multipliedBy(o?.amount).toString():""},r=o?Dt({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(Pn,"makeTokensBalance");var Nl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Wl(t){return t.map(e=>e.state).join("-")}i(Wl,"hashWalletsState");function Ml(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(Ml,"filterBlockchainsByWalletTypes");function Ll(t,e){return e===Yf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Ll,"filterWalletsByCategory");var Ai={API_KEY:kn};function bt(t){return Ai[t]||""}i(bt,"getConfig");function Bl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ai=e,Ai}i(Bl,"initConfig");var Pl=20,_l=25,Ni="theme-widget",Uo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Jt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Jt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Wi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),$l=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var _n,Ft=i(()=>_n||(_n=new ng(bt("API_KEY"),bt("BASE_URL")),_n),"httpService");import{WidgetEvents as Dl}from"@rango-dev/queue-manager-rango-preset";var Mi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Mi||{}),Li=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Li||{}),Qo=(r=>(r[r.RouteEvent=Dl.RouteEvent]="RouteEvent",r[r.StepEvent=Dl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Qo||{});var rg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ot=rg;var te=Ot(ig()(ag((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{Te.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)&&Te.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:Pn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Wn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(T=>Wn(T,f)),g=p.find(T=>T.address===f.address&&T.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:wl(g,n),loading:!1}:f});return{loading:!1,balances:Pn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Wn(m,c))?xl(c):c);return{loading:!1,balances:Pn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as sg}from"@rango-dev/provider-all";function $n(t,e){let o=sg({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($n,"matchAndGenerateProviders");function Fl(t,e){return $n(t,e).map(r=>r.config.type)}i(Fl,"configWalletsToWalletName");function Ol(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Ol,"hashProviders");function Bi(t,e){let o=te.use.clearConnectedWallet(),n=$n(t,e);return lg(()=>{o(),n=$n(t,e)},[Ol(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Bi,"useWalletProviders");import Ag,{createContext as Ng,useContext as Wg,useEffect as Mg,useRef as Lg}from"react";import{create as Eg}from"zustand";import{persist as Ig}from"zustand/middleware";var Pi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},pg={clientUrl:void 0},cg={liquiditySources:void 0},Ul=i((t,e,o)=>({config:{...Pi,...t},iframe:pg,campaignMode:cg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Dn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ho(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(Dn,"getUniqueSwappersGroups");function Ql(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ql,"sortLiquiditySourcesByGroupTitle");function Xe(t,e){return e?.[t]==="hidden"}i(Xe,"isFeatureHidden");function zl(t,e){return e?.[t]==="enabled"}i(zl,"isFeatureEnabled");var ql=i((t,e)=>({_blockchainsMapByName:new Map,_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&&Uo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(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 S=o.getBalanceFor(c),k=o.getBalanceFor(m),w=El(S,k);if(w!==0)return w}let g=a.get(c.blockchain),T=a.get(m.blockchain),C=bi(c,g),y=bi(m,T);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let S=hl(c,m,o.searchFor);if(S)return S}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&T?g.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Jt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Ql)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=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=Dt(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 ug,English as mg,Finland as dg,French as fg,German as gg,Greece as hg,Italian as yg,Japanese as Sg,Netherlands as Cg,Poland as Tg,Portuguese as kg,Russian as vg,Spanish as wg,Swedish as xg,Ukrainian as bg}from"@rango-dev/ui";var Hl=[{title:"English",label:"English",local:"en",SVGFlag:mg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:wg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:fg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Sg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:kg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:ug},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:vg},{title:"German",label:"Deutsch",local:"de",SVGFlag:gg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:bg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:xg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:dg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Cg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:hg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:yg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Tg}],yo="en";var Gl=[.5,1,3],Vl=1,Xl=5,Kl=100,jl=0;var Yl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Vl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=ho(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Xe("theme",n),s=Xe("language",n),l=Xe("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||yo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||yo}})}}),"createSettingsSlice");function Zl(t){return Eg()(Ig((...e)=>({...ql(...e),...Yl(...e),...Ul(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Zl,"createAppStore");var Jl=Ng(null);function h(){let t=Wg(Jl);if(Mg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Rl(t){let e=Lg();return e.current||(e.current=Zl(t.config)),Ag.createElement(Jl.Provider,{value:e.current},t.children)}i(Rl,"AppStoreProvider");import{create as Pg}from"zustand";var ep="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(ep),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot(Pg()((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})}}))),Rt=new zo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var On=Dg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Og(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}=Bi(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=np(),f=np();op(()=>{n().catch(console.log)},[]),op(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter($g).map(y=>y.name),g=i((y,S,k,w,A)=>{if(S===$i.ACCOUNTS)if(k){let L=Nn(A.supportedBlockchains),E=vl(y,k,d,L,A.isContractWallet);E.length&&u(E,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(S===$i.ACCOUNTS&&w.connected){let L=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(S===$i.NETWORK&&w.network){let L=`${y}-${w.network}`;m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,S,k,w,A)},"onUpdateState"),T=ie.use.isActiveTab(),C=Fg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Fn.createElement(On.Provider,{value:C},Fn.createElement(_g,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!T},t.children))}i(Og,"Main");function Un(t){let{config:e,...o}=t;return Fn.createElement(Rl,{config:e},Fn.createElement(Og,{...o,config:e}))}i(Un,"WidgetWallets");import Si from"react";import Ug,{Fragment as Qg}from"react";import{MemoryRouter as zg,useInRouterContext as qg}from"react-router";function rp({children:t}){let o=qg()?Qg:zg;return Ug.createElement(o,null,t)}i(rp,"AppRouter");import{I18nManager as Yv}from"@rango-dev/ui";import nl from"react";import Ue from"react";import{useRoutes as $v}from"react-router-dom";var z={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as To,useRef as Zn}from"react";import It from"bignumber.js";import{create as Vg}from"zustand";import{subscribeWithSelector as Xg}from"zustand/middleware";import{getLastSuccessfulStep as Gg}from"@rango-dev/queue-manager-rango-preset";import EE from"bignumber.js";function Di(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(Di,"getFeeLabel");var Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ip=30;import{i18n as rt}from"@lingui/core";import{RouteEventType as cE}from"@rango-dev/queue-manager-rango-preset";import Be from"bignumber.js";import{PendingSwapNetworkStatus as qn}from"rango-types";function Qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qn,"isValidAddress");import{i18n as We}from"@lingui/core";var oe=i(()=>({genericServerError:We.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:We.t("Please reset your liquidity sources."),description:We.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:We.t("No Routes Found."),description:We.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:We.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:We.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:We.t("High Price Impact"),title:We.t("Price impact is too high!"),description:We.t("The price impact is significantly higher than the allowed amount."),confirmMessage:We.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:We.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:We.t("USD Price Unknown"),title:We.t("USD Price Unknown, Cannot calculate Price Impact."),description:We.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:We.t("Confirm USD Price Unknown")}}),"errorMessages");function ap(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(ap,"getQuoteErrorMessage");import{i18n as zn}from"@lingui/core";var eo=i(()=>({connectWallet:zn.t("Connect Wallet"),swap:zn.t("Swap"),swapAnyway:zn.t("Swap anyway"),ethWarning:zn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function sp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Be(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Be(1e3)))??!1}i(sp,"hasHighValueLoss");function lp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Be(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Be(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(lp,"hasLimitError");function pp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Be(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Be(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 Be(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Be(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=rt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=rt.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=rt.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=rt.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(pp,"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:eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:eo().swap,action:"confirm-swap",disabled:!0}:s?{title:eo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:eo().swap,action:"confirm-swap",disabled:!1}:{title:eo().connectWallet,action:"connect-wallet",disabled:!1}}i(cp,"getSwapButtonState");function Oi(t,e,o){return!((!o||o.lte(Le))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");function Ui(t,e){let o=Le;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 Be(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Hn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),Le)}i(Hn,"getTotalFeeInUsd");function Qi(t){let e=Le;return e=e.plus(new Be(t.amount).multipliedBy(t.price||0)),e}i(Qi,"getUsdFee");function up(t){return t.reduce((e,o)=>e.plus(Qi(o)),Le)}i(up,"getTotalFeesInUsd");function mp(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(mp,"getFeesGroup");function dp(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(dp,"checkSlippageErrors");function fp(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(fp,"checkSlippageWarnings");function Gn(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(Gn,"getMinRequiredSlippage");function gp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gp,"hasProperSlippage");function hp(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,T=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.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:T??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(hp,"createQuoteRequestBody");function yp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(yp,"getWalletsForNewSwap");function So(t){return t?.outputAmount||null}i(So,"getQuoteOutputAmount");function Sp(t,e){return new Be(e).div(new Be(t)).minus(1).multipliedBy(100).toNumber()}i(Sp,"getPercentageChange");function Cp(t,e){let o=So(t),n=So(e);if(!o||!n)return!1;let r=Ke(o,n);return r?r<=-1:!0}i(Cp,"isOutputAmountChangedALot");function Tp(t,e,o){let n=t.validationStatus,r=Zt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ep(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Be(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Be(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=rt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=rt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=rt.t(" for input and network fee")),rt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ve(s.asset.blockchain,o)}})})}i(Tp,"generateBalanceWarnings");function Vn(t,e){return(t?new Be(t):Le).multipliedBy(e||0)}i(Vn,"calcOutputUsdValue");function qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==qn.NetworkChanged}i(qo,"isNetworkStatusInWarningState");function kp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case qn.WaitingForConnectingWallet:n=n||rt.t("Waiting for connecting wallet");break;case qn.WaitingForQueue:n=n||rt.t("Waiting for other running tasks to be finished");break;case qn.WaitingForNetworkChange:n=n||rt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(kp,"getSwapMessages");function vp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(vp,"getLastConvertedTokenInFailedSwap");function wp(t){return t.status==="failed"}i(wp,"shouldRetrySwap");function xp(t,e,o,n,r,a){if(!n||t)return!0;let s=Zt({filter:"all",quote:n}),l=Zt({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?Qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(xp,"isConfirmSwapDisabled");function bp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(bp,"isTokensIdentical");function Kn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Kn,"getQuoteToTokenUsdPrice");function zi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(zi,"isNumberOfSwapsChanged");function qi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!wi(o,n)}i(qi,"isQuoteSwappersUpdated");function Hi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!wi(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Ap(t,e){return zi(t,e)||qi(t,e)||Hi(t,e)}i(Ap,"isQuoteChanged");function Ep(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ep,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function jn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Gg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=xi(a?a.toBlockchain:n.fromBlockchain,e),p=xi(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(jn,"createRetryQuote");function Co(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=to(o,t.requestAmount),l=to(n,t?.outputAmount??"");if(t&&s&&l){let c=Ke(s.toString(),l.toString());if(!!c&&sp(s,c)){let f=Hn(t?.swaps,r),d=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Gn(t.swaps),u=a>Xl;if(gp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:fp(t,a),minRequiredSlippage:p};return null}i(Co,"generateQuoteWarnings");function Ke(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Sp(t.toString(),e.toString());return n&&n<0?n:null}i(Ke,"getPriceImpact");var Np=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Yn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Wp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Mp=i(t=>{let e=i((o,n)=>{let r=Fi.indexOf(o.value),a=Fi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var to=i((t,e)=>t?.usdPrice?new It(e||Le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(Vg()(Xg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Le;return Oo(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Vn(e?.outputAmount,Kn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new It(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:to(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:to(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:to(n??null,s),outputUsdValue:new It(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?to(e.toToken,e.outputAmount?.toString()||""):new It(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Lp=j.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.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&&Te.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 Bp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:C,setAffiliateWallets:y}=h(),S=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,A=c?.to?.blockchains,L=Zn(void 0),E=Zn(void 0),v=Zn(void 0),b=Zn(void 0);To(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),To(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(x||!x&&v.current)&&n(x??null),U?a({token:U,meta:{blockchains:f,tokens:d}}):!U&&L.current&&a({token:null}),v.current=c?.from?.blockchain,L.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),To(()=>{Uo(s,S)&&a({token:null}),Wi(p,k)&&n(null)},[S,k]),To(()=>{Uo(l,w)&&a({token:null}),Wi(u,A)&&o(null)},[w,A]),To(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(x||!x&&b.current)&&o(x??null),U?e({token:U,meta:{blockchains:f,tokens:d}}):!U&&E.current&&e({token:null}),b.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),To(()=>{T(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Bp,"useSyncStoresWithConfig");import{useEffect as Xi,useRef as Kg}from"react";import{useInRouterContext as jg,useLocation as Yg,useSearchParams as Zg}from"react-router-dom";function Gi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Gi,"convertTokenSearchParamToAsset");function Vi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vi,"tokenToSearchParam");function Ki(){let t=Yg(),[e,o]=Zg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=j(),d=h().fetchStatus,g=h().blockchains(),T=h().tokens(),C=jg(),{updateIframe:y,updateCampaignMode:S}=h(),k=h().isInCampaignMode(),w=Kg(),{findToken:A}=h(),L=i(()=>{let v={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(v[G]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:x,fromToken:B,toBlockchain:U,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:v}},"getUrlSearchParams"),E=i(v=>{for(let b in v)v[b]||delete v[b];o(v,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:v,clientUrl:b,utmQueryParams:x}=L();C&&d==="success"&&E({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:v??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!C)return;let v=L();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&f(v.fromAmount),d==="success"){let b=g.find(I=>I.name===v.fromBlockchain),x=v.fromToken&&b?A(Gi(v.fromToken,b)):void 0,B=g.find(I=>I.name===v.toBlockchain),U=v.toToken&&B?A(Gi(v.toToken,B)):void 0;b&&(p(b),x&&c({token:x,meta:{blockchains:g,tokens:T}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:T}}))}},[d]),Xi(()=>{let{clientUrl:v,liquiditySources:b}=L();y("clientUrl",v||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(Ki,"useSyncUrlAndStore");import{i18n as Ka}from"@lingui/core";import{useManager as gC}from"@rango-dev/queue-manager-react";import{Alert as am,Button as hC,css as Ya,Divider as ja,IconButton as sm,styled as yC,Typography as SC,WalletIcon as CC}from"@rango-dev/ui";import xe,{useEffect as Qr,useLayoutEffect as TC,useRef as kC,useState as rn}from"react";import{useNavigate as vC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Ia,BalanceErrors as Ry,Button as Fc,ChevronDownIcon as eS,ChevronLeftIcon as tS,CloseIcon as oS,Divider as Xo,IconButton as Oc,MessageBox as nS,PasteIcon as rS,Typography as Tr,WalletIcon as iS}from"@rango-dev/ui";import $,{useCallback as aS,useEffect as Uc,useMemo as sS,useRef as lS,useState as lo}from"react";import{useNavigate as pS}from"react-router-dom";import{i18n as Jn}from"@lingui/core";function Rn(t){switch(t.type){case 0:return Jn.t("Route has been updated.");case 3:return Jn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Jn.t("Route swappers has been updated.");case 2:return Jn.t("Route internal coins has been updated.");default:return""}}i(Rn,"getQuoteUpdateWarningMessage");import{Modal as Rg}from"@rango-dev/ui";import eh from"react";function ne(t){let{watermark:e}=ie();return eh.createElement(Rg,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import nr,{useRef as nh}from"react";import*as ko from"@radix-ui/react-collapsible";import{keyframes as _p,styled as er}from"@rango-dev/ui";var ji=300,th=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),oh=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),$p=er(ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=er(ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),tr=er(ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${th} ${ji}ms ease-out`},false:{animation:`${oh} ${ji}ms ease-out`}}}}),or=er("div",{transition:`all ${ji}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function rr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=nh(null);return nr.createElement($p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&nr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),nr.createElement(tr,{className:"collapsible_content",open:e},r),l==="bottom"&&nr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(rr,"CustomCollapsible");import{css as Dp,darkTheme as Ho,IconButton as rh,styled as je,TextField as ih}from"@rango-dev/ui";var Fp=je("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Op=je("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ah=je("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Up=je(ah,{alignSelf:"stretch",minHeight:"93px"}),Qp=je("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=je(rh,{position:"absolute",left:"$20"}),qp=je("div",{paddingTop:"$20"}),Hp=Dp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Gp=je("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Vp=Dp({paddingTop:"$5"}),Xp=je("div",{display:"flex"}),Kp=je(ih,{backgroundColor:"$neutral100",padding:"$15"}),jp=je("div",{overflow:"visible",width:"100%"}),Yp=je("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Ho} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as at}from"@lingui/core";import{Button as jy,Divider as ba,Image as Yy,MessageBox as Sr,SelectableWallet as Zy,Typography as _c,WalletState as $c}from"@rango-dev/ui";import ce,{useEffect as Dc,useState as Eo}from"react";import{WalletState as Zi}from"@rango-dev/ui";import{useWallets as sh}from"@rango-dev/wallets-react";import{detectMobileScreens as lh,KEPLR_COMPATIBLE_WALLETS as ph,WalletTypes as vo}from"@rango-dev/wallets-shared";import{useCallback as ch,useEffect as uh,useState as mh}from"react";var dh=Object.values(vo);function oo(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=sh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Fl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||dh,d=kl(s,p,f,e);d=lh()?d.filter(E=>E.showOnMobile!==!1&&s(E.type).installed):d;let g=Il(d),[T,C]=mh(""),y=i(E=>!c.find(v=>v.walletType===E&&v.chain===e),"isExperimentalChainNotAdded"),S=i(async(E,v)=>{let b=s(E);try{if(T&&C(""),b.connected)await l(E);else{if(xn(d,a.multiWallets))return;o?.(E),await u(E,void 0,v),n?.(E)}}catch(x){r?.(x?.message),C("Error: "+x?.message)}},"handleClick"),k=ch(()=>{let E=d?.filter(v=>v.state===Zi.CONNECTING)||[];for(let v of E)l(v.type)},[Wl(d)]),w=i(async E=>{s(E).connected&&await l(E)},"disconnectWallet");uh(()=>()=>{k()},[]);let A=i(E=>{let v=E.find(x=>x.type===vo.DEFAULT);return!v||v.state===Zi.NOT_INSTALLED?!1:E.filter(x=>x.state!=Zi.NOT_INSTALLED&&![vo.DEFAULT,vo.WALLET_CONNECT_2,vo.LEDGER].includes(x.type)&&p(x.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),L=i((E,v,b)=>Mn(b,v)&&y(E)&&!ph.includes(E)||E==vo.DEFAULT&&!A(d),"shouldExcludeWallet");return{list:g.filter(E=>!L(E.type,e??"",m)),error:T,handleClick:S,disconnectConnectingWallets:k,disconnectWallet:w}}i(oo,"useWalletList");import{i18n as Ac}from"@lingui/core";import{Divider as Uy,getCategoriesCount as Qy,SelectableCategoryList as zy,styled as Wc,Typography as qy,Wallet as Hy,WalletState as Nc}from"@rango-dev/ui";import it,{useState as hr}from"react";import{useManager as Sy}from"@rango-dev/queue-manager-react";import{BottomLogo as Cy,Divider as kc,Header as Ty}from"@rango-dev/ui";import ye,{useEffect as Ca,useRef as vc,useState as ky}from"react";import{useRef as fh}from"react";function ir(){return window.self!==window.top}i(ir,"isAppLoadedIntoIframe");function Ji(){let t=fh(null),{iframe:e}=h(),o=ir()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ji,"useIframe");import{useNavigate as gh}from"react-router-dom";function Ye(){let t=gh();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as ia,darkTheme as Nh,lightTheme as Wh}from"@rango-dev/ui";import{useEffect as Mh,useState as Lh}from"react";import{theme as Ih,darkColors as Ah}from"@rango-dev/ui";import na from"react";function hh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(hh,"expandShortHexColor");function yh(t){return/[0-9]+$/.test(t)}i(yh,"isOverridingColor");function Sh(t,e){return t.padStart(e,"0")}i(Sh,"pad");function Ri(t){let e=Math.min(Math.max(Math.round(t),0),255);return Sh(e.toString(16),2)}i(Ri,"intToHex");function Ch(t){return`#${Ri(t.red)}${Ri(t.green)}${Ri(t.blue)}`}i(Ch,"rgbToHex");function Th(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(Th,"hexToRGB");function kh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(kh,"generateShade");function vh(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(vh,"generateTint");function wh(t){return Zp(t,kh)}i(wh,"calculateShades");function xh(t){return Zp(t,vh)}i(xh,"calculateTints");function Zp(t,e){let o=Th(t),n=[];for(let r=1;r<9;r++)n.push(Ch(e(o,r)));return n}i(Zp,"calculateColors");function ea(t,e,o){let a=xh(t).reverse().concat(t),s=wh(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(ea,"createTintsAndShades");function ta(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)&&!yh(r)){let p=hh(a);Object.assign(n,ea(p,r,s))}}return{...n,...e}}i(ta,"expandToGenerateThemeColors");var Jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),bh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Jp(o%52)+e;return Jp(o%52)+e},"toAlphabeticName"),Eh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>bh(Eh(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Ih.colors,o={...e,...Ah},n,r;if(t?.light){let s={colors:ta(e,t.light)};n={id:`${Ni}-light-${oa(s)}`,tokens:s}}if(t?.dark){let s={colors:ta(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Ni}-dark-${oa(s)}`,tokens:s}}return{light:n,dark:r}}i(ra,"customizedThemeTokens");function Rp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>na.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(na.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(na.cloneElement(e,{key:l}))}}),o}i(Rp,"joinList");function ar(t){let{colors:e,fontFamily:o=ll,borderRadius:n=Pl,secondaryBorderRadius:r=_l}=t,[a,s]=Lh("light"),{theme:l}=h(),{dark:p,light:u}=ra(e),c=ia({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Wh.className],f=[c.className,Nh.className];if(u){let g=ia(u.id,u.tokens);m.push(g.className)}if(p){let g=ia(p.id,p.tokens);f.push(g.className)}return Mh(()=>{let g=i(T=>{T.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(" "),T=f.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(ar,"useTheme");var Ze=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as ec}from"@lingui/core";import{Alert as Bh,Button as Ph}from"@rango-dev/ui";import tc from"react";function aa(t){return tc.createElement(Bh,{action:tc.createElement(Ph,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ec.t("Activate this tab")),type:"warning",variant:"alarm",title:ec.t("Another tab is open and handles transactions.")})}i(aa,"ActivateTabAlert");import{i18n as sa}from"@lingui/core";import{Button as _h,Divider as $h,MessageBox as Dh}from"@rango-dev/ui";import sr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return sr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},sr.createElement(Dh,{title:sa.t("Activate current tab"),type:"warning",description:sa.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},sr.createElement($h,{size:20}),sr.createElement(_h,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Uh}from"@rango-dev/ui";import lc from"react";import{css as Fh,darkTheme as oc,IconButton as Oh,styled as no}from"@rango-dev/ui";var yt=no(Oh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=no("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),wo=no("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=no("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),ic=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=Fh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),lr=no("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return lc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(Uh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as Qh}from"@lingui/core";import{Button as zh,Typography as qh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(wo,null,ca.createElement(zh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(qh,{variant:"label",size:"medium",color:"error500"},Qh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Hh}from"@lingui/core";import{Image as Gh,Tooltip as Vh,WalletIcon as Xh}from"@rango-dev/ui";import ro from"react";function ma(t){let{list:e}=oo({}),o=e.filter(r=>r.state==="connected"),n=o.length?ro.createElement("div",{className:sc()},o.map(r=>ro.createElement(lr,{key:r.title},ro.createElement(Gh,{src:r.image,size:14})))):Hh.t("Connect Wallet");return ro.createElement(Vh,{container:t.container,side:"bottom",content:n},ro.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(nc,null),ro.createElement(Xh,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as cr}from"@lingui/core";import{NotificationsIcon as py,Popover as cy,SettingsIcon as uy,Tooltip as ur,TransactionIcon as my}from"@rango-dev/ui";import Ie from"react";import{Notifications as Zh}from"@rango-dev/ui";import Jh from"react";import{useNavigate as Rh}from"react-router-dom";import{create as Kh}from"zustand";import{persist as jh,subscribeWithSelector as Yh}from"zustand/middleware";var ke=Ot(Kh()(jh(Yh((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 da(){let t=Rh(),{getNotifications:e,clearNotifications:o}=ke(),n=e(),r=h().blockchains(),{findToken:a}=h();return Jh.createElement(Zh,{list:n,getBlockchainImage:l=>Sl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${z.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(da,"NotificationContent");import{useManager as ey}from"@rango-dev/queue-manager-react";import{InProgressIcon as ty}from"@rango-dev/ui";import pc from"react";var oy=i(()=>{let{manager:t}=ey();return Ze(t).map(({swap:o})=>o).find(o=>o.status==="running")?pc.createElement(ac,null,pc.createElement(ty,{color:"info",size:6})):null},"InProgressTransactionBadge"),cc=oy;import{EventSeverity as ny}from"@rango-dev/queue-manager-rango-preset";import{Typography as ry}from"@rango-dev/ui";import uc from"react";function mc(){let{getNotifications:t}=ke(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ny.WARNING);return o?uc.createElement(rc,{isSever:n},uc.createElement(ry,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(mc,"NotificationsBadge");import{RefreshProgressButton as iy}from"@rango-dev/ui";import fa,{useEffect as ay,useState as dc}from"react";var sy=1e3,fc=60,ly=100;function pr({onClick:t}){let[e,o]=dc(0),[n,r]=dc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ay(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===fc&&l()},sy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return fa.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},fa.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},fa.createElement(iy,{size:22,color:t?"black":"gray",progress:e/fc*ly})))}i(pr,"RefreshButton");function io(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Xe("notification",s)||r.includes("notifications");return Ie.createElement(Ie.Fragment,null,!r.includes("refresh")&&Ie.createElement(ur,{container:a||P(),side:"top",content:cr.t("Refresh")},Ie.createElement(pr,{onClick:e})),!l&&Ie.createElement(cy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ie.createElement(da,null)},Ie.createElement("div",null,Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Notifications")},Ie.createElement(yt,{size:"small",variant:"ghost"},Ie.createElement(py,{size:18,color:"black"}),Ie.createElement(mc,null))))),!r.includes("settings")&&Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Settings")},Ie.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ie.createElement(uy,{size:18,color:"black"}))),!r.includes("history")&&Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Transactions History")},Ie.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ie.createElement(my,{size:18,color:"black"}),Ie.createElement(cc,null))))}i(io,"HeaderButtons");import{i18n as ga}from"@lingui/core";import{Divider as hc,MessageBox as gy,RefreshIcon as hy}from"@rango-dev/ui";import xo from"react";import{Button as dy,styled as fy}from"@rango-dev/ui";var gc=fy(dy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ha(t){let{open:e,onClose:o}=t;return xo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},xo.createElement(gy,{title:ga.t("Something went wrong"),type:"error",description:ga.t("Something went wrong. Please refresh the app.")},xo.createElement(hc,{size:30}),xo.createElement(gc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},xo.createElement(hy,{size:20,color:"primary"}),xo.createElement(hc,{size:4,direction:"horizontal"}),ga.t("Refresh"))))}i(ha,"RefreshModal");function ya(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(ya,"onScrollContentAttachStatusToContainer");import{css as yy,styled as Sa}from"@rango-dev/ui";var yc="700px",mr=yy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Sc=Sa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:yc},fixed:{height:yc}}}}),Cc=Sa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Tc=Sa("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ji(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=ky(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ie(),g=d==="FULL",{activeTheme:T}=ar(f||{}),C=Xe("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:S,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),L=Ye(),{manager:E}=Sy(),b=Ze(E).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),x=i(()=>A(Rt.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,I=vc(null),H=vc(null);return Ca(()=>(ir()&&H.current&&e(H.current),()=>{o()}),[]),Ca(()=>(I.current?.addEventListener("scroll",ya),()=>{I.current?.removeEventListener("scroll",ya)}),[]),Ca(()=>{u(l==="failed")},[l]),ye.createElement(Sc,{height:s,id:he.SWAP_BOX_ID,className:`${T()} ${mr()}`,ref:H},ye.createElement(Ty,{prefix:ye.createElement(ye.Fragment,null,U&&ye.createElement(pa,{onClick:()=>{L(),r.onBack&&r.onBack()}})),title:r.title,suffix:ye.createElement(ye.Fragment,null,r.suffix,r.onWallet&&!C&&ye.createElement(ma,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&ye.createElement(ua,{onClick:r.onCancel}))}),ye.createElement(Cc,{ref:I},n),ye.createElement(la,{open:k,onClose:()=>w(!1),onConfirm:x}),ye.createElement(Tc,null,ye.createElement("div",{className:"footer__content"},S&&!y&&ye.createElement("div",{className:"footer__alert"},ye.createElement(aa,{onActivateTab:x}),ye.createElement(kc,{size:10})),a),ye.createElement(kc,{size:12}),ye.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ye.createElement(Cy,null))),ye.createElement(ha,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as vy}from"@rango-dev/ui";var wc="$20 $20 $10 $20",Go=vy("div",{padding:wc,overflowY:"auto",flexGrow:1});import{styled as wy}from"@rango-dev/ui";var ue=wy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as Ay}from"@rango-dev/ui";import ka from"react";import{i18n as bo}from"@lingui/core";import{Image as Ey,MessageBox as Ta,WalletState as Iy}from"@rango-dev/ui";import ao from"react";import{keyframes as xy,styled as dr}from"@rango-dev/ui";var ZN=dr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),fr=dr("div",{position:"relative"}),by=xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),gr=dr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${by} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xc=dr("div",{"& img":{borderRadius:"50%"}});function bc(t){let{state:e,image:o,error:n}=t;return e===Iy.CONNECTED?ao.createElement(Ta,{type:"success",title:bo.t("Wallet Connected"),description:bo.t("Your wallet is connected, you can use it to swap.")}):n?ao.createElement(Ta,{type:"error",title:bo.t("Failed to Connect"),description:n||bo.t("Your wallet is not connected. Please try again.")}):ao.createElement(Ta,{type:"loading",title:bo.t("Connecting to your wallet"),description:bo.t("Click connect in your wallet popup."),icon:ao.createElement(fr,null,ao.createElement(xc,null,ao.createElement(Ey,{src:o,size:45})),ao.createElement(gr,null))})}i(bc,"ModalContent");function Vo(t){let{open:e,onClose:o,...n}=t;return ka.createElement(ne,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ka.createElement(bc,{...n}),ka.createElement(Ay,{direction:"vertical",size:32}))}i(Vo,"WalletModal");import{i18n as va}from"@lingui/core";import{Button as Wy,Checkbox as My,Image as Ic,ListItemButton as Ly,MessageBox as By,Radio as Py,RadioRoot as _y}from"@rango-dev/ui";import{namespaceMainBlockchain as $y}from"@rango-dev/wallets-shared";import Ne,{useMemo as Dy,useState as Fy}from"react";import{styled as Ny}from"@rango-dev/ui";var Ec=Ny("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Oy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function so(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Fy([]),a=h().blockchains(),s=Dy(()=>o?.map(u=>({name:u,logo:Oy(a,$y[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Ne.createElement(_y,{value:n?.[0]},u):Ne.createElement(Ne.Fragment,null,u),"wrapRadioRoot");return Ne.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ne.createElement(By,{type:"info",title:va.t("Select chain types"),description:va.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ne.createElement(fr,null,Ne.createElement(lr,null,Ne.createElement(Ic,{src:t.image,size:45})),Ne.createElement(gr,null))}),Ne.createElement(Ec,null,p(Ne.createElement(Ne.Fragment,null,s?.map(u=>Ne.createElement(Ly,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ne.createElement(Ic,{src:u.logo,size:22}),end:e?Ne.createElement(Py,{value:u.name}):Ne.createElement(My,{checked:n.includes(u.name)})}))))),Ne.createElement(Wy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},va.t("Confirm")))}i(so,"WalletNamespacesModal");var Gy=Wc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Vy=Wc(ue,{textAlign:"center"}),yr=3e3,wa=300;function Mc(){let{fetchStatus:t}=h(),[e,o]=hr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=hr(!1),[l,p]=hr(null),[u,c]=hr(""),m=null,f=ie.use.isActiveTab(),{list:d,handleClick:g,error:T,disconnectConnectingWallets:C}=oo({onBeforeConnect:x=>{m=setTimeout(()=>{s(!0),c(x)},wa)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},yr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),S=d.find(x=>x.type===u),k=S?.image||"",w=S?.state||Nc.NOT_INSTALLED,A=Ml(d,n),E=Qy(A)!==1,v=Ll(d,e),b=i((x,B)=>{if(B.namespaces&&B.state===Nc.DISCONNECTED){if(xn(d,r.multiWallets))return;p({providerType:x,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(x)},"handleWalletClick");return it.createElement(le,{header:{title:Ac.t("Connect Wallets")}},it.createElement(Vy,null,E&&it.createElement(it.Fragment,null,it.createElement(zy,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),it.createElement(Uy,{size:24})),it.createElement(qy,{variant:"title",size:"xmedium",align:"center"},Ac.t("Choose a wallet to connect.")),it.createElement(Gy,null,v.map((x,B)=>{let U=`wallet-${B}-${x.type}`;return it.createElement(Hy,{key:U,...x,container:P(),onClick:I=>b(I,x),isLoading:t==="loading",disabled:!f})}),it.createElement(Vo,{open:!!a,onClose:y,image:k,state:w,error:T}),it.createElement(so,{open:!!l,onClose:()=>p(null),onConfirm:x=>{g(l?.providerType,x),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Mc,"WalletsPage");import{keyframes as Xy,styled as xa}from"@rango-dev/ui";var Lc=xa("div",{position:"relative"}),Ky=Xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Bc=xa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ky} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Pc=xa("div",{"& img":{borderRadius:"50%"}});var Jy=7;function Ea(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Eo(""),[f,d]=Eo(null),[g,T]=Eo(!1),[C,y]=Eo(null),[S,k]=Eo(null),{suggestAndConnect:w}=Cr(),A=null,{list:L,error:E,handleClick:v,disconnectWallet:b,disconnectConnectingWallets:x}=oo({chain:e,onBeforeConnect:N=>{A=setTimeout(()=>{m(N)},wa)},onConnect:N=>{s?.(N),A&&clearTimeout(A),setTimeout(()=>{m("")},yr)}}),[B,U]=Eo(L),I=L.length,H=r&&I-r>0,Y=i(async N=>{T(!1),y("in-progress");try{await w(N.walletType,N.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(N=>{k({providerType:N.type,providerImage:N.image,availableNamespaces:N.namespaces,singleNamespace:N.singleNamespace})},"handleOpenNamespacesModal");Dc(()=>{U(N=>{let Q=L.findIndex(Z=>o(Z.type,e));return H&&Q>1?[L[Q]].concat(L.filter((Z,re)=>re!==Q)):N.map(Z=>L.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(L)]);let G=document.getElementById(he.SWAP_BOX_ID);Dc(()=>{let N=null;return(C==="completed"||C==="rejected")&&(N=setTimeout(()=>y(null),yr)),()=>{N&&clearTimeout(N)}},[C]);let ee=i(()=>{x(),m("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,B.slice(0,r).map(N=>{let Q=Al({connectedWallets:p,walletType:N.type,chain:e}),Z=Q?Bn(Q,Jy):"",re=Mn(u(),e),Ce=!p.find(Fe=>Fe.walletType===N.type&&Fe.chain===e),_=re&&Ce&&N.state===$c.CONNECTED,De=_?at.t({id:"Add {chain} chain",values:{chain:e}}):Z,tt=i(async()=>{N.state===$c.DISCONNECTED?N.namespaces?pe(N):v(N.type):N.namespaces&&!Z?(await b(N.type),pe(N)):_?(d({walletType:N.type,chain:e,address:Q??""}),T(!0)):n({walletType:N.type,chain:e,address:Q??""})},"onClick"),me=f?.chain?bn(f.chain,u()):void 0;return ce.createElement(ce.Fragment,{key:`${N.title}_${me}`},ce.createElement(Vo,{open:c===N.type,onClose:ee,image:N.image,state:N.state,error:E}),ce.createElement(so,{open:!!S,onClose:()=>k(null),onConfirm:Fe=>{v(S?.providerType,Fe),k(null)},image:S?.providerImage,namespaces:S?.availableNamespaces,singleNamespace:S?.singleNamespace}),!!f&&ce.createElement(ne,{open:!!f&&g,container:G,onClose:()=>{d(null)}},ce.createElement(Sr,{title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),type:"warning",description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}})},ce.createElement(ba,{size:18}),ce.createElement(ba,{size:32}),ce.createElement(jy,{onClick:Y.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},at.t("Confirm")))),C&&ce.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ce.createElement(Sr,{type:"loading",title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}}),icon:ce.createElement(Lc,null,ce.createElement(Pc,null,ce.createElement(Yy,{src:N.image,size:45})),ce.createElement(Bc,null))}),C==="completed"&&ce.createElement(Sr,{type:"success",title:at.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:me}}),description:at.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:me}})}),C==="rejected"&&ce.createElement(Sr,{type:"error",title:at.t("Request Rejected"),description:at.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:me}})}),ce.createElement(ba,{direction:"vertical",size:32})),ce.createElement(Zy,{key:N.type,description:De,onClick:tt,selected:o(N.type,e),disabled:!l,...N}))}),H&&ce.createElement(Up,{selected:!1,onClick:a},ce.createElement(_c,{variant:"label",size:"medium"},at.t("Show more wallets"),ce.createElement(_c,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Ea,"WalletList");var cS=2;function Qc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=pS(),l=h().config,p=lS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:T}=j(),{connectedWallets:C,selectWallets:y}=te(),[S,k]=lo(""),[w,A]=lo([]),[L,E]=lo(""),[v,b]=lo(null),[x,B]=lo(!!g),U=navigator?.userAgent.includes("Firefox"),I=sS(()=>Zt({filter:"all",quote:c}),[c]),H=Zt({filter:"required",quote:c}),Y=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(W=>H.includes(W),"isWalletRequiredFor"),G=aS(()=>C.filter(W=>W.selected&&I.includes(W.chain)),[C,I]),[ee,N]=lo(G()),[Q,Z]=lo([]),re=i((W,V)=>Z(X=>X.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=w.length>0,_=i((W,V)=>!!ee.find(X=>X.walletType===W&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),De=!!g&&x&&Y&&!Qn(Y,g),tt=i(()=>{B(!1),T(null),N(W=>{let V=!1;return W.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),me=i(()=>T(""),"handleClearCustomDestination"),Fe=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();T(V),p?.current?.focus()}},"handlePasteCustomDestination"),wt=i(W=>{W?pe(Y?.name??"")||N(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):tt()},"handleCustomDestinationCollapsibleOpenChange"),Ge=i(W=>{if(S&&k(""),_(W.walletType,W.chain))return;let X=C.find(Qe=>Qe.walletType===W.walletType&&Qe.chain===W.chain);X&&(n(),W.chain===Y?.name&&x&&!pe(Y.name)&&(B(!1),T(null)),N(Qe=>Qe.filter(ft=>ft.chain!==W.chain).concat({...X,selected:!0})))},"onChange"),ot=i(()=>{let W=ee.filter(V=>V.selected);y(W),m(W),d(!0),o()},"onConfirmBalance"),nt=i(async()=>{A([]),E(""),b(null);let W=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),W.error&&E(ap(W.error)),!W.error&&!V?.balance?.messages.length?ot():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Oc,{onClick:me,variant:"ghost"},$.createElement(oS,{size:12,color:"gray"})):U?null:$.createElement(Oc,{onClick:Fe,variant:"ghost"},$.createElement(rS,{size:16})),"renderCustomDestinationSuffix");Uc(()=>{N(W=>{let V=[];return W.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C,I]),Uc(()=>{let W=[];Q.length>0&&(Q.forEach(V=>{let X=C.find(Qe=>Qe.chain===V.blockchain&&Qe.walletType===V.walletType);X?Ge(X):W.push(V)}),Z(W))},[C,Q]);let ge=document.getElementById(he.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!S,container:ge,...!S&&{footer:$.createElement(Xp,null,$.createElement(Fc,{loading:a,disabled:xp(a,x,g,c,ee,Y),onClick:nt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...S&&{styles:{container:{padding:"$0"}},header:$.createElement(Qp,null,$.createElement(zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(tS,{size:16})),$.createElement(Tr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ve(S,u)}})))},anchor:"center"},$.createElement(ne,{open:Ce,onClose:A.bind(null,[]),container:ge},$.createElement(nS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(Ry,{messages:w??[]})},$.createElement(Fc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ot},St.t("Proceed anyway")))),S&&$.createElement(qp,null,$.createElement("div",{className:Hp()},$.createElement(Ea,{chain:S,isSelected:_,selectWallet:Ge,onShowMore:()=>k(S),onConnect:W=>{re(S,W)}}))),!S&&$.createElement($.Fragment,null,L&&$.createElement($.Fragment,null,$.createElement(Ia,{variant:"alarm",type:"error",title:St.t(L)}),$.createElement(Xo,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Ia,{variant:"alarm",type:"warning",title:Rn(v)}),$.createElement(Xo,{size:12})),$.createElement(jp,null,I.map((W,V)=>{let X=u.find(Yt=>Yt.name===W),Qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:Qe},$.createElement(Fp,null,$.createElement(Tr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(Tr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Xo,{size:24}),$.createElement(Op,null,$.createElement(Ea,{chain:W,isSelected:_,selectWallet:Ge,limit:cS,onShowMore:()=>k(X?.name??""),onConnect:Yt=>{re(W,Yt)}})),!ft&&$.createElement(Xo,{size:32}),ft&&l?.customDestination!==!1&&$.createElement(Gp,null,$.createElement(rr,{onOpenChange:wt,hasSelected:!0,open:x,triggerAnchor:"top",trigger:$.createElement(Yp,null,$.createElement("div",{className:"button__content"},$.createElement(iS,{size:18,color:"info"}),$.createElement(Xo,{size:4,direction:"horizontal"}),$.createElement(Tr,{variant:"label",size:"medium",color:x?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(or,{orientation:x?"up":"down"},$.createElement(eS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Yt=>!Yt)},$.createElement(Kp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:bn(W,u)}),value:g||"",suffix:dt(),onChange:Yt=>{let Of=Yt.target.value;T(Of)},...!g&&{autoFocus:!0}})),De&&$.createElement("div",{className:Vp()},$.createElement(Ia,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Qc,"ConfirmWalletsModal");import{i18n as NS}from"@lingui/core";import{Alert as WS,Button as MS,InfoIcon as LS}from"@rango-dev/ui";import qe from"react";import{Alert as dS,Button as fS,Divider as Wa,NoRouteIcon as gS,RefreshIcon as hS,Typography as Kc}from"@rango-dev/ui";import ze from"react";import{i18n as zc}from"@lingui/core";var uS=24,mS=60;function qc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:zc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:zc.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(qc,"makeInfo");var Aa=(o=>(o[o.small=uS]="small",o[o.large=mS]="large",o))(Aa||{}),Na=(o=>(o.small="small",o.large="medium",o))(Na||{});import{styled as kr}from"@rango-dev/ui";var Hc=kr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Gc=kr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Vc=kr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Xc=kr("div",{padding:"$6 $0"});function Ko(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=qc(o,r,()=>a(s,!0),e);return ze.createElement(Hc,null,ze.createElement(gS,{size:Aa[n],color:"gray"}),ze.createElement(Wa,{size:4}),ze.createElement(Kc,{variant:"title",size:Na[n]},oe().noResultError.title),n==="large"&&ze.createElement(Wa,{size:4}),!!l.description&&ze.createElement(Gc,{size:n},ze.createElement(Kc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ze.createElement(Wa,{size:n==="large"?"24":"4"}),!!l.alert&&ze.createElement(Vc,{size:n},ze.createElement(dS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ze.createElement(fS,{size:"xsmall",type:l.alert.type,prefix:ze.createElement(Xc,null,ze.createElement(hS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Ko,"NoResult");import{i18n as jo}from"@lingui/core";import{Button as SS,Divider as CS,MessageBox as TS,Typography as kS,WarningIcon as vS}from"@rango-dev/ui";import At from"react";import{Typography as Jc}from"@rango-dev/ui";import La from"react";import{darkTheme as yS,styled as vr}from"@rango-dev/ui";var jc=vr("div",{width:"100%"}),Ma=vr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Yc=vr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${yS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zc=vr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Rc(t){let{title:e,value:o,valueColor:n}=t;return La.createElement(Yc,null,La.createElement(Jc,{size:"medium",variant:"label",className:"_title"},e),La.createElement(Jc,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Rc,"QuoteErrorsModalItem");function eu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:jo.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:jo.t("Gas cost"),value:M(r.totalFee,2,2)},{title:jo.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:jo.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(SS,{type:"primary",size:"large",prefix:At.createElement(vS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(TS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ma,null,At.createElement(CS,{size:"4"}),At.createElement(kS,{size:"small",variant:"title"},jo.t("Details")),At.createElement(Ma,null,l.map((p,u)=>At.createElement(Rc,{key:u,...p})))))}i(eu,"HighValueLossWarningModal");import{i18n as Ba}from"@lingui/core";function tu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Ba.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Et(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=Ba.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Ba.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(tu,"makeAlerts");import{i18n as Io}from"@lingui/core";import{Button as ou,Divider as nu,MessageBox as wS,Typography as xS}from"@rango-dev/ui";import po from"react";import{useNavigate as bS}from"react-router-dom";function ru(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=bS(),u=e??o;return po.createElement(ne,{anchor:"bottom",open:n,prefix:po.createElement(ou,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},po.createElement(xS,{variant:"label",size:"medium",color:"$neutral900"},Io.t("Change settings"))),container:P(),onClose:r},po.createElement(wS,{type:"warning",title:s.type===3?Io.t("High slippage"):Io.t("Low slippage"),description:s.type===3?Io.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Io.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},po.createElement(nu,{size:18}),po.createElement(nu,{size:32}),po.createElement(ou,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Io.t("Confirm anyway"))))}i(ru,"SlippageWarningModal");import{Button as ES,MessageBox as IS,WarningIcon as AS}from"@rango-dev/ui";import wr from"react";function iu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(ne,{footer:wr.createElement(ES,{type:"primary",size:"large",prefix:wr.createElement(AS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},wr.createElement(IS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(iu,"UnknownPriceWarningModal");function Yo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=tu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),qe.createElement(qe.Fragment,null,f&&qe.createElement(Ko,{error:o,fetch:s}),!!d&&qe.createElement(jc,null,qe.createElement(WS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:qe.createElement(Zc,{onClick:l},qe.createElement(LS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:qe.createElement(MS,{size:"xxsmall",type:d.alertType,onClick:c},NS.t("Change"))}})),e&&qe.createElement(qe.Fragment,null,e.type===0&&qe.createElement(eu,{...m,warning:e}),(e.type===3||e.type===2)&&qe.createElement(ru,{...m,warning:e}),e.type===1&&qe.createElement(iu,{...m,warning:e})))}i(Yo,"QuoteWarningsAndErrors");import pC from"bignumber.js";import Dr from"react";import{i18n as co}from"@lingui/core";import{Alert as YS,Divider as No,FullExpandedQuote as ZS,InfoIcon as JS,NumericTooltip as Fu,QuoteTag as RS,StepDetails as eC,TokenAmount as tC,Typography as Wo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as oC,useState as nC}from"react";import{styled as Pa}from"@rango-dev/ui";var _a=Pa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),au=Pa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),su=Pa("div",{width:"100%",display:"flex"});import*as xr from"@radix-ui/react-collapsible";import{Button as BS,css as Zo,darkTheme as ve,Image as lu,styled as Pe,Typography as PS}from"@rango-dev/ui";var _S=300,pu=Pe(xr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${ve} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),cu=Zo({padding:"$10 $15"}),uu=Pe(BS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${ve} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${ve} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${ve} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),mu=Pe("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",[`.${ve} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${ve} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${ve} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${ve} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${ve} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${ve} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${ve} &`]:{backgroundColor:"$neutral400"}}}}]}),du=Zo({width:"100%",padding:"$15 $15 $10 $15"}),fu=Zo({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ao=Zo({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),gu=Zo({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${ve} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=Pe(xr.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${lu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${lu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${ve} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),yu=Pe("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Su=Pe(tr,{width:"100%",background:"inherit"}),$a=Pe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${_S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),tB=Pe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Cu=Pe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${ve} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Tu=Pe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Da=Pe(PS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ku=Pe("div",{display:"flex",flexWrap:"wrap"}),Fa=Pe("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"}}}}),vu=Pe("div",{display:"flex"}),br=Pe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${ve} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ct}from"@lingui/core";import{ChevronDownIcon as DS,CloseIcon as FS,Divider as Ar,IconButton as OS,NumericTooltip as US,QuoteCost as QS,Typography as st}from"@rango-dev/ui";import J,{useState as Eu}from"react";import{css as $S,styled as Er}from"@rango-dev/ui";var Ir=Er("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Oa=Er("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),wu=Er("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),xu=Er("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),bu=$S({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zS=i(t=>t.fee.isZero()?null:J.createElement(Ir,null,J.createElement(st,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(st,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Iu(t){let[e,o]=Eu(!1),[n,r]=Eu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=mp(m);return J.createElement(J.Fragment,null,J.createElement(QS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Ct.t("View more info"):void 0,tooltipContainer:f}),J.createElement(ne,{container:f,open:e,header:J.createElement(xu,null,J.createElement(st,{variant:"title",size:"medium"},Ct.t("Gas & Fee Explanation")),J.createElement(OS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(FS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(wu,null,J.createElement(st,{variant:"title",size:"small"},Ct.t("Details")),J.createElement(Ar,{size:10}),Object.entries(d.payable).flatMap(([g,T])=>T.map((C,y)=>{let S=`payable-fee-${y}`,k=Qi(C);return J.createElement(Ir,{key:S},J.createElement(st,{variant:"label",size:"medium",color:"neutral600"},Di(g,Ct.t)),J.createElement(US,{content:C.amount,container:f},J.createElement(st,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),J.createElement(Ir,{className:"total_payable_fee"},J.createElement(st,{variant:"label",size:"medium"},Ct.t("Total Payable Fee")),J.createElement(st,{variant:"label",size:"medium"},"$",M(l,4,4))),J.createElement(Oa,null),Object.keys(d.nonePayable).length&&J.createElement(rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:bu()},J.createElement(st,{size:"small",variant:"body",color:"neutral700"},n?Ct.t("Hide non-payable fees"):Ct.t("Show non-payable fees")),J.createElement(Ar,{size:4,direction:"horizontal"}),J.createElement(or,{orientation:n?"up":"down"},J.createElement(DS,{size:12,color:"gray"}))),open:n},J.createElement(st,{size:"small",variant:"title"},Ct.t("Description")),J.createElement(Ar,{size:4}),J.createElement(st,{size:"small",variant:"body",color:"neutral700"},Ct.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),J.createElement(Ar,{size:10}),Object.entries(d.nonePayable).map(([g,T],C)=>{let y=up(T),S=Di(g,Ct.t),k=`non-payable-fee-${C}`;return J.createElement(zS,{key:k,fee:y,label:S})}),J.createElement(Oa,null)))))}i(Iu,"QuoteCostDetails");import{i18n as Wu}from"@lingui/core";import{TokenAmount as Mu}from"@rango-dev/ui";import Nr from"react";import{css as qS,styled as HS}from"@rango-dev/ui";var Au=HS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Nu=qS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Jo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Nr.createElement(Au,null,Nr.createElement(Mu,{direction:"horizontal",label:Wu.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}}),Nr.createElement("div",{className:Nu()}),Nr.createElement(Mu,{direction:"horizontal",tooltipContainer:P(),label:Wu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(Jo,"QuoteSummary");import{i18n as $u}from"@lingui/core";import{ChevronDownIcon as XS,ChevronRightIcon as KS,Divider as Ua,Image as jS,Tooltip as Pr,Typography as Mr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as GS,useState as Ro}from"react";var Lu=480,Bu=768,Pu=1024,_u=1200,VS=i(()=>{let[t,e]=Ro(!1),[o,n]=Ro(!1),[r,a]=Ro(!1),[s,l]=Ro(!1),[p,u]=Ro(!1),c=i(()=>{e(window.innerWidth<=Lu),n(window.innerWidth>Lu&&window.innerWidth<=Bu),a(window.innerWidth>Bu&&window.innerWidth<=Pu),l(window.innerWidth>Pu&&window.innerWidth<=_u),u(window.innerWidth>_u)},"handleResize");return GS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Wr=VS;var Lr=4,Br=6,en=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement(Pr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(yu,{className:n,state:a},F.createElement(jS,{src:o,size:16})))},"ImageComponent");function Du(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Np(r),{isTablet:m,isMobile:f}=Wr();return F.createElement(hu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:Ao()},F.createElement(Mr,{variant:"body",size:"xsmall"},$u.t("Via:")),F.createElement(Ua,{direction:"horizontal",size:4}),r.map((d,g)=>{let T=`item-${g}`,C=F.createElement($a,null,F.createElement(KS,{size:12,color:"black"}));return f||m?F.createElement(F.Fragment,{key:T},F.createElement(en,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:T},u<=Lr||u>Lr&&g<Lr-1?F.createElement(F.Fragment,null,F.createElement(en,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===Lr-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Ao()},C,r.map((y,S)=>{let k=`image-${S}`;return S>=g&&F.createElement(F.Fragment,{key:k},F.createElement(en,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),S!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Fa,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:Ao()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Ao()},F.createElement(Mr,{variant:"body",size:"xsmall"},$u.t("Chains:")),F.createElement(Ua,{direction:"horizontal",size:4}),c.map((d,g)=>F.createElement(F.Fragment,{key:d.displayName},c.length<=Br||c.length>Br&&g<Br-1?F.createElement(Pr,{container:p,side:"bottom",content:d.displayName,sideOffset:4},F.createElement(en,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===Br-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Ao()},c.map((T,C)=>C>=g&&F.createElement(en,{key:T.displayName,content:"",src:T.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Fa,{className:"blockchainImage"},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(Ua,{direction:"horizontal",size:32}))),F.createElement($a,{orientation:a?"up":"down"},F.createElement(XS,{size:12,color:"black"}))))}i(Du,"QuoteTrigger");function za(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(),T=h().swappers(),{customSlippage:C,slippage:y}=h(),S=C||y,[k,w]=nC(t.expanded),A=oC(null),L=M(o.value,6,6),E=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),x=M(b,2,2),B=Et(b??0),U=i((re,Ce)=>re.map((_,De)=>{let tt,me=r?.type===3&&r.swap.swapperId===_.swapperId,Fe=r?.type===4&&r.recommendedSlippages?.has(De),wt=a?.type===2&&a.recommendedSlippages?.has(De),Ge=me||Fe,ot=wt;Ge?tt="error":ot&&(tt="warning");let nt=Ge?co.t("Slippage Error"):co.t("Slippage Warning");return me&&(nt=co.t("Bridge Limit Error")),{swapper:{displayName:Do(_.swapperId,T),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ve(_.from.blockchain,d),image:_.from.blockchainLogo},price:{value:De===0&&!Ce?M(o.value,6,6):M(_.fromAmount,6,6),usdValue:M((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:De===0?o.value:_.fromAmount,realUsdValue:new Qa(_.from.usdPrice??0).multipliedBy(_.fromAmount).toString()}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Ve(_.to.blockchain,d),image:_.to.blockchainLogo},price:{value:M(_.toAmount,6,6),usdValue:M((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:_.toAmount,realUsdValue:new Qa(_.to.usdPrice??0).multipliedBy(_.toAmount).toString()}},state:tt,alerts:Ge||ot?D.createElement(au,{dense:m},D.createElement(YS,{variant:"alarm",type:Ge?"error":"warning",title:nt,footer:D.createElement(su,null,me&&D.createElement("div",null,D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(No,{direction:"vertical",size:2}),D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {amount} {symbol}",values:{amount:M(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Fe||wt)&&!me&&D.createElement("div",null,D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(De)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(De)}}})),D.createElement(No,{direction:"vertical",size:2}),D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Fo(_.estimatedTimeInSeconds),fee:M(Ui(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),I=U(e?.swaps??[]),H=I.length,Y=f||P(),pe=Mp(t.quote.tags||[]),G=!!c,ee=Fo(En(e?.swaps)),N=Hn(e?.swaps??[],g),Q=M(N,2,2),Z=N.gte(new Qa(ip));return m?D.createElement(ZS,{selected:l,fee:Q,time:ee,tooltipContainer:$o(),steps:I,tags:pe,feeWarning:Z,percentageChange:x,warningLevel:B,outputPrice:{value:E,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):D.createElement(mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:du()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(vu,null,pe.map((re,Ce)=>{let _=`${re.value}_${Ce}`;return D.createElement(D.Fragment,{key:_},D.createElement(RS,{label:re.label,value:re.value}),D.createElement(No,{size:4,direction:"horizontal"}))})),D.createElement(br,null),!G&&D.createElement(No,{size:4})):null,D.createElement("div",{id:"portal-root",className:fu()},D.createElement(Iu,{quote:e,time:ee,fee:Q,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(uu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Wo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},co.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:gu()},D.createElement(Tu,null,D.createElement(JS,{size:12,color:"gray"})),D.createElement(ku,null,D.createElement(Da,{size:"small",variant:"body"},`${L} ${I[0].from.token.displayName} = `),D.createElement(Fu,{content:n.value,container:Y,open:n.value?void 0:!1},D.createElement(Da,{size:"small",variant:"body"},"\xA0",`${E} ${I[I.length-1].to.token.displayName}`))),D.createElement(Fu,{content:n.usdValue,container:Y},D.createElement(No,{size:2,direction:"horizontal"}),D.createElement(Wo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&D.createElement(tC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:E,usdValue:v,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:x,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(Jo,{from:I[0].from,to:I[H-1].to,percentageChange:x,warningLevel:B}),D.createElement(No,{size:4}))),D.createElement(pu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Du,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:I}),D.createElement(Su,{open:k},D.createElement(Cu,null),D.createElement("div",{className:cu()},I.map((re,Ce)=>{let _=`item-${Ce}`;return D.createElement(eC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:Ce!==I.length-1,state:re.state})})))))}i(za,"Quote");import{Divider as sC,Skeleton as lC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as rC,styled as _r}from"@rango-dev/ui";var Ou=_r("div",{$$color:"$colors$neutral100",[`.${rC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Uu=_r("div",{paddingTop:"$2"}),Qu=_r("div",{paddingLeft:"$8"}),zu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ju,Divider as lt,Skeleton as He}from"@rango-dev/ui";import q from"react";import{css as iC,styled as Nt}from"@rango-dev/ui";var qa=Nt("div",{display:"flex"}),qu=Nt("div",{padding:"$10 $0 $20"}),Hu=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Gu=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Vu=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Xu=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Ku=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),ju=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Yu=Nt("div",{padding:"$15 $0 $15 $0"}),Zu=iC({display:"flex",justifyContent:"space-between",alignItems:"center"});function tn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(Vu,null,q.createElement(Ku,null,q.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(lt,{size:8,direction:"horizontal"}),q.createElement(ju,null,q.createElement(He,{height:10,width:60,variant:"rounded"}),q.createElement(lt,{size:4}),q.createElement(He,{height:15,variant:"rounded"}))),q.createElement(He,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(qa,null,q.createElement(He,{width:65,height:20,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:65,height:20,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:65,height:20,variant:"rounded"})),q.createElement(br,null),!r&&q.createElement(lt,{size:4})),q.createElement("div",{className:Zu()},q.createElement(qa,null,q.createElement(He,{width:60,height:10,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:60,height:10,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:60,height:10,variant:"rounded"})),r&&q.createElement(He,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(qu,null,q.createElement(He,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Hu,null,q.createElement(Gu,null,q.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(lt,{direction:"horizontal",size:4}),q.createElement(He,{height:15,width:150,variant:"rounded"})),q.createElement(lt,{size:10}),q.createElement(He,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(lt,{size:4}),q.createElement(Yu,null,n,q.createElement(Xu,null),n),q.createElement(lt,{size:12})))}i(tn,"QuoteSummarySkeleton");import{ChainToken as nm,Divider as Ga,NextIcon as aC,Skeleton as $r}from"@rango-dev/ui";import we from"react";import{styled as on}from"@rango-dev/ui";var Ru=on("div",{display:"flex",alignItems:"start"}),em=on("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ha=on("div",{display:"flex",alignItems:"center",flexGrow:1}),tm=on("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),om=on("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return we.createElement(we.Fragment,null,we.createElement(om,null,we.createElement($r,{height:22,width:22,variant:"circular"}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:15,width:148,variant:"rounded"})),we.createElement(Ru,null,we.createElement(zu,{hideSeparator:!e}),we.createElement(em,{extraSpace:e},we.createElement(Ha,null,we.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:12,variant:"rounded"})),we.createElement(tm,null,we.createElement(aC,{color:"gray",size:16})),we.createElement(Ha,null,we.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function nn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Ou,{expanded:o,rounded:e!=="basic"},Wt.createElement(tn,{type:e,tagHidden:n}),Wt.createElement(Uu,null,Wt.createElement(lC,{height:15,variant:"rounded"})),o&&Wt.createElement(Qu,null,Wt.createElement(sC,{size:24}),Wt.createElement(Tt,null),Wt.createElement(Tt,null),Wt.createElement(Tt,{separator:!1})))}i(nn,"QuoteSkeleton");function uo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:T,toToken:C}=j(),y=e?.outputAmount?new pC(e?.outputAmount):null,S=e?.outputAmount?Vn(e?.outputAmount,Kn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Dr.createElement(_a,null,Dr.createElement(nn,{tagHidden:l,type:o,expanded:s})):w?Dr.createElement(_a,{onClick:()=>p?.(e)},Dr.createElement(za,{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:T?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(uo,"QuoteInfo");import{calculatePendingSwap as dC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as fC}from"react";import{useRef as cC,useState as uC}from"react";var mC=2e3;function Fr({request:t}){let[e,o]=uC(!1),n=cC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,mC)),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(Fr,"useFetch");function rm(){let{fetch:t,loading:e,cancelFetch:o}=Fr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(rm,"useFetchConfirmQuote");function Or(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Va(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Or,"throwErrorIfResponseIsNotValid");function Va(t){if(lp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=pp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=dp(t);if(o){let n=Gn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Va,"getQuoteError");function im(t,e,o){let n=!1;t&&(n=Ap(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Co(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Cp(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(So(e)),percentageChange:M(Ke(So(t)??"",So(e)??""),null,2)}:zi(t,e)?r.quoteUpdate={type:0}:qi(t,e)?r.quoteUpdate={type:1}:Hi(t,e)&&(r.quoteUpdate={type:2}));let s=Tp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(im,"generateWarnings");function Ur(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(Ur,"handleQuoteErrors");function Xa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:T,cancelFetch:C,loading:y}=rm();return fC(()=>C,[]),{loading:y,fetch:i(async k=>{let w=k.selectedWallets,A=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let L=w.reduce((v,b)=>(v[b.chain]=b.address,v),{}),E={requestId:r?.requestId||"",selectedWallets:L,destination:A||void 0};try{return await T(E,!0).then(v=>{let{result:b}=v;Or({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let x={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(x);let B={slippage:g.toString(),disabledSwappersGroups:c},U=im(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let I=!!U.balance,H=dC(o.toString(),b,yp(w),B,!I,{blockchains:m,tokens:f});return{quote:x,swap:H,error:null,warnings:U}})}catch(v){return Ur(v)}},"fetch"),cancelFetch:C}}i(Xa,"useConfirmSwap");var wC=yC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${sm}`]:{width:"$48",height:"$48"}}),xC=Ya({flexGrow:1,paddingRight:"$10"}),bC=Ya({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),EC=Ya({display:"flex",justifyContent:"space-between",alignItems:"center"});function lm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=vC(),[l,p]=rn(""),u=!n,[c,m]=rn(!1),[f,d]=rn(!1),{isActiveTab:g}=ie(),T=h().getDisabledLiquiditySources(),C=kC(T),{manager:y}=gC(),{fetch:S,loading:k,cancelFetch:w}=Xa(),[A,L]=rn({swap:null,error:null,warnings:null}),[E,v]=rn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let N=await S?.({selectedWallets:G,customDestination:ee});return L(N),N},"onConfirmSwap"),x=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${z.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{d(!0),await x(),d(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{L({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(G=>{L(G)}).catch(G=>console.error(G))},"onRefresh");Qr(()=>{!!C.current.length&&!T.length&&I(),C.current=T},[T.length]),Qr(()=>{u&&w()},[u]),Qr(()=>{u&&m(u)},[u]),Qr(()=>{u||S({selectedWallets:o,customDestination:r}).then(G=>L(G)).catch(G=>console.error(G))},[]),TC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(xe.createElement(am,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(xe.createElement(am,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&Rn(A.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(xe.createElement(Yo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:E,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await x()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ka.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:xe.createElement(wC,null,xe.createElement("div",{className:xC()},xe.createElement(hC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!A.error||!g,onClick:U},Ka.t("Start Swap"))),xe.createElement(sm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(CC,{size:24})))},c&&xe.createElement(Qc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),xe.createElement(ue,null,xe.createElement("div",{className:EC()},xe.createElement(SC,{variant:"title",size:"small"},Ka.t("You get")),xe.createElement("div",{className:bC()},xe.createElement(pr,{onClick:!k&&!c&&!E?I:void 0}))),xe.createElement(ja,{size:"12"}),Rp(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),xe.createElement(ja,{size:10})),pe.length>0?xe.createElement(ja,{size:10}):null,xe.createElement(uo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:A.error,loading:k,warning:A.warnings?.quote??null})))}i(lm,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as zC}from"@rango-dev/queue-manager-react";import{Divider as Cm,NotFound as qC,styled as HC}from"@rango-dev/ui";import Lt,{useState as GC}from"react";import{useNavigate as VC}from"react-router-dom";import{i18n as NC}from"@lingui/core";import{Divider as dm,GroupedVirtualizedList as WC,Skeleton as MC,SwapListItem as fm,Typography as LC}from"@rango-dev/ui";import _e,{useCallback as gm,useEffect as BC,useRef as PC,useState as _C}from"react";function pm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(pm,"calculateGroupsSoFar");import{css as IC,darkTheme as AC,styled as an}from"@rango-dev/ui";var Za=IC(),cm=an("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ja=an("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Za}`]:{$$color:"$colors$neutral600",[`.${AC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ra=an("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),um=an("div",{gap:"$10",display:"flex",flexDirection:"column"}),mm=an("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var $C=10;function es(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=_C([]),l=PC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=gm(pm,[]),f=gm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,$C),s(m(u,l.current)))},[e.length]);if(BC(()=>{r||f()},[r,f]),r){let d=[1,2];return _e.createElement(_e.Fragment,null,[d,d].map((T,C)=>_e.createElement(Ja,{key:C},_e.createElement(Ra,null,_e.createElement(MC,{variant:"text",width:60,size:"small"}),_e.createElement(dm,{size:16})),_e.createElement(dm,{size:4}),_e.createElement(um,null,T.map((S,k)=>_e.createElement(fm,{isLoading:!0,key:k}))))))}return _e.createElement(WC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>_e.createElement(Ja,null,_e.createElement(Ra,null,_e.createElement(LC,{variant:"label",size:"medium",className:Za()},c[d]))),itemContent:(d,g)=>{let T=p[d];if(!T)return null;let C=T.steps[0],y=T.steps[T.steps.length-1];return _e.createElement(cm,{key:T.requestId},_e.createElement(fm,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===NC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(T.inputAmount,6,6),realAmount:T.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(es,"HistoryGroupedList");import{CloseIcon as FC,IconButton as OC,SearchIcon as UC,TextField as QC}from"@rango-dev/ui";import sn from"react";import{styled as DC}from"@rango-dev/ui";var hm=DC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return sn.createElement(QC,{prefix:sn.createElement(hm,null,sn.createElement(UC,{color:"black"})),suffix:!!s.length&&sn.createElement(OC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},sn.createElement(FC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as zr}from"@lingui/core";import ym from"dayjs";var Sm=i(t=>{let e=new Map([["today",{title:zr.t("Today"),swaps:[]}],["week",{title:zr.t("This week"),swaps:[]}],["month",{title:zr.t("This month"),swaps:[]}],["year",{title:zr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=ym();t.forEach(p=>{let u=Number(p.creationTime),c=ym(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let 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 XC=HC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),KC=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Tm(){let t=VC(),{manager:e,state:o}=zC(),n=Ze(e).map(({swap:c})=>c),[r,a]=GC(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||KC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:qr.t("History")}},Lt.createElement(ue,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Cm,{size:"16"}),Lt.createElement(XC,null,u&&Lt.createElement(mm,null,Lt.createElement(Cm,{size:32}),Lt.createElement(qC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&Lt.createElement(es,{list:p,onSwapClick:t,groupBy:Sm,isLoading:s}))))}i(Tm,"HistoryPage");import{i18n as dT}from"@lingui/core";import{Button as fT,Divider as Fm,styled as gT,WarningIcon as hT}from"@rango-dev/ui";import yT from"bignumber.js";import Oe,{useEffect as Om,useState as Um}from"react";import{useNavigate as ST}from"react-router-dom";import{i18n as eT}from"@lingui/core";import{Header as tT}from"@rango-dev/ui";import Gt,{useEffect as oT,useState as nT}from"react";import{i18n as YC}from"@lingui/core";import{Divider as os,FullExpandedQuote as ZC,Typography as JC}from"@rango-dev/ui";import de from"react";import{styled as ts}from"@rango-dev/ui";var km=ts("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),vm=ts("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),wm=ts("div",{width:"146px"});import{i18n as ln}from"@lingui/core";import{Select as jC}from"@rango-dev/ui";import xm from"react";function Hr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:ln.t("Smart Routing")},{value:"FEE",label:ln.t("Lowest Fee")},{value:"SPEED",label:ln.t("Fastest Transfer")},{value:"NET_OUTPUT",label:ln.t("Maximum Return")},{value:"PRICE",label:ln.t("Maximum Output")}];return xm.createElement(wm,null,xm.createElement(jC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Hr,"SelectStrategy");var bm=3;function pn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=j(),{slippage:T,customSlippage:C}=h(),{findToken:y}=h(),S=l||P(),k=!!u&&u.results.length,w=C??T,A=i(v=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...v};return Co(b,{fromToken:m,toToken:f,userSlippage:w,findToken:y})},"getQuoteWarning"),L=g?.type===0||g?.type===1,E=u?.results?Yn(d,u?.results):[];return de.createElement(de.Fragment,null,a&&de.createElement(de.Fragment,null,de.createElement(vm,null,de.createElement(JC,{size:"xmedium",variant:"title"},YC.t("Sort by")),de.createElement(Hr,{container:S})),de.createElement(os,{size:"10"})),e&&Array.from({length:bm},(v,b)=>de.createElement(de.Fragment,{key:b},s?de.createElement(ZC,{loading:!0}):de.createElement(nn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==bm-1&&de.createElement(os,{size:16}))),!e&&de.createElement(de.Fragment,null,k?E.map((v,b)=>{let x=A(v),B=Va(v.swaps),U=E.length-1===b;return de.createElement(de.Fragment,{key:v.requestId},de.createElement(uo,{showModalFee:r,container:S,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:x,fullExpandedMode:s,onClick:I=>{B||c("warning",x),c("error",B?.options||null),o(I)},type:"list-item"}),!U&&de.createElement(os,{size:16}))}):L&&de.createElement(km,null,de.createElement(Ko,{size:s?"large":"small",error:g,fetch:n}))))}i(pn,"Quotes");import{darkTheme as RC,styled as Em}from"@rango-dev/ui";var Im=Em("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${RC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Am=Em("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var rT=100;function ns(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=nT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=$o();return oT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},rT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Gt.createElement(Im,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${mr()}`,id:he.EXPANDED_BOX_ID},Gt.createElement(tT,{title:eT.t("Routes"),suffix:Gt.createElement(Gt.Fragment,null,Gt.createElement(Hr,{container:m}),Gt.createElement(io,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Gt.createElement(Am,null,Gt.createElement(pn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:$o(),onClickOnQuote:n,fullExpandedMode:c})))}i(ns,"ExpandedQuotes");import{i18n as _m}from"@lingui/core";import{SwapInput as $m}from"@rango-dev/ui";import cn from"react";import{ReverseIcon as sT}from"@rango-dev/ui";import is from"react";import{keyframes as iT,styled as Nm}from"@rango-dev/ui";var rs=450,aT=iT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Wm=Nm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Mm=Nm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${aT} ${rs}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function as(){let t=j.use.switchFromAndTo();return is.createElement(Wm,null,is.createElement(Mm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},rs),t()}},is.createElement(sT,{size:12})))}i(as,"SwitchFromAndToButton");import{styled as Lm}from"@rango-dev/ui";var Bm=Lm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Pm=Lm("div",{position:"relative"});function ss(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=j(),{connectedWallets:T,getBalanceFor:C}=te(),y=a?C(a):null,S=Ln(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",w=!!s&&Nl(T,s.name),A=!Oi(g,c,m),L=!Oi(g,c,d),E=!m||!d||!d.gt(0)?null:Ke(m.toString(),d.toString());return cn.createElement(Bm,null,cn.createElement(Pm,null,cn.createElement($m,{label:_m.t("From"),mode:"From",onInputChange:u,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:A?void 0:M(m,4,4),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),cn.createElement(as,null)),cn.createElement($m,{sharpBottomStyle:!r&&(!!g||e),label:_m.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(Ke(m,d),2,2),warningLevel:Et(E??0),price:{value:M(f,6,6),usdValue:L?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:L?void 0:d?.toString(),error:L?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ss,"Inputs");import{useCallback as lT,useEffect as pT,useRef as cT,useState as uT}from"react";function Dm(){let{fetch:t,loading:e,cancelFetch:o}=Fr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Dm,"useFetchAllQuotes");var mT=600;function Gr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Dm(),{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:T,setSelectedQuote:C,updateQuotePartialState:y}=j(),{slippage:S,customSlippage:k,affiliatePercent:w,affiliateRef:A,affiliateWallets:L,fetchStatus:E}=h(),v=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),x=h().excludeLiquiditySources(),{findToken:B}=h(),[U,I]=uT(!0),H=cT(u),Y=k??S,G=!l||!p||Jt(l,p)||!Oo(u),ee=i(Z=>{I(Z)},"resetState"),N=i(Z=>{let{fromToken:re,toToken:Ce,inputAmount:_,liquiditySources:De,excludeLiquiditySources:tt,disabledLiquiditySources:me,slippage:Fe,affiliateRef:wt,affiliatePercent:Ge,affiliateWallets:ot}=Z;if(U||ee(!0),!G&&re&&Ce){d();let nt=hp({fromToken:re,toToken:Ce,inputAmount:_,liquiditySources:De,excludeLiquiditySources:tt,disabledLiquiditySources:me,wallets:s,slippage:Fe,affiliateRef:wt,affiliatePercent:Ge,affiliateWallets:ot,enableCentralizedSwappers:a});zl("experimentalRoute",r)&&(nt.experimental=!0),e(nt).then(dt=>{let ge=Yn(f,dt.results),W=Wp(m,ge,dt.requestAmount);I(!1),y("quotes",dt),C(W),Or({diagnosisMessages:dt.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&Co(W,{fromToken:re,toToken:Ce,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:ge}=Ur(dt);(ge?.type===0||ge?.type===1)&&d(),ge?.type!==2&&(y("error",ge),I(!1))})}},"fetch"),Q=lT(gl(Z=>{N(Z)},mT),[G]);return pT(()=>{if(!t){I(!1);return}if(E!=="success")return;if(G){I(!1),(m||g||T)&&d();return}if(!Oo(u)||c?.eq(0)){ee(!1),o();return}d(),ee(!0);let Z=N;return H.current&&H.current!=u&&(Z=Q),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,v?.length,n,b.length,Y,A,w,JSON.stringify(L)]),{fetch:()=>N({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),loading:U}}i(Gr,"useSwapInput");var CT=gT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),TT=300;function Qm(){let t=ST(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=j(),[d,g]=Um(!1),{isLargeScreen:T,isExtraLargeScreen:C}=Wr(),{fetch:y,loading:S}=Gr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:L}=ie(),[E,v]=Um(!1),x=cp({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=$l(T,C,k?.variant),U=!!n&&!!e&&!!o&&new yT(n).gt(0)&&!bp(e,o),I=U&&w==="success"&&S,pe=(!B||B&&p?.results.length)&&(l||s);Om(()=>{c(),f("refetchQuote",!0)},[]),Om(()=>{g(U)},[U]);let G=(r||s)&&!E?y:void 0,ee=i(Q=>{B&&d?(g(!1),setTimeout(()=>{t(Q)},TT)):t(Q)},"onHandleNavigation"),N=i(Q=>{r?.requestId!==Q.requestId&&(v(!1),u(Q))},"onClickOnQuote");return Oe.createElement(CT,null,Oe.createElement(le,{height:"auto",footer:Oe.createElement(fT,{type:"primary",size:"large",disabled:x.disabled||!L,prefix:x.action==="confirm-warning"&&Oe.createElement(hT,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?ee(z.wallets):x.action==="confirm-warning"?v(!0):ee(z.confirmSwap)}},x.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||dT.t("Swap"),suffix:Oe.createElement(io,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Oe.createElement(ue,null,Oe.createElement(ss,{fetchingQuote:I,fetchMetaStatus:w,isExpandable:B,onClickToken:Q=>{ee(Q==="from"?z.fromSwap:z.toSwap)}}),Oe.createElement(Fm,{size:"2"}),B?null:Oe.createElement(uo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Oe.createElement(Oe.Fragment,null,Oe.createElement(Fm,{size:"10"}),Oe.createElement(Yo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:E,confirmationDisabled:!L,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),B?Oe.createElement(ns,{loading:I,onClickOnQuote:N,fetch:y,onClickRefresh:G,isVisible:d}):null)}i(Qm,"Home");import{i18n as zm}from"@lingui/core";import{Alert as kT,Divider as vT,List as wT,ListItemButton as xT,Radio as bT,RadioRoot as ET,Typography as IT}from"@rango-dev/ui";import kt from"react";function Vt(){let{setLanguage:t,language:e,config:o}=h(),n=Hl,r=o?.language||yo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||yo),resetLanguage:()=>t(null)}}i(Vt,"useLanguage");function qm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Vt(),n=Ye(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:kt.createElement(IT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:kt.createElement(bT,{value:s}),start:kt.createElement(p,null)}});return kt.createElement(le,{header:{title:zm.t("Language")}},kt.createElement(ue,null,kt.createElement(kT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),kt.createElement(vT,{size:"8"}),kt.createElement(ET,{value:t},kt.createElement(wT,{type:kt.createElement(xT,{title:zm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(qm,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as LT,Checkbox as BT,Image as PT,ListItemButton as _T,NotFound as $T,Typography as DT}from"@rango-dev/ui";import $e,{useState as FT}from"react";import{Checkbox as WT,Skeleton as Gm}from"@rango-dev/ui";import mn from"react";import{styled as ls}from"@rango-dev/ui";var un=ls("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ps=ls("div",{width:80,display:"flex",justifyContent:"flex-end"}),cs=ls("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as AT,styled as NT}from"@rango-dev/ui";var Hm=NT(AT,{height:61});var MT=30;function us(){return mn.createElement(un,null,Array.from(Array(MT),(t,e)=>mn.createElement(Hm,{hasDivider:!0,key:e,start:mn.createElement(Gm,{variant:"circular",width:35,height:35}),title:mn.createElement(Gm,{variant:"text",size:"large",width:90}),end:mn.createElement(WT,{checked:!1})})))}i(us,"LoadingLiquiditySourceList");function ms({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=FT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Dn(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.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:S,groupTitle:k,logo:w}=y;return{start:$e.createElement(PT,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:$e.createElement(BT,{checked:S,disabled:l}),title:$e.createElement(DT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),T=i(y=>{let S=y.target.value;a(S)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),$e.createElement(le,{header:{title:Bt.t(t),suffix:$e.createElement(ps,null,$e.createElement(LT,{variant:"ghost",size:"xsmall",onClick:d},f?Bt.t("Deselect all"):Bt.t("Select all")))}},$e.createElement(ue,{view:!0},$e.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&$e.createElement(us,null),!C.length&&r?$e.createElement(cs,null,$e.createElement($T,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&$e.createElement(un,{disabled:l},C.map(y=>{let{groupTitle:S,...k}=y;return $e.createElement($e.Fragment,{key:y.id},$e.createElement(_T,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ms,"LiquiditySourcePage");import{i18n as OT}from"@lingui/core";import Vr from"react";import{useNavigate as UT}from"react-router-dom";function Vm(){let t=UT(),e=Ye(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Gr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Vr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:OT.t("Routes"),suffix:Vr.createElement(io,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Vr.createElement(ue,null,Vr.createElement(pn,{fetch:l,loading:p,onClickOnQuote:u})))}i(Vm,"RoutesPage");import{i18n as ed}from"@lingui/core";import{Divider as td,getCategoriesCount as jT,SelectableCategoryList as YT}from"@rango-dev/ui";import Pt,{useState as od}from"react";import{i18n as ds}from"@lingui/core";import{Divider as Jm,Image as HT,ListItemButton as GT,NotFound as VT,Typography as Rm}from"@rango-dev/ui";import Je,{useEffect as XT,useState as KT}from"react";var Xm=i((t,e,o)=>t.filter(n=>wn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as QT,styled as Km}from"@rango-dev/ui";var jm=Km("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xr=Km(Go,{padding:0,margin:0,listStyle:"none",[`& ${QT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as zT,Skeleton as Ym}from"@rango-dev/ui";import Kr from"react";var qT=20;function Zm(){return Kr.createElement(Xr,null,Array.from(Array(qT),t=>Kr.createElement(zT,{key:t,hasDivider:!0,start:Kr.createElement(Ym,{variant:"circular",width:35,height:35}),title:Kr.createElement(Ym,{variant:"text",size:"large",width:90})})))}i(Zm,"LoadingBlockchainList");function fs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=KT(e),{fetchStatus:l}=h();XT(()=>{s([...Xm(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Je.createElement(Je.Fragment,null,Je.createElement(Jm,{size:32}),Je.createElement(VT,{title:ds.t("No results found"),description:ds.t("Try using different keywords")})):Je.createElement(Xr,{as:"ul",key:`${r}-${o}`},a.map(u=>Je.createElement(GT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Je.createElement(HT,{src:u.logo,size:30}),title:Je.createElement(Rm,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Je.createElement(jm,null,Je.createElement(Rm,{variant:"label",size:"large"},ds.t("Select Blockchain")),Je.createElement(Jm,{size:4}),l==="loading"&&Je.createElement(Zm,null),l==="success"&&p())}i(fs,"BlockchainList");function gs(t){let{type:e}=t,o=Ye(),[n,r]=od(""),[a,s]=od("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=jT(c)!==1;return Pt.createElement(le,{header:{title:ed.t("Select Blockchain")}},Pt.createElement(ue,{view:!0},f&&Pt.createElement(Pt.Fragment,null,Pt.createElement(YT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(td,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:ed.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Pt.createElement(td,{size:16}),Pt.createElement(fs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(gs,"SelectBlockchainPage");import{i18n as Rr}from"@lingui/core";import{Divider as wd}from"@rango-dev/ui";import mo,{useState as dk}from"react";import{useNavigate as fk}from"react-router-dom";import{i18n as Ss}from"@lingui/core";import{BlockchainsChip as jr,Divider as ad,Image as sd,Skeleton as tk,Tooltip as ok,Typography as Cs}from"@rango-dev/ui";import Ae from"react";import{useEffect as RT}from"react";var nd=["ETH","COSMOS","OSMOSIS"];function hs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ZT),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(JT(s)),r=n.splice(a)}return{list:n,more:r}}i(hs,"prepare");function ZT(t,e){let o=nd,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(ZT,"sortByMostUsedBlockchains");function JT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(JT,"generateSortByPreferredBlockchainsFor");function rd(t,e){return!!e.list.find(o=>o.name===t)}i(rd,"isInVisibleList");function ys(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();RT(()=>{if(e?.selected){let a=hs(t,o,e);rd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=hs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ys,"usePrepareBlockchainList");import{styled as ek}from"@rango-dev/ui";var id=ek("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var nk=12;function Ts(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ys(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Ae.createElement(Ae.Fragment,null,Ae.createElement(ad,{size:12}),Ae.createElement(Cs,{variant:"label",size:"large"},Ss.t("Select Blockchain")),Ae.createElement(ad,{size:12}),Ae.createElement(id,null,l==="loading"&&Array.from(Array(nk),d=>Ae.createElement(tk,{key:d,variant:"rounded",height:50})),l==="success"&&Ae.createElement(Ae.Fragment,null,Ae.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ae.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss.t("All"))),s.list.map(d=>Ae.createElement(ok,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Ae.createElement(jr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Ae.createElement(sd,{src:d.logo,size:30})))),m?Ae.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ae.createElement(sd,{src:s.more[0].logo,size:30})):null,f?Ae.createElement(jr,{onClick:a,key:"more-blockchains"},Ae.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss._("More +{count}",{count:s.more.length}))):null)))}i(Ts,"BlockchainsSection");import{i18n as Ws}from"@lingui/core";import{darkTheme as Sd,Divider as Lo,ExternalLinkIcon as ak,Image as sk,ListItemButton as lk,NotFound as pk,PinIcon as ck,Skeleton as Cd,Typography as Jr,VirtualizedList as uk}from"@rango-dev/ui";import K,{useEffect as Td,useState as kd}from"react";import{Divider as hd,ListItem as ik,Skeleton as dn}from"@rango-dev/ui";import pt from"react";import{css as Mo,darkTheme as ld,ImageContainer as rk,styled as Re,Typography as pd}from"@rango-dev/ui";var ks=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),vs=Mo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ws=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),xs=Mo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),bs=Mo({}),Es=Mo(),cd=Re("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Is=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Yr=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${vs}`]:{[`& .${xs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${bs}`]:{bottom:"-15px"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),As=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ns=Re(pd,{}),ud=Re("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Es}`]:{$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zr=Re("div",{display:"flex",alignItems:"end",flexDirection:"column"}),OO=Re("div",{display:"flex",alignItems:"center"}),md=Re("div",{position:"relative",[`& ${rk}`]:{borderRadius:"$xm",overflow:"hidden"}}),dd=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),fd=Re(pd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),gd=Re("a",{"& svg:hover":{color:"$colors$info"}});function yd(t){return pt.createElement(Yr,null,Array.from(Array(t.size),e=>pt.createElement(ik,{key:e,hasDivider:!0,start:pt.createElement(dn,{variant:"circular",width:35,height:35}),end:pt.createElement(Zr,null,pt.createElement(dn,{variant:"text",size:"large",width:70}),pt.createElement(hd,{size:4}),pt.createElement(dn,{variant:"text",size:"medium",width:50})),title:pt.createElement("div",null,pt.createElement(dn,{variant:"text",size:"large",width:90}),pt.createElement(hd,{size:4}),pt.createElement(dn,{variant:"text",size:"medium",width:90}))})))}i(yd,"LoadingTokenList");var Ms=20,mk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:vs()},o?K.createElement("div",{className:ks()},o):K.createElement(Is,{className:ws()},K.createElement(Jr,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Lo,{direction:"horizontal",size:4}),K.createElement(As,{css:a},K.createElement(Ns,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${xs()} ${!o&&bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Lo,{size:4,direction:"horizontal"}),K.createElement(gd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(ak,{size:12}))))},"renderDesc");function vd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=kd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=kd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Ms))},"loadNextPage");Td(()=>{c(e.length>a.length)},[a.length]),Td(()=>{s(e.slice(0,Ms))},[e.length,r]);let T=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Lo,{size:32}),K.createElement(pk,{title:Ws.t("No results found"),description:Ws.t("Try using different keywords")})):K.createElement(uk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],S=Ln(m(y)),k=y.address||"",w=p.find(v=>v.name===y.blockchain),A=ea(w.color,"main"),L={$$color:A.main150,[`.${Sd} &`]:{$$color:A.main750},backgroundColor:"$$color"},E={$$color:A.main750,[`.${Sd} &`]:{$$color:A.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(md,null,K.createElement(sk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(dd,null,K.createElement(ck,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Is,null,K.createElement(Jr,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Lo,{direction:"horizontal",size:4}),K.createElement(As,{css:L},K.createElement(Ns,{variant:"body",size:"xsmall",css:E},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?mk({address:k,token:a[C],customCssForTag:L,customCssForTagTitle:E,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(Zr,null,K.createElement(Cd,{variant:"text",size:"large",width:70}),K.createElement(Lo,{size:4}),K.createElement(Cd,{variant:"text",size:"medium",width:50})):S&&K.createElement(ud,null,K.createElement(fd,{variant:"title",size:"small"},S.amount),K.createElement("div",null),S.usdValue&&K.createElement(Jr,{variant:"body",className:Es(),size:"xsmall"},`$${S.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(cd,null,K.createElement(Jr,{variant:"label",size:"large"},Ws.t("Select Token")),K.createElement(Lo,{size:4}),l==="loading"&&K.createElement(yd,{size:Ms}),l==="success"&&K.createElement(Yr,{as:"ul"},T()))}i(vd,"TokenList");function Ls(t){let{type:e}=t,o=fk(),n=Ye(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=te.use.getBalanceFor(),[m,f]=dk(""),g=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),S=i(w=>{e==="source"?s({token:w,meta:{blockchains:T,tokens:C}}):l({token:w,meta:{blockchains:T,tokens:C}})},"updateToken"),k={source:Rr.t("Source"),destination:Rr.t("Destination")};return mo.createElement(le,{header:{title:Rr.t("Swap {type}",{type:k[e]})}},mo.createElement(ue,null,mo.createElement(Ts,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:w=>{y(w)}}),mo.createElement(wd,{size:24}),mo.createElement(Mt,{value:m,autoFocus:!0,placeholder:Rr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:w=>f(w.target.value)}),mo.createElement(wd,{size:16}),mo.createElement(vd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{S(w);let A=T.find(L=>w.blockchain===L.name);A&&y(A),n()}})))}i(Ls,"SelectSwapItemsPage");import{i18n as $s}from"@lingui/core";import{Alert as Ok,Button as Uk,styled as Qk}from"@rango-dev/ui";import fo from"react";import{useInRouterContext as zk,useSearchParams as qk}from"react-router-dom";import{i18n as Nd}from"@lingui/core";import{Divider as Sk,InfoIcon as Ck,TextField as Tk,Tooltip as kk,Typography as Wd}from"@rango-dev/ui";import ct from"react";import{Chip as gk,styled as fn,TextField as hk}from"@rango-dev/ui";var xd=fn("div",{paddingTop:"$5",padding:"$10 $5"}),bd=fn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${hk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ed=fn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ei=fn("div",{maxWidth:"280px",padding:"$10"}),Id=fn(gk,{width:"61px",flexShrink:0});import{i18n as Bs}from"@lingui/core";import{Typography as yk}from"@rango-dev/ui";import gn from"react";function Ad(){return gn.createElement(ei,null,gn.createElement(yk,{variant:"label",size:"medium",color:"neutral700"},Bs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),gn.createElement("br",null),gn.createElement("br",null),gn.createElement("b",null,Bs.t("Warning")),":",Bs.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Ad,"SlippageTooltipContent");function Ps(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ct.createElement(xd,null,ct.createElement(Ed,null,ct.createElement(Wd,{variant:"title",size:"xmedium"},Nd.t("Slippage tolerance per swap")),ct.createElement(Sk,{direction:"horizontal",size:4}),ct.createElement(kk,{container:P(),side:"top",sideOffset:4,content:ct.createElement(Ad,null)},ct.createElement(Ck,{color:"gray"}))),ct.createElement(bd,null,Gl.map((r,a)=>{let s=`slippage-${a}`;return ct.createElement(Id,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ct.createElement(Tk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=jl&&s<=Kl?n(s):n(null)},suffix:o&&ct.createElement(Wd,{variant:"body",size:"small"},"%"),placeholder:Nd.t("Custom")})))}i(Ps,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Md,BridgesIcon as vk,ChevronRightIcon as _s,DarkModeIcon as Ld,Divider as ti,ExchangeIcon as wk,InfinityIcon as xk,InfoIcon as bk,LanguageIcon as Ek,LightModeIcon as Bd,List as Ik,ListItem as Ak,ListItemButton as Nk,Skeleton as Wk,styled as Mk,Switch as Lk,Tabs as Bk,Tooltip as Pk,Typography as et}from"@rango-dev/ui";import O from"react";import{useNavigate as _k}from"react-router-dom";var $k=Mk("div",{width:"202px",height:"$40"}),Dk=[{id:"light",icon:O.createElement(Bd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:O.createElement(Ld,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:O.createElement(Md,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Auto"))}],Fk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Md,{...e});case"dark":return O.createElement(Ld,{...e});default:return O.createElement(Bd,{...e})}},"getThemeIcon");function Pd(){let t=_k(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Vt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Xe("theme",c),f=Xe("liquiditySource",c),d=Xe("language",c),g=h().infiniteApprove,T=h().toggleInfiniteApprove,C=Dn(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),S=y.length,k=y.filter(H=>H.selected).length,w=C.filter(H=>H.type==="DEX"),A=w.length,L=w.filter(H=>H.selected).length,E=i((H,Y)=>{switch(l){case"loading":return O.createElement(Wk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(et,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return O.createElement(et,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:O.createElement(O.Fragment,null,E(k,S),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(vk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:O.createElement(O.Fragment,null,E(L,A),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),start:O.createElement(wk,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},x={id:"language-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Language")),start:O.createElement(Ek,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(et,{variant:"body",size:"medium"},s),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),onClick:()=>t(z.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),O.createElement(ti,{direction:"horizontal",size:4}),O.createElement(Pk,{side:"top",sideOffset:4,container:P(),content:O.createElement(ei,null,O.createElement(et,{variant:"label",size:"medium",color:"neutral700"},vt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(bk,{color:"gray"}))),start:O.createElement(xk,{color:"gray",size:16}),end:O.createElement(Lk,{checked:g}),onClick:T},U={id:"theme-item",type:O.createElement(Ak,null),title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Theme")),end:O.createElement($k,null,O.createElement(Bk,{container:P(),items:Dk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Fk(n)},I=f?[]:[v,b];return d||I.push(x),I.push(B),!e?.singleTheme&&!m&&I.push(U),O.createElement(Ik,{type:O.createElement(Nk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Pd,"SettingsLists");var Hk=Qk("div",{paddingLeft:"$8"});function _d(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=qk(),r=zk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return fo.createElement(le,{header:{title:$s.t("Settings")}},fo.createElement(ue,null,o&&fo.createElement(Ok,{type:"info",variant:"alarm",title:$s.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:fo.createElement(Hk,null,fo.createElement(Uk,{type:"secondary",size:"small",onClick:a},$s.t("Reset")))}),fo.createElement(Ps,null),fo.createElement(Pd,null)))}i(_d,"SettingsPage");import{i18n as Mv}from"@lingui/core";import{cancelSwap as Lv}from"@rango-dev/queue-manager-rango-preset";import{useManager as Bv}from"@rango-dev/queue-manager-react";import{Alert as Pv}from"@rango-dev/ui";import Rs from"react";import{useParams as _v}from"react-router-dom";import{i18n as ut}from"@lingui/core";import{getCurrentBlockchainOfOrNull as mv,getCurrentStep as dv,getRelatedWalletOrNull as fv}from"@rango-dev/queue-manager-rango-preset";import{Button as df,CopyIcon as gv,Divider as hv,IconButton as yv,QuoteCost as Sv,RangoExplorerIcon as Cv,StepDetails as Tv,Tooltip as kv,Typography as go,useCopyToClipboard as vv}from"@rango-dev/ui";import{useWallets as wv}from"@rango-dev/wallets-react";import ff from"bignumber.js";import{PendingSwapNetworkStatus as ci}from"rango-types";import R,{useEffect as gf,useRef as xv,useState as hf}from"react";import{useNavigate as bv}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Gk=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.t("Saturday")];function $d(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Xt.t("Today"):`${Gk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($d,"timeSince");function Dd(t){return t.finishTime?$d(parseInt(t.finishTime)):$d(parseInt(t.creationTime))}i(Dd,"getSwapDate");import{PendingSwapNetworkStatus as ri}from"rango-types";import ii from"react";import{i18n as oi}from"@lingui/core";import{Button as Fd,Divider as Ds,MessageBox as Vk}from"@rango-dev/ui";import Kt from"react";var Od=i(({onCancel:t,onClose:e})=>Kt.createElement(Kt.Fragment,null,Kt.createElement(Ds,{size:20}),Kt.createElement(Vk,{type:"error",title:oi.t("Cancel Swap"),description:oi.t("Are you sure you want to cancel this swap?")}),Kt.createElement(Ds,{size:32}),Kt.createElement(Fd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Cancel it")),Kt.createElement(Ds,{size:12}),Kt.createElement(Fd,{variant:"outlined",type:"primary",size:"large",onClick:e},oi.t("No, Continue"))),"CancelContent");import{i18n as ni}from"@lingui/core";import{Button as Ud,Divider as Fs,MessageBox as Xk,Typography as Kk}from"@rango-dev/ui";import _t from"react";var Qd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Fs,{size:20}),_t.createElement(Xk,{type:"error",title:ni.t("Delete Transaction"),description:ni.t("Are you sure you want to delete this swap?")}),_t.createElement(Fs,{size:32}),_t.createElement(Ud,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Delete it")),_t.createElement(Fs,{size:12}),_t.createElement(Ud,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Kk,{variant:"title",size:"medium",color:"primary"},ni.t("No, Cancel")))),"DeleteContent");import{i18n as Os}from"@lingui/core";import{PendingSwapNetworkStatus as Us}from"rango-types";var Qs={[Us.WaitingForNetworkChange]:{type:"loading",title:Os.t("Change Network")},[Us.WaitingForConnectingWallet]:{type:"warning",title:Os.t("Connect Wallet")},[Us.NetworkChanged]:{type:"success",title:Os.t("Network Changed")}};import{debug as Hd}from"@rango-dev/logging-core";import{MessageBox as jk,Wallet as Yk}from"@rango-dev/ui";import{useWallets as Zk}from"@rango-dev/wallets-react";import Bo,{useState as Jk}from"react";import{styled as zd}from"@rango-dev/ui";var qd=zd("div",{display:"flex",justifyContent:"center"}),IQ=zd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Gd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Zk(),[c,m]=Jk(null),f=n?.walletType,d=f?Ii(u(f)):null,g=f?p(f):null;return Bo.createElement(Bo.Fragment,null,Bo.createElement(jk,{type:e,title:o,description:r}),a&&!!f&&!!d&&!!g&&Bo.createElement(qd,null,Bo.createElement(Yk,{container:P(),title:g.name,image:g.img,type:f,state:d,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:f,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(f).catch(C=>Hd(C))}})),Bo.createElement(so,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Hd(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ri.WaitingForNetworkChange||e===ri.WaitingForConnectingWallet||e===ri.NetworkChanged;return ii.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ii.createElement(Gd,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ri.WaitingForNetworkChange}),e==="delete"&&ii.createElement(Qd,{onClose:o,onDelete:n}),e==="cancel"&&ii.createElement(Od,{onClose:o,onCancel:r}))}i(zs,"SwapDetailsModal");import{i18n as hn}from"@lingui/core";import{Button as qs,Divider as ai,MessageBox as Vd,TokenAmount as Rk,Typography as Hs}from"@rango-dev/ui";import Me from"react";import{useNavigate as ev}from"react-router-dom";function Gs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=ev();return Me.createElement(ne,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(Vd,{type:"success",title:hn.t("Swap Successful")},Me.createElement(Rk,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(ai,{size:12}),Me.createElement(Hs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Me.createElement(Vd,{type:"error",title:hn.t("Transaction Failed"),description:m}),Me.createElement(ai,{size:32}),n==="success"&&Me.createElement(qs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Me.createElement(Hs,{variant:"title",size:"medium",color:"neutral100"},hn.t("Done"))),Me.createElement(ai,{size:12}),f&&Me.createElement(Me.Fragment,null,Me.createElement(qs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},hn.t("Diagnosis")),Me.createElement(ai,{size:12})),Me.createElement(qs,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Hs,{variant:"title",size:"medium",color:"primary"},hn.t("See Details"))))}i(Gs,"SwapDetailsCompleteModal");import uv from"react";import{i18n as sv}from"@lingui/core";import{Alert as pf,IconButton as lv,LinkIcon as pv}from"@rango-dev/ui";import jt,{Fragment as cv}from"react";import{Alert as nv,ChevronDownIcon as rv,IconButton as iv}from"@rango-dev/ui";import _o,{useState as av}from"react";import{css as yn,darkTheme as tv,styled as $t,Typography as ov}from"@rango-dev/ui";var Xd=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),si=$t("div",{width:"100%"}),Kd=$t(Go,{padding:"$0 $20 $20 $20"}),pz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),jd=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),cz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Po=yn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${tv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Yd=yn({padding:"$5 0"}),li=yn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Zd=yn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Jd=yn({width:"100%",padding:"0 $20 $10"}),Rd=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),ef=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),pi=$t(ov,{wordBreak:"break-word"});import{styled as Vs}from"@rango-dev/ui";var tf=Vs("div",{display:"flex",flexDirection:"column",gap:"$10"}),of=Vs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),nf=Vs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function rf(t){let{message:e}=t,[o,n]=av(!1);return _o.createElement(nv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_o.createElement(iv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_o.createElement(of,{rotated:o},_o.createElement(rv,{size:12,color:"gray"}))),footer:_o.createElement(nf,{open:o},_o.createElement(pi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(rf,"FailedAlert");import{i18n as af}from"@lingui/core";import{Alert as Xs,Button as sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ks}from"rango-types";import Sn from"react";function lf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},af.t("Change"))}):r===Ks.WaitingForConnectingWallet?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForConnectingWallet)}},af.t("Connect"))}):Sn.createElement(Xs,{type:"warning",title:n.shortMessage})}i(lf,"WarningAlert");function js(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return jt.createElement(tf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,T=f===d.length-1,C=(T&&u||p)&&!c,y=T&&a.status==="failed";return jt.createElement(cv,{key:g},jt.createElement(pf,{type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:sv.t("View transaction"),action:m.url&&jt.createElement(lv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},jt.createElement(pv,{size:12}))}))}),c&&jt.createElement(pf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&jt.createElement(lf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&jt.createElement(rf,{message:r}))}i(js,"SwapDetailsAlerts");var cf=2e3;var uf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Ve(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ve(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Do(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ve(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ve(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Do(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:uv.createElement(js,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function mf(t){if(qo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(mf,"getStepState");function Ys(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=wv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=j.use.retry(),f=ie.use.isActiveTab(),d=bv(),[g,T]=vv(cf),C=xv(null),[y,S]=hf(null),[k,w]=hf(null),A=i(()=>{r(),S(null)},"onCancel"),L=ke.use.getNotifications(),E=ke.use.removeNotification(),v=L(),b=dv(e),x=b?.networkStatus;gf(()=>{v.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId)):k&&w(null))},[e.status,e.requestId]),gf(()=>{G?S(ci.WaitingForNetworkChange):x===ci.WaitingForConnectingWallet||x===ci.NetworkChanged?S(x):S(null)},[x]);let B=vp(e),U=b?mv(e,b):null,I=b?fv(e,b):null,H=Dd(e),Y=wp(e),pe=i(ge=>!!l(ge)?.mobileWallet,"isMobileWallet"),G=x===ci.WaitingForNetworkChange&&!!U&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,U)),ee=G?s.bind(null,I.walletType,U):void 0,N=kp(e,b),Q=uf({swap:e,switchNetwork:ee,showNetworkModal:x,setNetworkModal:S,message:N,blockchains:p,swappers:u}),Z=Q.length,[re,Ce]=[e.steps[0],e.steps[Z-1]],_=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,De=e.steps.reduce((ge,W)=>ge+parseFloat(W.feeInUsd||""),0),tt=e.steps.find(ge=>ge.diagnosisUrl)?.diagnosisUrl,me=M(parseFloat(M(_,6,6))*(Ce.toUsdPrice||0),4,4),Fe=M(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),wt=_?new ff(_).multipliedBy(Ce.toUsdPrice||0).toString():"",Ge=new ff(e.inputAmount).multipliedBy(re.fromUsdPrice||0).toString(),ot=Ke(Fe,me),nt=N.detailedMessage.content||N.shortMessage,dt=e.status==="success"?ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(_,6,6),token:Q[Z-1].to.token.displayName,conciseAddress:Bn(e.wallets[Q[Z-1].to.chain.displayName]?.address||""),chain:Q[Z-1].to.chain.displayName}}):R.createElement(ef,null,R.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},nt?"":ut.t("Transaction was not sent."),B?`${ut.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),nt&&R.createElement(pi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",nt));return R.createElement(le,{header:{title:ut.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(wo,null,R.createElement(df,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},R.createElement(go,{size:"medium",variant:"label",color:"error"},ut.t("Delete"))))},footer:Y&&!k&&R.createElement(df,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ge=jn(e,p,c);m(ge),setTimeout(()=>{d("../../")},0)}},ut.t("Try again"))},R.createElement(ue,{compact:!0,view:!0},R.createElement(si,null,R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Request ID")}:`),R.createElement("div",{className:li()},R.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(yv,{variant:"ghost",onClick:T.bind(null,o||"")},R.createElement(gv,{size:16,color:"gray"})),R.createElement(Rd,{target:"_blank",href:`${sl}/swap/${o}`},R.createElement(kv,{container:P(),content:ut.t("View on Rango Explorer"),side:"bottom"},R.createElement(Cv,{size:20}))))),R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ut.t("Finished at"):ut.t("Created at")),R.createElement(go,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:Zd()},R.createElement(Sv,{fee:M(String(De),2,2),time:Fo(En(e.steps)),steps:Z}),R.createElement(Jo,{from:{price:{value:M(e.inputAmount,6,6),usdValue:Fe,realUsdValue:Ge,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:M(_,6,6),usdValue:me,realUsdValue:wt,realValue:_},token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image,displayName:Q[Z-1].to.chain.displayName}},percentageChange:M(ot,2,2),warningLevel:Et(ot??0)})),R.createElement("div",{className:Jd()},R.createElement(go,{variant:"title",size:"small"},ut.t("Swaps steps"))),R.createElement(hv,{size:8}),R.createElement(Kd,{ref:C},Q.map((ge,W)=>{let V=W,X=mf(e.steps[W]),Qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===Q.length-1;return R.createElement(Tv,{key:V,step:ge,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Qe,tooltipContainer:P()})}))),R.createElement(zs,{state:y,onClose:()=>S(null),onCancel:A,onDelete:n,message:N.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!f}),R.createElement(Gs,{open:!!k,diagnosisUrl:tt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(_,6,6),usdValue:me,realUsdValue:wt,realValue:_||"",percentageChange:M(ot,2,2),token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image},description:dt}))}i(Ys,"SwapDetails");import{i18n as mi}from"@lingui/core";import{Divider as Cf,NotFound as Wv,Skeleton as Tn,Typography as di}from"@rango-dev/ui";import fe from"react";import{i18n as Ev}from"@lingui/core";import{Divider as Iv,Skeleton as Av,Typography as Nv}from"@rango-dev/ui";import Se from"react";import{css as mt,styled as Zs}from"@rango-dev/ui";var yf=Zs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Cn=Zs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ui=Zs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),vq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),wq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),xq=mt({paddingTop:"$15",display:"flex"}),bq=mt({padding:"$15 $0"}),Eq=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Iq=mt({paddingBottom:"$10"}),Aq=mt({display:"flex",justifyContent:"start",alignItems:"center"}),Nq=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),Wq=mt({display:"flex",alignItems:"center"}),Mq=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Sf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Js(){return Se.createElement(yf,null,Se.createElement(tn,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(Nv,{variant:"title",size:"small"},Ev.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1}),Se.createElement("div",{className:Sf()},Se.createElement(Iv,{direction:"horizontal",size:20}),Se.createElement(Av,{height:22,variant:"rectangular"}))),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1})),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1})),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1}))))}i(Js,"LoadingSwapDetails");function Tf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:mi.t("Swap Details"),suffix:fe.createElement(wo,null)}},o&&fe.createElement(Xd,null,fe.createElement(si,null,fe.createElement("div",{className:Po()},fe.createElement(di,{variant:"label",size:"large",color:"neutral700"},`${mi.t("Request ID")}:`),fe.createElement("div",{className:li()},fe.createElement(di,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Tn,{width:16,height:16,variant:"rectangular"}),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Tn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:Po()},fe.createElement(di,{className:Yd(),variant:"label",size:"large",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})),fe.createElement(di,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})))),fe.createElement(Js,null)),!o&&fe.createElement(jd,null,fe.createElement(Wv,{title:mi.t("Not found"),description:mi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Tf,"SwapDetailsPlaceholder");function kf(){let{manager:t,state:e}=Bv(),o=!e.loadedFromPersistor,n=Ze(t),{requestId:r}=_v(),a=Ye(),{fetchStatus:s}=h();if(!r)return Rs.createElement(Pv,{containerStyles:{margin:"20px"},type:"error",title:Mv.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&&Lv(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?Rs.createElement(Tf,{requestId:r,showSkeleton:l}):Rs.createElement(Ys,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(kf,"SwapDetailsPage");function vf(){return Bp(),Ki(),$v([{path:z.home,element:Ue.createElement(Qm,null)},{path:z.routes,element:Ue.createElement(Vm,null)},{path:z.fromSwap,children:[{index:!0,element:Ue.createElement(Ls,{type:"source"})},{path:z.blockchains,element:Ue.createElement(gs,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:Ue.createElement(Ls,{type:"destination"})},{path:z.blockchains,element:Ue.createElement(gs,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:Ue.createElement(_d,null)},{path:z.languages,element:Ue.createElement(qm,null)},{path:z.exchanges,element:Ue.createElement(ms,{sourceType:"Exchanges"})},{path:z.bridges,element:Ue.createElement(ms,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:Ue.createElement(Tm,null)},{path:z.swapDetails,element:Ue.createElement(kf,null)}]},{path:z.wallets,element:Ue.createElement(Mc,null)},{path:z.confirmSwap,element:Ue.createElement(lm,null)}])}i(vf,"AppRoutes");import{useQueueManager as Gv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Vv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Xv}from"rango-sdk";import{useContext as Kv,useEffect as Nf,useState as Wf}from"react";import{globalCss as Dv}from"@rango-dev/ui";var wf=i(()=>Dv({"@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 xf(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("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(xf,"useFetchApiConfig");import{useWallets as Fv}from"@rango-dev/wallets-react";import{useEffect as Ov,useRef as Uv}from"react";function bf(){let{connect:t,state:e}=Fv(),o=Uv({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Ov(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(bf,"useForceAutoConnect");import{isApprovalTX as Qv,RouteEventType as Ef,StepEventType as If,StepExecutionEventStatus as zv,WidgetEvents as fi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Af}from"react";function el(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=ke.use.setNotification(),{findToken:n}=h();Af(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===If.TX_EXECUTION&&s.status===zv.TX_SENT&&!Qv(l)||s.type===If.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 Te.on(fi.StepEvent,r),()=>Te.off(fi.StepEvent,r)},[Te,t]),Af(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Ef.FAILED||s.type===Ef.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return Te.on(fi.RouteEvent,r),()=>Te.off(fi.RouteEvent,r)},[Te])}i(el,"useSubscribeToWidgetEvents");import{useManager as qv}from"@rango-dev/queue-manager-react";import{useEffect as Hv}from"react";function tl(){let{isSynced:t,syncNotifications:e}=ke(),{manager:o,state:n}=qv();Hv(()=>{ke.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ze(o))},[ke.persist.hasHydrated(),n.loadedFromPersistor,t])}i(tl,"useSyncNotifications");function ol(){bf(),wf(),el(),tl();let t=h().blockchains(),{canSwitchNetworkTo:e}=Cr(),[o,n]=Wf(""),[r,a]=Wf(),s=Kv(On),l=t.filter(Xv),{fetchApiConfig:p}=xf();Nf(()=>()=>Lp(),[]),Gv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Nf(()=>(Rt.init(),ke.persist.hasHydrated()||ke.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Vv(o)?.[0]&&n("")}),p().catch(console.log),Rt.destroy),[])}i(ol,"useBootstrap");import{styled as jv}from"@rango-dev/ui";var Mf=jv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function gi(){ol();let{config:t}=h(),{activeTheme:e}=ar(t?.theme||{}),{activeLanguage:o}=Vt();return nl.createElement(Yv,{language:o},nl.createElement(Mf,{id:"swap-container",className:e()},nl.createElement(vf,null)))}i(gi,"Main");import{setSolanaSignerConfig as hw}from"@rango-dev/signer-solana";import il,{useEffect as $f,useMemo as yw}from"react";import{useState as Zv}from"react";var Jv=i(()=>{let[t,e]=Zv(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=yl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Lf=Jv;import{checkWaitingForNetworkChange as Rv,makeQueueDefinition as ew}from"@rango-dev/queue-manager-rango-preset";import{Provider as tw}from"@rango-dev/queue-manager-react";import{useWallets as ow}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as nw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as rw}from"rango-types";import iw,{useMemo as aw}from"react";function sw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=ow(),l=aw(()=>ew({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(rw),T=i(k=>{let{supportedChains:w}=s(k);return Nn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:nw(g),getSupportedChainNames:T},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},S=ie.use.isActiveTab();return iw.createElement(tw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Rv(k)},isPaused:!S},t.children)}i(sw,"QueueManager");var Bf=sw;import{useManager as mw}from"@rango-dev/queue-manager-react";import dw,{createContext as fw,useContext as gw}from"react";import{cancelSwap as lw,getCurrentBlockchainOfOrNull as pw,getCurrentStep as cw,getRelatedWalletOrNull as uw}from"@rango-dev/queue-manager-rango-preset";var hi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ze(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=jn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&lw(o)}getCurrentStepInfo(e){let o=cw(e);return{step:o,wallet:o?uw(e,o):null,network:o?pw(e,o):null}}};var Pf=fw(void 0);function rl(t){let{manager:e}=mw(),o=ie.use.isActiveTab(),n=j.use.retry(),{findToken:r}=h(),a=new hi(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=bl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Vt().resetLanguage,T=ke().getNotifications(),C=ke().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:Rt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:S=>u(S,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:C}};return dw.createElement(Pf.Provider,{value:y},t.children)}i(rl,"WidgetInfo");function _f(){let t=gw(Pf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(_f,"useWidget");function yi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Lf();return $f(()=>{n&&r(n)},[n]),yw(()=>{Bl({API_KEY:o?.apiKey||kn,BASE_URL:o?.apiUrl||al})},[o.apiKey,o.apiUrl]),$f(()=>{t.config?.signers?.customSolanaRPC&&hw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),il.createElement(Un,{config:o,onUpdateState:e},il.createElement(Bf,{apiKey:o.apiKey},il.createElement(rl,null,t.children)))}i(yi,"WidgetProvider");function Df(t){let e=t.config?.externalWallets;return Si.createElement(rp,null,e?Si.createElement(gi,null):Si.createElement(yi,{config:t.config??Pi},Si.createElement(gi,null)))}i(Df,"Widget");function Ff(){let{on:t,off:e}=Te;return{on:t,off:e}}i(Ff,"useWidgetEvents");export{KV as EventSeverity,Qo as MainEvents,n2 as Networks,a2 as PendingSwapNetworkStatus,Mi as QuoteEventTypes,jV as RouteEventType,Ci as SUPPORTED_FONTS,YV as StepEventType,ZV as StepExecutionBlockedEventStatus,JV as StepExecutionEventStatus,he as UI_ID,Li as WalletEventTypes,t2 as WalletEvents,r2 as WalletTypes,Df as Widget,Qo as WidgetEvents,yi as WidgetProvider,Un as WidgetWallets,ra as customizedThemeTokens,e2 as readAccountAddress,oo as useWalletList,Cr as useWallets,_f as useWidget,Ff as useWidgetEvents,qf as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map