@rango-dev/widget-embedded 0.30.1-next.14 → 0.30.1-next.15

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 pg=Object.defineProperty;var i=(t,e)=>pg(t,"name",{value:e,configurable:!0});import{EventSeverity as x5,RouteEventType as w5,StepEventType as b5,StepExecutionBlockedEventStatus as E5,StepExecutionEventStatus as I5}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as W5,useWallets as Cr,Events as N5}from"@rango-dev/wallets-react";import{Networks as L5,WalletTypes as B5}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as _5}from"rango-types";import{UI_ID as cg}from"@rango-dev/ui";var wn="c6381a79-2817-4602-83bf-6a641a409e32",hl="https://api.rango.exchange",yl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...cg};var Sl="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 Qi,Provider as rh}from"@rango-dev/wallets-react";import{isEvmBlockchain as ih}from"rango-sdk";import Qn,{createContext as ah,useEffect as mp,useMemo as sh,useRef as dp}from"react";import{useEffect as Mg}from"react";import{create as Ag}from"zustand";import{subscribeWithSelector as Wg}from"zustand/middleware";import ug from"mitt";var Ce=ug(),mg={on:Ce.on,off:Ce.off};import{RangoClient as Eg}from"rango-sdk";import{BlockchainCategories as Tg,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Cg}from"@rango-dev/wallets-react";import{detectInstallLink as kg,getCosmosExperimentalChainInfo as vg,isEvmAddress as xg,KEPLR_COMPATIBLE_WALLETS as ww,Networks as Nl}from"@rango-dev/wallets-shared";import Ai from"bignumber.js";import{isCosmosBlockchain as wg}from"rango-types";import dg from"bignumber.js";var Oe=new dg(0);import{WalletTypes as fg}from"@rango-dev/wallets-shared";var Tl=[fg.LEAP];import{BlockchainCategories as vi,WalletState as Sg}from"@rango-dev/ui";import{TransactionType as bn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function bl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(bl,"debounce");function vt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(vt,"containsText");function vl(t,e){return t.toLowerCase()===e.toLowerCase()}i(vl,"exactText");function xl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(xl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Uo=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function wl(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:0}i(wl,"compareExactMatchText");function xi(t,e,o){let n=!!e&&vt(e,t),r=!!o&&vt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareContainsText");function wi(t,e,o){let n=!!e&&xl(e,t),r=!!o&&xl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareStartWithText");function El(t,e,o){if(!o)return 0;let n=wl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=wl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r!==0)return r}return 0}i(El,"compareWithSearchFor");var En=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===bn.TRANSFER;case vi.OTHER:return t!==bn.TRANSFER&&t!==bn.COSMOS&&t!==bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Il=i(t=>ki.find(o=>o.value===t)?.url,"getFontUrlByName");function In(t,e){let o=!!t.find(n=>n.state===Sg.CONNECTED);return e===!1&&o}i(In,"isSingleWalletActive");function An(t,e){return e.find(o=>o.name===t)?.displayName}i(An,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"getBlockchainShortNameFor");function Al(t,e){return e.find(o=>o.name===t)?.logo}i(Al,"getBlockchainImage");function Qo(t,e){return e.find(o=>o.id===t)?.title}i(Qo,"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 st(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(st,"createTokenHash");import{BigNumber as Wl}from"bignumber.js";var zo=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 Wl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Wl(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 Wn=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"),qo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Wi(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(Wi,"mapStatusToWalletState");function Ml(t,e,o,n){return o.filter(r=>!Tl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:g,needsDerivationPath:d}=e(r),m=ho(g.map(T=>T.type)),f=Wi(t(r));return{title:a,image:s,link:kg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:d}})}i(Ml,"mapWalletTypesToWalletInfo");function Ln(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ln,"walletAndSupportedChainsNames");function Ll(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(g=>g.chain===p)){let g={address:u,chain:p,walletType:t};a.push(g)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Cg(p),g=l.length>0,d=l.includes(c),m=c===Nl.Unknown;if(g&&!d&&!m)return;let T=c===Nl.Unknown&&xg(u);if(m&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(Ll,"prepareAccountsForWalletStore");function Kt(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 g=u.from.blockchain,d=u.to.blockchain,m=a===o.swaps.length-1,f=c===p.length-1;(!m&&!f||m&&l!==g||e==="all")&&n.add(g),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Kt,"getQuoteWallets");function Bn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Bn,"isAccountAndWalletMatched");function Bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ai(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Bl,"makeBalanceFor");function Pl(t){return{...t,loading:!1,error:!0}}i(Pl,"resetConnectedWalletState");var _l=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||Oe).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Oe)||Oe).toString();return bg(r)},"calculateWalletUsdValue");function bg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(bg,"numberWithThousandSeparator");var Pn=i((t,e)=>{let o=vg(Object.entries(t).map(([,n])=>n).filter(wg));return o&&o[e]?.experimental},"isExperimentalChain");function _n(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(_n,"formatBalance");function Dl(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(Dl,"compareTokenBalance");function Xt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Xt,"areTokensEqual");function $l(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($l,"sortWalletsBasedOnConnectionState");function Dn(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(Dn,"getConciseAddress");function Fl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Fl,"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??Oe).multipliedBy(o?.amount).toString():""},r=o?st({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 Ol=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ul(t){return t.map(e=>e.state).join("-")}i(Ul,"hashWalletsState");function Ql(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(Ql,"filterBlockchainsByWalletTypes");function zl(t,e){return e===Tg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(En(n,e))return!0;return!1})}i(zl,"filterWalletsByCategory");var Ni={API_KEY:wn};function xt(t){return Ni[t]||""}i(xt,"getConfig");function ql(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ni=e,Ni}i(ql,"initConfig");var Hl=20,Gl=25,Mi="theme-widget",Li=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Xt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Xt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Bi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Vl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Fn,_t=i(()=>Fn||(Fn=new Eg(xt("API_KEY"),xt("BASE_URL")),Fn),"httpService");import{WidgetEvents as Kl}from"@rango-dev/queue-manager-rango-preset";var Pi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Pi||{}),_i=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(_i||{}),Di=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Di||{}),yo=(a=>(a[a.RouteEvent=Kl.RouteEvent]="RouteEvent",a[a.StepEvent=Kl.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(yo||{});var Ig=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"),Dt=Ig;var oe=Dt(Ag()(Wg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{Ce.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)&&Ce.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=>Bn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(T=>Bn(T,d)),f=p.find(T=>T.address===d.address&&T.blockChain===d.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Bl(f,n),loading:!1}:d});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(g=>Bn(g,c))?Pl(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=st(o);return n[r]??null}}))));import{allProviders as Ng}from"@rango-dev/provider-all";function On(t,e){let o=Ng({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(On,"matchAndGenerateProviders");function Xl(t,e){return On(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function jl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(jl,"hashProviders");function $i(t,e){let o=oe.use.clearConnectedWallet(),n=On(t,e);return Mg(()=>{o(),n=On(t,e)},[jl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i($i,"useWalletProviders");import Zg,{createContext as Jg,useContext as Rg,useEffect as eh,useRef as th}from"react";import{create as jg}from"zustand";import{persist as Yg}from"zustand/middleware";var Fi=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},So=new Fi;function Ho(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=st(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=st(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(Ho,"matchTokensFromConfigWithMeta");var Oi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Lg={clientUrl:void 0},Bg={liquiditySources:void 0},Yl=i((t,e,o)=>({config:{...Oi,...t},iframe:Lg,campaignMode:Bg,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,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=Ho({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Ho({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});So.set("supportedSourceTokens",l),So.set("supportedDestinationTokens",p),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 Un(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(Un,"getUniqueSwappersGroups");function Zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Zl,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function Jl(t,e){return e?.[t]==="enabled"}i(Jl,"isFeatureEnabled");var Rl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_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{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",c=So.get(u);c||(c=Ho({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),So.set(u,c));let g=e().blockchains({type:o.type});return c.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(vt(m.symbol,o.searchFor)||vt(m.address||"",o.searchFor)||vt(m.name||"",o.searchFor)):!0).sort((m,f)=>{let T=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(T!==S)return T?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),M=o.getBalanceFor(f),w=Dl(b,M);if(w!==0)return w}let y=l.get(m.blockchain),C=l.get(f.blockchain),v=Ii(m,y),x=Ii(f,C);if(v!==x)return v?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=El(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:y&&C?y.sort-C.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=st(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Xt(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(Zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,u=n.swappers,c=new Set;n.tokens.forEach(d=>{c.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&c.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=st(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Pg,English as _g,Finland as Dg,French as $g,German as Fg,Greece as Og,Italian as Ug,Japanese as Qg,Netherlands as zg,Poland as qg,Portuguese as Hg,Russian as Gg,Spanish as Vg,Swedish as Kg,Ukrainian as Xg}from"@rango-dev/ui";var ep=[{title:"English",label:"English",local:"en",SVGFlag:_g},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Vg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:$g},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Qg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Hg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Pg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Gg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Fg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Xg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Kg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Dg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:zg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Og},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Ug},{title:"Polish",label:"Polski",local:"pl",SVGFlag:qg}],To="en";var tp=[.5,1,3],op=1,np=5,rp=100,ip=0;var ap=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:op,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=Re("theme",n),s=Re("language",n),l=Re("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||To},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||To}})}}),"createSettingsSlice");function sp(t){return jg()(Yg((...e)=>({...Rl(...e),...ap(...e),...Yl(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(sp,"createAppStore");var lp=Jg(null);function h(){let t=Rg(lp);if(eh(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function pp(t){let e=th();return e.current||(e.current=sp(t.config)),Zg.createElement(lp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");import{create as nh}from"zustand";var cp="rango-widget";var Go=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.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.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(cp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}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}}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 le=Dt(nh()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),jt=new Go({onInit:()=>le.setState({tabManagerInitiated:!0}),onClaim:()=>le.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>le.setState({isActiveTab:!1})});var zn=ah({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function lh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=$i(l.wallets,p),{connectWallet:c,disconnectWallet:g}=oe(),d=dp(),m=dp();mp(()=>{n().catch(console.log)},[]),mp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(ih).map(C=>C.name),T=i((C,v,x,b,M)=>{if(v===Qi.ACCOUNTS)if(x){let w=Ln(M.supportedBlockchains),k=Ll(C,x,f,w,M.isContractWallet);k.length&&c(k,s)}else g(C),m.current?m.current(C):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(v===Qi.ACCOUNTS&&b.connected){let w=`${C}-${b.network}-${x}`;b.connected&&(d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(v===Qi.NETWORK&&b.network){let w=`${C}-${b.network}`;d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(C,v,x,b,M)},"onUpdateState"),S=le.use.isActiveTab(),y=sh(()=>({onConnectWallet:C=>{d.current=C},onDisconnectWallet:C=>{m.current=C}}),[]);return Qn.createElement(zn.Provider,{value:y},Qn.createElement(rh,{allBlockChains:a,providers:u,onUpdateState:T,autoConnect:!!S},t.children))}i(lh,"Main");function qn(t){let{config:e,...o}=t;return Qn.createElement(pp,{config:e},Qn.createElement(lh,{...o,config:e}))}i(qn,"WidgetWallets");import Ci from"react";import ph,{Fragment as ch}from"react";import{MemoryRouter as uh,useInRouterContext as mh}from"react-router";function fp({children:t}){let o=mh()?ch:uh;return ph.createElement(o,null,t)}i(fp,"AppRouter");import{I18nManager as Wx}from"@rango-dev/ui";import dl from"react";import Ke from"react";import{useRoutes as gx}from"react-router-dom";var H={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 vo,useRef as er}from"react";import Qe from"bignumber.js";import{create as gh}from"zustand";import{subscribeWithSelector as hh}from"zustand/middleware";import{getLastSuccessfulStep as fh}from"@rango-dev/queue-manager-rango-preset";import gI from"bignumber.js";function zi(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(zi,"getFeeLabel");var qi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],gp=30;import{i18n as lt}from"@lingui/core";import{RouteEventType as RE}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Vn}from"rango-types";function Hn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Hn,"isValidAddress");import{i18n as $e}from"@lingui/core";var ne=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function hp(t){switch(t.type){case 0:return t.diagnosisMessage??ne().noResultError.title;case 1:return ne().genericServerError;default:return""}}i(hp,"getQuoteErrorMessage");import{i18n as Gn}from"@lingui/core";var Yt=i(()=>({connectWallet:Gn.t("Connect Wallet"),swap:Gn.t("Swap"),swapAnyway:Gn.t("Swap anyway"),ethWarning:Gn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function yp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Ue(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Ue(1e3)))??!1}i(yp,"hasHighValueLoss");function Sp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Sp,"hasLimitError");function Tp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(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 Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=lt.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=lt.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=lt.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=lt.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Tp,"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:Yt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Yt().swap,action:"confirm-swap",disabled:!0}:s?{title:Yt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Yt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Yt().swap,action:"confirm-swap",disabled:!1}:{title:Yt().connectWallet,action:"connect-wallet",disabled:!1}}i(Cp,"getSwapButtonState");function Hi(t,e,o){return!((!o||o.lte(Oe))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Hi,"canComputePriceImpact");function Gi(t,e){let o=Oe;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 Ue(r.amount).multipliedBy(a||0))}return o}i(Gi,"getUsdFeeOfStep");function Kn(t,e){return t.reduce((o,n)=>o.plus(Gi(n,e)),Oe)}i(Kn,"getTotalFeeInUsd");function Vi(t){let e=Oe;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Vi,"getUsdFee");function kp(t){return t.reduce((e,o)=>e.plus(Vi(o)),Oe)}i(kp,"getTotalFeesInUsd");function vp(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(vp,"getFeesGroup");function xp(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(xp,"checkSlippageErrors");function wp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(wp,"checkSlippageWarnings");function 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 bp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bp,"hasProperSlippage");function Ep(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,T=a?.reduce((C,v)=>(C[v.chain]=v.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:g??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:T??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Ep,"createQuoteRequestBody");function Ip(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ip,"getWalletsForNewSwap");function Co(t){return t?.outputAmount||null}i(Co,"getQuoteOutputAmount");function Ap(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(100).toNumber()}i(Ap,"getPercentageChange");function Wp(t,e){let o=Co(t),n=Co(e);if(!o||!n)return!1;let r=et(o,n);return r?r<=-1:!0}i(Wp,"isOutputAmountChangedALot");function Np(t,e,o){let n=t.validationStatus,r=Kt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Dp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=lt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=lt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=lt.t(" for input and network fee")),lt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Je(s.asset.blockchain,o)}})})}i(Np,"generateBalanceWarnings");function jn(t,e){return(t?new Ue(t):Oe).multipliedBy(e||0)}i(jn,"calcOutputUsdValue");function Vo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Vn.NetworkChanged}i(Vo,"isNetworkStatusInWarningState");function Mp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Vo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Vn.WaitingForConnectingWallet:n=n||lt.t("Waiting for connecting wallet");break;case Vn.WaitingForQueue:n=n||lt.t("Waiting for other running tasks to be finished");break;case Vn.WaitingForNetworkChange:n=n||lt.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(Mp,"getSwapMessages");function Lp(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(Lp,"getLastConvertedTokenInFailedSwap");function Bp(t){return t.status==="failed"}i(Bp,"shouldRetrySwap");function Pp(t,e,o,n,r,a){if(!n||t)return!0;let s=Kt({filter:"all",quote:n}),l=Kt({filter:"required",quote:n}),p=s.every(g=>r.some(d=>d.chain===g)),u=l.every(g=>r.some(d=>d.chain===g)),c=o&&a?Hn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Pp,"isConfirmSwapDisabled");function _p(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(_p,"isTokensIdentical");function Zn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Zn,"getQuoteToTokenUsdPrice");function Ki(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ki,"isNumberOfSwapsChanged");function Xi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Xi,"isQuoteSwappersUpdated");function ji(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(ji,"isQuoteInternalCoinsUpdated");function Fp(t,e){return Ki(t,e)||Xi(t,e)||ji(t,e)}i(Fp,"isQuoteChanged");function Dp(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(Dp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function Jn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=fh(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),g=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:g}}i(Jn,"createRetryQuote");function ko(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Zt(o,t.requestAmount),l=Zt(n,t?.outputAmount??"");if(t&&s&&l){let c=et(s.toString(),l.toString());if(!!c&&yp(s,c)){let d=Kn(t?.swaps,r),m=wt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>np;if(bp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:wp(t,a),minRequiredSlippage:p};return null}i(ko,"generateQuoteWarnings");function et(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ap(t.toString(),e.toString());return n&&n<0?n:null}i(et,"getPriceImpact");var Op=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"),Rn=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"),Up=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"),Qp=i(t=>{let e=i((o,n)=>{let r=qi.indexOf(o.value),a=qi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Zt=i((t,e)=>t?.usdPrice?new Qe(e||Oe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),G=Dt(gh()(hh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Qe(0),outputUsdValue:new Qe(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=Oe;return qo(o.inputAmount)?(e&&(n=e?.outputAmount?new Qe(e?.outputAmount):null,r=jn(e?.outputAmount,Zn(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 Qe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Qe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Qe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Zt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Qe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Qe(0),outputUsdValue:new Qe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Zt(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:Zt(n??null,s),outputUsdValue:new Qe(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?Zt(e.toToken,e.outputAmount?.toString()||""):new Qe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Qe(0),inputUsdValue:new Qe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Qe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zp=G.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.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&&Ce.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 qp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=G(),c=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:T,setAffiliatePercent:S,setAffiliateWallets:y}=h(),C=c?.from?.tokens,v=c?.from?.blockchains,x=c?.to?.tokens,b=c?.to?.blockchains,M=er(void 0),w=er(void 0),k=er(void 0),E=er(void 0);vo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),L=c?.from?.token,q=L&&f(L);(A||!A&&k.current)&&n(A??null),q?a({token:q,meta:{blockchains:d,tokens:m}}):!q&&M.current&&a({token:null}),k.current=c?.from?.blockchain,M.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,g]),vo(()=>{Li(s,C)&&a({token:null}),Bi(p,v)&&n(null)},[C,v]),vo(()=>{Li(l,x)&&a({token:null}),Bi(u,b)&&o(null)},[x,b]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),L=c?.to?.token,q=L&&f(L);(A||!A&&E.current)&&o(A??null),q?e({token:q,meta:{blockchains:d,tokens:m}}):!q&&w.current&&e({token:null}),E.current=c?.to?.blockchain,w.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,g]),vo(()=>{T(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(qp,"useSyncStoresWithConfig");import{useEffect as Ji,useRef as yh}from"react";import{useInRouterContext as Sh,useLocation as Th,useSearchParams as Ch}from"react-router-dom";function Yi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Yi,"convertTokenSearchParamToAsset");function Zi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Zi,"tokenToSearchParam");function Ri(){let t=Th(),[e,o]=Ch(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:g,setInputAmount:d}=G(),m=h().fetchStatus,f=h().blockchains(),T=h().tokens(),S=Sh(),{updateIframe:y,updateCampaignMode:C}=h(),v=h().isInCampaignMode(),x=yh(),{findToken:b}=h(),M=i(()=>{let k={};for(let[D,j]of e.entries())D.startsWith("utm_")&&(k[D]=j);let E=e.get("fromAmount"),A=e.get("fromBlockchain"),L=e.get("fromToken"),q=e.get("toBlockchain"),I=e.get("toToken"),Q=e.get("autoConnect"),te=e.get("clientUrl"),P=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:A,fromToken:L,toBlockchain:q,toToken:I,autoConnect:Q,clientUrl:te,liquiditySources:P,utmQueryParams:k}},"getUrlSearchParams"),w=i(k=>{for(let E in k)k[E]||delete k[E];o(k,{replace:!0})},"updateUrlSearchParams");Ji(()=>{let{autoConnect:k,clientUrl:E,utmQueryParams:A}=M();S&&m==="success"&&w({fromBlockchain:n?.name,fromToken:Zi(a),toBlockchain:r?.name,toToken:Zi(s),fromAmount:l,autoConnect:k??void 0,clientUrl:E??void 0,liquiditySources:v?x.current:void 0,...A})},[t.pathname,l,n,a,r,s,v]),Ji(()=>{if(!S)return;let k=M();if(!x.current&&k.liquiditySources&&(x.current=k.liquiditySources),k.fromAmount&&d(k.fromAmount),m==="success"){let E=f.find(I=>I.name===k.fromBlockchain),A=k.fromToken&&E?b(Yi(k.fromToken,E)):void 0,L=f.find(I=>I.name===k.toBlockchain),q=k.toToken&&L?b(Yi(k.toToken,L)):void 0;E&&(p(E),A&&c({token:A,meta:{blockchains:f,tokens:T}})),L&&(u(L),q&&g({token:q,meta:{blockchains:f,tokens:T}}))}},[m]),Ji(()=>{let{clientUrl:k,liquiditySources:E}=M();y("clientUrl",k||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Ri,"useSyncUrlAndStore");import{i18n as rs}from"@lingui/core";import{useManager as YT}from"@rango-dev/queue-manager-react";import{Alert as bm,Button as ZT,css as as,Divider as is,IconButton as Em,styled as JT,Typography as RT,WalletIcon as eC}from"@rango-dev/ui";import We,{useEffect as zr,useLayoutEffect as tC,useRef as oC,useState as sn}from"react";import{useNavigate as nC}from"react-router-dom";import{i18n as ao}from"@lingui/core";import{Alert as nu,BalanceErrors as OS,Button as ru,ChevronLeftIcon as US,Divider as kr,MessageBox as QS,Typography as $a}from"@rango-dev/ui";import J,{useCallback as zS,useEffect as iu,useMemo as qS,useState as so}from"react";import{useNavigate as HS}from"react-router-dom";import{i18n as tr}from"@lingui/core";function or(t){switch(t.type){case 0:return tr.t("Route has been updated.");case 3:return tr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return tr.t("Route swappers has been updated.");case 2:return tr.t("Route internal coins has been updated.");default:return""}}i(or,"getQuoteUpdateWarningMessage");import{Modal as vh}from"@rango-dev/ui";import xh from"react";function re(t){let{watermark:e}=le();return xh.createElement(vh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import{i18n as na}from"@lingui/core";import{Alert as Ah,ChevronDownIcon as Wh,CloseIcon as Nh,Divider as Zp,IconButton as Jp,PasteIcon as Mh,Typography as Lh,WalletIcon as Bh}from"@rango-dev/ui";import Le,{useEffect as Ph,useRef as _h}from"react";import ar,{useRef as Eh}from"react";import*as xo from"@radix-ui/react-collapsible";import{keyframes as Gp,styled as nr}from"@rango-dev/ui";var ea=300,wh=Gp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),bh=Gp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Vp=nr(xo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ta=nr(xo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),rr=nr(xo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${wh} ${ea}ms ease-out`},false:{animation:`${bh} ${ea}ms ease-out`}}}}),ir=nr("div",{transition:`all ${ea}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function sr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Eh(null);return ar.createElement(Vp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ar.createElement(ta,{className:"collapsible_trigger",onClick:a},s),ar.createElement(rr,{className:"collapsible_content",open:e},r),l==="bottom"&&ar.createElement(ta,{className:"collapsible_trigger",onClick:a},s))}i(sr,"CustomCollapsible");import{darkTheme as Kp,styled as oa,TextField as Ih}from"@rango-dev/ui";var Xp=oa("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),jp=oa(Ih,{backgroundColor:"$neutral100",padding:"$15"}),Yp=oa("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Kp} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Kp} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Rp(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=G(),{config:s}=h(),l=h().blockchains(),p=An(e.name,l),u=_h(null),c=s?.defaultCustomDestinations?.[e.name],g=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Hn(e,r),f=i(()=>{a("")},"handleClear"),T=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),u?.current?.focus()}},"handlePaste"),S=i(()=>r?Le.createElement(Jp,{onClick:f,variant:"ghost"},Le.createElement(Nh,{size:12,color:"gray"})):g?null:Le.createElement(Jp,{onClick:T,variant:"ghost"},Le.createElement(Mh,{size:16})),"renderSuffix");return Ph(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Le.createElement(Xp,null,Le.createElement(sr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(Yp,null,Le.createElement("div",{className:"button__content"},Le.createElement(Bh,{size:18,color:"info"}),Le.createElement(Zp,{size:4,direction:"horizontal"}),Le.createElement(Lh,{variant:"label",size:"medium",color:n?"$neutral600":void 0},na.t("Send to a different address"))),Le.createElement(ir,{orientation:n?"up":"down"},Le.createElement(Wh,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(jp,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:na.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),m&&Le.createElement(Le.Fragment,null,Le.createElement(Zp,{size:4}),Le.createElement(Ah,{variant:"alarm",type:"error",title:na.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Rp,"CustomDestination");import{css as Dh,darkTheme as ra,IconButton as $h,styled as bt}from"@rango-dev/ui";var ec=bt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),tc=bt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fh=bt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ra} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ra} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ra} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),oc=bt(Fh,{alignSelf:"stretch",minHeight:"93px"}),nc=bt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),rc=bt($h,{position:"absolute",left:"$20"}),ic=bt("div",{paddingTop:"$20"}),ac=Dh({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),sc=bt("div",{display:"flex"}),lc=bt("div",{overflow:"visible",width:"100%"});import{i18n as pt}from"@lingui/core";import{Button as _S,Divider as _a,Image as DS,MessageBox as Tr,SelectableWallet as $S,Typography as eu,WalletState as tu}from"@rango-dev/ui";import me,{useEffect as ou,useState as io}from"react";import{WalletState as ia}from"@rango-dev/ui";import{useWallets as Oh}from"@rango-dev/wallets-react";import{detectMobileScreens as Uh,KEPLR_COMPATIBLE_WALLETS as Qh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as zh,useEffect as qh,useState as Hh}from"react";var Gh=Object.values(wo);function Jt(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=Oh(),{connectedWallets:c}=oe(),g=h().blockchains(),d=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Gh,m=Ml(s,p,d,e);m=Uh()?m.filter(w=>w.showOnMobile!==!1&&s(w.type).installed):m;let f=$l(m),[T,S]=Hh(""),y=i(w=>!c.find(k=>k.walletType===w&&k.chain===e),"isExperimentalChainNotAdded"),C=i(async(w,k)=>{let E=s(w);try{if(T&&S(""),E.connected)await l(w);else{if(In(m,a.multiWallets))return;o?.(w),await u(w,void 0,k),n?.(w)}}catch(A){r?.(A?.message),S("Error: "+A?.message)}},"handleClick"),v=zh(()=>{let w=m?.filter(k=>k.state===ia.CONNECTING)||[];for(let k of w)l(k.type)},[Ul(m)]),x=i(async w=>{s(w).connected&&await l(w)},"disconnectWallet");qh(()=>()=>{v()},[]);let b=i(w=>{let k=w.find(A=>A.type===wo.DEFAULT);return!k||k.state===ia.NOT_INSTALLED?!1:w.filter(A=>A.state!=ia.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(A.type)&&p(A.type).supportedChains.filter(L=>L.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),M=i((w,k,E)=>Pn(E,k)&&y(w)&&!Qh.includes(w)||w==wo.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(w=>!M(w.type,e??"",g)),error:T,handleClick:C,disconnectConnectingWallets:v,disconnectWallet:x}}i(Jt,"useWalletList");import{i18n as Kc}from"@lingui/core";import{Divider as ES,getCategoriesCount as IS,SelectableCategoryList as AS,styled as jc,Typography as WS,Wallet as NS,WalletState as Xc}from"@rango-dev/ui";import nt,{useState as jo}from"react";import{useManager as Yy}from"@rango-dev/queue-manager-react";import{BottomLogo as Zy,Divider as Pc,Header as Jy}from"@rango-dev/ui";import xe,{useEffect as Ia,useRef as _c,useState as Ry}from"react";import{useRef as Vh}from"react";function lr(){return window.self!==window.top}i(lr,"isAppLoadedIntoIframe");function aa(){let t=Vh(null),{iframe:e}=h(),o=lr()&&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(aa,"useIframe");import{useNavigate as Kh}from"react-router-dom";function tt(){let t=Kh();return()=>t(-1)}i(tt,"useNavigateBack");import{createTheme as da,darkTheme as sy,lightTheme as ly}from"@rango-dev/ui";import{useEffect as py,useState as cy}from"react";import{theme as iy,darkColors as ay}from"@rango-dev/ui";import ua from"react";function Xh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Xh,"expandShortHexColor");function jh(t){return/[0-9]+$/.test(t)}i(jh,"isOverridingColor");function Yh(t,e){return t.padStart(e,"0")}i(Yh,"pad");function sa(t){let e=Math.min(Math.max(Math.round(t),0),255);return Yh(e.toString(16),2)}i(sa,"intToHex");function Zh(t){return`#${sa(t.red)}${sa(t.green)}${sa(t.blue)}`}i(Zh,"rgbToHex");function Jh(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(Jh,"hexToRGB");function Rh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Rh,"generateShade");function ey(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(ey,"generateTint");function ty(t){return pc(t,Rh)}i(ty,"calculateShades");function oy(t){return pc(t,ey)}i(oy,"calculateTints");function pc(t,e){let o=Jh(t),n=[];for(let r=1;r<9;r++)n.push(Zh(e(o,r)));return n}i(pc,"calculateColors");function la(t,e,o){let a=oy(t).reverse().concat(t),s=ty(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let g=100+(o?u-1-c:c)*50;p[`${e}${g}`]=l[c]}return p}i(la,"createTintsAndShades");function pa(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)&&!jh(r)){let p=Xh(a);Object.assign(n,la(p,r,s))}}return{...n,...e}}i(pa,"expandToGenerateThemeColors");var cc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),ny=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=cc(o%52)+e;return cc(o%52)+e},"toAlphabeticName"),ry=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ca=i(t=>ny(ry(5381,JSON.stringify(t))>>>0),"toHash");function ma(t){let e=iy.colors,o={...e,...ay},n,r;if(t?.light){let s={colors:pa(e,t.light)};n={id:`${Mi}-light-${ca(s)}`,tokens:s}}if(t?.dark){let s={colors:pa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Mi}-dark-${ca(s)}`,tokens:s}}return{light:n,dark:r}}i(ma,"customizedThemeTokens");function uc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ua.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ua.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ua.cloneElement(e,{key:l}))}}),o}i(uc,"joinList");function mc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(mc,"doesWindowPreferDarkColorScheme");function pr(t){let{colors:e,fontFamily:o=Sl,borderRadius:n=Hl,secondaryBorderRadius:r=Gl}=t,[a,s]=cy(mc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=ma(e),c=da({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[c.className,ly.className],d=[c.className,sy.className];if(u){let f=da(u.id,u.tokens);g.push(f.className)}if(p){let f=da(p.id,p.tokens);d.push(f.className)}return py(()=>{let f=i(T=>{T.matches?s("dark"):s("light")},"switchThemeListener");return mc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=g.join(" "),T=d.join(" ");return l==="auto"?a==="dark"?T:f:l==="dark"?T:f},"getActiveTheme")}}i(pr,"useTheme");var ot=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 dc}from"@lingui/core";import{Alert as uy,Button as my}from"@rango-dev/ui";import fc from"react";function fa(t){return fc.createElement(uy,{action:fc.createElement(my,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},dc.t("Activate this tab")),type:"warning",variant:"alarm",title:dc.t("Another tab is open and handles transactions.")})}i(fa,"ActivateTabAlert");import{i18n as ga}from"@lingui/core";import{Button as dy,Divider as fy,MessageBox as gy}from"@rango-dev/ui";import cr from"react";function ha(t){let{open:e,onClose:o,onConfirm:n}=t;return cr.createElement(re,{open:e,dismissible:!0,onClose:o,container:B()},cr.createElement(gy,{title:ga.t("Activate current tab"),type:"warning",description:ga.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.")},cr.createElement(fy,{size:20}),cr.createElement(dy,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ga.t("Confirm"))))}i(ha,"ActivateTabModal");import{ChevronLeftIcon as Sy}from"@rango-dev/ui";import kc from"react";import{css as hy,darkTheme as gc,IconButton as yy,styled as Rt}from"@rango-dev/ui";var yt=Rt(yy,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${gc} &`]:{backgroundColor:"$neutral"}}}),hc=Rt("div",{position:"absolute",background:"$secondary500",[`.${gc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),bo=Rt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),yc=Rt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Sc=Rt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Tc=Rt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Cc=hy({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ur=Rt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ya(t){return kc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},kc.createElement(Sy,{color:"black",size:16}))}i(ya,"BackButton");import{i18n as Ty}from"@lingui/core";import{Button as Cy,Typography as ky}from"@rango-dev/ui";import Sa from"react";function Ta(t){return Sa.createElement(bo,null,Sa.createElement(Cy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Sa.createElement(ky,{variant:"label",size:"medium",color:"error500"},Ty.t("Cancel"))))}i(Ta,"CancelButton");import{i18n as vy}from"@lingui/core";import{Image as xy,Tooltip as wy,WalletIcon as by}from"@rango-dev/ui";import eo from"react";function Ca(t){let{list:e}=Jt({}),o=e.filter(r=>r.state==="connected"),n=o.length?eo.createElement("div",{className:Cc()},o.map(r=>eo.createElement(ur,{key:r.title},eo.createElement(xy,{src:r.image,size:14})))):vy.t("Connect Wallet");return eo.createElement(wy,{container:t.container,side:"bottom",content:n},eo.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&eo.createElement(hc,null),eo.createElement(by,{size:18,color:"black"})))}i(Ca,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as Qy,Popover as zy,SettingsIcon as qy,Tooltip as fr,TransactionIcon as Hy}from"@rango-dev/ui";import Be from"react";import{Notifications as Wy}from"@rango-dev/ui";import Ny from"react";import{useNavigate as My}from"react-router-dom";import{create as Ey}from"zustand";import{persist as Iy,subscribeWithSelector as Ay}from"zustand/middleware";var Ee=Dt(Ey()(Iy(Ay((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:{creationTime:parseInt(n.creationTime),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)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.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 ka(){let t=My(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h();return Ny.createElement(Wy,{list:n,getBlockchainImage:l=>Al(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${H.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ka,"NotificationContent");import{useManager as Ly}from"@rango-dev/queue-manager-react";import{InProgressIcon as By}from"@rango-dev/ui";import vc from"react";var Py=i(()=>{let{manager:t}=Ly();return ot(t).map(({swap:o})=>o).find(o=>o.status==="running")?vc.createElement(Tc,null,vc.createElement(By,{color:"info",size:6})):null},"InProgressTransactionBadge"),xc=Py;import{EventSeverity as _y}from"@rango-dev/queue-manager-rango-preset";import{Typography as Dy}from"@rango-dev/ui";import wc from"react";function bc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===_y.WARNING);return o?wc.createElement(yc,{isSever:n},wc.createElement(Dy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(bc,"NotificationsBadge");import{RefreshProgressButton as $y}from"@rango-dev/ui";import va,{useEffect as Fy,useState as Ec}from"react";var Oy=1e3,Ic=60,Uy=100;function mr({onClick:t}){let[e,o]=Ec(0),[n,r]=Ec(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Fy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},Oy):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 va.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},va.createElement(Sc,{onTransitionEnd:()=>r(!1),isRefetched:n},va.createElement($y,{size:22,color:t?"black":"gray",progress:e/Ic*Uy})))}i(mr,"RefreshButton");function to(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Re("notification",s)||r.includes("notifications");return Be.createElement(Be.Fragment,null,!r.includes("refresh")&&Be.createElement(fr,{container:a||B(),side:"top",content:dr.t("Refresh")},Be.createElement(mr,{onClick:e})),!l&&Be.createElement(zy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Be.createElement(ka,null)},Be.createElement("div",null,Be.createElement(fr,{container:B(),side:"top",content:dr.t("Notifications")},Be.createElement(yt,{size:"small",variant:"ghost"},Be.createElement(Qy,{size:18,color:"black"}),Be.createElement(bc,null))))),!r.includes("settings")&&Be.createElement(fr,{container:B(),side:"top",content:dr.t("Settings")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:n},Be.createElement(qy,{size:18,color:"black"}))),!r.includes("history")&&Be.createElement(fr,{container:B(),side:"top",content:dr.t("Transactions History")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:o},Be.createElement(Hy,{size:18,color:"black"}),Be.createElement(xc,null))))}i(to,"HeaderButtons");import{i18n as xa}from"@lingui/core";import{Divider as Wc,MessageBox as Ky,RefreshIcon as Xy}from"@rango-dev/ui";import Eo from"react";import{Button as Gy,styled as Vy}from"@rango-dev/ui";var Ac=Vy(Gy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wa(t){let{open:e,onClose:o}=t;return Eo.createElement(re,{open:e,dismissible:!0,onClose:o,container:B()},Eo.createElement(Ky,{title:xa.t("Something went wrong"),type:"error",description:xa.t("Something went wrong. Please refresh the app.")},Eo.createElement(Wc,{size:30}),Eo.createElement(Ac,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Eo.createElement(Xy,{size:20,color:"primary"}),Eo.createElement(Wc,{size:4,direction:"horizontal"}),xa.t("Refresh"))))}i(wa,"RefreshModal");function ba(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ba,"onScrollContentAttachStatusToContainer");import{css as jy,styled as Ea}from"@rango-dev/ui";var Nc="700px",gr=jy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Mc=Ea("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Lc=Ea("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Bc=Ea("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 ue(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=aa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Ry(!1),c=oe.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=le(),f=m==="FULL",{activeTheme:T}=pr(d||{}),S=Re("connectWalletButton",g),{isActiveTab:y,tabManagerInitiated:C,showActivateTabModal:v,setShowActivateTabModal:x,activateCurrentTab:b}=le(),M=tt(),{manager:w}=Yy(),E=ot(w).map(({swap:te})=>te).some(te=>te.status==="running"),A=i(()=>b(jt.forceClaim,E),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),q=typeof r.hasBackButton>"u"||r.hasBackButton,I=_c(null),Q=_c(null);return Ia(()=>(lr()&&Q.current&&e(Q.current),()=>{o()}),[]),Ia(()=>(I.current?.addEventListener("scroll",ba),()=>{I.current?.removeEventListener("scroll",ba)}),[]),Ia(()=>{u(l==="failed")},[l]),xe.createElement(Mc,{height:s,id:Se.SWAP_BOX_ID,className:`${T()} ${gr()}`,ref:Q},xe.createElement(Jy,{prefix:xe.createElement(xe.Fragment,null,q&&xe.createElement(ya,{onClick:()=>{M(),r.onBack&&r.onBack()}})),title:r.title,suffix:xe.createElement(xe.Fragment,null,r.suffix,r.onWallet&&!S&&xe.createElement(Ca,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&xe.createElement(Ta,{onClick:r.onCancel}))}),xe.createElement(Lc,{ref:I},n),xe.createElement(ha,{open:v,onClose:()=>x(!1),onConfirm:A}),xe.createElement(Bc,null,xe.createElement("div",{className:"footer__content"},C&&!y&&xe.createElement("div",{className:"footer__alert"},xe.createElement(fa,{onActivateTab:A}),xe.createElement(Pc,{size:10})),a),xe.createElement(Pc,{size:12}),xe.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},xe.createElement(Zy,null))),xe.createElement(wa,{open:p,onClose:()=>u(!1)}))}i(ue,"Layout");import{styled as eS}from"@rango-dev/ui";var Dc="$20 $20 $10 $20",Ko=eS("div",{padding:Dc,overflowY:"auto",flexGrow:1});import{styled as tS}from"@rango-dev/ui";var he=tS("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Wo}from"@lingui/core";import{Button as iS,Divider as Oc,Image as aS,MessageBox as sS,Select as lS,TextField as pS}from"@rango-dev/ui";import{namespaces as cS}from"@rango-dev/wallets-shared";import Ge,{useEffect as uS,useState as Uc}from"react";import{keyframes as oS,styled as hr}from"@rango-dev/ui";var eM=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Io=hr("div",{position:"relative"}),nS=oS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ao=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${nS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yr=hr("div",{"& img":{borderRadius:"50%"}});import{styled as $c,Typography as rS}from"@rango-dev/ui";var Fc=$c("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Aa=$c(rS,{paddingLeft:"$10"}),Wa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var zc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Qc(t){let e=t?cS[t].derivationPaths:null;return e?[...e,zc]:[]}i(Qc,"getDerivationPaths");function oo(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Uc(null),[u,c]=Uc("0"),g=l===zc.id,d=Qc(n),m=i(({value:T})=>{let S=d?.find(y=>y.id===T);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let T=d.find(S=>S.id===l);if(T)o(T.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return uS(()=>{p(Qc(n)[0]?.id||null)},[n]),Ge.createElement(re,{open:s,onClose:e,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Ge.createElement(Oc,{size:20}),Ge.createElement(sS,{type:"info",title:Wo.t("Select Derivation Path"),description:Wo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:Ge.createElement(Io,null,Ge.createElement(yr,null,Ge.createElement(aS,{src:r,size:45})),Ge.createElement(Ao,null))}),Ge.createElement(Fc,null,Ge.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},Wo.t("Choose Derivation Path Template")),Ge.createElement(lS,{value:l||"",options:d.map(T=>({value:T.id,label:T.label})),variant:"filled",handleItemClick:m,styles:{trigger:Wa}}),Ge.createElement(Oc,{size:20}),Ge.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},g?Wo.t("Enter Path"):Wo.t("Enter Index")),Ge.createElement(pS,{type:g?"text":"number",variant:"contained",value:u,onChange:T=>c(T.target.value),style:Wa})),Ge.createElement(iS,{type:"primary",onClick:f,disabled:!d||!l||!u},Wo.t("Confirm")))}i(oo,"WalletDerivationPathModal");import{Divider as fS}from"@rango-dev/ui";import Ma from"react";import{i18n as No}from"@lingui/core";import{Image as mS,MessageBox as Na,WalletState as dS}from"@rango-dev/ui";import no from"react";function qc(t){let{state:e,image:o,error:n}=t;return e===dS.CONNECTED?no.createElement(Na,{type:"success",title:No.t("Wallet Connected"),description:No.t("Your wallet is connected, you can use it to swap.")}):n?no.createElement(Na,{type:"error",title:No.t("Failed to Connect"),description:n||No.t("Your wallet is not connected. Please try again.")}):no.createElement(Na,{type:"loading",title:No.t("Connecting to your wallet"),description:No.t("Click connect in your wallet popup."),icon:no.createElement(Io,null,no.createElement(yr,null,no.createElement(mS,{src:o,size:45})),no.createElement(Ao,null))})}i(qc,"ModalContent");function Xo(t){let{open:e,onClose:o,...n}=t;return Ma.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Ma.createElement(qc,{...n}),Ma.createElement(fS,{direction:"vertical",size:32}))}i(Xo,"WalletModal");import{i18n as La}from"@lingui/core";import{Button as hS,Checkbox as yS,Divider as SS,Image as Gc,ListItemButton as TS,MessageBox as CS,Radio as kS,RadioRoot as vS}from"@rango-dev/ui";import{namespaces as Vc}from"@rango-dev/wallets-shared";import Pe,{useMemo as xS,useState as wS}from"react";import{styled as gS}from"@rango-dev/ui";var Hc=gS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var bS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function ro(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=wS([]),a=h().blockchains(),s=xS(()=>o?.map(u=>({name:u,logo:bS(a,Vc[u].mainBlockchain),title:Vc[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(g=>g!==u):c.concat(u))},"onSelect"),p=i(u=>e?Pe.createElement(vS,{value:n?.[0]},u):Pe.createElement(Pe.Fragment,null,u),"wrapRadioRoot");return Pe.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Pe.createElement(SS,{size:20}),Pe.createElement(CS,{type:"info",title:La.t("Select chain types"),description:La.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Pe.createElement(Io,null,Pe.createElement(ur,null,Pe.createElement(Gc,{src:t.image,size:45})),Pe.createElement(Ao,null))}),Pe.createElement(Hc,null,p(Pe.createElement(Pe.Fragment,null,s?.map(u=>Pe.createElement(TS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Pe.createElement(Gc,{src:u.logo,size:22}),end:e?Pe.createElement(kS,{value:u.name}):Pe.createElement(yS,{checked:n.includes(u.name)})}))))),Pe.createElement(hS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},La.t("Confirm")))}i(ro,"WalletNamespacesModal");var MS=jc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),LS=jc(he,{textAlign:"center"}),Sr=3e3,Ba=300;function Yc(){let{fetchStatus:t}=h(),[e,o]=jo("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=jo(!1),[l,p]=jo(null),[u,c]=jo(null),[g,d]=jo(""),m=null,f=le.use.isActiveTab(),{list:T,handleClick:S,error:y,disconnectConnectingWallets:C}=Jt({onBeforeConnect:P=>{m=setTimeout(()=>{s(!0),d(P)},Ba)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Sr)}}),v=i(()=>{C(),s(!1)},"handleCloseWalletModal"),x=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),M=T.find(P=>P.type===g),w=M?.image||"",k=M?.state||Xc.NOT_INSTALLED,E=Ql(T,n),L=IS(E)!==1,q=zl(T,e),I=i(P=>{In(T,r.multiWallets)||(P.namespaces?.length&&P.state===Xc.DISCONNECTED?P.namespaces.length>1?p({open:!0,providerType:P.type,providerImage:P.image,availableNamespaces:P.namespaces,singleNamespace:P.singleNamespace}):P.needsDerivationPath?c({open:!0,providerType:P.type,providerImage:P.image,namespace:P.namespaces[0]}):S(P.type):S(P.type))},"handleWalletItemClick"),Q=i(P=>{let D=q.find(j=>j.type===l?.providerType);D?.singleNamespace&&D?.needsDerivationPath&&P[0]?c({open:!0,providerType:D.type,providerImage:D.image,namespace:P[0]}):S(l?.providerType,P.map(j=>({namespace:j}))),x()},"handleConfirmNamespaces"),te=i(P=>{P&&u?.namespace&&S(u.providerType,[{namespace:u.namespace,derivationPath:P}]),b()},"handleDerivationPathConfirm");return nt.createElement(ue,{header:{title:Kc.t("Connect Wallets")}},nt.createElement(LS,null,L&&nt.createElement(nt.Fragment,null,nt.createElement(AS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),nt.createElement(ES,{size:24})),nt.createElement(WS,{variant:"title",size:"xmedium",align:"center"},Kc.t("Choose a wallet to connect.")),nt.createElement(MS,null,q.map((P,D)=>{let j=`wallet-${D}-${P.type}`;return nt.createElement(NS,{key:j,...P,container:B(),onClick:()=>I(P),isLoading:t==="loading",disabled:!f})}),nt.createElement(Xo,{open:!!a,onClose:v,image:w,state:k,error:y}),nt.createElement(ro,{open:!!l?.open,onClose:x,onConfirm:Q,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),nt.createElement(oo,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:b,onConfirm:te}))))}i(Yc,"WalletsPage");import{keyframes as BS,styled as Pa}from"@rango-dev/ui";var Zc=Pa("div",{position:"relative"}),PS=BS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Jc=Pa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${PS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Rc=Pa("div",{"& img":{borderRadius:"50%"}});var FS=7;function Da(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=le.use.isActiveTab(),p=oe.use.connectedWallets(),{blockchains:u}=h(),[c,g]=io(""),[d,m]=io(null),[f,T]=io(!1),[S,y]=io(null),[C,v]=io(null),[x,b]=io(null),{suggestAndConnect:M}=Cr(),w=null,{list:k,error:E,handleClick:A,disconnectWallet:L,disconnectConnectingWallets:q}=Jt({chain:e,onBeforeConnect:W=>{w=setTimeout(()=>{g(W)},Ba)},onConnect:W=>{s?.(W),w&&clearTimeout(w),setTimeout(()=>{g("")},Sr)}}),[I,Q]=io(k),te=k.length,P=r&&te-r>0,D=i(async W=>{T(!1),y("in-progress");try{await M(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),j=i(()=>{C&&v({...C,open:!1})},"handleCloseNamespaceModal"),ye=i(()=>{x&&b({...x,open:!1})},"handleCloseDerivationPathModal"),Y=i(W=>{v({open:!0,providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal"),ie=i(W=>{let pe=I.find(ce=>ce.type===C?.providerType);pe?.singleNamespace&&pe?.needsDerivationPath&&W[0]?b({open:!0,providerType:pe.type,providerImage:pe.image,namespace:W[0]}):A(C?.providerType,W.map(ce=>({namespace:ce}))),j()},"handleConfirmNamespaces"),ge=i(W=>{W&&x?.namespace&&A(x.providerType,[{namespace:x.namespace,derivationPath:W}]),ye()},"handleDerivationPathConfirm");ou(()=>{Q(W=>{let pe=k.findIndex(ce=>o(ce.type,e));return P&&pe>1?[k[pe]].concat(k.filter((ce,De)=>De!==pe)):W.map(ce=>k.find(De=>De.type===ce.type)??ce)})},[JSON.stringify(k)]);let Te=document.getElementById(Se.SWAP_BOX_ID);ou(()=>{let W=null;return(S==="completed"||S==="rejected")&&(W=setTimeout(()=>y(null),Sr)),()=>{W&&clearTimeout(W)}},[S]);let $=i(()=>{q(),g("")},"handleCloseWalletModal");return me.createElement(me.Fragment,null,I.slice(0,r).map(W=>{let pe=Fl({connectedWallets:p,walletType:W.type,chain:e}),ce=pe?Dn(pe,FS):"",De=Pn(u(),e),_=!p.find(se=>se.walletType===W.type&&se.chain===e),z=De&&_&&W.state===tu.CONNECTED,K=z?pt.t({id:"Add {chain} chain",values:{chain:e}}):ce,ae=i(async()=>{W.state===tu.DISCONNECTED?W.namespaces?.length?W.namespaces.length>1?Y(W):W.needsDerivationPath?b({open:!0,providerType:W.type,providerImage:W.image,namespace:W.namespaces[0]}):A(W.type):A(W.type):W.namespaces&&!ce?(await L(W.type),Y(W)):z?(m({walletType:W.type,chain:e,address:pe??""}),T(!0)):n({walletType:W.type,chain:e,address:pe??""})},"onSelectableWalletClick"),ee=d?.chain?An(d.chain,u()):void 0;return me.createElement(me.Fragment,{key:`${W.title}_${ee}`},me.createElement(Xo,{open:c===W.type,onClose:$,image:W.image,state:W.state,error:E}),me.createElement(ro,{open:!!C?.open,onClose:j,onConfirm:ie,image:C?.providerImage,availableNamespaces:C?.availableNamespaces,singleNamespace:C?.singleNamespace}),me.createElement(oo,{open:!!x?.open,selectedNamespace:x?.namespace,type:x?.providerType,image:x?.providerImage,onClose:ye,onConfirm:ge}),!!d&&me.createElement(re,{open:!!d&&f,container:Te,onClose:()=>{m(null)}},me.createElement(Tr,{title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},me.createElement(_a,{size:18}),me.createElement(_a,{size:32}),me.createElement(_S,{onClick:D.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},pt.t("Confirm")))),S&&me.createElement(re,{open:!!S,onClose:y.bind(null,null),container:Te},S==="in-progress"&&me.createElement(Tr,{type:"loading",title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:me.createElement(Zc,null,me.createElement(Rc,null,me.createElement(DS,{src:W.image,size:45})),me.createElement(Jc,null))}),S==="completed"&&me.createElement(Tr,{type:"success",title:pt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:pt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),S==="rejected"&&me.createElement(Tr,{type:"error",title:pt.t("Request Rejected"),description:pt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),me.createElement(_a,{direction:"vertical",size:32})),me.createElement($S,{key:W.type,description:K,onClick:ae,selected:o(W.type,e),disabled:!l,...W}))}),P&&me.createElement(oc,{selected:!1,onClick:a},me.createElement(eu,{variant:"label",size:"medium"},pt.t("Show more wallets"),me.createElement(eu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",te-(r??0)))))}i(Da,"WalletList");var GS=2;function au(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=HS(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:g,customDestination:d,setCustomDestination:m}=G(),{connectedWallets:f,selectWallets:T}=oe(),{config:S}=h(),[y,C]=so(""),[v,x]=so([]),[b,M]=so(""),[w,k]=so(null),[E,A]=so(!!d),L=qS(()=>Kt({filter:"all",quote:p}),[p]),q=Kt({filter:"required",quote:p}),I=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),Q=i(_=>q.includes(_),"isWalletRequiredFor"),te=zS(()=>f.filter(_=>_.selected&&L.includes(_.chain)),[f,L]),[P,D]=so(te()),[j,ye]=so([]),Y=i((_,z)=>ye(K=>K.concat({blockchain:_,walletType:z})),"addNextSelectedWallets"),ie=v.length>0,ge=i((_,z)=>!!P.find(K=>K.walletType===_&&K.chain===z&&K.selected&&(Q(z)||!Q(z)&&!d)),"isSelected"),Te=i((_,z,K)=>{let ae=!1;return _.map(ee=>{if(ee.chain===z){let se=ee.selected;return!ae&&K?(ae=!0,se=!0):K||(se=!1),{...ee,selected:se}}return ee})},"updateSelectableWallets"),$=i(_=>{A(_),_?Q(I?.name??"")||D(z=>Te(z,I?.name||"",!1)):(m(""),D(z=>Te(z,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),W=i(_=>{if(y&&C(""),ge(_.walletType,_.chain))return;let K=f.find(ae=>ae.walletType===_.walletType&&ae.chain===_.chain);K&&(n(),_.chain===I?.name&&E&&!Q(I.name)&&(A(!1),m(null)),D(ae=>ae.filter(ee=>ee.chain!==_.chain).concat({...K,selected:!0})))},"onChange"),pe=i(()=>{let _=P.filter(z=>z.selected);T(_),u(_),g(!0),o()},"onConfirmBalance"),ce=i(async()=>{x([]),M(""),k(null);let _=await r?.({selectedWallets:P.filter(K=>K.selected),customDestination:d}),z=_.warnings;z?.balance?.messages&&x(z.balance.messages),z?.quoteUpdate&&k(z.quoteUpdate),_.error&&M(hp(_.error)),!_.error&&!z?.balance?.messages.length?pe():x(z?.balance?.messages??[])},"onConfirmWallets");iu(()=>{D(_=>{let z=[];return _.forEach(K=>{!f.some(ee=>ee.chain===K.chain&&ee.walletType===K.walletType&&ee.address===K.address)||z.push(K)}),z=z.concat(f.filter(K=>!!!z.find(ee=>ee.chain===K.chain)&&K.selected&&L.includes(K.chain))),z})},[f,L]),iu(()=>{let _=[];j.length>0&&(j.forEach(z=>{let K=f.find(ae=>ae.chain===z.blockchain&&ae.walletType===z.walletType);K?W(K):_.push(z)}),ye(_))},[f,j]);let De=document.getElementById(Se.SWAP_BOX_ID);return J.createElement(re,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!y,container:De,...!y&&{footer:J.createElement(sc,null,J.createElement(ru,{loading:a,disabled:Pp(a,E,d,p,P,I),onClick:ce,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ao.t("Confirm")))},...y&&{styles:{container:{padding:"$0"}},header:J.createElement(nc,null,J.createElement(rc,{variant:"ghost",onClick:C.bind(null,"")},J.createElement(US,{size:16})),J.createElement($a,{variant:"headline",size:"small"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(y,l)}})))},anchor:"center"},J.createElement(re,{open:ie,onClose:x.bind(null,[]),container:De},J.createElement(QS,{title:ao.t("Insufficient account balance"),type:"error",description:J.createElement(OS,{messages:v??[]})},J.createElement(ru,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:pe},ao.t("Proceed anyway")))),y&&J.createElement(ic,null,J.createElement("div",{className:ac()},J.createElement(Da,{chain:y,isSelected:ge,selectWallet:W,onShowMore:()=>C(y),onConnect:_=>{Y(y,_)}}))),!y&&J.createElement(J.Fragment,null,b&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"error",title:ao.t(b)}),J.createElement(kr,{size:12})),w&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"warning",title:or(w)}),J.createElement(kr,{size:12})),J.createElement(lc,null,L.map((_,z)=>{let K=l.find(be=>be.name===_),ae=`wallet-${z}`,ee=z===L.length-1,se=ee&&I&&S?.customDestination!==!1;return J.createElement("div",{key:ae},J.createElement(ec,null,J.createElement($a,{variant:"title",size:"xmedium"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),J.createElement($a,{variant:"label",color:"$neutral700",size:"medium"},ao.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),J.createElement(kr,{size:24}),J.createElement(tc,null,J.createElement(Da,{chain:_,isSelected:ge,selectWallet:W,limit:GS,onShowMore:()=>C(K?.name??""),onConnect:be=>{Y(_,be)}})),!ee&&J.createElement(kr,{size:32}),se&&J.createElement(Rp,{blockchain:I,open:E,handleOpenChange:$}))}))))}i(au,"ConfirmWalletsModal");import{i18n as cT}from"@lingui/core";import{Alert as uT,Button as mT,InfoIcon as dT}from"@rango-dev/ui";import je from"react";import{Alert as XS,Button as jS,Divider as Ua,NoRouteIcon as YS,RefreshIcon as ZS,Typography as du}from"@rango-dev/ui";import Xe from"react";import{i18n as su}from"@lingui/core";var VS=24,KS=60;function lu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:su.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:su.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(lu,"makeInfo");var Fa=(o=>(o[o.small=VS]="small",o[o.large=KS]="large",o))(Fa||{}),Oa=(o=>(o.small="small",o.large="medium",o))(Oa||{});import{styled as vr}from"@rango-dev/ui";var pu=vr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),cu=vr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),uu=vr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),mu=vr("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=lu(o,r,()=>a(s,!0),e);return Xe.createElement(pu,null,Xe.createElement(YS,{size:Fa[n],color:"gray"}),Xe.createElement(Ua,{size:4}),Xe.createElement(du,{variant:"title",size:Oa[n]},ne().noResultError.title),n==="large"&&Xe.createElement(Ua,{size:4}),!!l.description&&Xe.createElement(cu,{size:n},Xe.createElement(du,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Xe.createElement(Ua,{size:n==="large"?"24":"4"}),!!l.alert&&Xe.createElement(uu,{size:n},Xe.createElement(XS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Xe.createElement(jS,{size:"xsmall",type:l.alert.type,prefix:Xe.createElement(mu,null,Xe.createElement(ZS,{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 RS,Divider as eT,MessageBox as tT,Typography as oT,WarningIcon as nT}from"@rango-dev/ui";import Et from"react";import{Typography as yu}from"@rango-dev/ui";import za from"react";import{darkTheme as JS,styled as xr}from"@rango-dev/ui";var fu=xr("div",{width:"100%"}),Qa=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),gu=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${JS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Su(t){let{title:e,value:o,valueColor:n}=t;return za.createElement(gu,null,za.createElement(yu,{size:"medium",variant:"label",className:"_title"},e),za.createElement(yu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Su,"QuoteErrorsModalItem");function Tu(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 Et.createElement(re,{footer:Et.createElement(RS,{type:"primary",size:"large",prefix:Et.createElement(nT,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Et.createElement(tT,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Et.createElement(Qa,null,Et.createElement(eT,{size:"4"}),Et.createElement(oT,{size:"small",variant:"title"},Zo.t("Details")),Et.createElement(Qa,null,l.map((p,u)=>Et.createElement(Su,{key:u,...p})))))}i(Tu,"HighValueLossWarningModal");import{i18n as qa}from"@lingui/core";function Cu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=qa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(wt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title),t.type===1&&(o.title=ne().unknownPriceError.title),t.type===2&&(o.title=qa.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=qa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Cu,"makeAlerts");import{i18n as Mo}from"@lingui/core";import{Button as ku,Divider as vu,MessageBox as rT,Typography as iT}from"@rango-dev/ui";import lo from"react";import{useNavigate as aT}from"react-router-dom";function xu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=aT(),u=e??o;return lo.createElement(re,{anchor:"bottom",open:n,prefix:lo.createElement(ku,{size:"small",variant:"ghost",onClick:()=>p("../"+H.settings)},lo.createElement(iT,{variant:"label",size:"medium",color:"$neutral900"},Mo.t("Change settings"))),container:B(),onClose:r},lo.createElement(rT,{type:"warning",title:s.type===3?Mo.t("High slippage"):Mo.t("Low slippage"),description:s.type===3?Mo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Mo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},lo.createElement(vu,{size:18}),lo.createElement(vu,{size:32}),lo.createElement(ku,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Mo.t("Confirm anyway"))))}i(xu,"SlippageWarningModal");import{Button as sT,MessageBox as lT,WarningIcon as pT}from"@rango-dev/ui";import wr from"react";function wu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(re,{footer:wr.createElement(sT,{type:"primary",size:"large",prefix:wr.createElement(pT,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(lT,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(wu,"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,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=Cu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),je.createElement(je.Fragment,null,d&&je.createElement(Yo,{error:o,fetch:s}),!!m&&je.createElement(fu,null,je.createElement(uT,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:je.createElement(hu,{onClick:l},je.createElement(dT,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:je.createElement(mT,{size:"xxsmall",type:m.alertType,onClick:c},cT.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(Tu,{...g,warning:e}),(e.type===3||e.type===2)&&je.createElement(xu,{...g,warning:e}),e.type===1&&je.createElement(wu,{...g,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import HT from"bignumber.js";import Fr from"react";import{i18n as po}from"@lingui/core";import{Alert as MT,Divider as Bo,FullExpandedQuote as LT,InfoIcon as BT,NumericTooltip as nm,QuoteTag as PT,StepDetails as _T,TokenAmount as DT,Typography as Po}from"@rango-dev/ui";import Za from"bignumber.js";import F,{useRef as $T,useState as FT}from"react";import{styled as Ha}from"@rango-dev/ui";var Ga=Ha("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),bu=Ha("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Eu=Ha("div",{width:"100%",display:"flex"});import*as br from"@radix-ui/react-collapsible";import{Button as fT,css as Ro,darkTheme as Ie,Image as Iu,styled as ze,Typography as gT}from"@rango-dev/ui";var hT=300,Au=ze(br.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Wu=Ro({padding:"$10 $15"}),Nu=ze(fT,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ie} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ie} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ie} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Mu=ze("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",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ie} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}}}}]}),Lu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Bu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Lo=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Pu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ie} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),_u=ze(br.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Iu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Iu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Du=ze("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"}}}}),$u=ze(rr,{width:"100%",background:"inherit"}),Va=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${hT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),SP=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Fu=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ie} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Ou=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ka=ze(gT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Uu=ze("div",{display:"flex",flexWrap:"wrap"}),Xa=ze("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"}}}}),Qu=ze("div",{display:"flex"}),Er=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ie} &`]:{borderTopColor:"$neutral800"}});import{i18n as St}from"@lingui/core";import{ChevronDownIcon as ST,CloseIcon as TT,Divider as Wr,IconButton as CT,NumericTooltip as kT,QuoteCost as vT,Typography as ct}from"@rango-dev/ui";import R,{useState as Gu}from"react";import{css as yT,styled as Ir}from"@rango-dev/ui";var Ar=Ir("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),ja=Ir("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),zu=Ir("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),qu=Ir("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Hu=yT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var xT=i(t=>t.fee.isZero()?null:R.createElement(Ar,null,R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(ct,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Vu(t){let[e,o]=Gu(!1),[n,r]=Gu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,g=s?.swaps??[],d=B(),m=vp(g);return R.createElement(R.Fragment,null,R.createElement(vT,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?St.t("View more info"):void 0,tooltipContainer:d}),R.createElement(re,{container:d,open:e,header:R.createElement(qu,null,R.createElement(ct,{variant:"title",size:"medium"},St.t("Gas & Fee Explanation")),R.createElement(CT,{onClick:()=>o(!1),variant:"ghost"},R.createElement(TT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(zu,null,R.createElement(ct,{variant:"title",size:"small"},St.t("Details")),R.createElement(Wr,{size:10}),Object.entries(m.payable).flatMap(([f,T])=>T.map((S,y)=>{let C=`payable-fee-${y}`,v=Vi(S);return R.createElement(Ar,{key:C},R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},zi(f,St.t)),R.createElement(kT,{content:S.amount,container:d},R.createElement(ct,{variant:"label",size:"medium"},N(S.amount,2,2)," ",S.asset.symbol," ($",N(v,4,4),")")))})),R.createElement(Ar,{className:"total_payable_fee"},R.createElement(ct,{variant:"label",size:"medium"},St.t("Total Payable Fee")),R.createElement(ct,{variant:"label",size:"medium"},"$",N(l,4,4))),R.createElement(ja,null),Object.keys(m.nonePayable).length&&R.createElement(sr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:R.createElement("div",{className:Hu()},R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},n?St.t("Hide non-payable fees"):St.t("Show non-payable fees")),R.createElement(Wr,{size:4,direction:"horizontal"}),R.createElement(ir,{orientation:n?"up":"down"},R.createElement(ST,{size:12,color:"gray"}))),open:n},R.createElement(ct,{size:"small",variant:"title"},St.t("Description")),R.createElement(Wr,{size:4}),R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},St.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),R.createElement(Wr,{size:10}),Object.entries(m.nonePayable).map(([f,T],S)=>{let y=kp(T),C=zi(f,St.t),v=`non-payable-fee-${S}`;return R.createElement(xT,{key:v,fee:y,label:C})}),R.createElement(ja,null)))))}i(Vu,"QuoteCostDetails");import{i18n as ju}from"@lingui/core";import{TokenAmount as Yu}from"@rango-dev/ui";import Nr from"react";import{css as wT,styled as bT}from"@rango-dev/ui";var Ku=bT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Xu=wT({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 Nr.createElement(Ku,null,Nr.createElement(Yu,{direction:"horizontal",label:ju.t("Swap input"),type:"input",tooltipContainer:B(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Nr.createElement("div",{className:Xu()}),Nr.createElement(Yu,{direction:"horizontal",tooltipContainer:B(),label:ju.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 tm}from"@lingui/core";import{ChevronDownIcon as AT,ChevronRightIcon as WT,Divider as Ya,Image as NT,Tooltip as _r,Typography as Lr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as ET,useState as tn}from"react";var Zu=480,Ju=768,Ru=1024,em=1200,IT=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<=Zu),n(window.innerWidth>Zu&&window.innerWidth<=Ju),a(window.innerWidth>Ju&&window.innerWidth<=Ru),l(window.innerWidth>Ru&&window.innerWidth<=em),u(window.innerWidth>em)},"handleResize");return ET(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Mr=IT;var Br=4,Pr=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return O.createElement(_r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Du,{className:n,state:a},O.createElement(NT,{src:o,size:16})))},"ImageComponent");function om(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Op(r),{isTablet:g,isMobile:d}=Mr();return O.createElement(_u,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:Lo()},O.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Via:")),O.createElement(Ya,{direction:"horizontal",size:4}),r.map((m,f)=>{let T=`item-${f}`,S=O.createElement(Va,null,O.createElement(WT,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:T},O.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:T},u<=Br||u>Br&&f<Br-1?O.createElement(O.Fragment,null,O.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):f===Br-1&&O.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Lo()},S,r.map((y,C)=>{let v=`image-${C}`;return C>=f&&O.createElement(O.Fragment,{key:v},O.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),C!==u-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(Xa,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},O.createElement(Lr,{size:"xsmall",variant:"body"},"+",u-f))))})),O.createElement("div",{className:Lo()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:Lo()},O.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Chains:")),O.createElement(Ya,{direction:"horizontal",size:4}),c.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},c.length<=Pr||c.length>Pr&&f<Pr-1?O.createElement(_r,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(on,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Pr-1&&O.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Lo()},c.map((T,S)=>S>=f&&O.createElement(on,{key:T.displayName,content:"",src:T.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(Xa,{className:"blockchainImage"},O.createElement(Lr,{size:"xsmall",variant:"body"},"+",c.length-f))))),O.createElement(Ya,{direction:"horizontal",size:32}))),O.createElement(Va,{orientation:a?"up":"down"},O.createElement(AT,{size:12,color:"black"}))))}i(om,"QuoteTrigger");function Ja(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:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),T=h().swappers(),{customSlippage:S,slippage:y}=h(),C=S||y,[v,x]=FT(t.expanded),b=$T(null),M=N(o.value,6,6),w=N(n.value,6,6),k=n.usdValue?N(n.usdValue,4,4):"",E=et(o.usdValue,n.usdValue??null),A=N(E,2,2),L=wt(E??0),q=i((ge,Te)=>ge.map(($,W)=>{let pe,ce=r?.type===3&&r.swap.swapperId===$.swapperId,De=r?.type===4&&r.recommendedSlippages?.has(W),_=a?.type===2&&a.recommendedSlippages?.has(W),z=ce||De,K=_;z?pe="error":K&&(pe="warning");let ae=z?po.t("Slippage Error"):po.t("Slippage Warning");return ce&&(ae=po.t("Bridge Limit Error")),{swapper:{displayName:Qo($.swapperId,T)??"",image:$.swapperLogo},from:{token:{displayName:$.from.symbol,image:$.from.logo},chain:{displayName:Je($.from.blockchain,m)??"",image:$.from.blockchainLogo},price:{value:W===0&&!Te?N(o.value,6,6):N($.fromAmount,6,6),usdValue:N(($.from.usdPrice??0)*parseFloat($.fromAmount),4,4),realValue:W===0?o.value:$.fromAmount,realUsdValue:new Za($.from.usdPrice??0).multipliedBy($.fromAmount).toString()}},to:{token:{displayName:$.to.symbol,image:$.to.logo},chain:{displayName:Je($.to.blockchain,m)||"",image:$.to.blockchainLogo},price:{value:N($.toAmount,6,6),usdValue:N(($.to.usdPrice??0)*parseFloat($.toAmount),4,4),realValue:$.toAmount,realUsdValue:new Za($.to.usdPrice??0).multipliedBy($.toAmount).toString()}},state:pe,alerts:z||K?F.createElement(bu,{dense:g},F.createElement(MT,{variant:"alarm",type:z?"error":"warning",title:ae,footer:F.createElement(Eu,null,ce&&F.createElement("div",null,F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Bo,{direction:"vertical",size:2}),F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {amount} {symbol}",values:{amount:N($.fromAmount,6,6),symbol:$?.from.symbol}}))),(De||_)&&!ce&&F.createElement("div",null,F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),F.createElement(Bo,{direction:"vertical",size:2}),F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:zo($.estimatedTimeInSeconds),fee:N(Gi($,f),2,2),internalSwaps:$.internalSwaps?q($.internalSwaps):void 0}}),"getQuoteSteps"),I=q(e?.swaps??[]),Q=I.length,te=d||B(),P=Qp(t.quote.tags||[]),D=!!c,j=zo(Wn(e?.swaps)),ye=Kn(e?.swaps??[],f),Y=N(ye,2,2),ie=ye.gte(new Za(gp));return g?F.createElement(LT,{selected:l,fee:Y,time:j,tooltipContainer:Uo(),steps:I,tags:P,feeWarning:ie,percentageChange:A,warningLevel:L,outputPrice:{value:w,usdValue:k,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Lu()},!p&&P.length?F.createElement(F.Fragment,null,F.createElement(Qu,null,P.map((ge,Te)=>{let $=`${ge.value}_${Te}`;return F.createElement(F.Fragment,{key:$},F.createElement(PT,{label:ge.label,value:ge.value}),F.createElement(Bo,{size:4,direction:"horizontal"}))})),F.createElement(Er,null),!D&&F.createElement(Bo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Bu()},F.createElement(Vu,{quote:e,time:j,fee:Y,feeWarning:ie,showModalFee:u,steps:Q}),D&&F.createElement(Nu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Po,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},po.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Pu()},F.createElement(Ou,null,F.createElement(BT,{size:12,color:"gray"})),F.createElement(Uu,null,F.createElement(Ka,{size:"small",variant:"body"},`${M} ${I[0].from.token.displayName} = `),F.createElement(nm,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(Ka,{size:"small",variant:"body"},"\xA0",`${w} ${I[I.length-1].to.token.displayName}`))),F.createElement(nm,{content:n.usdValue,container:te},F.createElement(Bo,{size:2,direction:"horizontal"}),F.createElement(Po,{color:"$neutral600",size:"xsmall",variant:"body"},`($${k})`))),s==="list-item"&&F.createElement(DT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:w,usdValue:k,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[Q-1].to.token.displayName,image:I[Q-1].to.token.image},chain:{image:I[Q-1].to.chain.image},percentageChange:A,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(en,{from:I[0].from,to:I[Q-1].to,percentageChange:A,warningLevel:L}),F.createElement(Bo,{size:4}))),F.createElement(Au,{selected:l,listItem:s==="list-item",open:v,className:"quote_container",onOpenChange:x},F.createElement(om,{type:s,quoteRef:b,selected:l,setExpanded:x,container:te,expanded:v,steps:I}),F.createElement($u,{open:v},F.createElement(Fu,null),F.createElement("div",{className:Wu()},I.map((ge,Te)=>{let $=`item-${Te}`;return F.createElement(_T,{type:"quote-details",key:$,tooltipContainer:te,step:ge,hasSeparator:Te!==I.length-1,state:ge.state})})))))}i(Ja,"Quote");import{Divider as zT,Skeleton as qT}from"@rango-dev/ui";import At from"react";import{darkTheme as OT,styled as Dr}from"@rango-dev/ui";var rm=Dr("div",{$$color:"$colors$neutral100",[`.${OT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),im=Dr("div",{paddingTop:"$2"}),am=Dr("div",{paddingLeft:"$8"}),sm=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as ym,Divider as ut,Skeleton as Ye}from"@rango-dev/ui";import V from"react";import{css as UT,styled as It}from"@rango-dev/ui";var Ra=It("div",{display:"flex"}),lm=It("div",{padding:"$10 $0 $20"}),pm=It("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),cm=It("div",{display:"flex",justifyContent:"start",alignItems:"center"}),um=It("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mm=It("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),dm=It("div",{width:"65%",display:"flex",justifyContent:"start"}),fm=It("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),gm=It("div",{padding:"$15 $0 $15 $0"}),hm=UT({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(um,null,V.createElement(dm,null,V.createElement(ym,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ut,{size:8,direction:"horizontal"}),V.createElement(fm,null,V.createElement(Ye,{height:10,width:60,variant:"rounded"}),V.createElement(ut,{size:4}),V.createElement(Ye,{height:15,variant:"rounded"}))),V.createElement(Ye,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Ra,null,V.createElement(Ye,{width:65,height:20,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:65,height:20,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:65,height:20,variant:"rounded"})),V.createElement(Er,null),!r&&V.createElement(ut,{size:4})),V.createElement("div",{className:hm()},V.createElement(Ra,null,V.createElement(Ye,{width:60,height:10,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:60,height:10,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:60,height:10,variant:"rounded"})),r&&V.createElement(Ye,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(lm,null,V.createElement(Ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(pm,null,V.createElement(cm,null,V.createElement(ym,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ut,{direction:"horizontal",size:4}),V.createElement(Ye,{height:15,width:150,variant:"rounded"})),V.createElement(ut,{size:10}),V.createElement(Ye,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(ut,{size:4}),V.createElement(gm,null,n,V.createElement(mm,null),n),V.createElement(ut,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as vm,Divider as ts,NextIcon as QT,Skeleton as $r}from"@rango-dev/ui";import Ae from"react";import{styled as rn}from"@rango-dev/ui";var Sm=rn("div",{display:"flex",alignItems:"start"}),Tm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),es=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),Cm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),km=rn("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return Ae.createElement(Ae.Fragment,null,Ae.createElement(km,null,Ae.createElement($r,{height:22,width:22,variant:"circular"}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:15,width:148,variant:"rounded"})),Ae.createElement(Sm,null,Ae.createElement(sm,{hideSeparator:!e}),Ae.createElement(Tm,{extraSpace:e},Ae.createElement(es,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})),Ae.createElement(Cm,null,Ae.createElement(QT,{color:"gray",size:16})),Ae.createElement(es,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return At.createElement(rm,{expanded:o,rounded:e!=="basic"},At.createElement(nn,{type:e,tagHidden:n}),At.createElement(im,null,At.createElement(qT,{height:15,variant:"rounded"})),o&&At.createElement(am,null,At.createElement(zT,{size:24}),At.createElement(Tt,null),At.createElement(Tt,null),At.createElement(Tt,{separator:!1})))}i(an,"QuoteSkeleton");function co(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:T,toToken:S}=G(),y=e?.outputAmount?new HT(e?.outputAmount):null,C=e?.outputAmount?jn(e?.outputAmount,Zn(e)||S?.usdPrice):null,x=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Fr.createElement(Ga,null,Fr.createElement(an,{tagHidden:l,type:o,expanded:s})):x?Fr.createElement(Ga,{onClick:()=>p?.(e)},Fr.createElement(Ja,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(co,"QuoteInfo");import{calculatePendingSwap as XT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as jT}from"react";import{useRef as GT,useState as VT}from"react";var KT=2e3;function Or({request:t}){let[e,o]=VT(!1),n=GT(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,KT)),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(Or,"useFetch");function xm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xm,"useFetchConfirmQuote");function Ur(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=os(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ur,"throwErrorIfResponseIsNotValid");function os(t){if(Sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Tp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=xp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(os,"getQuoteError");function wm(t,e,o){let n=!1;t&&(n=Fp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=ko(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Wp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Co(e)),percentageChange:N(et(Co(t)??"",Co(e)??""),null,2)}:Ki(t,e)?r.quoteUpdate={type:0}:Xi(t,e)?r.quoteUpdate={type:1}:ji(t,e)&&(r.quoteUpdate={type:2}));let s=Np(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(wm,"generateWarnings");function Qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Qr,"handleQuoteErrors");function ns(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=G(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:T,cancelFetch:S,loading:y}=xm();return jT(()=>S,[]),{loading:y,fetch:i(async v=>{let x=v.selectedWallets,b=v?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let M=x.reduce((k,E)=>(k[E.chain]=E.address,k),{}),w={requestId:r?.requestId||"",selectedWallets:M,destination:b||void 0};try{return await T(w,!0).then(k=>{let{result:E}=k;Ur({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let A={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(A);let L={slippage:f.toString(),disabledSwappersGroups:c},q=wm(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:x,userSlippage:f});q.quoteUpdate&&s(!1),l();let I=!!q.balance,Q=XT(o.toString(),E,Ip(x),L,!I,{blockchains:g,tokens:d});return{quote:A,swap:Q,error:null,warnings:q}})}catch(k){return Qr(k)}},"fetch"),cancelFetch:S}}i(ns,"useConfirmSwap");var rC=JT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Em}`]:{width:"$48",height:"$48"}}),iC=as({flexGrow:1,paddingRight:"$10"}),aC=as({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),sC=as({display:"flex",justifyContent:"space-between",alignItems:"center"});function Im(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=G(),s=nC(),[l,p]=sn(""),u=!n,[c,g]=sn(!1),[d,m]=sn(!1),{isActiveTab:f}=le(),T=h().getDisabledLiquiditySources(),S=oC(T),{manager:y}=YT(),{fetch:C,loading:v,cancelFetch:x}=ns(),[b,M]=sn({swap:null,error:null,warnings:null}),[w,k]=sn(!1),E=i(async({selectedWallets:D,customDestination:j})=>{let ye=await C?.({selectedWallets:D,customDestination:j});return M(ye),ye},"onConfirmSwap"),A=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let D=`../${H.swaps}/${b.swap.requestId}`;s(D,{replace:!0}),setTimeout(()=>{e("")},0)}catch(D){p("Error: "+D?.message)}},"addNewSwap"),L=i(async()=>{m(!0),await A(),m(!1)},"onConfirm"),q=i(async()=>{b?.warnings?.quote&&!a?k(!0):await L()},"onStartConfirmSwap"),I=i(async()=>{M({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(D=>{M(D)}).catch(D=>console.error(D))},"onRefresh");zr(()=>{!!S.current.length&&!T.length&&I(),S.current=T},[T.length]),zr(()=>{u&&x()},[u]),zr(()=>{u&&g(u)},[u]),zr(()=>{u||C({selectedWallets:o,customDestination:r}).then(D=>M(D)).catch(D=>console.error(D))},[]),tC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=b.warnings?.quote??null,te=b.error,P=[];if(l&&P.push(We.createElement(bm,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&P.push(We.createElement(bm,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&or(b.warnings.quoteUpdate)})),Q||te){let D=`../${H.settings}`;P.push(We.createElement(Jo,{warning:Q,error:te,couldChangeSettings:!1,refetchQuote:I,showWarningModal:w,confirmationDisabled:!f,onOpenWarningModal:()=>k(!0),onCloseWarningModal:()=>k(!1),onConfirmWarningModal:async()=>{k(!1),await A()},onChangeSettings:()=>s(D)}))}return We.createElement(ue,{header:{title:rs.t("Confirm Swap"),onWallet:()=>{let D=`../${H.wallets}`;s(D)}},footer:We.createElement(rC,null,We.createElement("div",{className:iC()},We.createElement(ZT,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:v||d,disabled:!!b.error||!f,onClick:q},rs.t("Start Swap"))),We.createElement(Em,{variant:"contained",type:"primary",size:"large",loading:v||d,disabled:!f,onClick:g.bind(null,!0)},We.createElement(eC,{size:24})))},c&&We.createElement(au,{open:c,onClose:()=>g(!1),onCancel:x,loading:v,onCheckBalance:E}),We.createElement(he,null,We.createElement("div",{className:sC()},We.createElement(RT,{variant:"title",size:"small"},rs.t("You get")),We.createElement("div",{className:aC()},We.createElement(mr,{onClick:!v&&!c&&!w?I:void 0}))),We.createElement(is,{size:"12"}),uc(P.map((D,j)=>({element:D,key:`alert-${j}`})),We.createElement(is,{size:10})),P.length>0?We.createElement(is,{size:10}):null,We.createElement(co,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:v,warning:b.warnings?.quote??null})))}i(Im,"ConfirmSwapPage");import{i18n as Hr}from"@lingui/core";import{useManager as xC}from"@rango-dev/queue-manager-react";import{Divider as Fm,NotFound as wC,styled as bC}from"@rango-dev/ui";import Nt,{useState as EC}from"react";import{useNavigate as IC}from"react-router-dom";import{i18n as cC}from"@lingui/core";import{Divider as Lm,GroupedVirtualizedList as uC,Skeleton as mC,SwapListItem as Bm,Typography as dC}from"@rango-dev/ui";import qe,{useCallback as Pm,useEffect as fC,useRef as gC,useState as hC}from"react";function Am(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Am,"calculateGroupsSoFar");import{css as lC,darkTheme as pC,styled as ln}from"@rango-dev/ui";var ss=lC(),Wm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ls=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ss}`]:{$$color:"$colors$neutral600",[`.${pC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ps=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Nm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),Mm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var yC=10;function cs(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=hC([]),l=gC(0),{swaps:p,groupCounts:u,groups:c}=n(e),g=Pm(Am,[]),d=Pm(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,yC),s(g(u,l.current)))},[e.length]);if(fC(()=>{r||d()},[r,d]),r){let m=[1,2];return qe.createElement(qe.Fragment,null,[m,m].map((T,S)=>qe.createElement(ls,{key:S},qe.createElement(ps,null,qe.createElement(mC,{variant:"text",width:60,size:"small"}),qe.createElement(Lm,{size:16})),qe.createElement(Lm,{size:4}),qe.createElement(Nm,null,T.map((C,v)=>qe.createElement(Bm,{isLoading:!0,key:v}))))))}return qe.createElement(uC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>qe.createElement(ls,null,qe.createElement(ps,null,qe.createElement(dC,{variant:"label",size:"medium",className:ss()},c[m]))),itemContent:(m,f)=>{let T=p[m];if(!T)return null;let S=T.steps[0],y=T.steps[T.steps.length-1];return qe.createElement(Wm,{key:T.requestId},qe.createElement(Bm,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[f]===cC.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:N(T.inputAmount,6,6),realAmount:T.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(cs,"HistoryGroupedList");import{CloseIcon as TC,IconButton as CC,SearchIcon as kC,TextField as vC}from"@rango-dev/ui";import pn from"react";import{styled as SC}from"@rango-dev/ui";var _m=SC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Wt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(vC,{prefix:pn.createElement(_m,null,pn.createElement(kC,{color:"black"})),suffix:!!s.length&&pn.createElement(CC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(TC,{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(Wt,"SearchInput");import{i18n as qr}from"@lingui/core";import Dm from"dayjs";var $m=i(t=>{let e=new Map([["today",{title:qr.t("Today"),swaps:[]}],["week",{title:qr.t("This week"),swaps:[]}],["month",{title:qr.t("This month"),swaps:[]}],["year",{title:qr.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=Dm();t.forEach(p=>{let u=Number(p.creationTime),c=Dm(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 g=new Date(u).getFullYear().toString();o(g,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 AC=bC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),WC=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 Om(){let t=IC(),{manager:e,state:o}=xC(),n=ot(e).map(({swap:c})=>c),[r,a]=EC(""),s=!o.loadedFromPersistor,l=i(c=>{let g=c.target.value;a(g)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||WC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Nt.createElement(ue,{header:{title:Hr.t("History")}},Nt.createElement(he,null,Nt.createElement(Wt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Hr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Nt.createElement(Fm,{size:"16"}),Nt.createElement(AC,null,u&&Nt.createElement(Mm,null,Nt.createElement(Fm,{size:32}),Nt.createElement(wC,{title:Hr.t("No results found"),description:r?Hr.t("Try using different keywords"):""})),!u&&Nt.createElement(cs,{list:p,onSwapClick:t,groupBy:$m,isLoading:s}))))}i(Om,"HistoryPage");import{i18n as XC}from"@lingui/core";import{Button as jC,Divider as rd,styled as YC,WarningIcon as ZC}from"@rango-dev/ui";import JC from"bignumber.js";import Ve,{useEffect as id,useState as ad}from"react";import{useNavigate as RC}from"react-router-dom";import{i18n as _C}from"@lingui/core";import{Header as DC}from"@rango-dev/ui";import zt,{useEffect as $C,useState as FC}from"react";import{i18n as MC}from"@lingui/core";import{Divider as ms,FullExpandedQuote as LC,Typography as BC}from"@rango-dev/ui";import ke from"react";import{styled as us}from"@rango-dev/ui";var Um=us("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Qm=us("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),zm=us("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as NC}from"@rango-dev/ui";import qm from"react";function Gr(t){let{updateQuotePartialState:e,sortStrategy:o}=G(),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 qm.createElement(zm,null,qm.createElement(NC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Gr,"SelectStrategy");var Hm=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:g,toToken:d,sortStrategy:m,error:f}=G(),{slippage:T,customSlippage:S}=h(),{findToken:y}=h(),C=l||B(),v=!!u&&u.results.length,x=S??T,b=i(k=>{if(!g||!d||!u)return null;let E={requestAmount:u.requestAmount,...k};return ko(E,{fromToken:g,toToken:d,userSlippage:x,findToken:y})},"getQuoteWarning"),M=f?.type===0||f?.type===1,w=u?.results?Rn(m,u?.results):[];return ke.createElement(ke.Fragment,null,a&&ke.createElement(ke.Fragment,null,ke.createElement(Qm,null,ke.createElement(BC,{size:"xmedium",variant:"title"},MC.t("Sort by")),ke.createElement(Gr,{container:C})),ke.createElement(ms,{size:"10"})),e&&Array.from({length:Hm},(k,E)=>ke.createElement(ke.Fragment,{key:E},s?ke.createElement(LC,{loading:!0}):ke.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Hm-1&&ke.createElement(ms,{size:16}))),!e&&ke.createElement(ke.Fragment,null,v?w.map((k,E)=>{let A=b(k),L=os(k.swaps),q=w.length-1===E;return ke.createElement(ke.Fragment,{key:k.requestId},ke.createElement(co,{showModalFee:r,container:C,selected:p?.requestId===k.requestId,tagHidden:!1,quote:{...k,requestAmount:u.requestAmount},loading:e,error:L?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{L||c("warning",A),c("error",L?.options||null),o(I)},type:"list-item"}),!q&&ke.createElement(ms,{size:16}))}):M&&ke.createElement(Um,null,ke.createElement(Yo,{size:s?"large":"small",error:f,fetch:n}))))}i(un,"Quotes");import{darkTheme as PC,styled as Gm}from"@rango-dev/ui";var Vm=Gm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${PC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Km=Gm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var OC=100;function ds(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=FC(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",g=Uo();return $C(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},OC):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),zt.createElement(Vm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:Se.EXPANDED_BOX_ID},zt.createElement(DC,{title:_C.t("Routes"),suffix:zt.createElement(zt.Fragment,null,zt.createElement(Gr,{container:g}),zt.createElement(to,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),zt.createElement(Km,null,zt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Uo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ds,"ExpandedQuotes");import{i18n as ed}from"@lingui/core";import{SwapInput as td}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as zC}from"@rango-dev/ui";import gs from"react";import{keyframes as UC,styled as Xm}from"@rango-dev/ui";var fs=450,QC=UC({"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)"}}),jm=Xm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ym=Xm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${QC} ${fs}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 hs(){let t=G.use.switchFromAndTo();return gs.createElement(jm,null,gs.createElement(Ym,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},fs),t()}},gs.createElement(zC,{size:12})))}i(hs,"SwitchFromAndToButton");import{styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Rm=Zm("div",{position:"relative"});function ys(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=G(),{connectedWallets:T,getBalanceFor:S}=oe(),y=a?S(a):null,C=_n(y)?.amount??"0",v=s&&a?N(y?.amount,y?.decimals):"0",x=!!s&&Ol(T,s.name),b=!Hi(f,c,g),M=!Hi(f,c,m),w=!g||!m||!m.gt(0)?null:et(g.toString(),m.toString());return mn.createElement(Jm,null,mn.createElement(Rm,null,mn.createElement(td,{label:ed.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:b?void 0:N(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:B(),onSelectMaxBalance:()=>{u(v.split(",").join(""))},anyWalletConnected:T.length>0}),mn.createElement(hs,null)),mn.createElement(td,{sharpBottomStyle:!r&&(!!f||e),label:ed.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(et(g,m),2,2),warningLevel:wt(w??0),price:{value:N(d,6,6),usdValue:M?void 0:N(m,4,4),realValue:d?.toString(),realUsdValue:M?void 0:m?.toString(),error:M?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ys,"Inputs");import{useCallback as qC,useEffect as HC,useRef as GC,useState as VC}from"react";function od(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(od,"useFetchAllQuotes");var KC=600;function Vr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=od(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=oe.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:T,setSelectedQuote:S,updateQuotePartialState:y}=G(),{slippage:C,customSlippage:v,affiliatePercent:x,affiliateRef:b,affiliateWallets:M,fetchStatus:w}=h(),k=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:L}=h(),[q,I]=VC(!0),Q=GC(u),te=v??C,D=!l||!p||Xt(l,p)||!qo(u),j=i(ie=>{I(ie)},"resetState"),ye=i(ie=>{let{fromToken:ge,toToken:Te,inputAmount:$,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,slippage:De,affiliateRef:_,affiliatePercent:z,affiliateWallets:K}=ie;if(q||j(!0),!D&&ge&&Te){m();let ae=Ep({fromToken:ge,toToken:Te,inputAmount:$,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,wallets:s,slippage:De,affiliateRef:_,affiliatePercent:z,affiliateWallets:K,enableCentralizedSwappers:a});Jl("experimentalRoute",r)&&(ae.experimental=!0),e(ae).then(ee=>{let se=Rn(d,ee.results),be=Up(g,se,ee.requestAmount);I(!1),y("quotes",ee),S(be),Ur({diagnosisMessages:ee.diagnosisMessages,requestId:be?.requestId||"",swaps:be?.swaps});let xn=be&&ko(be,{fromToken:ge,toToken:Te,userSlippage:te,findToken:L});y("warning",xn)}).catch(ee=>{let{error:se}=Qr(ee);(se?.type===0||se?.type===1)&&m(),se?.type!==2&&(y("error",se),I(!1))})}},"fetch"),Y=qC(bl(ie=>{ye(ie)},KC),[D]);return HC(()=>{if(!t){I(!1);return}if(w!=="success")return;if(D){I(!1),(g||f||T)&&m();return}if(!qo(u)||c?.eq(0)){j(!1),o();return}m(),j(!0);let ie=ye;return Q.current&&Q.current!=u&&(ie=Y),Q.current=u,ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:k,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:M}),o},[w,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,D,k?.length,n,E.length,te,b,x,JSON.stringify(M)]),{fetch:()=>ye({inputAmount:u,fromToken:l,toToken:p,liquiditySources:k,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:M}),loading:q}}i(Vr,"useSwapInput");function nd(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(nd,"emitPreventableEvent");var ek=YC("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),tk=300;function sd(){let t=RC(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=G(),[m,f]=ad(!1),{isLargeScreen:T,isExtraLargeScreen:S}=Mr(),{fetch:y,loading:C}=Vr({refetchQuote:a}),{config:v,fetchStatus:x}=h(),{connectedWallets:b}=oe(),{isActiveTab:M}=le(),[w,k]=ad(!1),A=Cp({fetchMetaStatus:x,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Vl(T,S,v?.variant),q=!!n&&!!e&&!!o&&new JC(n).gt(0)&&!_p(e,o),I=q&&x==="success"&&C,P=(!L||L&&p?.results.length)&&(l||s);id(()=>{c(),d("refetchQuote",!0)},[]),id(()=>{f(q)},[q]);let D=(r||s)&&!w?y:void 0,j=i(Y=>{L&&m?(f(!1),setTimeout(()=>{t(Y)},tk)):t(Y)},"onHandleNavigation"),ye=i(Y=>{r?.requestId!==Y.requestId&&(k(!1),u(Y))},"onClickOnQuote");return Ve.createElement(ek,null,Ve.createElement(ue,{height:"auto",footer:Ve.createElement(jC,{type:"primary",size:"large",disabled:A.disabled||!M,prefix:A.action==="confirm-warning"&&Ve.createElement(ZC,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?nd({type:"clickConnectWallet"},()=>j(H.wallets)):A.action==="confirm-warning"?k(!0):j(H.confirmSwap)}},A.title),header:{onWallet:()=>{j(H.wallets)},hasBackButton:!1,title:v.title||XC.t("Swap"),suffix:Ve.createElement(to,{hidden:L?["refresh"]:void 0,onClickRefresh:D,onClickHistory:()=>j(H.swaps),onClickSettings:()=>{j(H.settings)}})}},Ve.createElement(he,null,Ve.createElement(ys,{fetchingQuote:I,fetchMetaStatus:x,isExpandable:L,onClickToken:Y=>{j(Y==="from"?H.fromSwap:H.toSwap)}}),Ve.createElement(rd,{size:"2"}),L?null:Ve.createElement(co,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),j(H.routes)}:void 0}),P?Ve.createElement(Ve.Fragment,null,Ve.createElement(rd,{size:"10"}),Ve.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:w,confirmationDisabled:!M,onOpenWarningModal:()=>k(!0),onCloseWarningModal:()=>k(!1),onConfirmWarningModal:()=>{k(!1),g(!0),j(H.confirmSwap)},onChangeSettings:()=>j(H.settings)})):null)),L?Ve.createElement(ds,{loading:I,onClickOnQuote:ye,fetch:y,onClickRefresh:D,isVisible:m}):null)}i(sd,"Home");import{i18n as ld}from"@lingui/core";import{Alert as ok,Divider as nk,List as rk,ListItemButton as ik,Radio as ak,RadioRoot as sk,Typography as lk}from"@rango-dev/ui";import Ct from"react";function qt(){let{setLanguage:t,language:e,config:o}=h(),n=ep,r=o?.language||To;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||To),resetLanguage:()=>t(null)}}i(qt,"useLanguage");function pd(){let{activeLanguage:t,changeLanguage:e,languages:o}=qt(),n=tt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Ct.createElement(lk,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Ct.createElement(ak,{value:s}),start:Ct.createElement(p,null)}});return Ct.createElement(ue,{header:{title:ld.t("Language")}},Ct.createElement(he,null,Ct.createElement(ok,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Ct.createElement(nk,{size:"8"}),Ct.createElement(sk,{value:t},Ct.createElement(rk,{type:Ct.createElement(ik,{title:ld.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(pd,"LanguagePage");import{i18n as Mt}from"@lingui/core";import{Button as dk,Checkbox as fk,Image as gk,ListItemButton as hk,NotFound as yk,Typography as Sk}from"@rango-dev/ui";import He,{useState as Tk}from"react";import{Checkbox as uk,Skeleton as ud}from"@rango-dev/ui";import fn from"react";import{styled as Ss}from"@rango-dev/ui";var dn=Ss("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ts=Ss("div",{width:80,display:"flex",justifyContent:"flex-end"}),Cs=Ss("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as pk,styled as ck}from"@rango-dev/ui";var cd=ck(pk,{height:61});var mk=30;function ks(){return fn.createElement(dn,null,Array.from(Array(mk),(t,e)=>fn.createElement(cd,{hasDivider:!0,key:e,start:fn.createElement(ud,{variant:"circular",width:35,height:35}),title:fn.createElement(ud,{variant:"text",size:"large",width:90}),end:fn.createElement(uk,{checked:!1})})))}i(ks,"LoadingLiquiditySourceList");function vs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=Tk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Un(o,n),u={Exchanges:Mt.t("Exchanges"),Bridges:Mt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(y=>c.includes(y.type)),d=g.length===g.filter(y=>y.selected).length,m=i(()=>{g.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=g.map(y=>{let{selected:C,groupTitle:v,logo:x}=y;return{start:He.createElement(gk,{src:x,size:22,type:"circular"}),onClick:()=>{l||s(v)},end:He.createElement(fk,{checked:C,disabled:l}),title:He.createElement(Sk,{variant:"title",size:"xmedium"},Mt.t(v)),...y}}),T=i(y=>{let C=y.target.value;a(C)},"searchHandler"),S=f;return r&&(S=f.filter(y=>gt(y.groupTitle,r))),He.createElement(ue,{header:{title:Mt.t(t),suffix:He.createElement(Ts,null,He.createElement(dk,{variant:"ghost",size:"xsmall",onClick:m},d?Mt.t("Deselect all"):Mt.t("Select all")))}},He.createElement(he,{view:!0},He.createElement(Wt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Mt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&He.createElement(ks,null),!S.length&&r?He.createElement(Cs,null,He.createElement(yk,{title:Mt.t("No results found"),description:Mt.t("Try using different keywords")})):e==="success"&&He.createElement(dn,{disabled:l},S.map(y=>{let{groupTitle:C,...v}=y;return He.createElement(He.Fragment,{key:y.id},He.createElement(hk,{style:{height:"61px"},...v,selected:!1,hasDivider:!0}))}))))}i(vs,"LiquiditySourcePage");import{i18n as Ck}from"@lingui/core";import Kr from"react";import{useNavigate as kk}from"react-router-dom";function md(){let t=kk(),e=tt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=G(),{fetch:l,loading:p}=Vr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${H.settings}`,g=`../${H.wallets}`;return Kr.createElement(ue,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Ck.t("Routes"),suffix:Kr.createElement(to,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(he,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(md,"RoutesPage");import{i18n as Cd}from"@lingui/core";import{Divider as kd,getCategoriesCount as Nk,SelectableCategoryList as Mk}from"@rango-dev/ui";import Lt,{useState as vd}from"react";import{i18n as xs}from"@lingui/core";import{Divider as Sd,Image as bk,ListItemButton as Ek,NotFound as Ik,Typography as Td}from"@rango-dev/ui";import rt,{useEffect as Ak,useState as Wk}from"react";var dd=i((t,e,o)=>t.filter(n=>En(n.type,o)).filter(n=>vt(n.name,e)||vt(n.displayName,e)),"filterBlockchains");import{ImageContainer as vk,styled as fd}from"@rango-dev/ui";var gd=fd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xr=fd(Ko,{padding:0,margin:0,listStyle:"none",[`& ${vk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as xk,Skeleton as hd}from"@rango-dev/ui";import jr from"react";var wk=20;function yd(){return jr.createElement(Xr,null,Array.from(Array(wk),t=>jr.createElement(xk,{key:t,hasDivider:!0,start:jr.createElement(hd,{variant:"circular",width:35,height:35}),title:jr.createElement(hd,{variant:"text",size:"large",width:90})})))}i(yd,"LoadingBlockchainList");function ws(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=Wk(e),{fetchStatus:l}=h();Ak(()=>{s([...dd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?rt.createElement(rt.Fragment,null,rt.createElement(Sd,{size:32}),rt.createElement(Ik,{title:xs.t("No results found"),description:xs.t("Try using different keywords")})):rt.createElement(Xr,{as:"ul",key:`${r}-${o}`},a.map(u=>rt.createElement(Ek,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:rt.createElement(bk,{src:u.logo,size:30}),title:rt.createElement(Td,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return rt.createElement(gd,null,rt.createElement(Td,{variant:"label",size:"large"},xs.t("Select Blockchain")),rt.createElement(Sd,{size:4}),l==="loading"&&rt.createElement(yd,null),l==="success"&&p())}i(ws,"BlockchainList");function bs(t){let{type:e}=t,o=tt(),[n,r]=vd(""),[a,s]=vd("ALL"),l=G.use.setToBlockchain(),p=G.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=Nk(c)!==1;return Lt.createElement(ue,{header:{title:Cd.t("Select Blockchain")}},Lt.createElement(he,{view:!0},d&&Lt.createElement(Lt.Fragment,null,Lt.createElement(Mk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Lt.createElement(kd,{size:24})),Lt.createElement(Wt,{value:n,autoFocus:!0,placeholder:Cd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Lt.createElement(kd,{size:16}),Lt.createElement(ws,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(bs,"SelectBlockchainPage");import{i18n as ei}from"@lingui/core";import{Divider as qd}from"@rango-dev/ui";import uo,{useState as Xk}from"react";import{useNavigate as jk}from"react-router-dom";import{i18n as As}from"@lingui/core";import{BlockchainsChip as Yr,Divider as Ed,Image as Id,Skeleton as Dk,Tooltip as $k,Typography as Ws}from"@rango-dev/ui";import _e from"react";import{useEffect as Pk}from"react";var xd=["ETH","COSMOS","OSMOSIS"];function Es(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Lk),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(Bk(s)),r=n.splice(a)}return{list:n,more:r}}i(Es,"prepare");function Lk(t,e){let o=xd,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(Lk,"sortByMostUsedBlockchains");function Bk(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(Bk,"generateSortByPreferredBlockchainsFor");function wd(t,e){return!!e.list.find(o=>o.name===t)}i(wd,"isInVisibleList");function Is(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Pk(()=>{if(e?.selected){let a=Es(t,o,e);wd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Es(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Is,"usePrepareBlockchainList");import{styled as _k}from"@rango-dev/ui";var bd=_k("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Fk=12;function Ns(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Is(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=G.use.resetToBlockchain(),u=G.use.resetFromBlockchain(),c=s.more.length>0,g=s.more.length===1,d=!g&&c;return _e.createElement(_e.Fragment,null,_e.createElement(Ed,{size:12}),_e.createElement(Ws,{variant:"label",size:"large"},As.t("Select Blockchain")),_e.createElement(Ed,{size:12}),_e.createElement(bd,null,l==="loading"&&Array.from(Array(Fk),m=>_e.createElement(Dk,{key:m,variant:"rounded",height:50})),l==="success"&&_e.createElement(_e.Fragment,null,_e.createElement(Yr,{selected:!n,onClick:()=>{o==="from"?u():p()}},_e.createElement(Ws,{variant:"body",size:"xsmall",color:"secondary500"},As.t("All"))),s.list.map(m=>_e.createElement($k,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},_e.createElement(Yr,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},_e.createElement(Id,{src:m.logo,size:30})))),g?_e.createElement(Yr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},_e.createElement(Id,{src:s.more[0].logo,size:30})):null,d?_e.createElement(Yr,{onClick:a,key:"more-blockchains"},_e.createElement(Ws,{variant:"body",size:"xsmall",color:"secondary500"},As._("More +{count}",{count:s.more.length}))):null)))}i(Ns,"BlockchainsSection");import{i18n as Us}from"@lingui/core";import{darkTheme as Fd,Divider as Do,ExternalLinkIcon as Qk,Image as zk,ListItemButton as qk,NotFound as Hk,PinIcon as Gk,Skeleton as Od,Typography as Rr,VirtualizedList as Vk}from"@rango-dev/ui";import X,{useEffect as Ud,useState as Qd}from"react";import{Divider as Dd,ListItem as Uk,Skeleton as gn}from"@rango-dev/ui";import mt from"react";import{css as _o,darkTheme as Ad,ImageContainer as Ok,styled as it,Typography as Wd}from"@rango-dev/ui";var Ms=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ls=_o({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Bs=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ps=_o({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),_s=_o({}),Ds=_o(),Nd=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),$s=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Zr=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ls}`]:{[`& .${Ps}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${_s}`]:{bottom:"-15px"},[`& .${Ms}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Fs=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Os=it(Wd,{}),Md=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ds}`]:{$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),lQ=it("div",{display:"flex",alignItems:"center"}),Ld=it("div",{position:"relative",[`& ${Ok}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bd=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Pd=it(Wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),_d=it("a",{"& svg:hover":{color:"$colors$info"}});function $d(t){return mt.createElement(Zr,null,Array.from(Array(t.size),e=>mt.createElement(Uk,{key:e,hasDivider:!0,start:mt.createElement(gn,{variant:"circular",width:35,height:35}),end:mt.createElement(Jr,null,mt.createElement(gn,{variant:"text",size:"large",width:70}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:50})),title:mt.createElement("div",null,mt.createElement(gn,{variant:"text",size:"large",width:90}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i($d,"LoadingTokenList");var Qs=20,Kk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:Ls()},o?X.createElement("div",{className:Ms()},o):X.createElement($s,{className:Bs()},X.createElement(Rr,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement(Fs,{css:a},X.createElement(Os,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Ps()} ${!o&&_s()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Do,{size:4,direction:"horizontal"}),X.createElement(_d,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(Qk,{size:12}))))},"renderDesc");function zd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Qd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Qd(!0),{getBalanceFor:g,loading:d}=oe(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Qs))},"loadNextPage");Ud(()=>{c(e.length>a.length)},[a.length]),Ud(()=>{s(e.slice(0,Qs))},[e.length,r]);let T=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Do,{size:32}),X.createElement(Hk,{title:Us.t("No results found"),description:Us.t("Try using different keywords")})):X.createElement(Vk,{endReached:u?f:void 0,itemContent:S=>{let y=a[S],C=_n(g(y)),v=y.address||"",x=p.find(k=>k.name===y.blockchain),b=la(x.color,"main"),M={$$color:b.main150,[`.${Fd} &`]:{$$color:b.main750},backgroundColor:"$$color"},w={$$color:b.main750,[`.${Fd} &`]:{$$color:b.main150},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(qk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:X.createElement(Ld,null,X.createElement(zk,{src:y.image,size:30}),m(y,t.type)&&X.createElement(Bd,null,X.createElement(Gk,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||y.name||!y.name&&!v?X.createElement($s,null,X.createElement(Rr,{variant:"title",size:"xmedium"},y.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement(Fs,{css:M},X.createElement(Os,{variant:"body",size:"xsmall",css:w},y.blockchain))):void 0,description:x?.info&&v&&x.type!=="COSMOS"?Kk({address:v,token:a[S],customCssForTag:M,customCssForTagTitle:w,name:y.name,url:x.info.addressUrl.split("{wallet}").join(v)}):y.name||void 0,end:d?X.createElement(Jr,null,X.createElement(Od,{variant:"text",size:"large",width:70}),X.createElement(Do,{size:4}),X.createElement(Od,{variant:"text",size:"medium",width:50})):C&&X.createElement(Md,null,X.createElement(Pd,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(Rr,{variant:"body",className:Ds(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(Nd,null,X.createElement(Rr,{variant:"label",size:"large"},Us.t("Select Token")),X.createElement(Do,{size:4}),l==="loading"&&X.createElement($d,{size:Qs}),l==="success"&&X.createElement(Zr,{as:"ul"},T()))}i(zd,"TokenList");function zs(t){let{type:e}=t,o=jk(),n=tt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=G(),c=oe.use.getBalanceFor(),[g,d]=Xk(""),f=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:c}),y=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),C=i(x=>{e==="source"?s({token:x,meta:{blockchains:T,tokens:S}}):l({token:x,meta:{blockchains:T,tokens:S}})},"updateToken"),v={source:ei.t("Source"),destination:ei.t("Destination")};return uo.createElement(ue,{header:{title:ei.t("Swap {type}",{type:v[e]})}},uo.createElement(he,null,uo.createElement(Ns,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(H.blockchains),onChange:x=>{y(x)}}),uo.createElement(qd,{size:24}),uo.createElement(Wt,{value:g,autoFocus:!0,placeholder:ei.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:x=>d(x.target.value)}),uo.createElement(qd,{size:16}),uo.createElement(zd,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:x=>{C(x);let b=T.find(M=>x.blockchain===M.name);b&&y(b),n()}})))}i(zs,"SelectSwapItemsPage");import{i18n as Vs}from"@lingui/core";import{Alert as Cv,Button as kv,styled as vv}from"@rango-dev/ui";import mo from"react";import{useInRouterContext as xv,useSearchParams as wv}from"react-router-dom";import{i18n as jd}from"@lingui/core";import{Divider as Rk,InfoIcon as ev,TextField as tv,Tooltip as ov,Typography as Yd}from"@rango-dev/ui";import dt from"react";import{Chip as Yk,styled as hn,TextField as Zk}from"@rango-dev/ui";var Hd=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Gd=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Zk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Vd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ti=hn("div",{maxWidth:"280px",padding:"$10"}),Kd=hn(Yk,{width:"61px",flexShrink:0});import{i18n as qs}from"@lingui/core";import{Typography as Jk}from"@rango-dev/ui";import yn from"react";function Xd(){return yn.createElement(ti,null,yn.createElement(Jk,{variant:"label",size:"medium",color:"neutral700"},qs.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,qs.t("Warning")),":",qs.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Xd,"SlippageTooltipContent");function Hs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return dt.createElement(Hd,null,dt.createElement(Vd,null,dt.createElement(Yd,{variant:"title",size:"xmedium"},jd.t("Slippage tolerance per swap")),dt.createElement(Rk,{direction:"horizontal",size:4}),dt.createElement(ov,{container:B(),side:"top",sideOffset:4,content:dt.createElement(Xd,null)},dt.createElement(ev,{color:"gray"}))),dt.createElement(Gd,null,tp.map((r,a)=>{let s=`slippage-${a}`;return dt.createElement(Kd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),dt.createElement(tv,{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>=ip&&s<=rp?n(s):n(null)},suffix:o&&dt.createElement(Yd,{variant:"body",size:"small"},"%"),placeholder:jd.t("Custom")})))}i(Hs,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Zd,BridgesIcon as nv,ChevronRightIcon as Gs,DarkModeIcon as Jd,Divider as oi,ExchangeIcon as rv,InfinityIcon as iv,InfoIcon as av,LanguageIcon as sv,LightModeIcon as Rd,List as lv,ListItem as pv,ListItemButton as cv,Skeleton as uv,styled as mv,Switch as dv,Tabs as fv,Tooltip as gv,Typography as at}from"@rango-dev/ui";import U from"react";import{useNavigate as hv}from"react-router-dom";var yv=mv("div",{width:"202px",height:"$40"}),Sv=[{id:"light",icon:U.createElement(Rd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:U.createElement(Jd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:U.createElement(Zd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Tv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Zd,{...e});case"dark":return U.createElement(Jd,{...e});default:return U.createElement(Rd,{...e})}},"getThemeIcon");function ef(){let t=hv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=qt(),s=a.find(Q=>Q.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),g=Re("theme",c),d=Re("liquiditySource",c),m=Re("language",c),f=h().infiniteApprove,T=h().toggleInfiniteApprove,S=Un(p,u),y=S.filter(Q=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(Q.type)),C=y.length,v=y.filter(Q=>Q.selected).length,x=S.filter(Q=>Q.type==="DEX"),b=x.length,M=x.filter(Q=>Q.selected).length,w=i((Q,te)=>{switch(l){case"loading":return U.createElement(uv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(at,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return U.createElement(at,{variant:"body",size:"medium"},`${Q} / ${te}`)}},"handleSwapperEndItem"),k={id:"bridge-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:U.createElement(U.Fragment,null,w(v,C),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(H.bridges),start:U.createElement(nv,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:U.createElement(U.Fragment,null,w(M,b),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),start:U.createElement(rv,{color:"gray",size:16}),onClick:()=>t(H.exchanges)},A={id:"language-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Language")),start:U.createElement(sv,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(at,{variant:"body",size:"medium"},s),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(H.languages)},L={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),U.createElement(oi,{direction:"horizontal",size:4}),U.createElement(gv,{side:"top",sideOffset:4,container:B(),content:U.createElement(ti,null,U.createElement(at,{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.")))},U.createElement(av,{color:"gray"}))),start:U.createElement(iv,{color:"gray",size:16}),end:U.createElement(dv,{checked:f}),onClick:T},q={id:"theme-item",type:U.createElement(pv,null),title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Theme")),end:U.createElement(yv,null,U.createElement(fv,{container:B(),items:Sv,value:n,onChange:Q=>o(Q.id),type:"primary",borderRadius:"small"})),start:Tv(n)},I=d?[]:[k,E];return m||I.push(A),I.push(L),!e?.singleTheme&&!g&&I.push(q),U.createElement(lv,{type:U.createElement(cv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(ef,"SettingsLists");var bv=vv("div",{paddingLeft:"$8"});function tf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=wv(),r=xv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return mo.createElement(ue,{header:{title:Vs.t("Settings")}},mo.createElement(he,null,o&&mo.createElement(Cv,{type:"info",variant:"alarm",title:Vs.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:mo.createElement(bv,null,mo.createElement(kv,{type:"secondary",size:"small",onClick:a},Vs.t("Reset")))}),mo.createElement(Hs,null),mo.createElement(ef,null)))}i(tf,"SettingsPage");import{i18n as cx}from"@lingui/core";import{cancelSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as dx}from"@rango-dev/ui";import pl from"react";import{useParams as fx}from"react-router-dom";import{i18n as Ze}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Gv,getCurrentStep as Vv,getRelatedWalletOrNull as Kv}from"@rango-dev/queue-manager-rango-preset";import{Button as Pf,CopyIcon as Xv,Divider as jv,DoneIcon as Yv,IconButton as Zv,QuoteCost as Jv,RangoExplorerIcon as Rv,StepDetails as ex,Tooltip as _f,Typography as go,useCopyToClipboard as tx}from"@rango-dev/ui";import{useWallets as ox}from"@rango-dev/wallets-react";import Df from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import Z,{useEffect as $f,useRef as nx,useState as Ff}from"react";import{useNavigate as rx}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var Ev=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function of(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ht.t("Today"):`${Ev[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(of,"timeSince");function nf(t){return t.finishTime?of(parseInt(t.finishTime)):of(parseInt(t.creationTime))}i(nf,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ni}from"@lingui/core";import{Button as rf,Divider as Ks,MessageBox as Iv}from"@rango-dev/ui";import Gt from"react";var af=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Ks,{size:20}),Gt.createElement(Iv,{type:"error",title:ni.t("Cancel Swap"),description:ni.t("Are you sure you want to cancel this swap?")}),Gt.createElement(Ks,{size:32}),Gt.createElement(rf,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Cancel it")),Gt.createElement(Ks,{size:12}),Gt.createElement(rf,{variant:"outlined",type:"primary",size:"large",onClick:e},ni.t("No, Continue"))),"CancelContent");import{i18n as ri}from"@lingui/core";import{Button as sf,Divider as Xs,MessageBox as Av,Typography as Wv}from"@rango-dev/ui";import Bt from"react";var lf=i(({onDelete:t,onClose:e})=>Bt.createElement(Bt.Fragment,null,Bt.createElement(Xs,{size:20}),Bt.createElement(Av,{type:"error",title:ri.t("Delete Transaction"),description:ri.t("Are you sure you want to delete this swap?")}),Bt.createElement(Xs,{size:32}),Bt.createElement(sf,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Delete it")),Bt.createElement(Xs,{size:12}),Bt.createElement(sf,{variant:"outlined",type:"primary",size:"large",onClick:e},Bt.createElement(Wv,{variant:"title",size:"medium",color:"primary"},ri.t("No, Cancel")))),"DeleteContent");import{i18n as js}from"@lingui/core";import{PendingSwapNetworkStatus as Ys}from"rango-types";var Zs={[Ys.WaitingForNetworkChange]:{type:"loading",title:js.t("Change Network")},[Ys.WaitingForConnectingWallet]:{type:"warning",title:js.t("Connect Wallet")},[Ys.NetworkChanged]:{type:"success",title:js.t("Network Changed")}};import{debug as ii}from"@rango-dev/logging-core";import{MessageBox as Nv,Wallet as Mv}from"@rango-dev/ui";import{useWallets as Lv}from"@rango-dev/wallets-react";import fo,{useState as uf}from"react";import{styled as pf}from"@rango-dev/ui";var cf=pf("div",{display:"flex",justifyContent:"center"}),Yz=pf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var mf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Lv(),[c,g]=uf(null),[d,m]=uf(null),f=n?.walletType,T=f?Wi(u(f)):null,S=f?p(f):null,y=a&&!!f&&!!T&&!!S,C=i(()=>{c&&g({...c,open:!1})},"handleCloseNamespaceModal"),v=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),x=i(()=>{f&&S&&(S.namespaces?.length?S.namespaces.length>1?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):S.needsDerivationPath?m({open:!0,providerType:f,providerImage:S.img,namespace:S.namespaces[0]}):l(f).catch(w=>ii(w)):l(f).catch(w=>ii(w)))},"handleWalletItemClick"),b=i(w=>{S?.needsDerivationPath&&S?.singleNamespace&&w[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:w[0]}):l(c?.providerType,void 0,w.map(k=>({namespace:k}))).catch(k=>ii(k)),C()},"handleConfirmNamespaces"),M=i(w=>{w&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:w}]).catch(k=>ii(k)),v()},"handleDerivationPathConfirm");return fo.createElement(fo.Fragment,null,fo.createElement(Nv,{type:e,title:o,description:r}),y&&fo.createElement(cf,null,fo.createElement(Mv,{container:B(),title:S.name,image:S.img,type:f,state:T,link:S.installLink,disabled:s,onClick:x})),fo.createElement(ro,{open:!!c?.open,onClose:C,onConfirm:b,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),fo.createElement(oo,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:v,onConfirm:M}))},"WalletStateContent");function Js(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(re,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&si.createElement(mf,{type:Zs[e].type,title:Zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(lf,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(af,{onClose:o,onCancel:r}))}i(Js,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Rs,Divider as li,MessageBox as df,TokenAmount as Bv,Typography as el}from"@rango-dev/ui";import Fe from"react";import{useNavigate as Pv}from"react-router-dom";function tl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:g,diagnosisUrl:d}=t,m=Pv();return Fe.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Fe.createElement(df,{type:"success",title:Sn.t("Swap Successful")},Fe.createElement(Bv,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Fe.createElement(li,{size:12}),Fe.createElement(el,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Fe.createElement(df,{type:"error",title:Sn.t("Transaction Failed"),description:g}),Fe.createElement(li,{size:32}),n==="success"&&Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Fe.createElement(el,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Fe.createElement(li,{size:12}),d&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Fe.createElement(li,{size:12})),Fe.createElement(Rs,{variant:"outlined",type:"primary",size:"large",onClick:o},Fe.createElement(el,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(tl,"SwapDetailsCompleteModal");import Hv from"react";import{i18n as Uv}from"@lingui/core";import{Alert as Nf,IconButton as Qv,LinkIcon as zv}from"@rango-dev/ui";import Vt,{Fragment as qv}from"react";import{Alert as Dv,ChevronDownIcon as $v,IconButton as Fv}from"@rango-dev/ui";import Fo,{useState as Ov}from"react";import{css as Tn,darkTheme as ff,styled as Pt,Typography as _v}from"@rango-dev/ui";var gf=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=Pt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${ff} &`]:{color:"$secondary500"}}}}}),hf=Pt(Ko,{padding:"$0 $20 $20 $20"}),Bq=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Pq=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Tn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ff} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Sf=Tn({padding:"$5 0"}),ci=Tn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Tf=Tn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Cf=Tn({width:"100%",padding:"0 $20 $10"}),kf=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),vf=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=Pt(_v,{wordBreak:"break-word"});import{styled as ol}from"@rango-dev/ui";var xf=ol("div",{display:"flex",flexDirection:"column",gap:"$10"}),wf=ol("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),bf=ol("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Ef(t){let{message:e}=t,[o,n]=Ov(!1);return Fo.createElement(Dv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Fo.createElement(Fv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Fo.createElement(wf,{rotated:o},Fo.createElement($v,{size:12,color:"gray"}))),footer:Fo.createElement(bf,{open:o},Fo.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Ef,"FailedAlert");import{i18n as If}from"@lingui/core";import{Alert as nl,Button as Af}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rl}from"rango-types";import Cn from"react";function Wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Cn.createElement(nl,{type:"warning",title:n.shortMessage,action:Cn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},If.t("Change"))}):r===rl.WaitingForConnectingWallet?Cn.createElement(nl,{type:"warning",title:n.shortMessage,action:Cn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForConnectingWallet)}},If.t("Connect"))}):Cn.createElement(nl,{type:"warning",title:n.shortMessage})}i(Wf,"WarningAlert");function il(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Vo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Vt.createElement(xf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,T=d===m.length-1,S=(T&&u||p)&&!c,y=T&&a.status==="failed";return Vt.createElement(qv,{key:f},Vt.createElement(Nf,{type:T&&(S&&"loading"||y&&"error")||"success",title:g.description?`${g.description} Tx`:Uv.t("View transaction"),action:g.url&&Vt.createElement(Qv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Vt.createElement(zv,{size:12}))}))}),c&&Vt.createElement(Nf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(Wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(Ef,{message:r}))}i(il,"SwapDetailsAlerts");var Mf=2e3;var Lf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Je(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Je(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Qo(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Je(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Je(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Hv.createElement(il,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Bf(t){if(Vo(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(Bf,"getStepState");function al(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=ox(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),g=G.use.retry(),d=le.use.isActiveTab(),m=rx(),[f,T]=tx(Mf),S=nx(null),[y,C]=Ff(null),[v,x]=Ff(null),b=i(()=>{r(),C(null)},"onCancel"),M=Ee.use.getNotifications(),w=Ee.use.removeNotification(),k=M(),E=Vv(e),A=E?.networkStatus;$f(()=>{k.find(be=>be.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),w(e.requestId)):v&&x(null))},[e.status,e.requestId]),$f(()=>{D?C(mi.WaitingForNetworkChange):A===mi.WaitingForConnectingWallet||A===mi.NetworkChanged?C(A):C(null)},[A]);let L=Lp(e),q=E?Gv(e,E):null,I=E?Kv(e,E):null,Q=nf(e),te=Bp(e),P=i(se=>!!l(se)?.mobileWallet,"isMobileWallet"),D=A===mi.WaitingForNetworkChange&&!!q&&!!I?.walletType&&(P(I.walletType)||a(I.walletType,q)),j=D?s.bind(null,I.walletType,q):void 0,ye=Mp(e,E),Y=Lf({swap:e,switchNetwork:j,showNetworkModal:A,setNetworkModal:C,message:ye,blockchains:p,swappers:u}),ie=Y.length,[ge,Te]=[e.steps[0],e.steps[ie-1]],$=Te.outputAmount||Te.expectedOutputAmountHumanReadable,W=e.steps.reduce((se,be)=>se+parseFloat(be.feeInUsd||""),0),pe=e.steps.find(se=>se.diagnosisUrl)?.diagnosisUrl,ce=N(parseFloat($||"0")*(Te.toUsdPrice||0),4,4),De=N(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),_=$?new Df($).multipliedBy(Te.toUsdPrice||0).toString():"",z=new Df(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),K=et(De,ce),ae=ye.detailedMessage.content||ye.shortMessage,ee=e.status==="success"?Ze.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N($,6,6),token:Y[ie-1].to.token.displayName,conciseAddress:Dn(e.wallets[Y[ie-1].to.chain.displayName]?.address||""),chain:Y[ie-1].to.chain.displayName}}):Z.createElement(vf,null,Z.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},ae?"":Ze.t("Transaction was not sent."),L?`${Ze.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),ae&&Z.createElement(ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",ae));return Z.createElement(ue,{header:{title:Ze.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(bo,null,Z.createElement(Pf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},Z.createElement(go,{size:"medium",variant:"label",color:"error"},Ze.t("Delete"))))},footer:te&&!v&&Z.createElement(Pf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let se=Jn(e,p,c);g(se),setTimeout(()=>{m("../../")},0)}},Ze.t("Try again"))},Z.createElement(he,{compact:!0,view:!0},Z.createElement(pi,null,Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${Ze.t("Request ID")}:`),Z.createElement("div",{className:ci()},Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(_f,{container:B(),content:f?Ze.t("Copied To Clipboard"):Ze.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Zv,{variant:"ghost",onClick:T.bind(null,o||"")},f?Z.createElement(Yv,{size:16,color:"secondary"}):Z.createElement(Xv,{size:16,color:"gray"}))),Z.createElement(kf,{target:"_blank",href:`${yl}/swap/${o}`},Z.createElement(_f,{container:B(),content:Ze.t("View on Rango Explorer"),side:"bottom"},Z.createElement(Rv,{size:20}))))),Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Ze.t("Finished at"):Ze.t("Created at")),Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},Q))),Z.createElement("div",{className:Tf()},Z.createElement(Jv,{fee:N(String(W),2,2),time:zo(Wn(e.steps)),steps:ie}),Z.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:De,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:N($,6,6),usdValue:ce,realUsdValue:_,realValue:$||""},token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image,displayName:Y[ie-1].to.chain.displayName}},percentageChange:N(K,2,2),warningLevel:wt(K??0)})),Z.createElement("div",{className:Cf()},Z.createElement(go,{variant:"title",size:"small"},Ze.t("Swaps steps"))),Z.createElement(jv,{size:8}),Z.createElement(hf,{ref:S},Y.map((se,be)=>{let xn=be,Oo=Bf(e.steps[be]),lg=Oo==="error"||Oo==="in-progress"||Oo==="warning"||Oo==="completed"&&be===Y.length-1;return Z.createElement(ex,{key:xn,step:se,type:"swap-progress",ref:S,state:Oo,hasSeparator:be!==0,tabIndex:xn,isFocused:lg,tooltipContainer:B()})}))),Z.createElement(Js,{state:y,onClose:()=>C(null),onCancel:b,onDelete:n,message:ye.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),Z.createElement(tl,{open:!!v,diagnosisUrl:pe,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:N($,6,6),usdValue:ce,realUsdValue:_,realValue:$||"",percentageChange:N(K,2,2),token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image},description:ee}))}i(al,"SwapDetails");import{i18n as fi}from"@lingui/core";import{Divider as Qf,NotFound as px,Skeleton as vn,Typography as gi}from"@rango-dev/ui";import ve from"react";import{i18n as ix}from"@lingui/core";import{Divider as ax,Skeleton as sx,Typography as lx}from"@rango-dev/ui";import we from"react";import{css as ft,styled as sl}from"@rango-dev/ui";var Of=sl("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=sl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=sl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),VH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),KH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),XH=ft({paddingTop:"$15",display:"flex"}),jH=ft({padding:"$15 $0"}),YH=ft({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),ZH=ft({paddingBottom:"$10"}),JH=ft({display:"flex",justifyContent:"start",alignItems:"center"}),RH=ft({paddingTop:"$5",display:"flex",alignItems:"center"}),eG=ft({display:"flex",alignItems:"center"}),tG=ft({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Uf=ft({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ll(){return we.createElement(Of,null,we.createElement(nn,{type:"swap-preview"}),we.createElement("div",{className:"swaps-steps"},we.createElement(lx,{variant:"title",size:"small"},ix.t("Swaps steps"))),we.createElement(we.Fragment,null,we.createElement(kn,null,we.createElement(Tt,{separator:!1}),we.createElement("div",{className:Uf()},we.createElement(ax,{direction:"horizontal",size:20}),we.createElement(sx,{height:22,variant:"rectangular"}))),we.createElement(di,null),we.createElement(kn,null,we.createElement(Tt,{separator:!1})),we.createElement(di,null),we.createElement(kn,null,we.createElement(Tt,{separator:!1})),we.createElement(di,null),we.createElement(kn,null,we.createElement(Tt,{separator:!1}))))}i(ll,"LoadingSwapDetails");function zf(t){let{requestId:e,showSkeleton:o}=t;return ve.createElement(ue,{header:{title:fi.t("Swap Details"),suffix:ve.createElement(bo,null)}},o&&ve.createElement(gf,null,ve.createElement(pi,null,ve.createElement("div",{className:$o()},ve.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),ve.createElement("div",{className:ci()},ve.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ve.createElement("div",{className:$o()},ve.createElement(gi,{className:Sf(),variant:"label",size:"large",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})))),ve.createElement(ll,null)),!o&&ve.createElement(yf,null,ve.createElement(px,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(zf,"SwapDetailsPlaceholder");function qf(){let{manager:t,state:e}=mx(),o=!e.loadedFromPersistor,n=ot(t),{requestId:r}=fx(),a=tt(),{fetchStatus:s}=h();if(!r)return pl.createElement(dx,{containerStyles:{margin:"20px"},type:"error",title:cx.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&ux(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?pl.createElement(zf,{requestId:r,showSkeleton:l}):pl.createElement(al,{swap:g,requestId:r,onCancel:u,onDelete:c})}i(qf,"SwapDetailsPage");function Hf(){return qp(),Ri(),gx([{path:H.home,element:Ke.createElement(sd,null)},{path:H.routes,element:Ke.createElement(md,null)},{path:H.fromSwap,children:[{index:!0,element:Ke.createElement(zs,{type:"source"})},{path:H.blockchains,element:Ke.createElement(bs,{type:"source"})}]},{path:H.toSwap,children:[{index:!0,element:Ke.createElement(zs,{type:"destination"})},{path:H.blockchains,element:Ke.createElement(bs,{type:"destination"})}]},{path:H.settings,children:[{index:!0,element:Ke.createElement(tf,null)},{path:H.languages,element:Ke.createElement(pd,null)},{path:H.exchanges,element:Ke.createElement(vs,{sourceType:"Exchanges"})},{path:H.bridges,element:Ke.createElement(vs,{sourceType:"Bridges"})}]},{path:H.swaps,children:[{index:!0,element:Ke.createElement(Om,null)},{path:H.swapDetails,element:Ke.createElement(qf,null)}]},{path:H.wallets,element:Ke.createElement(Yc,null)},{path:H.confirmSwap,element:Ke.createElement(Im,null)}])}i(Hf,"AppRoutes");import{useQueueManager as wx}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as bx}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ex}from"rango-sdk";import{useContext as Ix,useEffect as Zf,useState as Jf}from"react";import{globalCss as hx}from"@rango-dev/ui";var Gf=i(()=>hx({"@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 Vf(){let{setWatermark:t}=le();return{fetchApiConfig:i(async()=>{let o=await fetch(`${xt("BASE_URL")}/meta/dapp/config?apiKey=${xt("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(Vf,"useFetchApiConfig");import{useWallets as yx}from"@rango-dev/wallets-react";import{useEffect as Sx,useRef as Tx}from"react";function Kf(){let{connect:t,state:e}=yx(),o=Tx({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Sx(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Kf,"useForceAutoConnect");import{isApprovalTX as Cx,RouteEventType as Xf,StepEventType as jf,StepExecutionEventStatus as kx,WidgetEvents as hi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Yf}from"react";function cl(){let t=oe.use.connectedWallets(),e=oe.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h();Yf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===jf.TX_EXECUTION&&s.status===kx.TX_SENT&&!Cx(l)||s.type===jf.SUCCEEDED){let c=t.find(d=>d.chain===l?.fromBlockchain),g=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);c&&e([c],n),g&&e([g],n)}o(s,p)},"handleStepEvent");return Ce.on(hi.StepEvent,r),()=>Ce.off(hi.StepEvent,r)},[Ce,t]),Yf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Xf.FAILED||s.type===Xf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return Ce.on(hi.RouteEvent,r),()=>Ce.off(hi.RouteEvent,r)},[Ce])}i(cl,"useSubscribeToWidgetEvents");import{useManager as vx}from"@rango-dev/queue-manager-react";import{useEffect as xx}from"react";function ul(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=vx();xx(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ot(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ul,"useSyncNotifications");function ml(){Kf(),Gf(),cl(),ul();let t=h().blockchains(),{canSwitchNetworkTo:e}=Cr(),[o,n]=Jf(""),[r,a]=Jf(),s=Ix(zn),l=t.filter(Ex),{fetchApiConfig:p}=Vf();Zf(()=>()=>zp(),[]),wx({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Zf(()=>(jt.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===bx(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(ml,"useBootstrap");import{styled as Ax}from"@rango-dev/ui";var Rf=Ax("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(){ml();let{config:t}=h(),{activeTheme:e}=pr(t?.theme||{}),{activeLanguage:o}=qt();return dl.createElement(Wx,{language:o},dl.createElement(Rf,{id:"swap-container",className:e()},dl.createElement(Hf,null)))}i(yi,"Main");import{setSolanaSignerConfig as jx}from"@rango-dev/signer-solana";import gl,{useEffect as ig,useMemo as Yx}from"react";import{useState as Nx}from"react";var Mx=i(()=>{let[t,e]=Nx(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=Il(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),eg=Mx;import{checkWaitingForNetworkChange as Lx,makeQueueDefinition as Bx}from"@rango-dev/queue-manager-rango-preset";import{Provider as Px}from"@rango-dev/queue-manager-react";import{useWallets as _x}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Dx}from"@rango-dev/wallets-shared";import{isEvmBlockchain as $x}from"rango-types";import Fx,{useMemo as Ox}from"react";function Ux(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=_x(),l=Ox(()=>Bx({API_KEY:t.apiKey||xt("API_KEY"),BASE_URL:xt("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:oe.use.connectedWallets().map(v=>({accounts:[v],name:v.chain}))},g=i(async(v,x)=>{if(a(v,x))return r(v,x)},"switchNetwork"),d=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=p.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),f=p.filter($x),T=i(v=>{let{supportedChains:x}=s(v);return Ln(x)},"getSupportedChainNames"),S=e(),y={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:Dx(f),getSupportedChainNames:T},getSigners:o,wallets:c,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},C=le.use.isActiveTab();return Fx.createElement(Px,{queuesDefs:[l],context:y,onPersistedDataLoaded:v=>{Lx(v)},isPaused:!C},t.children)}i(Ux,"QueueManager");var tg=Ux;import{useManager as Gx}from"@rango-dev/queue-manager-react";import Vx,{createContext as Kx,useContext as Xx}from"react";function og(){let{findToken:t}=h(),e=h().blockchains(),o=h().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=G();return i(u=>{let{fromBlockchain:c,fromToken:g,toBlockchain:d,toToken:m,requestAmount:f}=u,T={blockchains:e,tokens:o};if(c!==void 0){let S=e.find(y=>y.name===c)??null;n(S)}if(g!==void 0){let S=g?t(g)??null:null;r({meta:T,token:S})}if(d!==void 0){let S=e.find(y=>y.name===d)??null;a(S)}if(m!==void 0){let S=m?t(m)??null:null;s({meta:T,token:S})}f!==void 0&&l(f)},"updateQuoteInput")}i(og,"useUpdateQuoteInput");import{cancelSwap as Qx,getCurrentBlockchainOfOrNull as zx,getCurrentStep as qx,getRelatedWalletOrNull as Hx}from"@rango-dev/queue-manager-rango-preset";var Si=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ot(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&&Qx(o)}getCurrentStepInfo(e){let o=qx(e);return{step:o,wallet:o?Hx(e,o):null,network:o?zx(e,o):null}}};var ng=Kx(void 0);function fl(t){let{manager:e}=Gx(),o=le.use.isActiveTab(),n=G.use.retry(),{findToken:r}=h(),a=new Si(e,{retrySwap:n,findToken:r}),s=oe.use.connectedWallets(),l=oe.use.loading(),p=_l(s),u=oe.use.getWalletsDetails(),c=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=qt().resetLanguage,T=Ee().getNotifications(),S=Ee().clearNotifications,y=og(),C={isActiveTab:o,setCurrentTabAsActive:jt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:v=>u(v,r)},meta:{blockchains:c,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:T,clearAll:S},quote:{updateQuoteInput:y}};return Vx.createElement(ng.Provider,{value:C},t.children)}i(fl,"WidgetInfo");function rg(){let t=Xx(ng);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(rg,"useWidget");function Ti(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=eg();return ig(()=>{n&&r(n)},[n]),Yx(()=>{ql({API_KEY:o?.apiKey||wn,BASE_URL:o?.apiUrl||hl})},[o.apiKey,o.apiUrl]),ig(()=>{t.config?.signers?.customSolanaRPC&&jx("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),gl.createElement(qn,{config:o,onUpdateState:e},gl.createElement(tg,{apiKey:o.apiKey},gl.createElement(fl,null,t.children)))}i(Ti,"WidgetProvider");function ag(t){let e=t.config?.externalWallets;return Ci.createElement(fp,null,e?Ci.createElement(yi,null):Ci.createElement(Ti,{config:t.config??Oi},Ci.createElement(yi,null)))}i(ag,"Widget");function sg(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(sg,"useWidgetEvents");export{x5 as EventSeverity,yo as MainEvents,L5 as Networks,_5 as PendingSwapNetworkStatus,Pi as QuoteEventTypes,w5 as RouteEventType,ki as SUPPORTED_FONTS,b5 as StepEventType,E5 as StepExecutionBlockedEventStatus,I5 as StepExecutionEventStatus,Se as UI_ID,Di as UiEventTypes,_i as WalletEventTypes,N5 as WalletEvents,B5 as WalletTypes,ag as Widget,yo as WidgetEvents,Ti as WidgetProvider,qn as WidgetWallets,ma as customizedThemeTokens,W5 as readAccountAddress,Jt as useWalletList,Cr as useWallets,rg as useWidget,sg as useWidgetEvents,mg as widgetEventEmitter};
1
+ var pg=Object.defineProperty;var i=(t,e)=>pg(t,"name",{value:e,configurable:!0});import{EventSeverity as x5,RouteEventType as w5,StepEventType as b5,StepExecutionBlockedEventStatus as E5,StepExecutionEventStatus as I5}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as W5,useWallets as Cr,Events as N5}from"@rango-dev/wallets-react";import{Networks as L5,WalletTypes as B5}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as _5}from"rango-types";import{UI_ID as cg}from"@rango-dev/ui";var wn="c6381a79-2817-4602-83bf-6a641a409e32",hl="https://api.rango.exchange",yl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...cg};var Sl="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 Qi,Provider as rh}from"@rango-dev/wallets-react";import{isEvmBlockchain as ih}from"rango-sdk";import Qn,{createContext as ah,useEffect as mp,useMemo as sh,useRef as dp}from"react";import{useEffect as Mg}from"react";import{create as Ag}from"zustand";import{subscribeWithSelector as Wg}from"zustand/middleware";import ug from"mitt";var Ce=ug(),mg={on:Ce.on,off:Ce.off};import{RangoClient as Eg}from"rango-sdk";import{BlockchainCategories as Tg,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Cg}from"@rango-dev/wallets-react";import{detectInstallLink as kg,getCosmosExperimentalChainInfo as vg,isEvmAddress as xg,KEPLR_COMPATIBLE_WALLETS as ww,Networks as Nl}from"@rango-dev/wallets-shared";import Ai from"bignumber.js";import{isCosmosBlockchain as wg}from"rango-types";import dg from"bignumber.js";var Oe=new dg(0);import{WalletTypes as fg}from"@rango-dev/wallets-shared";var Tl=[fg.LEAP];import{BlockchainCategories as vi,WalletState as Sg}from"@rango-dev/ui";import{TransactionType as bn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function bl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(bl,"debounce");function vt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(vt,"containsText");function vl(t,e){return t.toLowerCase()===e.toLowerCase()}i(vl,"exactText");function xl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(xl,"startWithText");var B=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Uo=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function wl(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:0}i(wl,"compareExactMatchText");function xi(t,e,o){let n=!!e&&vt(e,t),r=!!o&&vt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareContainsText");function wi(t,e,o){let n=!!e&&xl(e,t),r=!!o&&xl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareStartWithText");function El(t,e,o){if(!o)return 0;let n=wl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=wl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r!==0)return r}return 0}i(El,"compareWithSearchFor");var En=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===bn.TRANSFER;case vi.OTHER:return t!==bn.TRANSFER&&t!==bn.COSMOS&&t!==bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Il=i(t=>ki.find(o=>o.value===t)?.url,"getFontUrlByName");function In(t,e){let o=!!t.find(n=>n.state===Sg.CONNECTED);return e===!1&&o}i(In,"isSingleWalletActive");function An(t,e){return e.find(o=>o.name===t)?.displayName}i(An,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"getBlockchainShortNameFor");function Al(t,e){return e.find(o=>o.name===t)?.logo}i(Al,"getBlockchainImage");function Qo(t,e){return e.find(o=>o.id===t)?.title}i(Qo,"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 st(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(st,"createTokenHash");import{BigNumber as Wl}from"bignumber.js";var zo=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 Wl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Wl(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 Wn=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"),qo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Wi(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(Wi,"mapStatusToWalletState");function Ml(t,e,o,n){return o.filter(r=>!Tl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:g,needsDerivationPath:d}=e(r),m=ho(g.map(T=>T.type)),f=Wi(t(r));return{title:a,image:s,link:kg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:d}})}i(Ml,"mapWalletTypesToWalletInfo");function Ln(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ln,"walletAndSupportedChainsNames");function Ll(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(g=>g.chain===p)){let g={address:u,chain:p,walletType:t};a.push(g)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Cg(p),g=l.length>0,d=l.includes(c),m=c===Nl.Unknown;if(g&&!d&&!m)return;let T=c===Nl.Unknown&&xg(u);if(m&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(Ll,"prepareAccountsForWalletStore");function Kt(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 g=u.from.blockchain,d=u.to.blockchain,m=a===o.swaps.length-1,f=c===p.length-1;(!m&&!f||m&&l!==g||e==="all")&&n.add(g),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Kt,"getQuoteWallets");function Bn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Bn,"isAccountAndWalletMatched");function Bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ai(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Bl,"makeBalanceFor");function Pl(t){return{...t,loading:!1,error:!0}}i(Pl,"resetConnectedWalletState");var _l=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||Oe).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Oe)||Oe).toString();return bg(r)},"calculateWalletUsdValue");function bg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(bg,"numberWithThousandSeparator");var Pn=i((t,e)=>{let o=vg(Object.entries(t).map(([,n])=>n).filter(wg));return o&&o[e]?.experimental},"isExperimentalChain");function _n(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(_n,"formatBalance");function Dl(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(Dl,"compareTokenBalance");function Xt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Xt,"areTokensEqual");function $l(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($l,"sortWalletsBasedOnConnectionState");function Dn(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(Dn,"getConciseAddress");function Fl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Fl,"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??Oe).multipliedBy(o?.amount).toString():""},r=o?st({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 Ol=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ul(t){return t.map(e=>e.state).join("-")}i(Ul,"hashWalletsState");function Ql(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(Ql,"filterBlockchainsByWalletTypes");function zl(t,e){return e===Tg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(En(n,e))return!0;return!1})}i(zl,"filterWalletsByCategory");var Ni={API_KEY:wn};function xt(t){return Ni[t]||""}i(xt,"getConfig");function ql(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ni=e,Ni}i(ql,"initConfig");var Hl=20,Gl=25,Mi="theme-widget",Li=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Xt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Xt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Bi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Vl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Fn,_t=i(()=>Fn||(Fn=new Eg(xt("API_KEY"),xt("BASE_URL")),Fn),"httpService");import{WidgetEvents as Kl}from"@rango-dev/queue-manager-rango-preset";var Pi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Pi||{}),_i=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(_i||{}),Di=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Di||{}),yo=(a=>(a[a.RouteEvent=Kl.RouteEvent]="RouteEvent",a[a.StepEvent=Kl.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(yo||{});var Ig=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"),Dt=Ig;var oe=Dt(Ag()(Wg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{Ce.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)&&Ce.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=>Bn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(T=>Bn(T,d)),f=p.find(T=>T.address===d.address&&T.blockChain===d.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Bl(f,n),loading:!1}:d});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(g=>Bn(g,c))?Pl(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=st(o);return n[r]??null}}))));import{allProviders as Ng}from"@rango-dev/provider-all";function On(t,e){let o=Ng({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(On,"matchAndGenerateProviders");function Xl(t,e){return On(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function jl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(jl,"hashProviders");function $i(t,e){let o=oe.use.clearConnectedWallet(),n=On(t,e);return Mg(()=>{o(),n=On(t,e)},[jl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i($i,"useWalletProviders");import Zg,{createContext as Jg,useContext as Rg,useEffect as eh,useRef as th}from"react";import{create as jg}from"zustand";import{persist as Yg}from"zustand/middleware";var Fi=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},So=new Fi;function Ho(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=st(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=st(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(Ho,"matchTokensFromConfigWithMeta");var Oi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Lg={clientUrl:void 0},Bg={liquiditySources:void 0},Yl=i((t,e,o)=>({config:{...Oi,...t},iframe:Lg,campaignMode:Bg,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,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=Ho({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Ho({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});So.set("supportedSourceTokens",l),So.set("supportedDestinationTokens",p),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 Un(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(Un,"getUniqueSwappersGroups");function Zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Zl,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function Jl(t,e){return e?.[t]==="enabled"}i(Jl,"isFeatureEnabled");var Rl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_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{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",c=So.get(u);c||(c=Ho({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),So.set(u,c));let g=e().blockchains({type:o.type});return c.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(vt(m.symbol,o.searchFor)||vt(m.address||"",o.searchFor)||vt(m.name||"",o.searchFor)):!0).sort((m,f)=>{let T=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(T!==S)return T?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),M=o.getBalanceFor(f),w=Dl(b,M);if(w!==0)return w}let y=l.get(m.blockchain),C=l.get(f.blockchain),v=Ii(m,y),x=Ii(f,C);if(v!==x)return v?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=El(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:y&&C?y.sort-C.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=st(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Xt(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(Zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,u=n.swappers,c=new Set;n.tokens.forEach(d=>{c.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&c.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=st(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Pg,English as _g,Finland as Dg,French as $g,German as Fg,Greece as Og,Italian as Ug,Japanese as Qg,Netherlands as zg,Poland as qg,Portuguese as Hg,Russian as Gg,Spanish as Vg,Swedish as Kg,Ukrainian as Xg}from"@rango-dev/ui";var ep=[{title:"English",label:"English",local:"en",SVGFlag:_g},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Vg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:$g},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Qg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Hg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Pg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Gg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Fg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Xg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Kg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Dg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:zg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Og},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Ug},{title:"Polish",label:"Polski",local:"pl",SVGFlag:qg}],To="en";var tp=[.5,1,3],op=1,np=5,rp=100,ip=0;var ap=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:op,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=Re("theme",n),s=Re("language",n),l=Re("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||To},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||To}})}}),"createSettingsSlice");function sp(t){return jg()(Yg((...e)=>({...Rl(...e),...ap(...e),...Yl(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(sp,"createAppStore");var lp=Jg(null);function h(){let t=Rg(lp);if(eh(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function pp(t){let e=th();return e.current||(e.current=sp(t.config)),Zg.createElement(lp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");import{create as nh}from"zustand";var cp="rango-widget";var Go=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.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.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(cp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}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}}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 le=Dt(nh()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),jt=new Go({onInit:()=>le.setState({tabManagerInitiated:!0}),onClaim:()=>le.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>le.setState({isActiveTab:!1})});var zn=ah({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function lh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=$i(l.wallets,p),{connectWallet:c,disconnectWallet:g}=oe(),d=dp(),m=dp();mp(()=>{n().catch(console.log)},[]),mp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(ih).map(C=>C.name),T=i((C,v,x,b,M)=>{if(v===Qi.ACCOUNTS)if(x){let w=Ln(M.supportedBlockchains),k=Ll(C,x,f,w,M.isContractWallet);k.length&&c(k,s)}else g(C),m.current?m.current(C):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(v===Qi.ACCOUNTS&&b.connected){let w=`${C}-${b.network}-${x}`;b.connected&&(d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(v===Qi.NETWORK&&b.network){let w=`${C}-${b.network}`;d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(C,v,x,b,M)},"onUpdateState"),S=le.use.isActiveTab(),y=sh(()=>({onConnectWallet:C=>{d.current=C},onDisconnectWallet:C=>{m.current=C}}),[]);return Qn.createElement(zn.Provider,{value:y},Qn.createElement(rh,{allBlockChains:a,providers:u,onUpdateState:T,autoConnect:!!S},t.children))}i(lh,"Main");function qn(t){let{config:e,...o}=t;return Qn.createElement(pp,{config:e},Qn.createElement(lh,{...o,config:e}))}i(qn,"WidgetWallets");import Ci from"react";import ph,{Fragment as ch}from"react";import{MemoryRouter as uh,useInRouterContext as mh}from"react-router";function fp({children:t}){let o=mh()?ch:uh;return ph.createElement(o,null,t)}i(fp,"AppRouter");import{I18nManager as Wx}from"@rango-dev/ui";import dl from"react";import Ke from"react";import{useRoutes as gx}from"react-router-dom";var H={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 vo,useRef as er}from"react";import He from"bignumber.js";import{create as gh}from"zustand";import{subscribeWithSelector as hh}from"zustand/middleware";import{getLastSuccessfulStep as fh}from"@rango-dev/queue-manager-rango-preset";import gI from"bignumber.js";function zi(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(zi,"getFeeLabel");var qi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],gp=30;import{i18n as lt}from"@lingui/core";import{RouteEventType as RE}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Vn}from"rango-types";function Hn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Hn,"isValidAddress");import{i18n as $e}from"@lingui/core";var ne=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function hp(t){switch(t.type){case 0:return t.diagnosisMessage??ne().noResultError.title;case 1:return ne().genericServerError;default:return""}}i(hp,"getQuoteErrorMessage");import{i18n as Gn}from"@lingui/core";var Yt=i(()=>({connectWallet:Gn.t("Connect Wallet"),swap:Gn.t("Swap"),swapAnyway:Gn.t("Swap anyway"),ethWarning:Gn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function yp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Ue(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Ue(1e3)))??!1}i(yp,"hasHighValueLoss");function Sp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Sp,"hasLimitError");function Tp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(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 Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=lt.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=lt.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=lt.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=lt.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Tp,"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:Yt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Yt().swap,action:"confirm-swap",disabled:!0}:s?{title:Yt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Yt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Yt().swap,action:"confirm-swap",disabled:!1}:{title:Yt().connectWallet,action:"connect-wallet",disabled:!1}}i(Cp,"getSwapButtonState");function Hi(t,e,o){return!((!o||o.lte(Oe))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Hi,"canComputePriceImpact");function Gi(t,e){let o=Oe;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 Ue(r.amount).multipliedBy(a||0))}return o}i(Gi,"getUsdFeeOfStep");function Kn(t,e){return t.reduce((o,n)=>o.plus(Gi(n,e)),Oe)}i(Kn,"getTotalFeeInUsd");function Vi(t){let e=Oe;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Vi,"getUsdFee");function kp(t){return t.reduce((e,o)=>e.plus(Vi(o)),Oe)}i(kp,"getTotalFeesInUsd");function vp(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(vp,"getFeesGroup");function xp(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(xp,"checkSlippageErrors");function wp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(wp,"checkSlippageWarnings");function 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 bp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bp,"hasProperSlippage");function Ep(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,T=a?.reduce((C,v)=>(C[v.chain]=v.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:g??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:T??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Ep,"createQuoteRequestBody");function Ip(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ip,"getWalletsForNewSwap");function Co(t){return t?.outputAmount||null}i(Co,"getQuoteOutputAmount");function Ap(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(100).toNumber()}i(Ap,"getPercentageChange");function Wp(t,e){let o=Co(t),n=Co(e);if(!o||!n)return!1;let r=et(o,n);return r?r<=-1:!0}i(Wp,"isOutputAmountChangedALot");function Np(t,e,o){let n=t.validationStatus,r=Kt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Dp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=lt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=lt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=lt.t(" for input and network fee")),lt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Je(s.asset.blockchain,o)}})})}i(Np,"generateBalanceWarnings");function jn(t,e){return(t?new Ue(t):Oe).multipliedBy(e||0)}i(jn,"calcOutputUsdValue");function Vo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Vn.NetworkChanged}i(Vo,"isNetworkStatusInWarningState");function Mp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Vo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Vn.WaitingForConnectingWallet:n=n||lt.t("Waiting for connecting wallet");break;case Vn.WaitingForQueue:n=n||lt.t("Waiting for other running tasks to be finished");break;case Vn.WaitingForNetworkChange:n=n||lt.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(Mp,"getSwapMessages");function Lp(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(Lp,"getLastConvertedTokenInFailedSwap");function Bp(t){return t.status==="failed"}i(Bp,"shouldRetrySwap");function Pp(t,e,o,n,r,a){if(!n||t)return!0;let s=Kt({filter:"all",quote:n}),l=Kt({filter:"required",quote:n}),p=s.every(g=>r.some(d=>d.chain===g)),u=l.every(g=>r.some(d=>d.chain===g)),c=o&&a?Hn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Pp,"isConfirmSwapDisabled");function _p(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(_p,"isTokensIdentical");function Zn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Zn,"getQuoteToTokenUsdPrice");function Ki(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ki,"isNumberOfSwapsChanged");function Xi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Xi,"isQuoteSwappersUpdated");function ji(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(ji,"isQuoteInternalCoinsUpdated");function Fp(t,e){return Ki(t,e)||Xi(t,e)||ji(t,e)}i(Fp,"isQuoteChanged");function Dp(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(Dp,"getRequiredBalanceOfWallet");function wt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(wt,"getPriceImpactLevel");function Jn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=fh(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),g=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:g}}i(Jn,"createRetryQuote");function ko(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Zt(o,t.requestAmount),l=Zt(n,t?.outputAmount??"");if(t&&s&&l){let c=et(s.toString(),l.toString());if(!!c&&yp(s,c)){let d=Kn(t?.swaps,r),m=wt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>np;if(bp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:wp(t,a),minRequiredSlippage:p};return null}i(ko,"generateQuoteWarnings");function et(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ap(t.toString(),e.toString());return n&&n<0?n:null}i(et,"getPriceImpact");var Op=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"),Rn=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"),Up=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"),Qp=i(t=>{let e=i((o,n)=>{let r=qi.indexOf(o.value),a=qi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Zt=i((t,e)=>t?.usdPrice?new He(e||Oe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),G=Dt(gh()(hh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new He(0),outputUsdValue:new He(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=Oe;return qo(o.inputAmount)?(e&&(n=e?.outputAmount?new He(e?.outputAmount):null,r=jn(e?.outputAmount,Zn(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 He(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new He(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new He(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Zt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new He(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new He(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Zt(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:Zt(n??null,s),outputUsdValue:new He(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?Zt(e.toToken,e.outputAmount?.toString()||""):new He(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new He(0),inputUsdValue:new He(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new He(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zp=G.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.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&&Ce.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 qp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=G(),c=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:T,setAffiliatePercent:S,setAffiliateWallets:y}=h(),C=c?.from?.tokens,v=c?.from?.blockchains,x=c?.to?.tokens,b=c?.to?.blockchains,M=er(void 0),w=er(void 0),k=er(void 0),E=er(void 0);vo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),L=c?.from?.token,q=L&&f(L);(A||!A&&k.current)&&n(A??null),q?a({token:q,meta:{blockchains:d,tokens:m}}):!q&&M.current&&a({token:null}),k.current=c?.from?.blockchain,M.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,g]),vo(()=>{Li(s,C)&&a({token:null}),Bi(p,v)&&n(null)},[C,v]),vo(()=>{Li(l,x)&&a({token:null}),Bi(u,b)&&o(null)},[x,b]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),L=c?.to?.token,q=L&&f(L);(A||!A&&E.current)&&o(A??null),q?e({token:q,meta:{blockchains:d,tokens:m}}):!q&&w.current&&e({token:null}),E.current=c?.to?.blockchain,w.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,g]),vo(()=>{T(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(qp,"useSyncStoresWithConfig");import{useEffect as Ji,useRef as yh}from"react";import{useInRouterContext as Sh,useLocation as Th,useSearchParams as Ch}from"react-router-dom";function Yi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Yi,"convertTokenSearchParamToAsset");function Zi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Zi,"tokenToSearchParam");function Ri(){let t=Th(),[e,o]=Ch(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:g,setInputAmount:d}=G(),m=h().fetchStatus,f=h().blockchains(),T=h().tokens(),S=Sh(),{updateIframe:y,updateCampaignMode:C}=h(),v=h().isInCampaignMode(),x=yh(),{findToken:b}=h(),M=i(()=>{let k={};for(let[D,j]of e.entries())D.startsWith("utm_")&&(k[D]=j);let E=e.get("fromAmount"),A=e.get("fromBlockchain"),L=e.get("fromToken"),q=e.get("toBlockchain"),I=e.get("toToken"),Q=e.get("autoConnect"),te=e.get("clientUrl"),P=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:A,fromToken:L,toBlockchain:q,toToken:I,autoConnect:Q,clientUrl:te,liquiditySources:P,utmQueryParams:k}},"getUrlSearchParams"),w=i(k=>{for(let E in k)k[E]||delete k[E];o(k,{replace:!0})},"updateUrlSearchParams");Ji(()=>{let{autoConnect:k,clientUrl:E,utmQueryParams:A}=M();S&&m==="success"&&w({fromBlockchain:n?.name,fromToken:Zi(a),toBlockchain:r?.name,toToken:Zi(s),fromAmount:l,autoConnect:k??void 0,clientUrl:E??void 0,liquiditySources:v?x.current:void 0,...A})},[t.pathname,l,n,a,r,s,v]),Ji(()=>{if(!S)return;let k=M();if(!x.current&&k.liquiditySources&&(x.current=k.liquiditySources),k.fromAmount&&d(k.fromAmount),m==="success"){let E=f.find(I=>I.name===k.fromBlockchain),A=k.fromToken&&E?b(Yi(k.fromToken,E)):void 0,L=f.find(I=>I.name===k.toBlockchain),q=k.toToken&&L?b(Yi(k.toToken,L)):void 0;E&&(p(E),A&&c({token:A,meta:{blockchains:f,tokens:T}})),L&&(u(L),q&&g({token:q,meta:{blockchains:f,tokens:T}}))}},[m]),Ji(()=>{let{clientUrl:k,liquiditySources:E}=M();y("clientUrl",k||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Ri,"useSyncUrlAndStore");import{i18n as rs}from"@lingui/core";import{useManager as YT}from"@rango-dev/queue-manager-react";import{Alert as bm,Button as ZT,css as as,Divider as is,IconButton as Em,styled as JT,Typography as RT,WalletIcon as eC}from"@rango-dev/ui";import We,{useEffect as zr,useLayoutEffect as tC,useRef as oC,useState as sn}from"react";import{useNavigate as nC}from"react-router-dom";import{i18n as ao}from"@lingui/core";import{Alert as nu,BalanceErrors as OS,Button as ru,ChevronLeftIcon as US,Divider as kr,MessageBox as QS,Typography as $a}from"@rango-dev/ui";import J,{useCallback as zS,useEffect as iu,useMemo as qS,useState as so}from"react";import{useNavigate as HS}from"react-router-dom";import{i18n as tr}from"@lingui/core";function or(t){switch(t.type){case 0:return tr.t("Route has been updated.");case 3:return tr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return tr.t("Route swappers has been updated.");case 2:return tr.t("Route internal coins has been updated.");default:return""}}i(or,"getQuoteUpdateWarningMessage");import{Modal as vh}from"@rango-dev/ui";import xh from"react";function re(t){let{watermark:e}=le();return xh.createElement(vh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import{i18n as na}from"@lingui/core";import{Alert as Ah,ChevronDownIcon as Wh,CloseIcon as Nh,Divider as Zp,IconButton as Jp,PasteIcon as Mh,Typography as Lh,WalletIcon as Bh}from"@rango-dev/ui";import Le,{useEffect as Ph,useRef as _h}from"react";import ar,{useRef as Eh}from"react";import*as xo from"@radix-ui/react-collapsible";import{keyframes as Gp,styled as nr}from"@rango-dev/ui";var ea=300,wh=Gp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),bh=Gp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Vp=nr(xo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ta=nr(xo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),rr=nr(xo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${wh} ${ea}ms ease-out`},false:{animation:`${bh} ${ea}ms ease-out`}}}}),ir=nr("div",{transition:`all ${ea}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function sr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Eh(null);return ar.createElement(Vp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ar.createElement(ta,{className:"collapsible_trigger",onClick:a},s),ar.createElement(rr,{className:"collapsible_content",open:e},r),l==="bottom"&&ar.createElement(ta,{className:"collapsible_trigger",onClick:a},s))}i(sr,"CustomCollapsible");import{darkTheme as Kp,styled as oa,TextField as Ih}from"@rango-dev/ui";var Xp=oa("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),jp=oa(Ih,{backgroundColor:"$neutral100",padding:"$15"}),Yp=oa("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Kp} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Kp} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Rp(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=G(),{config:s}=h(),l=h().blockchains(),p=An(e.name,l),u=_h(null),c=s?.defaultCustomDestinations?.[e.name],g=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Hn(e,r),f=i(()=>{a("")},"handleClear"),T=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),u?.current?.focus()}},"handlePaste"),S=i(()=>r?Le.createElement(Jp,{onClick:f,variant:"ghost"},Le.createElement(Nh,{size:12,color:"gray"})):g?null:Le.createElement(Jp,{onClick:T,variant:"ghost"},Le.createElement(Mh,{size:16})),"renderSuffix");return Ph(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Le.createElement(Xp,null,Le.createElement(sr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(Yp,null,Le.createElement("div",{className:"button__content"},Le.createElement(Bh,{size:18,color:"info"}),Le.createElement(Zp,{size:4,direction:"horizontal"}),Le.createElement(Lh,{variant:"label",size:"medium",color:n?"$neutral600":void 0},na.t("Send to a different address"))),Le.createElement(ir,{orientation:n?"up":"down"},Le.createElement(Wh,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(jp,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:na.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),m&&Le.createElement(Le.Fragment,null,Le.createElement(Zp,{size:4}),Le.createElement(Ah,{variant:"alarm",type:"error",title:na.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Rp,"CustomDestination");import{css as Dh,darkTheme as ra,IconButton as $h,styled as bt}from"@rango-dev/ui";var ec=bt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),tc=bt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fh=bt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ra} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ra} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ra} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),oc=bt(Fh,{alignSelf:"stretch",minHeight:"93px"}),nc=bt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),rc=bt($h,{position:"absolute",left:"$20"}),ic=bt("div",{paddingTop:"$20"}),ac=Dh({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),sc=bt("div",{display:"flex"}),lc=bt("div",{overflow:"visible",width:"100%"});import{i18n as pt}from"@lingui/core";import{Button as _S,Divider as _a,Image as DS,MessageBox as Tr,SelectableWallet as $S,Typography as eu,WalletState as tu}from"@rango-dev/ui";import me,{useEffect as ou,useState as io}from"react";import{WalletState as ia}from"@rango-dev/ui";import{useWallets as Oh}from"@rango-dev/wallets-react";import{detectMobileScreens as Uh,KEPLR_COMPATIBLE_WALLETS as Qh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as zh,useEffect as qh,useState as Hh}from"react";var Gh=Object.values(wo);function Jt(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=Oh(),{connectedWallets:c}=oe(),g=h().blockchains(),d=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Gh,m=Ml(s,p,d,e);m=Uh()?m.filter(w=>w.showOnMobile!==!1&&s(w.type).installed):m;let f=$l(m),[T,S]=Hh(""),y=i(w=>!c.find(k=>k.walletType===w&&k.chain===e),"isExperimentalChainNotAdded"),C=i(async(w,k)=>{let E=s(w);try{if(T&&S(""),E.connected)await l(w);else{if(In(m,a.multiWallets))return;o?.(w),await u(w,void 0,k),n?.(w)}}catch(A){r?.(A?.message),S("Error: "+A?.message)}},"handleClick"),v=zh(()=>{let w=m?.filter(k=>k.state===ia.CONNECTING)||[];for(let k of w)l(k.type)},[Ul(m)]),x=i(async w=>{s(w).connected&&await l(w)},"disconnectWallet");qh(()=>()=>{v()},[]);let b=i(w=>{let k=w.find(A=>A.type===wo.DEFAULT);return!k||k.state===ia.NOT_INSTALLED?!1:w.filter(A=>A.state!=ia.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(A.type)&&p(A.type).supportedChains.filter(L=>L.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),M=i((w,k,E)=>Pn(E,k)&&y(w)&&!Qh.includes(w)||w==wo.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(w=>!M(w.type,e??"",g)),error:T,handleClick:C,disconnectConnectingWallets:v,disconnectWallet:x}}i(Jt,"useWalletList");import{i18n as Kc}from"@lingui/core";import{Divider as ES,getCategoriesCount as IS,SelectableCategoryList as AS,styled as jc,Typography as WS,Wallet as NS,WalletState as Xc}from"@rango-dev/ui";import nt,{useState as jo}from"react";import{useManager as Yy}from"@rango-dev/queue-manager-react";import{BottomLogo as Zy,Divider as Pc,Header as Jy}from"@rango-dev/ui";import xe,{useEffect as Ia,useRef as _c,useState as Ry}from"react";import{useRef as Vh}from"react";function lr(){return window.self!==window.top}i(lr,"isAppLoadedIntoIframe");function aa(){let t=Vh(null),{iframe:e}=h(),o=lr()&&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(aa,"useIframe");import{useNavigate as Kh}from"react-router-dom";function tt(){let t=Kh();return()=>t(-1)}i(tt,"useNavigateBack");import{createTheme as da,darkTheme as sy,lightTheme as ly}from"@rango-dev/ui";import{useEffect as py,useState as cy}from"react";import{theme as iy,darkColors as ay}from"@rango-dev/ui";import ua from"react";function Xh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Xh,"expandShortHexColor");function jh(t){return/[0-9]+$/.test(t)}i(jh,"isOverridingColor");function Yh(t,e){return t.padStart(e,"0")}i(Yh,"pad");function sa(t){let e=Math.min(Math.max(Math.round(t),0),255);return Yh(e.toString(16),2)}i(sa,"intToHex");function Zh(t){return`#${sa(t.red)}${sa(t.green)}${sa(t.blue)}`}i(Zh,"rgbToHex");function Jh(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(Jh,"hexToRGB");function Rh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Rh,"generateShade");function ey(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(ey,"generateTint");function ty(t){return pc(t,Rh)}i(ty,"calculateShades");function oy(t){return pc(t,ey)}i(oy,"calculateTints");function pc(t,e){let o=Jh(t),n=[];for(let r=1;r<9;r++)n.push(Zh(e(o,r)));return n}i(pc,"calculateColors");function la(t,e,o){let a=oy(t).reverse().concat(t),s=ty(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let g=100+(o?u-1-c:c)*50;p[`${e}${g}`]=l[c]}return p}i(la,"createTintsAndShades");function pa(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)&&!jh(r)){let p=Xh(a);Object.assign(n,la(p,r,s))}}return{...n,...e}}i(pa,"expandToGenerateThemeColors");var cc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),ny=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=cc(o%52)+e;return cc(o%52)+e},"toAlphabeticName"),ry=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ca=i(t=>ny(ry(5381,JSON.stringify(t))>>>0),"toHash");function ma(t){let e=iy.colors,o={...e,...ay},n,r;if(t?.light){let s={colors:pa(e,t.light)};n={id:`${Mi}-light-${ca(s)}`,tokens:s}}if(t?.dark){let s={colors:pa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Mi}-dark-${ca(s)}`,tokens:s}}return{light:n,dark:r}}i(ma,"customizedThemeTokens");function uc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ua.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ua.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ua.cloneElement(e,{key:l}))}}),o}i(uc,"joinList");function mc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(mc,"doesWindowPreferDarkColorScheme");function pr(t){let{colors:e,fontFamily:o=Sl,borderRadius:n=Hl,secondaryBorderRadius:r=Gl}=t,[a,s]=cy(mc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=ma(e),c=da({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[c.className,ly.className],d=[c.className,sy.className];if(u){let f=da(u.id,u.tokens);g.push(f.className)}if(p){let f=da(p.id,p.tokens);d.push(f.className)}return py(()=>{let f=i(T=>{T.matches?s("dark"):s("light")},"switchThemeListener");return mc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=g.join(" "),T=d.join(" ");return l==="auto"?a==="dark"?T:f:l==="dark"?T:f},"getActiveTheme")}}i(pr,"useTheme");var ot=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 dc}from"@lingui/core";import{Alert as uy,Button as my}from"@rango-dev/ui";import fc from"react";function fa(t){return fc.createElement(uy,{action:fc.createElement(my,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},dc.t("Activate this tab")),type:"warning",variant:"alarm",title:dc.t("Another tab is open and handles transactions.")})}i(fa,"ActivateTabAlert");import{i18n as ga}from"@lingui/core";import{Button as dy,Divider as fy,MessageBox as gy}from"@rango-dev/ui";import cr from"react";function ha(t){let{open:e,onClose:o,onConfirm:n}=t;return cr.createElement(re,{open:e,dismissible:!0,onClose:o,container:B()},cr.createElement(gy,{title:ga.t("Activate current tab"),type:"warning",description:ga.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.")},cr.createElement(fy,{size:20}),cr.createElement(dy,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ga.t("Confirm"))))}i(ha,"ActivateTabModal");import{ChevronLeftIcon as Sy}from"@rango-dev/ui";import kc from"react";import{css as hy,darkTheme as gc,IconButton as yy,styled as Rt}from"@rango-dev/ui";var yt=Rt(yy,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${gc} &`]:{backgroundColor:"$neutral"}}}),hc=Rt("div",{position:"absolute",background:"$secondary500",[`.${gc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),bo=Rt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),yc=Rt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Sc=Rt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Tc=Rt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Cc=hy({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ur=Rt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ya(t){return kc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},kc.createElement(Sy,{color:"black",size:16}))}i(ya,"BackButton");import{i18n as Ty}from"@lingui/core";import{Button as Cy,Typography as ky}from"@rango-dev/ui";import Sa from"react";function Ta(t){return Sa.createElement(bo,null,Sa.createElement(Cy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Sa.createElement(ky,{variant:"label",size:"medium",color:"error500"},Ty.t("Cancel"))))}i(Ta,"CancelButton");import{i18n as vy}from"@lingui/core";import{Image as xy,Tooltip as wy,WalletIcon as by}from"@rango-dev/ui";import eo from"react";function Ca(t){let{list:e}=Jt({}),o=e.filter(r=>r.state==="connected"),n=o.length?eo.createElement("div",{className:Cc()},o.map(r=>eo.createElement(ur,{key:r.title},eo.createElement(xy,{src:r.image,size:14})))):vy.t("Connect Wallet");return eo.createElement(wy,{container:t.container,side:"bottom",content:n},eo.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&eo.createElement(hc,null),eo.createElement(by,{size:18,color:"black"})))}i(Ca,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as Qy,Popover as zy,SettingsIcon as qy,Tooltip as fr,TransactionIcon as Hy}from"@rango-dev/ui";import Be from"react";import{Notifications as Wy}from"@rango-dev/ui";import Ny from"react";import{useNavigate as My}from"react-router-dom";import{create as Ey}from"zustand";import{persist as Iy,subscribeWithSelector as Ay}from"zustand/middleware";var Ee=Dt(Ey()(Iy(Ay((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:{creationTime:parseInt(n.creationTime),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)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.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 ka(){let t=My(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h();return Ny.createElement(Wy,{list:n,getBlockchainImage:l=>Al(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${H.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ka,"NotificationContent");import{useManager as Ly}from"@rango-dev/queue-manager-react";import{InProgressIcon as By}from"@rango-dev/ui";import vc from"react";var Py=i(()=>{let{manager:t}=Ly();return ot(t).map(({swap:o})=>o).find(o=>o.status==="running")?vc.createElement(Tc,null,vc.createElement(By,{color:"info",size:6})):null},"InProgressTransactionBadge"),xc=Py;import{EventSeverity as _y}from"@rango-dev/queue-manager-rango-preset";import{Typography as Dy}from"@rango-dev/ui";import wc from"react";function bc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===_y.WARNING);return o?wc.createElement(yc,{isSever:n},wc.createElement(Dy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(bc,"NotificationsBadge");import{RefreshProgressButton as $y}from"@rango-dev/ui";import va,{useEffect as Fy,useState as Ec}from"react";var Oy=1e3,Ic=60,Uy=100;function mr({onClick:t}){let[e,o]=Ec(0),[n,r]=Ec(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Fy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},Oy):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 va.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},va.createElement(Sc,{onTransitionEnd:()=>r(!1),isRefetched:n},va.createElement($y,{size:22,color:t?"black":"gray",progress:e/Ic*Uy})))}i(mr,"RefreshButton");function to(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Re("notification",s)||r.includes("notifications");return Be.createElement(Be.Fragment,null,!r.includes("refresh")&&Be.createElement(fr,{container:a||B(),side:"top",content:dr.t("Refresh")},Be.createElement(mr,{onClick:e})),!l&&Be.createElement(zy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Be.createElement(ka,null)},Be.createElement("div",null,Be.createElement(fr,{container:B(),side:"top",content:dr.t("Notifications")},Be.createElement(yt,{size:"small",variant:"ghost"},Be.createElement(Qy,{size:18,color:"black"}),Be.createElement(bc,null))))),!r.includes("settings")&&Be.createElement(fr,{container:B(),side:"top",content:dr.t("Settings")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:n},Be.createElement(qy,{size:18,color:"black"}))),!r.includes("history")&&Be.createElement(fr,{container:B(),side:"top",content:dr.t("Transactions History")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:o},Be.createElement(Hy,{size:18,color:"black"}),Be.createElement(xc,null))))}i(to,"HeaderButtons");import{i18n as xa}from"@lingui/core";import{Divider as Wc,MessageBox as Ky,RefreshIcon as Xy}from"@rango-dev/ui";import Eo from"react";import{Button as Gy,styled as Vy}from"@rango-dev/ui";var Ac=Vy(Gy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wa(t){let{open:e,onClose:o}=t;return Eo.createElement(re,{open:e,dismissible:!0,onClose:o,container:B()},Eo.createElement(Ky,{title:xa.t("Something went wrong"),type:"error",description:xa.t("Something went wrong. Please refresh the app.")},Eo.createElement(Wc,{size:30}),Eo.createElement(Ac,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Eo.createElement(Xy,{size:20,color:"primary"}),Eo.createElement(Wc,{size:4,direction:"horizontal"}),xa.t("Refresh"))))}i(wa,"RefreshModal");function ba(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ba,"onScrollContentAttachStatusToContainer");import{css as jy,styled as Ea}from"@rango-dev/ui";var Nc="700px",gr=jy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Mc=Ea("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Lc=Ea("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Bc=Ea("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 ue(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=aa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Ry(!1),c=oe.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=le(),f=m==="FULL",{activeTheme:T}=pr(d||{}),S=Re("connectWalletButton",g),{isActiveTab:y,tabManagerInitiated:C,showActivateTabModal:v,setShowActivateTabModal:x,activateCurrentTab:b}=le(),M=tt(),{manager:w}=Yy(),E=ot(w).map(({swap:te})=>te).some(te=>te.status==="running"),A=i(()=>b(jt.forceClaim,E),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),q=typeof r.hasBackButton>"u"||r.hasBackButton,I=_c(null),Q=_c(null);return Ia(()=>(lr()&&Q.current&&e(Q.current),()=>{o()}),[]),Ia(()=>(I.current?.addEventListener("scroll",ba),()=>{I.current?.removeEventListener("scroll",ba)}),[]),Ia(()=>{u(l==="failed")},[l]),xe.createElement(Mc,{height:s,id:Se.SWAP_BOX_ID,className:`${T()} ${gr()}`,ref:Q},xe.createElement(Jy,{prefix:xe.createElement(xe.Fragment,null,q&&xe.createElement(ya,{onClick:()=>{M(),r.onBack&&r.onBack()}})),title:r.title,suffix:xe.createElement(xe.Fragment,null,r.suffix,r.onWallet&&!S&&xe.createElement(Ca,{container:B(),onClick:L,isConnected:!!c?.length}),r.onCancel&&xe.createElement(Ta,{onClick:r.onCancel}))}),xe.createElement(Lc,{ref:I},n),xe.createElement(ha,{open:v,onClose:()=>x(!1),onConfirm:A}),xe.createElement(Bc,null,xe.createElement("div",{className:"footer__content"},C&&!y&&xe.createElement("div",{className:"footer__alert"},xe.createElement(fa,{onActivateTab:A}),xe.createElement(Pc,{size:10})),a),xe.createElement(Pc,{size:12}),xe.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},xe.createElement(Zy,null))),xe.createElement(wa,{open:p,onClose:()=>u(!1)}))}i(ue,"Layout");import{styled as eS}from"@rango-dev/ui";var Dc="$20 $20 $10 $20",Ko=eS("div",{padding:Dc,overflowY:"auto",flexGrow:1});import{styled as tS}from"@rango-dev/ui";var he=tS("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Wo}from"@lingui/core";import{Button as iS,Divider as Oc,Image as aS,MessageBox as sS,Select as lS,TextField as pS}from"@rango-dev/ui";import{namespaces as cS}from"@rango-dev/wallets-shared";import Ge,{useEffect as uS,useState as Uc}from"react";import{keyframes as oS,styled as hr}from"@rango-dev/ui";var eM=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Io=hr("div",{position:"relative"}),nS=oS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ao=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${nS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yr=hr("div",{"& img":{borderRadius:"50%"}});import{styled as $c,Typography as rS}from"@rango-dev/ui";var Fc=$c("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Aa=$c(rS,{paddingLeft:"$10"}),Wa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var zc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Qc(t){let e=t?cS[t].derivationPaths:null;return e?[...e,zc]:[]}i(Qc,"getDerivationPaths");function oo(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Uc(null),[u,c]=Uc("0"),g=l===zc.id,d=Qc(n),m=i(({value:T})=>{let S=d?.find(y=>y.id===T);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let T=d.find(S=>S.id===l);if(T)o(T.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return uS(()=>{p(Qc(n)[0]?.id||null)},[n]),Ge.createElement(re,{open:s,onClose:e,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Ge.createElement(Oc,{size:20}),Ge.createElement(sS,{type:"info",title:Wo.t("Select Derivation Path"),description:Wo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:Ge.createElement(Io,null,Ge.createElement(yr,null,Ge.createElement(aS,{src:r,size:45})),Ge.createElement(Ao,null))}),Ge.createElement(Fc,null,Ge.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},Wo.t("Choose Derivation Path Template")),Ge.createElement(lS,{value:l||"",options:d.map(T=>({value:T.id,label:T.label})),variant:"filled",handleItemClick:m,styles:{trigger:Wa}}),Ge.createElement(Oc,{size:20}),Ge.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},g?Wo.t("Enter Path"):Wo.t("Enter Index")),Ge.createElement(pS,{type:g?"text":"number",variant:"contained",value:u,onChange:T=>c(T.target.value),style:Wa})),Ge.createElement(iS,{type:"primary",onClick:f,disabled:!d||!l||!u},Wo.t("Confirm")))}i(oo,"WalletDerivationPathModal");import{Divider as fS}from"@rango-dev/ui";import Ma from"react";import{i18n as No}from"@lingui/core";import{Image as mS,MessageBox as Na,WalletState as dS}from"@rango-dev/ui";import no from"react";function qc(t){let{state:e,image:o,error:n}=t;return e===dS.CONNECTED?no.createElement(Na,{type:"success",title:No.t("Wallet Connected"),description:No.t("Your wallet is connected, you can use it to swap.")}):n?no.createElement(Na,{type:"error",title:No.t("Failed to Connect"),description:n||No.t("Your wallet is not connected. Please try again.")}):no.createElement(Na,{type:"loading",title:No.t("Connecting to your wallet"),description:No.t("Click connect in your wallet popup."),icon:no.createElement(Io,null,no.createElement(yr,null,no.createElement(mS,{src:o,size:45})),no.createElement(Ao,null))})}i(qc,"ModalContent");function Xo(t){let{open:e,onClose:o,...n}=t;return Ma.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Ma.createElement(qc,{...n}),Ma.createElement(fS,{direction:"vertical",size:32}))}i(Xo,"WalletModal");import{i18n as La}from"@lingui/core";import{Button as hS,Checkbox as yS,Divider as SS,Image as Gc,ListItemButton as TS,MessageBox as CS,Radio as kS,RadioRoot as vS}from"@rango-dev/ui";import{namespaces as Vc}from"@rango-dev/wallets-shared";import Pe,{useMemo as xS,useState as wS}from"react";import{styled as gS}from"@rango-dev/ui";var Hc=gS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var bS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function ro(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=wS([]),a=h().blockchains(),s=xS(()=>o?.map(u=>({name:u,logo:bS(a,Vc[u].mainBlockchain),title:Vc[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(g=>g!==u):c.concat(u))},"onSelect"),p=i(u=>e?Pe.createElement(vS,{value:n?.[0]},u):Pe.createElement(Pe.Fragment,null,u),"wrapRadioRoot");return Pe.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Pe.createElement(SS,{size:20}),Pe.createElement(CS,{type:"info",title:La.t("Select chain types"),description:La.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Pe.createElement(Io,null,Pe.createElement(ur,null,Pe.createElement(Gc,{src:t.image,size:45})),Pe.createElement(Ao,null))}),Pe.createElement(Hc,null,p(Pe.createElement(Pe.Fragment,null,s?.map(u=>Pe.createElement(TS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Pe.createElement(Gc,{src:u.logo,size:22}),end:e?Pe.createElement(kS,{value:u.name}):Pe.createElement(yS,{checked:n.includes(u.name)})}))))),Pe.createElement(hS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},La.t("Confirm")))}i(ro,"WalletNamespacesModal");var MS=jc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),LS=jc(he,{textAlign:"center"}),Sr=3e3,Ba=300;function Yc(){let{fetchStatus:t}=h(),[e,o]=jo("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=jo(!1),[l,p]=jo(null),[u,c]=jo(null),[g,d]=jo(""),m=null,f=le.use.isActiveTab(),{list:T,handleClick:S,error:y,disconnectConnectingWallets:C}=Jt({onBeforeConnect:P=>{m=setTimeout(()=>{s(!0),d(P)},Ba)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Sr)}}),v=i(()=>{C(),s(!1)},"handleCloseWalletModal"),x=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),M=T.find(P=>P.type===g),w=M?.image||"",k=M?.state||Xc.NOT_INSTALLED,E=Ql(T,n),L=IS(E)!==1,q=zl(T,e),I=i(P=>{In(T,r.multiWallets)||(P.namespaces?.length&&P.state===Xc.DISCONNECTED?P.namespaces.length>1?p({open:!0,providerType:P.type,providerImage:P.image,availableNamespaces:P.namespaces,singleNamespace:P.singleNamespace}):P.needsDerivationPath?c({open:!0,providerType:P.type,providerImage:P.image,namespace:P.namespaces[0]}):S(P.type):S(P.type))},"handleWalletItemClick"),Q=i(P=>{let D=q.find(j=>j.type===l?.providerType);D?.singleNamespace&&D?.needsDerivationPath&&P[0]?c({open:!0,providerType:D.type,providerImage:D.image,namespace:P[0]}):S(l?.providerType,P.map(j=>({namespace:j}))),x()},"handleConfirmNamespaces"),te=i(P=>{P&&u?.namespace&&S(u.providerType,[{namespace:u.namespace,derivationPath:P}]),b()},"handleDerivationPathConfirm");return nt.createElement(ue,{header:{title:Kc.t("Connect Wallets")}},nt.createElement(LS,null,L&&nt.createElement(nt.Fragment,null,nt.createElement(AS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),nt.createElement(ES,{size:24})),nt.createElement(WS,{variant:"title",size:"xmedium",align:"center"},Kc.t("Choose a wallet to connect.")),nt.createElement(MS,null,q.map((P,D)=>{let j=`wallet-${D}-${P.type}`;return nt.createElement(NS,{key:j,...P,container:B(),onClick:()=>I(P),isLoading:t==="loading",disabled:!f})}),nt.createElement(Xo,{open:!!a,onClose:v,image:w,state:k,error:y}),nt.createElement(ro,{open:!!l?.open,onClose:x,onConfirm:Q,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),nt.createElement(oo,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:b,onConfirm:te}))))}i(Yc,"WalletsPage");import{keyframes as BS,styled as Pa}from"@rango-dev/ui";var Zc=Pa("div",{position:"relative"}),PS=BS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Jc=Pa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${PS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Rc=Pa("div",{"& img":{borderRadius:"50%"}});var FS=7;function Da(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=le.use.isActiveTab(),p=oe.use.connectedWallets(),{blockchains:u}=h(),[c,g]=io(""),[d,m]=io(null),[f,T]=io(!1),[S,y]=io(null),[C,v]=io(null),[x,b]=io(null),{suggestAndConnect:M}=Cr(),w=null,{list:k,error:E,handleClick:A,disconnectWallet:L,disconnectConnectingWallets:q}=Jt({chain:e,onBeforeConnect:W=>{w=setTimeout(()=>{g(W)},Ba)},onConnect:W=>{s?.(W),w&&clearTimeout(w),setTimeout(()=>{g("")},Sr)}}),[I,Q]=io(k),te=k.length,P=r&&te-r>0,D=i(async W=>{T(!1),y("in-progress");try{await M(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),j=i(()=>{C&&v({...C,open:!1})},"handleCloseNamespaceModal"),ye=i(()=>{x&&b({...x,open:!1})},"handleCloseDerivationPathModal"),Y=i(W=>{v({open:!0,providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal"),ie=i(W=>{let pe=I.find(ce=>ce.type===C?.providerType);pe?.singleNamespace&&pe?.needsDerivationPath&&W[0]?b({open:!0,providerType:pe.type,providerImage:pe.image,namespace:W[0]}):A(C?.providerType,W.map(ce=>({namespace:ce}))),j()},"handleConfirmNamespaces"),ge=i(W=>{W&&x?.namespace&&A(x.providerType,[{namespace:x.namespace,derivationPath:W}]),ye()},"handleDerivationPathConfirm");ou(()=>{Q(W=>{let pe=k.findIndex(ce=>o(ce.type,e));return P&&pe>1?[k[pe]].concat(k.filter((ce,De)=>De!==pe)):W.map(ce=>k.find(De=>De.type===ce.type)??ce)})},[JSON.stringify(k)]);let Te=document.getElementById(Se.SWAP_BOX_ID);ou(()=>{let W=null;return(S==="completed"||S==="rejected")&&(W=setTimeout(()=>y(null),Sr)),()=>{W&&clearTimeout(W)}},[S]);let $=i(()=>{q(),g("")},"handleCloseWalletModal");return me.createElement(me.Fragment,null,I.slice(0,r).map(W=>{let pe=Fl({connectedWallets:p,walletType:W.type,chain:e}),ce=pe?Dn(pe,FS):"",De=Pn(u(),e),_=!p.find(se=>se.walletType===W.type&&se.chain===e),z=De&&_&&W.state===tu.CONNECTED,K=z?pt.t({id:"Add {chain} chain",values:{chain:e}}):ce,ae=i(async()=>{W.state===tu.DISCONNECTED?W.namespaces?.length?W.namespaces.length>1?Y(W):W.needsDerivationPath?b({open:!0,providerType:W.type,providerImage:W.image,namespace:W.namespaces[0]}):A(W.type):A(W.type):W.namespaces&&!ce?(await L(W.type),Y(W)):z?(m({walletType:W.type,chain:e,address:pe??""}),T(!0)):n({walletType:W.type,chain:e,address:pe??""})},"onSelectableWalletClick"),ee=d?.chain?An(d.chain,u()):void 0;return me.createElement(me.Fragment,{key:`${W.title}_${ee}`},me.createElement(Xo,{open:c===W.type,onClose:$,image:W.image,state:W.state,error:E}),me.createElement(ro,{open:!!C?.open,onClose:j,onConfirm:ie,image:C?.providerImage,availableNamespaces:C?.availableNamespaces,singleNamespace:C?.singleNamespace}),me.createElement(oo,{open:!!x?.open,selectedNamespace:x?.namespace,type:x?.providerType,image:x?.providerImage,onClose:ye,onConfirm:ge}),!!d&&me.createElement(re,{open:!!d&&f,container:Te,onClose:()=>{m(null)}},me.createElement(Tr,{title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},me.createElement(_a,{size:18}),me.createElement(_a,{size:32}),me.createElement(_S,{onClick:D.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},pt.t("Confirm")))),S&&me.createElement(re,{open:!!S,onClose:y.bind(null,null),container:Te},S==="in-progress"&&me.createElement(Tr,{type:"loading",title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:me.createElement(Zc,null,me.createElement(Rc,null,me.createElement(DS,{src:W.image,size:45})),me.createElement(Jc,null))}),S==="completed"&&me.createElement(Tr,{type:"success",title:pt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:pt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),S==="rejected"&&me.createElement(Tr,{type:"error",title:pt.t("Request Rejected"),description:pt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),me.createElement(_a,{direction:"vertical",size:32})),me.createElement($S,{key:W.type,description:K,onClick:ae,selected:o(W.type,e),disabled:!l,...W}))}),P&&me.createElement(oc,{selected:!1,onClick:a},me.createElement(eu,{variant:"label",size:"medium"},pt.t("Show more wallets"),me.createElement(eu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",te-(r??0)))))}i(Da,"WalletList");var GS=2;function au(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=HS(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:g,customDestination:d,setCustomDestination:m}=G(),{connectedWallets:f,selectWallets:T}=oe(),{config:S}=h(),[y,C]=so(""),[v,x]=so([]),[b,M]=so(""),[w,k]=so(null),[E,A]=so(!!d),L=qS(()=>Kt({filter:"all",quote:p}),[p]),q=Kt({filter:"required",quote:p}),I=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),Q=i(_=>q.includes(_),"isWalletRequiredFor"),te=zS(()=>f.filter(_=>_.selected&&L.includes(_.chain)),[f,L]),[P,D]=so(te()),[j,ye]=so([]),Y=i((_,z)=>ye(K=>K.concat({blockchain:_,walletType:z})),"addNextSelectedWallets"),ie=v.length>0,ge=i((_,z)=>!!P.find(K=>K.walletType===_&&K.chain===z&&K.selected&&(Q(z)||!Q(z)&&!d)),"isSelected"),Te=i((_,z,K)=>{let ae=!1;return _.map(ee=>{if(ee.chain===z){let se=ee.selected;return!ae&&K?(ae=!0,se=!0):K||(se=!1),{...ee,selected:se}}return ee})},"updateSelectableWallets"),$=i(_=>{A(_),_?Q(I?.name??"")||D(z=>Te(z,I?.name||"",!1)):(m(""),D(z=>Te(z,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),W=i(_=>{if(y&&C(""),ge(_.walletType,_.chain))return;let K=f.find(ae=>ae.walletType===_.walletType&&ae.chain===_.chain);K&&(n(),_.chain===I?.name&&E&&!Q(I.name)&&(A(!1),m(null)),D(ae=>ae.filter(ee=>ee.chain!==_.chain).concat({...K,selected:!0})))},"onChange"),pe=i(()=>{let _=P.filter(z=>z.selected);T(_),u(_),g(!0),o()},"onConfirmBalance"),ce=i(async()=>{x([]),M(""),k(null);let _=await r?.({selectedWallets:P.filter(K=>K.selected),customDestination:d}),z=_.warnings;z?.balance?.messages&&x(z.balance.messages),z?.quoteUpdate&&k(z.quoteUpdate),_.error&&M(hp(_.error)),!_.error&&!z?.balance?.messages.length?pe():x(z?.balance?.messages??[])},"onConfirmWallets");iu(()=>{D(_=>{let z=[];return _.forEach(K=>{!f.some(ee=>ee.chain===K.chain&&ee.walletType===K.walletType&&ee.address===K.address)||z.push(K)}),z=z.concat(f.filter(K=>!!!z.find(ee=>ee.chain===K.chain)&&K.selected&&L.includes(K.chain))),z})},[f,L]),iu(()=>{let _=[];j.length>0&&(j.forEach(z=>{let K=f.find(ae=>ae.chain===z.blockchain&&ae.walletType===z.walletType);K?W(K):_.push(z)}),ye(_))},[f,j]);let De=document.getElementById(Se.SWAP_BOX_ID);return J.createElement(re,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!y,container:De,...!y&&{footer:J.createElement(sc,null,J.createElement(ru,{loading:a,disabled:Pp(a,E,d,p,P,I),onClick:ce,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ao.t("Confirm")))},...y&&{styles:{container:{padding:"$0"}},header:J.createElement(nc,null,J.createElement(rc,{variant:"ghost",onClick:C.bind(null,"")},J.createElement(US,{size:16})),J.createElement($a,{variant:"headline",size:"small"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(y,l)}})))},anchor:"center"},J.createElement(re,{open:ie,onClose:x.bind(null,[]),container:De},J.createElement(QS,{title:ao.t("Insufficient account balance"),type:"error",description:J.createElement(OS,{messages:v??[]})},J.createElement(ru,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:pe},ao.t("Proceed anyway")))),y&&J.createElement(ic,null,J.createElement("div",{className:ac()},J.createElement(Da,{chain:y,isSelected:ge,selectWallet:W,onShowMore:()=>C(y),onConnect:_=>{Y(y,_)}}))),!y&&J.createElement(J.Fragment,null,b&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"error",title:ao.t(b)}),J.createElement(kr,{size:12})),w&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"warning",title:or(w)}),J.createElement(kr,{size:12})),J.createElement(lc,null,L.map((_,z)=>{let K=l.find(be=>be.name===_),ae=`wallet-${z}`,ee=z===L.length-1,se=ee&&I&&S?.customDestination!==!1;return J.createElement("div",{key:ae},J.createElement(ec,null,J.createElement($a,{variant:"title",size:"xmedium"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),J.createElement($a,{variant:"label",color:"$neutral700",size:"medium"},ao.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),J.createElement(kr,{size:24}),J.createElement(tc,null,J.createElement(Da,{chain:_,isSelected:ge,selectWallet:W,limit:GS,onShowMore:()=>C(K?.name??""),onConnect:be=>{Y(_,be)}})),!ee&&J.createElement(kr,{size:32}),se&&J.createElement(Rp,{blockchain:I,open:E,handleOpenChange:$}))}))))}i(au,"ConfirmWalletsModal");import{i18n as cT}from"@lingui/core";import{Alert as uT,Button as mT,InfoIcon as dT}from"@rango-dev/ui";import je from"react";import{Alert as XS,Button as jS,Divider as Ua,NoRouteIcon as YS,RefreshIcon as ZS,Typography as du}from"@rango-dev/ui";import Xe from"react";import{i18n as su}from"@lingui/core";var VS=24,KS=60;function lu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:su.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:su.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(lu,"makeInfo");var Fa=(o=>(o[o.small=VS]="small",o[o.large=KS]="large",o))(Fa||{}),Oa=(o=>(o.small="small",o.large="medium",o))(Oa||{});import{styled as vr}from"@rango-dev/ui";var pu=vr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),cu=vr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),uu=vr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),mu=vr("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=lu(o,r,()=>a(s,!0),e);return Xe.createElement(pu,null,Xe.createElement(YS,{size:Fa[n],color:"gray"}),Xe.createElement(Ua,{size:4}),Xe.createElement(du,{variant:"title",size:Oa[n]},ne().noResultError.title),n==="large"&&Xe.createElement(Ua,{size:4}),!!l.description&&Xe.createElement(cu,{size:n},Xe.createElement(du,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Xe.createElement(Ua,{size:n==="large"?"24":"4"}),!!l.alert&&Xe.createElement(uu,{size:n},Xe.createElement(XS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Xe.createElement(jS,{size:"xsmall",type:l.alert.type,prefix:Xe.createElement(mu,null,Xe.createElement(ZS,{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 RS,Divider as eT,MessageBox as tT,Typography as oT,WarningIcon as nT}from"@rango-dev/ui";import Et from"react";import{Typography as yu}from"@rango-dev/ui";import za from"react";import{darkTheme as JS,styled as xr}from"@rango-dev/ui";var fu=xr("div",{width:"100%"}),Qa=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),gu=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${JS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Su(t){let{title:e,value:o,valueColor:n}=t;return za.createElement(gu,null,za.createElement(yu,{size:"medium",variant:"label",className:"_title"},e),za.createElement(yu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Su,"QuoteErrorsModalItem");function Tu(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 Et.createElement(re,{footer:Et.createElement(RS,{type:"primary",size:"large",prefix:Et.createElement(nT,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Et.createElement(tT,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Et.createElement(Qa,null,Et.createElement(eT,{size:"4"}),Et.createElement(oT,{size:"small",variant:"title"},Zo.t("Details")),Et.createElement(Qa,null,l.map((p,u)=>Et.createElement(Su,{key:u,...p})))))}i(Tu,"HighValueLossWarningModal");import{i18n as qa}from"@lingui/core";function Cu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=qa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(wt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title),t.type===1&&(o.title=ne().unknownPriceError.title),t.type===2&&(o.title=qa.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=qa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Cu,"makeAlerts");import{i18n as Mo}from"@lingui/core";import{Button as ku,Divider as vu,MessageBox as rT,Typography as iT}from"@rango-dev/ui";import lo from"react";import{useNavigate as aT}from"react-router-dom";function xu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=aT(),u=e??o;return lo.createElement(re,{anchor:"bottom",open:n,prefix:lo.createElement(ku,{size:"small",variant:"ghost",onClick:()=>p("../"+H.settings)},lo.createElement(iT,{variant:"label",size:"medium",color:"$neutral900"},Mo.t("Change settings"))),container:B(),onClose:r},lo.createElement(rT,{type:"warning",title:s.type===3?Mo.t("High slippage"):Mo.t("Low slippage"),description:s.type===3?Mo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Mo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},lo.createElement(vu,{size:18}),lo.createElement(vu,{size:32}),lo.createElement(ku,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Mo.t("Confirm anyway"))))}i(xu,"SlippageWarningModal");import{Button as sT,MessageBox as lT,WarningIcon as pT}from"@rango-dev/ui";import wr from"react";function wu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(re,{footer:wr.createElement(sT,{type:"primary",size:"large",prefix:wr.createElement(pT,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},wr.createElement(lT,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(wu,"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,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=Cu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),je.createElement(je.Fragment,null,d&&je.createElement(Yo,{error:o,fetch:s}),!!m&&je.createElement(fu,null,je.createElement(uT,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:je.createElement(hu,{onClick:l},je.createElement(dT,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:je.createElement(mT,{size:"xxsmall",type:m.alertType,onClick:c},cT.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(Tu,{...g,warning:e}),(e.type===3||e.type===2)&&je.createElement(xu,{...g,warning:e}),e.type===1&&je.createElement(wu,{...g,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import HT from"bignumber.js";import Fr from"react";import{i18n as po}from"@lingui/core";import{Alert as MT,Divider as Bo,FullExpandedQuote as LT,InfoIcon as BT,NumericTooltip as nm,QuoteTag as PT,StepDetails as _T,TokenAmount as DT,Typography as Po}from"@rango-dev/ui";import Za from"bignumber.js";import F,{useRef as $T,useState as FT}from"react";import{styled as Ha}from"@rango-dev/ui";var Ga=Ha("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),bu=Ha("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Eu=Ha("div",{width:"100%",display:"flex"});import*as br from"@radix-ui/react-collapsible";import{Button as fT,css as Ro,darkTheme as Ie,Image as Iu,styled as Qe,Typography as gT}from"@rango-dev/ui";var hT=300,Au=Qe(br.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Wu=Ro({padding:"$10 $15"}),Nu=Qe(fT,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ie} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ie} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ie} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Mu=Qe("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",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ie} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}}}}]}),Lu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Bu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Lo=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Pu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ie} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),_u=Qe(br.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Iu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Iu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Du=Qe("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"}}}}),$u=Qe(rr,{width:"100%",background:"inherit"}),Va=Qe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${hT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),SP=Qe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Fu=Qe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ie} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Ou=Qe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ka=Qe(gT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Uu=Qe("div",{display:"flex",flexWrap:"wrap"}),Xa=Qe("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"}}}}),Qu=Qe("div",{display:"flex"}),Er=Qe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ie} &`]:{borderTopColor:"$neutral800"}});import{i18n as St}from"@lingui/core";import{ChevronDownIcon as ST,CloseIcon as TT,Divider as Wr,IconButton as CT,NumericTooltip as kT,QuoteCost as vT,Typography as ct}from"@rango-dev/ui";import R,{useState as Gu}from"react";import{css as yT,styled as Ir}from"@rango-dev/ui";var Ar=Ir("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),ja=Ir("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),zu=Ir("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),qu=Ir("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Hu=yT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var xT=i(t=>t.fee.isZero()?null:R.createElement(Ar,null,R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(ct,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Vu(t){let[e,o]=Gu(!1),[n,r]=Gu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,g=s?.swaps??[],d=B(),m=vp(g);return R.createElement(R.Fragment,null,R.createElement(vT,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?St.t("View more info"):void 0,tooltipContainer:d}),R.createElement(re,{container:d,open:e,header:R.createElement(qu,null,R.createElement(ct,{variant:"title",size:"medium"},St.t("Gas & Fee Explanation")),R.createElement(CT,{onClick:()=>o(!1),variant:"ghost"},R.createElement(TT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(zu,null,R.createElement(ct,{variant:"title",size:"small"},St.t("Details")),R.createElement(Wr,{size:10}),Object.entries(m.payable).flatMap(([f,T])=>T.map((S,y)=>{let C=`payable-fee-${y}`,v=Vi(S);return R.createElement(Ar,{key:C},R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},zi(f,St.t)),R.createElement(kT,{content:S.amount,container:d},R.createElement(ct,{variant:"label",size:"medium"},N(S.amount,2,2)," ",S.asset.symbol," ($",N(v,4,4),")")))})),R.createElement(Ar,{className:"total_payable_fee"},R.createElement(ct,{variant:"label",size:"medium"},St.t("Total Payable Fee")),R.createElement(ct,{variant:"label",size:"medium"},"$",N(l,4,4))),R.createElement(ja,null),Object.keys(m.nonePayable).length&&R.createElement(sr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:R.createElement("div",{className:Hu()},R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},n?St.t("Hide non-payable fees"):St.t("Show non-payable fees")),R.createElement(Wr,{size:4,direction:"horizontal"}),R.createElement(ir,{orientation:n?"up":"down"},R.createElement(ST,{size:12,color:"gray"}))),open:n},R.createElement(ct,{size:"small",variant:"title"},St.t("Description")),R.createElement(Wr,{size:4}),R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},St.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),R.createElement(Wr,{size:10}),Object.entries(m.nonePayable).map(([f,T],S)=>{let y=kp(T),C=zi(f,St.t),v=`non-payable-fee-${S}`;return R.createElement(xT,{key:v,fee:y,label:C})}),R.createElement(ja,null)))))}i(Vu,"QuoteCostDetails");import{i18n as ju}from"@lingui/core";import{TokenAmount as Yu}from"@rango-dev/ui";import Nr from"react";import{css as wT,styled as bT}from"@rango-dev/ui";var Ku=bT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Xu=wT({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 Nr.createElement(Ku,null,Nr.createElement(Yu,{direction:"horizontal",label:ju.t("Swap input"),type:"input",tooltipContainer:B(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Nr.createElement("div",{className:Xu()}),Nr.createElement(Yu,{direction:"horizontal",tooltipContainer:B(),label:ju.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 tm}from"@lingui/core";import{ChevronDownIcon as AT,ChevronRightIcon as WT,Divider as Ya,Image as NT,Tooltip as _r,Typography as Lr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as ET,useState as tn}from"react";var Zu=480,Ju=768,Ru=1024,em=1200,IT=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<=Zu),n(window.innerWidth>Zu&&window.innerWidth<=Ju),a(window.innerWidth>Ju&&window.innerWidth<=Ru),l(window.innerWidth>Ru&&window.innerWidth<=em),u(window.innerWidth>em)},"handleResize");return ET(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Mr=IT;var Br=4,Pr=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return O.createElement(_r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Du,{className:n,state:a},O.createElement(NT,{src:o,size:16})))},"ImageComponent");function om(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),u=r.length,c=Op(r),{isTablet:g,isMobile:d}=Mr();return O.createElement(_u,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:Lo()},O.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Via:")),O.createElement(Ya,{direction:"horizontal",size:4}),r.map((m,f)=>{let T=`item-${f}`,S=O.createElement(Va,null,O.createElement(WT,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:T},O.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:T},u<=Br||u>Br&&f<Br-1?O.createElement(O.Fragment,null,O.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):f===Br-1&&O.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Lo()},S,r.map((y,C)=>{let v=`image-${C}`;return C>=f&&O.createElement(O.Fragment,{key:v},O.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),C!==u-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(Xa,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},O.createElement(Lr,{size:"xsmall",variant:"body"},"+",u-f))))})),O.createElement("div",{className:Lo()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:Lo()},O.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Chains:")),O.createElement(Ya,{direction:"horizontal",size:4}),c.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},c.length<=Pr||c.length>Pr&&f<Pr-1?O.createElement(_r,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(on,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Pr-1&&O.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Lo()},c.map((T,S)=>S>=f&&O.createElement(on,{key:T.displayName,content:"",src:T.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(Xa,{className:"blockchainImage"},O.createElement(Lr,{size:"xsmall",variant:"body"},"+",c.length-f))))),O.createElement(Ya,{direction:"horizontal",size:32}))),O.createElement(Va,{orientation:a?"up":"down"},O.createElement(AT,{size:12,color:"black"}))))}i(om,"QuoteTrigger");function Ja(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:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),T=h().swappers(),{customSlippage:S,slippage:y}=h(),C=S||y,[v,x]=FT(t.expanded),b=$T(null),M=N(o.value,6,6),w=N(n.value,6,6),k=n.usdValue?N(n.usdValue,4,4):"",E=et(o.usdValue,n.usdValue??null),A=N(E,2,2),L=wt(E??0),q=i((ge,Te)=>ge.map(($,W)=>{let pe,ce=r?.type===3&&r.swap.swapperId===$.swapperId,De=r?.type===4&&r.recommendedSlippages?.has(W),_=a?.type===2&&a.recommendedSlippages?.has(W),z=ce||De,K=_;z?pe="error":K&&(pe="warning");let ae=z?po.t("Slippage Error"):po.t("Slippage Warning");return ce&&(ae=po.t("Bridge Limit Error")),{swapper:{displayName:Qo($.swapperId,T)??"",image:$.swapperLogo},from:{token:{displayName:$.from.symbol,image:$.from.logo},chain:{displayName:Je($.from.blockchain,m)??"",image:$.from.blockchainLogo},price:{value:W===0&&!Te?N(o.value,6,6):N($.fromAmount,6,6),usdValue:N(($.from.usdPrice??0)*parseFloat($.fromAmount),4,4),realValue:W===0?o.value:$.fromAmount,realUsdValue:new Za($.from.usdPrice??0).multipliedBy($.fromAmount).toString()}},to:{token:{displayName:$.to.symbol,image:$.to.logo},chain:{displayName:Je($.to.blockchain,m)||"",image:$.to.blockchainLogo},price:{value:N($.toAmount,6,6),usdValue:N(($.to.usdPrice??0)*parseFloat($.toAmount),4,4),realValue:$.toAmount,realUsdValue:new Za($.to.usdPrice??0).multipliedBy($.toAmount).toString()}},state:pe,alerts:z||K?F.createElement(bu,{dense:g},F.createElement(MT,{variant:"alarm",type:z?"error":"warning",title:ae,footer:F.createElement(Eu,null,ce&&F.createElement("div",null,F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Bo,{direction:"vertical",size:2}),F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {amount} {symbol}",values:{amount:N($.fromAmount,6,6),symbol:$?.from.symbol}}))),(De||_)&&!ce&&F.createElement("div",null,F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),F.createElement(Bo,{direction:"vertical",size:2}),F.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:zo($.estimatedTimeInSeconds),fee:N(Gi($,f),2,2),internalSwaps:$.internalSwaps?q($.internalSwaps):void 0}}),"getQuoteSteps"),I=q(e?.swaps??[]),Q=I.length,te=d||B(),P=Qp(t.quote.tags||[]),D=!!c,j=zo(Wn(e?.swaps)),ye=Kn(e?.swaps??[],f),Y=N(ye,2,2),ie=ye.gte(new Za(gp));return g?F.createElement(LT,{selected:l,fee:Y,time:j,tooltipContainer:Uo(),steps:I,tags:P,feeWarning:ie,percentageChange:A,warningLevel:L,outputPrice:{value:w,usdValue:k,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Lu()},!p&&P.length?F.createElement(F.Fragment,null,F.createElement(Qu,null,P.map((ge,Te)=>{let $=`${ge.value}_${Te}`;return F.createElement(F.Fragment,{key:$},F.createElement(PT,{label:ge.label,value:ge.value}),F.createElement(Bo,{size:4,direction:"horizontal"}))})),F.createElement(Er,null),!D&&F.createElement(Bo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Bu()},F.createElement(Vu,{quote:e,time:j,fee:Y,feeWarning:ie,showModalFee:u,steps:Q}),D&&F.createElement(Nu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Po,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},po.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Pu()},F.createElement(Ou,null,F.createElement(BT,{size:12,color:"gray"})),F.createElement(Uu,null,F.createElement(Ka,{size:"small",variant:"body"},`${M} ${I[0].from.token.displayName} = `),F.createElement(nm,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(Ka,{size:"small",variant:"body"},"\xA0",`${w} ${I[I.length-1].to.token.displayName}`))),F.createElement(nm,{content:n.usdValue,container:te},F.createElement(Bo,{size:2,direction:"horizontal"}),F.createElement(Po,{color:"$neutral600",size:"xsmall",variant:"body"},`($${k})`))),s==="list-item"&&F.createElement(DT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:w,usdValue:k,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[Q-1].to.token.displayName,image:I[Q-1].to.token.image},chain:{image:I[Q-1].to.chain.image},percentageChange:A,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(en,{from:I[0].from,to:I[Q-1].to,percentageChange:A,warningLevel:L}),F.createElement(Bo,{size:4}))),F.createElement(Au,{selected:l,listItem:s==="list-item",open:v,className:"quote_container",onOpenChange:x},F.createElement(om,{type:s,quoteRef:b,selected:l,setExpanded:x,container:te,expanded:v,steps:I}),F.createElement($u,{open:v},F.createElement(Fu,null),F.createElement("div",{className:Wu()},I.map((ge,Te)=>{let $=`item-${Te}`;return F.createElement(_T,{type:"quote-details",key:$,tooltipContainer:te,step:ge,hasSeparator:Te!==I.length-1,state:ge.state})})))))}i(Ja,"Quote");import{Divider as zT,Skeleton as qT}from"@rango-dev/ui";import At from"react";import{darkTheme as OT,styled as Dr}from"@rango-dev/ui";var rm=Dr("div",{$$color:"$colors$neutral100",[`.${OT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),im=Dr("div",{paddingTop:"$2"}),am=Dr("div",{paddingLeft:"$8"}),sm=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as ym,Divider as ut,Skeleton as Ye}from"@rango-dev/ui";import V from"react";import{css as UT,styled as It}from"@rango-dev/ui";var Ra=It("div",{display:"flex"}),lm=It("div",{padding:"$10 $0 $20"}),pm=It("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),cm=It("div",{display:"flex",justifyContent:"start",alignItems:"center"}),um=It("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mm=It("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),dm=It("div",{width:"65%",display:"flex",justifyContent:"start"}),fm=It("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),gm=It("div",{padding:"$15 $0 $15 $0"}),hm=UT({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(um,null,V.createElement(dm,null,V.createElement(ym,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ut,{size:8,direction:"horizontal"}),V.createElement(fm,null,V.createElement(Ye,{height:10,width:60,variant:"rounded"}),V.createElement(ut,{size:4}),V.createElement(Ye,{height:15,variant:"rounded"}))),V.createElement(Ye,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Ra,null,V.createElement(Ye,{width:65,height:20,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:65,height:20,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:65,height:20,variant:"rounded"})),V.createElement(Er,null),!r&&V.createElement(ut,{size:4})),V.createElement("div",{className:hm()},V.createElement(Ra,null,V.createElement(Ye,{width:60,height:10,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:60,height:10,variant:"rounded"}),V.createElement(ut,{size:4,direction:"horizontal"}),V.createElement(Ye,{width:60,height:10,variant:"rounded"})),r&&V.createElement(Ye,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(lm,null,V.createElement(Ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(pm,null,V.createElement(cm,null,V.createElement(ym,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ut,{direction:"horizontal",size:4}),V.createElement(Ye,{height:15,width:150,variant:"rounded"})),V.createElement(ut,{size:10}),V.createElement(Ye,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(ut,{size:4}),V.createElement(gm,null,n,V.createElement(mm,null),n),V.createElement(ut,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as vm,Divider as ts,NextIcon as QT,Skeleton as $r}from"@rango-dev/ui";import Ae from"react";import{styled as rn}from"@rango-dev/ui";var Sm=rn("div",{display:"flex",alignItems:"start"}),Tm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),es=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),Cm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),km=rn("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return Ae.createElement(Ae.Fragment,null,Ae.createElement(km,null,Ae.createElement($r,{height:22,width:22,variant:"circular"}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:15,width:148,variant:"rounded"})),Ae.createElement(Sm,null,Ae.createElement(sm,{hideSeparator:!e}),Ae.createElement(Tm,{extraSpace:e},Ae.createElement(es,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})),Ae.createElement(Cm,null,Ae.createElement(QT,{color:"gray",size:16})),Ae.createElement(es,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(ts,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return At.createElement(rm,{expanded:o,rounded:e!=="basic"},At.createElement(nn,{type:e,tagHidden:n}),At.createElement(im,null,At.createElement(qT,{height:15,variant:"rounded"})),o&&At.createElement(am,null,At.createElement(zT,{size:24}),At.createElement(Tt,null),At.createElement(Tt,null),At.createElement(Tt,{separator:!1})))}i(an,"QuoteSkeleton");function co(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:T,toToken:S}=G(),y=e?.outputAmount?new HT(e?.outputAmount):null,C=e?.outputAmount?jn(e?.outputAmount,Zn(e)||S?.usdPrice):null,x=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Fr.createElement(Ga,null,Fr.createElement(an,{tagHidden:l,type:o,expanded:s})):x?Fr.createElement(Ga,{onClick:()=>p?.(e)},Fr.createElement(Ja,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(co,"QuoteInfo");import{calculatePendingSwap as XT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as jT}from"react";import{useRef as GT,useState as VT}from"react";var KT=2e3;function Or({request:t}){let[e,o]=VT(!1),n=GT(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,KT)),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(Or,"useFetch");function xm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xm,"useFetchConfirmQuote");function Ur(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=os(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ur,"throwErrorIfResponseIsNotValid");function os(t){if(Sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Tp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=xp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(os,"getQuoteError");function wm(t,e,o){let n=!1;t&&(n=Fp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=ko(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Wp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Co(e)),percentageChange:N(et(Co(t)??"",Co(e)??""),null,2)}:Ki(t,e)?r.quoteUpdate={type:0}:Xi(t,e)?r.quoteUpdate={type:1}:ji(t,e)&&(r.quoteUpdate={type:2}));let s=Np(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(wm,"generateWarnings");function Qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Qr,"handleQuoteErrors");function ns(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=G(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:T,cancelFetch:S,loading:y}=xm();return jT(()=>S,[]),{loading:y,fetch:i(async v=>{let x=v.selectedWallets,b=v?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let M=x.reduce((k,E)=>(k[E.chain]=E.address,k),{}),w={requestId:r?.requestId||"",selectedWallets:M,destination:b||void 0};try{return await T(w,!0).then(k=>{let{result:E}=k;Ur({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let A={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(A);let L={slippage:f.toString(),disabledSwappersGroups:c},q=wm(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:x,userSlippage:f});q.quoteUpdate&&s(!1),l();let I=!!q.balance,Q=XT(o.toString(),E,Ip(x),L,!I,{blockchains:g,tokens:d});return{quote:A,swap:Q,error:null,warnings:q}})}catch(k){return Qr(k)}},"fetch"),cancelFetch:S}}i(ns,"useConfirmSwap");var rC=JT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Em}`]:{width:"$48",height:"$48"}}),iC=as({flexGrow:1,paddingRight:"$10"}),aC=as({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),sC=as({display:"flex",justifyContent:"space-between",alignItems:"center"});function Im(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=G(),s=nC(),[l,p]=sn(""),u=!n,[c,g]=sn(!1),[d,m]=sn(!1),{isActiveTab:f}=le(),T=h().getDisabledLiquiditySources(),S=oC(T),{manager:y}=YT(),{fetch:C,loading:v,cancelFetch:x}=ns(),[b,M]=sn({swap:null,error:null,warnings:null}),[w,k]=sn(!1),E=i(async({selectedWallets:D,customDestination:j})=>{let ye=await C?.({selectedWallets:D,customDestination:j});return M(ye),ye},"onConfirmSwap"),A=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let D=`../${H.swaps}/${b.swap.requestId}`;s(D,{replace:!0}),setTimeout(()=>{e("")},0)}catch(D){p("Error: "+D?.message)}},"addNewSwap"),L=i(async()=>{m(!0),await A(),m(!1)},"onConfirm"),q=i(async()=>{b?.warnings?.quote&&!a?k(!0):await L()},"onStartConfirmSwap"),I=i(async()=>{M({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(D=>{M(D)}).catch(D=>console.error(D))},"onRefresh");zr(()=>{!!S.current.length&&!T.length&&I(),S.current=T},[T.length]),zr(()=>{u&&x()},[u]),zr(()=>{u&&g(u)},[u]),zr(()=>{u||C({selectedWallets:o,customDestination:r}).then(D=>M(D)).catch(D=>console.error(D))},[]),tC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=b.warnings?.quote??null,te=b.error,P=[];if(l&&P.push(We.createElement(bm,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&P.push(We.createElement(bm,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&or(b.warnings.quoteUpdate)})),Q||te){let D=`../${H.settings}`;P.push(We.createElement(Jo,{warning:Q,error:te,couldChangeSettings:!1,refetchQuote:I,showWarningModal:w,confirmationDisabled:!f,onOpenWarningModal:()=>k(!0),onCloseWarningModal:()=>k(!1),onConfirmWarningModal:async()=>{k(!1),await A()},onChangeSettings:()=>s(D)}))}return We.createElement(ue,{header:{title:rs.t("Confirm Swap"),onWallet:()=>{let D=`../${H.wallets}`;s(D)}},footer:We.createElement(rC,null,We.createElement("div",{className:iC()},We.createElement(ZT,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:v||d,disabled:!!b.error||!f,onClick:q},rs.t("Start Swap"))),We.createElement(Em,{variant:"contained",type:"primary",size:"large",loading:v||d,disabled:!f,onClick:g.bind(null,!0)},We.createElement(eC,{size:24})))},c&&We.createElement(au,{open:c,onClose:()=>g(!1),onCancel:x,loading:v,onCheckBalance:E}),We.createElement(he,null,We.createElement("div",{className:sC()},We.createElement(RT,{variant:"title",size:"small"},rs.t("You get")),We.createElement("div",{className:aC()},We.createElement(mr,{onClick:!v&&!c&&!w?I:void 0}))),We.createElement(is,{size:"12"}),uc(P.map((D,j)=>({element:D,key:`alert-${j}`})),We.createElement(is,{size:10})),P.length>0?We.createElement(is,{size:10}):null,We.createElement(co,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:v,warning:b.warnings?.quote??null})))}i(Im,"ConfirmSwapPage");import{i18n as Hr}from"@lingui/core";import{useManager as xC}from"@rango-dev/queue-manager-react";import{Divider as Fm,NotFound as wC,styled as bC}from"@rango-dev/ui";import Nt,{useState as EC}from"react";import{useNavigate as IC}from"react-router-dom";import{i18n as cC}from"@lingui/core";import{Divider as Lm,GroupedVirtualizedList as uC,Skeleton as mC,SwapListItem as Bm,Typography as dC}from"@rango-dev/ui";import ze,{useCallback as Pm,useEffect as fC,useRef as gC,useState as hC}from"react";function Am(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Am,"calculateGroupsSoFar");import{css as lC,darkTheme as pC,styled as ln}from"@rango-dev/ui";var ss=lC(),Wm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ls=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ss}`]:{$$color:"$colors$neutral600",[`.${pC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ps=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Nm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),Mm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var yC=10;function cs(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=hC([]),l=gC(0),{swaps:p,groupCounts:u,groups:c}=n(e),g=Pm(Am,[]),d=Pm(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,yC),s(g(u,l.current)))},[e.length]);if(fC(()=>{r||d()},[r,d]),r){let m=[1,2];return ze.createElement(ze.Fragment,null,[m,m].map((T,S)=>ze.createElement(ls,{key:S},ze.createElement(ps,null,ze.createElement(mC,{variant:"text",width:60,size:"small"}),ze.createElement(Lm,{size:16})),ze.createElement(Lm,{size:4}),ze.createElement(Nm,null,T.map((C,v)=>ze.createElement(Bm,{isLoading:!0,key:v}))))))}return ze.createElement(uC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>ze.createElement(ls,null,ze.createElement(ps,null,ze.createElement(dC,{variant:"label",size:"medium",className:ss()},c[m]))),itemContent:(m,f)=>{let T=p[m];if(!T)return null;let S=T.steps[0],y=T.steps[T.steps.length-1];return ze.createElement(Wm,{key:T.requestId},ze.createElement(Bm,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:B(),onlyShowTime:c[f]===cC.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:N(T.inputAmount,6,6),realAmount:T.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(cs,"HistoryGroupedList");import{CloseIcon as TC,IconButton as CC,SearchIcon as kC,TextField as vC}from"@rango-dev/ui";import pn from"react";import{styled as SC}from"@rango-dev/ui";var _m=SC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Wt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(vC,{prefix:pn.createElement(_m,null,pn.createElement(kC,{color:"black"})),suffix:!!s.length&&pn.createElement(CC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(TC,{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(Wt,"SearchInput");import{i18n as qr}from"@lingui/core";import Dm from"dayjs";var $m=i(t=>{let e=new Map([["today",{title:qr.t("Today"),swaps:[]}],["week",{title:qr.t("This week"),swaps:[]}],["month",{title:qr.t("This month"),swaps:[]}],["year",{title:qr.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=Dm();t.forEach(p=>{let u=Number(p.creationTime),c=Dm(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 g=new Date(u).getFullYear().toString();o(g,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 AC=bC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),WC=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 Om(){let t=IC(),{manager:e,state:o}=xC(),n=ot(e).map(({swap:c})=>c),[r,a]=EC(""),s=!o.loadedFromPersistor,l=i(c=>{let g=c.target.value;a(g)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||WC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Nt.createElement(ue,{header:{title:Hr.t("History")}},Nt.createElement(he,null,Nt.createElement(Wt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Hr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Nt.createElement(Fm,{size:"16"}),Nt.createElement(AC,null,u&&Nt.createElement(Mm,null,Nt.createElement(Fm,{size:32}),Nt.createElement(wC,{title:Hr.t("No results found"),description:r?Hr.t("Try using different keywords"):""})),!u&&Nt.createElement(cs,{list:p,onSwapClick:t,groupBy:$m,isLoading:s}))))}i(Om,"HistoryPage");import{i18n as XC}from"@lingui/core";import{Button as jC,Divider as rd,styled as YC,WarningIcon as ZC}from"@rango-dev/ui";import JC from"bignumber.js";import Ve,{useEffect as id,useState as ad}from"react";import{useNavigate as RC}from"react-router-dom";import{i18n as _C}from"@lingui/core";import{Header as DC}from"@rango-dev/ui";import zt,{useEffect as $C,useState as FC}from"react";import{i18n as MC}from"@lingui/core";import{Divider as ms,FullExpandedQuote as LC,Typography as BC}from"@rango-dev/ui";import ke from"react";import{styled as us}from"@rango-dev/ui";var Um=us("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Qm=us("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),zm=us("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as NC}from"@rango-dev/ui";import qm from"react";function Gr(t){let{updateQuotePartialState:e,sortStrategy:o}=G(),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 qm.createElement(zm,null,qm.createElement(NC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Gr,"SelectStrategy");var Hm=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:g,toToken:d,sortStrategy:m,error:f}=G(),{slippage:T,customSlippage:S}=h(),{findToken:y}=h(),C=l||B(),v=!!u&&u.results.length,x=S??T,b=i(k=>{if(!g||!d||!u)return null;let E={requestAmount:u.requestAmount,...k};return ko(E,{fromToken:g,toToken:d,userSlippage:x,findToken:y})},"getQuoteWarning"),M=f?.type===0||f?.type===1,w=u?.results?Rn(m,u?.results):[];return ke.createElement(ke.Fragment,null,a&&ke.createElement(ke.Fragment,null,ke.createElement(Qm,null,ke.createElement(BC,{size:"xmedium",variant:"title"},MC.t("Sort by")),ke.createElement(Gr,{container:C})),ke.createElement(ms,{size:"10"})),e&&Array.from({length:Hm},(k,E)=>ke.createElement(ke.Fragment,{key:E},s?ke.createElement(LC,{loading:!0}):ke.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Hm-1&&ke.createElement(ms,{size:16}))),!e&&ke.createElement(ke.Fragment,null,v?w.map((k,E)=>{let A=b(k),L=os(k.swaps),q=w.length-1===E;return ke.createElement(ke.Fragment,{key:k.requestId},ke.createElement(co,{showModalFee:r,container:C,selected:p?.requestId===k.requestId,tagHidden:!1,quote:{...k,requestAmount:u.requestAmount},loading:e,error:L?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{L||c("warning",A),c("error",L?.options||null),o(I)},type:"list-item"}),!q&&ke.createElement(ms,{size:16}))}):M&&ke.createElement(Um,null,ke.createElement(Yo,{size:s?"large":"small",error:f,fetch:n}))))}i(un,"Quotes");import{darkTheme as PC,styled as Gm}from"@rango-dev/ui";var Vm=Gm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${PC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Km=Gm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var OC=100;function ds(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=FC(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",g=Uo();return $C(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},OC):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),zt.createElement(Vm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:Se.EXPANDED_BOX_ID},zt.createElement(DC,{title:_C.t("Routes"),suffix:zt.createElement(zt.Fragment,null,zt.createElement(Gr,{container:g}),zt.createElement(to,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),zt.createElement(Km,null,zt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Uo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ds,"ExpandedQuotes");import{i18n as ed}from"@lingui/core";import{SwapInput as td}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as zC}from"@rango-dev/ui";import gs from"react";import{keyframes as UC,styled as Xm}from"@rango-dev/ui";var fs=450,QC=UC({"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)"}}),jm=Xm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ym=Xm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${QC} ${fs}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 hs(){let t=G.use.switchFromAndTo();return gs.createElement(jm,null,gs.createElement(Ym,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},fs),t()}},gs.createElement(zC,{size:12})))}i(hs,"SwitchFromAndToButton");import{styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Rm=Zm("div",{position:"relative"});function ys(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=G(),{connectedWallets:T,getBalanceFor:S}=oe(),y=a?S(a):null,C=_n(y)?.amount??"0",v=s&&a?N(y?.amount,y?.decimals):"0",x=!!s&&Ol(T,s.name),b=!Hi(f,c,g),M=!Hi(f,c,m),w=!g||!m||!m.gt(0)?null:et(g.toString(),m.toString());return mn.createElement(Jm,null,mn.createElement(Rm,null,mn.createElement(td,{label:ed.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:b?void 0:N(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:B(),onSelectMaxBalance:()=>{u(v.split(",").join(""))},anyWalletConnected:T.length>0}),mn.createElement(hs,null)),mn.createElement(td,{sharpBottomStyle:!r&&(!!f||e),label:ed.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(et(g,m),2,2),warningLevel:wt(w??0),price:{value:N(d,6,6),usdValue:M?void 0:N(m,4,4),realValue:d?.toString(),realUsdValue:M?void 0:m?.toString(),error:M?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(ys,"Inputs");import{useCallback as qC,useEffect as HC,useRef as GC,useState as VC}from"react";function od(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(od,"useFetchAllQuotes");var KC=600;function Vr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=od(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=oe.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:T,setSelectedQuote:S,updateQuotePartialState:y}=G(),{slippage:C,customSlippage:v,affiliatePercent:x,affiliateRef:b,affiliateWallets:M,fetchStatus:w}=h(),k=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:L}=h(),[q,I]=VC(!0),Q=GC(u),te=v??C,D=!l||!p||Xt(l,p)||!qo(u),j=i(ie=>{I(ie)},"resetState"),ye=i(ie=>{let{fromToken:ge,toToken:Te,inputAmount:$,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,slippage:De,affiliateRef:_,affiliatePercent:z,affiliateWallets:K}=ie;if(q||j(!0),!D&&ge&&Te){m();let ae=Ep({fromToken:ge,toToken:Te,inputAmount:$,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,wallets:s,slippage:De,affiliateRef:_,affiliatePercent:z,affiliateWallets:K,enableCentralizedSwappers:a});Jl("experimentalRoute",r)&&(ae.experimental=!0),e(ae).then(ee=>{let se=Rn(d,ee.results),be=Up(g,se,ee.requestAmount);I(!1),y("quotes",ee),S(be),Ur({diagnosisMessages:ee.diagnosisMessages,requestId:be?.requestId||"",swaps:be?.swaps});let xn=be&&ko(be,{fromToken:ge,toToken:Te,userSlippage:te,findToken:L});y("warning",xn)}).catch(ee=>{let{error:se}=Qr(ee);(se?.type===0||se?.type===1)&&m(),se?.type!==2&&(y("error",se),I(!1))})}},"fetch"),Y=qC(bl(ie=>{ye(ie)},KC),[D]);return HC(()=>{if(!t){I(!1);return}if(w!=="success")return;if(D){I(!1),(g||f||T)&&m();return}if(!qo(u)||c?.eq(0)){j(!1),o();return}m(),j(!0);let ie=ye;return Q.current&&Q.current!=u&&(ie=Y),Q.current=u,ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:k,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:M}),o},[w,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,D,k?.length,n,E.length,te,b,x,JSON.stringify(M)]),{fetch:()=>ye({inputAmount:u,fromToken:l,toToken:p,liquiditySources:k,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:M}),loading:q}}i(Vr,"useSwapInput");function nd(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(nd,"emitPreventableEvent");var ek=YC("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),tk=300;function sd(){let t=RC(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=G(),[m,f]=ad(!1),{isLargeScreen:T,isExtraLargeScreen:S}=Mr(),{fetch:y,loading:C}=Vr({refetchQuote:a}),{config:v,fetchStatus:x}=h(),{connectedWallets:b}=oe(),{isActiveTab:M}=le(),[w,k]=ad(!1),A=Cp({fetchMetaStatus:x,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=Vl(T,S,v?.variant),q=!!n&&!!e&&!!o&&new JC(n).gt(0)&&!_p(e,o),I=q&&x==="success"&&C,P=(!L||L&&p?.results.length)&&(l||s);id(()=>{c(),d("refetchQuote",!0)},[]),id(()=>{f(q)},[q]);let D=(r||s)&&!w?y:void 0,j=i(Y=>{L&&m?(f(!1),setTimeout(()=>{t(Y)},tk)):t(Y)},"onHandleNavigation"),ye=i(Y=>{r?.requestId!==Y.requestId&&(k(!1),u(Y))},"onClickOnQuote");return Ve.createElement(ek,null,Ve.createElement(ue,{height:"auto",footer:Ve.createElement(jC,{type:"primary",size:"large",disabled:A.disabled||!M,prefix:A.action==="confirm-warning"&&Ve.createElement(ZC,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?nd({type:"clickConnectWallet"},()=>j(H.wallets)):A.action==="confirm-warning"?k(!0):j(H.confirmSwap)}},A.title),header:{onWallet:()=>{j(H.wallets)},hasBackButton:!1,title:v.title||XC.t("Swap"),suffix:Ve.createElement(to,{hidden:L?["refresh"]:void 0,onClickRefresh:D,onClickHistory:()=>j(H.swaps),onClickSettings:()=>{j(H.settings)}})}},Ve.createElement(he,null,Ve.createElement(ys,{fetchingQuote:I,fetchMetaStatus:x,isExpandable:L,onClickToken:Y=>{j(Y==="from"?H.fromSwap:H.toSwap)}}),Ve.createElement(rd,{size:"2"}),L?null:Ve.createElement(co,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),j(H.routes)}:void 0}),P?Ve.createElement(Ve.Fragment,null,Ve.createElement(rd,{size:"10"}),Ve.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:w,confirmationDisabled:!M,onOpenWarningModal:()=>k(!0),onCloseWarningModal:()=>k(!1),onConfirmWarningModal:()=>{k(!1),g(!0),j(H.confirmSwap)},onChangeSettings:()=>j(H.settings)})):null)),L?Ve.createElement(ds,{loading:I,onClickOnQuote:ye,fetch:y,onClickRefresh:D,isVisible:m}):null)}i(sd,"Home");import{i18n as ld}from"@lingui/core";import{Alert as ok,Divider as nk,List as rk,ListItemButton as ik,Radio as ak,RadioRoot as sk,Typography as lk}from"@rango-dev/ui";import Ct from"react";function qt(){let{setLanguage:t,language:e,config:o}=h(),n=ep,r=o?.language||To;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||To),resetLanguage:()=>t(null)}}i(qt,"useLanguage");function pd(){let{activeLanguage:t,changeLanguage:e,languages:o}=qt(),n=tt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Ct.createElement(lk,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Ct.createElement(ak,{value:s}),start:Ct.createElement(p,null)}});return Ct.createElement(ue,{header:{title:ld.t("Language")}},Ct.createElement(he,null,Ct.createElement(ok,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Ct.createElement(nk,{size:"8"}),Ct.createElement(sk,{value:t},Ct.createElement(rk,{type:Ct.createElement(ik,{title:ld.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(pd,"LanguagePage");import{i18n as Mt}from"@lingui/core";import{Button as dk,Checkbox as fk,Image as gk,ListItemButton as hk,NotFound as yk,Typography as Sk}from"@rango-dev/ui";import qe,{useState as Tk}from"react";import{Checkbox as uk,Skeleton as ud}from"@rango-dev/ui";import fn from"react";import{styled as Ss}from"@rango-dev/ui";var dn=Ss("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ts=Ss("div",{width:80,display:"flex",justifyContent:"flex-end"}),Cs=Ss("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as pk,styled as ck}from"@rango-dev/ui";var cd=ck(pk,{height:61});var mk=30;function ks(){return fn.createElement(dn,null,Array.from(Array(mk),(t,e)=>fn.createElement(cd,{hasDivider:!0,key:e,start:fn.createElement(ud,{variant:"circular",width:35,height:35}),title:fn.createElement(ud,{variant:"text",size:"large",width:90}),end:fn.createElement(uk,{checked:!1})})))}i(ks,"LoadingLiquiditySourceList");function vs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=Tk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Un(o,n),u={Exchanges:Mt.t("Exchanges"),Bridges:Mt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(y=>c.includes(y.type)),d=g.length===g.filter(y=>y.selected).length,m=i(()=>{g.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=g.map(y=>{let{selected:C,groupTitle:v,logo:x}=y;return{start:qe.createElement(gk,{src:x,size:22,type:"circular"}),onClick:()=>{l||s(v)},end:qe.createElement(fk,{checked:C,disabled:l}),title:qe.createElement(Sk,{variant:"title",size:"xmedium"},Mt.t(v)),...y}}),T=i(y=>{let C=y.target.value;a(C)},"searchHandler"),S=f;return r&&(S=f.filter(y=>gt(y.groupTitle,r))),qe.createElement(ue,{header:{title:Mt.t(t),suffix:qe.createElement(Ts,null,qe.createElement(dk,{variant:"ghost",size:"xsmall",onClick:m},d?Mt.t("Deselect all"):Mt.t("Select all")))}},qe.createElement(he,{view:!0},qe.createElement(Wt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Mt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&qe.createElement(ks,null),!S.length&&r?qe.createElement(Cs,null,qe.createElement(yk,{title:Mt.t("No results found"),description:Mt.t("Try using different keywords")})):e==="success"&&qe.createElement(dn,{disabled:l},S.map(y=>{let{groupTitle:C,...v}=y;return qe.createElement(qe.Fragment,{key:y.id},qe.createElement(hk,{style:{height:"61px"},...v,selected:!1,hasDivider:!0}))}))))}i(vs,"LiquiditySourcePage");import{i18n as Ck}from"@lingui/core";import Kr from"react";import{useNavigate as kk}from"react-router-dom";function md(){let t=kk(),e=tt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=G(),{fetch:l,loading:p}=Vr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${H.settings}`,g=`../${H.wallets}`;return Kr.createElement(ue,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Ck.t("Routes"),suffix:Kr.createElement(to,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(he,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(md,"RoutesPage");import{i18n as Cd}from"@lingui/core";import{Divider as kd,getCategoriesCount as Nk,SelectableCategoryList as Mk}from"@rango-dev/ui";import Lt,{useState as vd}from"react";import{i18n as xs}from"@lingui/core";import{Divider as Sd,Image as bk,ListItemButton as Ek,NotFound as Ik,Typography as Td}from"@rango-dev/ui";import rt,{useEffect as Ak,useState as Wk}from"react";var dd=i((t,e,o)=>t.filter(n=>En(n.type,o)).filter(n=>vt(n.name,e)||vt(n.displayName,e)),"filterBlockchains");import{ImageContainer as vk,styled as fd}from"@rango-dev/ui";var gd=fd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xr=fd(Ko,{padding:0,margin:0,listStyle:"none",[`& ${vk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as xk,Skeleton as hd}from"@rango-dev/ui";import jr from"react";var wk=20;function yd(){return jr.createElement(Xr,null,Array.from(Array(wk),t=>jr.createElement(xk,{key:t,hasDivider:!0,start:jr.createElement(hd,{variant:"circular",width:35,height:35}),title:jr.createElement(hd,{variant:"text",size:"large",width:90})})))}i(yd,"LoadingBlockchainList");function ws(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=Wk(e),{fetchStatus:l}=h();Ak(()=>{s([...dd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?rt.createElement(rt.Fragment,null,rt.createElement(Sd,{size:32}),rt.createElement(Ik,{title:xs.t("No results found"),description:xs.t("Try using different keywords")})):rt.createElement(Xr,{as:"ul",key:`${r}-${o}`},a.map(u=>rt.createElement(Ek,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:rt.createElement(bk,{src:u.logo,size:30}),title:rt.createElement(Td,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return rt.createElement(gd,null,rt.createElement(Td,{variant:"label",size:"large"},xs.t("Select Blockchain")),rt.createElement(Sd,{size:4}),l==="loading"&&rt.createElement(yd,null),l==="success"&&p())}i(ws,"BlockchainList");function bs(t){let{type:e}=t,o=tt(),[n,r]=vd(""),[a,s]=vd("ALL"),l=G.use.setToBlockchain(),p=G.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=Nk(c)!==1;return Lt.createElement(ue,{header:{title:Cd.t("Select Blockchain")}},Lt.createElement(he,{view:!0},d&&Lt.createElement(Lt.Fragment,null,Lt.createElement(Mk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Lt.createElement(kd,{size:24})),Lt.createElement(Wt,{value:n,autoFocus:!0,placeholder:Cd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Lt.createElement(kd,{size:16}),Lt.createElement(ws,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(bs,"SelectBlockchainPage");import{i18n as ei}from"@lingui/core";import{Divider as qd}from"@rango-dev/ui";import uo,{useState as Xk}from"react";import{useNavigate as jk}from"react-router-dom";import{i18n as As}from"@lingui/core";import{BlockchainsChip as Yr,Divider as Ed,Image as Id,Skeleton as Dk,Tooltip as $k,Typography as Ws}from"@rango-dev/ui";import _e from"react";import{useEffect as Pk}from"react";var xd=["ETH","COSMOS","OSMOSIS"];function Es(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Lk),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(Bk(s)),r=n.splice(a)}return{list:n,more:r}}i(Es,"prepare");function Lk(t,e){let o=xd,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(Lk,"sortByMostUsedBlockchains");function Bk(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(Bk,"generateSortByPreferredBlockchainsFor");function wd(t,e){return!!e.list.find(o=>o.name===t)}i(wd,"isInVisibleList");function Is(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Pk(()=>{if(e?.selected){let a=Es(t,o,e);wd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Es(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Is,"usePrepareBlockchainList");import{styled as _k}from"@rango-dev/ui";var bd=_k("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Fk=12;function Ns(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Is(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=G.use.resetToBlockchain(),u=G.use.resetFromBlockchain(),c=s.more.length>0,g=s.more.length===1,d=!g&&c;return _e.createElement(_e.Fragment,null,_e.createElement(Ed,{size:12}),_e.createElement(Ws,{variant:"label",size:"large"},As.t("Select Blockchain")),_e.createElement(Ed,{size:12}),_e.createElement(bd,null,l==="loading"&&Array.from(Array(Fk),m=>_e.createElement(Dk,{key:m,variant:"rounded",height:50})),l==="success"&&_e.createElement(_e.Fragment,null,_e.createElement(Yr,{selected:!n,onClick:()=>{o==="from"?u():p()}},_e.createElement(Ws,{variant:"body",size:"xsmall",color:"secondary500"},As.t("All"))),s.list.map(m=>_e.createElement($k,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},_e.createElement(Yr,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},_e.createElement(Id,{src:m.logo,size:30})))),g?_e.createElement(Yr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},_e.createElement(Id,{src:s.more[0].logo,size:30})):null,d?_e.createElement(Yr,{onClick:a,key:"more-blockchains"},_e.createElement(Ws,{variant:"body",size:"xsmall",color:"secondary500"},As._("More +{count}",{count:s.more.length}))):null)))}i(Ns,"BlockchainsSection");import{i18n as Us}from"@lingui/core";import{darkTheme as Fd,Divider as Do,ExternalLinkIcon as Qk,Image as zk,ListItemButton as qk,NotFound as Hk,PinIcon as Gk,Skeleton as Od,Typography as Rr,VirtualizedList as Vk}from"@rango-dev/ui";import X,{useEffect as Ud,useState as Qd}from"react";import{Divider as Dd,ListItem as Uk,Skeleton as gn}from"@rango-dev/ui";import mt from"react";import{css as _o,darkTheme as Ad,ImageContainer as Ok,styled as it,Typography as Wd}from"@rango-dev/ui";var Ms=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ls=_o({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Bs=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ps=_o({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),_s=_o({}),Ds=_o(),Nd=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),$s=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Zr=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ls}`]:{[`& .${Ps}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${_s}`]:{bottom:"-15px"},[`& .${Ms}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Fs=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Os=it(Wd,{}),Md=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ds}`]:{$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),lQ=it("div",{display:"flex",alignItems:"center"}),Ld=it("div",{position:"relative",[`& ${Ok}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bd=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Pd=it(Wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),_d=it("a",{"& svg:hover":{color:"$colors$info"}});function $d(t){return mt.createElement(Zr,null,Array.from(Array(t.size),e=>mt.createElement(Uk,{key:e,hasDivider:!0,start:mt.createElement(gn,{variant:"circular",width:35,height:35}),end:mt.createElement(Jr,null,mt.createElement(gn,{variant:"text",size:"large",width:70}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:50})),title:mt.createElement("div",null,mt.createElement(gn,{variant:"text",size:"large",width:90}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i($d,"LoadingTokenList");var Qs=20,Kk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:Ls()},o?X.createElement("div",{className:Ms()},o):X.createElement($s,{className:Bs()},X.createElement(Rr,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement(Fs,{css:a},X.createElement(Os,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Ps()} ${!o&&_s()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Do,{size:4,direction:"horizontal"}),X.createElement(_d,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(Qk,{size:12}))))},"renderDesc");function zd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Qd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Qd(!0),{getBalanceFor:g,loading:d}=oe(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Qs))},"loadNextPage");Ud(()=>{c(e.length>a.length)},[a.length]),Ud(()=>{s(e.slice(0,Qs))},[e.length,r]);let T=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Do,{size:32}),X.createElement(Hk,{title:Us.t("No results found"),description:Us.t("Try using different keywords")})):X.createElement(Vk,{endReached:u?f:void 0,itemContent:S=>{let y=a[S],C=_n(g(y)),v=y.address||"",x=p.find(k=>k.name===y.blockchain),b=la(x.color,"main"),M={$$color:b.main150,[`.${Fd} &`]:{$$color:b.main750},backgroundColor:"$$color"},w={$$color:b.main750,[`.${Fd} &`]:{$$color:b.main150},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(qk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:X.createElement(Ld,null,X.createElement(zk,{src:y.image,size:30}),m(y,t.type)&&X.createElement(Bd,null,X.createElement(Gk,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||y.name||!y.name&&!v?X.createElement($s,null,X.createElement(Rr,{variant:"title",size:"xmedium"},y.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement(Fs,{css:M},X.createElement(Os,{variant:"body",size:"xsmall",css:w},y.blockchain))):void 0,description:x?.info&&v&&x.type!=="COSMOS"?Kk({address:v,token:a[S],customCssForTag:M,customCssForTagTitle:w,name:y.name,url:x.info.addressUrl.split("{wallet}").join(v)}):y.name||void 0,end:d?X.createElement(Jr,null,X.createElement(Od,{variant:"text",size:"large",width:70}),X.createElement(Do,{size:4}),X.createElement(Od,{variant:"text",size:"medium",width:50})):C&&X.createElement(Md,null,X.createElement(Pd,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(Rr,{variant:"body",className:Ds(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(Nd,null,X.createElement(Rr,{variant:"label",size:"large"},Us.t("Select Token")),X.createElement(Do,{size:4}),l==="loading"&&X.createElement($d,{size:Qs}),l==="success"&&X.createElement(Zr,{as:"ul"},T()))}i(zd,"TokenList");function zs(t){let{type:e}=t,o=jk(),n=tt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=G(),c=oe.use.getBalanceFor(),[g,d]=Xk(""),f=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:c}),y=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),C=i(x=>{e==="source"?s({token:x,meta:{blockchains:T,tokens:S}}):l({token:x,meta:{blockchains:T,tokens:S}})},"updateToken"),v={source:ei.t("Source"),destination:ei.t("Destination")};return uo.createElement(ue,{header:{title:ei.t("Swap {type}",{type:v[e]})}},uo.createElement(he,null,uo.createElement(Ns,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(H.blockchains),onChange:x=>{y(x)}}),uo.createElement(qd,{size:24}),uo.createElement(Wt,{value:g,autoFocus:!0,placeholder:ei.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:x=>d(x.target.value)}),uo.createElement(qd,{size:16}),uo.createElement(zd,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:x=>{C(x);let b=T.find(M=>x.blockchain===M.name);b&&y(b),n()}})))}i(zs,"SelectSwapItemsPage");import{i18n as Vs}from"@lingui/core";import{Alert as Cv,Button as kv,styled as vv}from"@rango-dev/ui";import mo from"react";import{useInRouterContext as xv,useSearchParams as wv}from"react-router-dom";import{i18n as jd}from"@lingui/core";import{Divider as Rk,InfoIcon as ev,TextField as tv,Tooltip as ov,Typography as Yd}from"@rango-dev/ui";import dt from"react";import{Chip as Yk,styled as hn,TextField as Zk}from"@rango-dev/ui";var Hd=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Gd=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Zk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Vd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ti=hn("div",{maxWidth:"280px",padding:"$10"}),Kd=hn(Yk,{width:"61px",flexShrink:0});import{i18n as qs}from"@lingui/core";import{Typography as Jk}from"@rango-dev/ui";import yn from"react";function Xd(){return yn.createElement(ti,null,yn.createElement(Jk,{variant:"label",size:"medium",color:"neutral700"},qs.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,qs.t("Warning")),":",qs.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Xd,"SlippageTooltipContent");function Hs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return dt.createElement(Hd,null,dt.createElement(Vd,null,dt.createElement(Yd,{variant:"title",size:"xmedium"},jd.t("Slippage tolerance per swap")),dt.createElement(Rk,{direction:"horizontal",size:4}),dt.createElement(ov,{container:B(),side:"top",sideOffset:4,content:dt.createElement(Xd,null)},dt.createElement(ev,{color:"gray"}))),dt.createElement(Gd,null,tp.map((r,a)=>{let s=`slippage-${a}`;return dt.createElement(Kd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),dt.createElement(tv,{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>=ip&&s<=rp?n(s):n(null)},suffix:o&&dt.createElement(Yd,{variant:"body",size:"small"},"%"),placeholder:jd.t("Custom")})))}i(Hs,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Zd,BridgesIcon as nv,ChevronRightIcon as Gs,DarkModeIcon as Jd,Divider as oi,ExchangeIcon as rv,InfinityIcon as iv,InfoIcon as av,LanguageIcon as sv,LightModeIcon as Rd,List as lv,ListItem as pv,ListItemButton as cv,Skeleton as uv,styled as mv,Switch as dv,Tabs as fv,Tooltip as gv,Typography as at}from"@rango-dev/ui";import U from"react";import{useNavigate as hv}from"react-router-dom";var yv=mv("div",{width:"202px",height:"$40"}),Sv=[{id:"light",icon:U.createElement(Rd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:U.createElement(Jd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:U.createElement(Zd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Tv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Zd,{...e});case"dark":return U.createElement(Jd,{...e});default:return U.createElement(Rd,{...e})}},"getThemeIcon");function ef(){let t=hv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=qt(),s=a.find(Q=>Q.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),g=Re("theme",c),d=Re("liquiditySource",c),m=Re("language",c),f=h().infiniteApprove,T=h().toggleInfiniteApprove,S=Un(p,u),y=S.filter(Q=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(Q.type)),C=y.length,v=y.filter(Q=>Q.selected).length,x=S.filter(Q=>Q.type==="DEX"),b=x.length,M=x.filter(Q=>Q.selected).length,w=i((Q,te)=>{switch(l){case"loading":return U.createElement(uv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(at,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return U.createElement(at,{variant:"body",size:"medium"},`${Q} / ${te}`)}},"handleSwapperEndItem"),k={id:"bridge-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:U.createElement(U.Fragment,null,w(v,C),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(H.bridges),start:U.createElement(nv,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:U.createElement(U.Fragment,null,w(M,b),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),start:U.createElement(rv,{color:"gray",size:16}),onClick:()=>t(H.exchanges)},A={id:"language-item",title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Language")),start:U.createElement(sv,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(at,{variant:"body",size:"medium"},s),U.createElement(oi,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(H.languages)},L={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),U.createElement(oi,{direction:"horizontal",size:4}),U.createElement(gv,{side:"top",sideOffset:4,container:B(),content:U.createElement(ti,null,U.createElement(at,{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.")))},U.createElement(av,{color:"gray"}))),start:U.createElement(iv,{color:"gray",size:16}),end:U.createElement(dv,{checked:f}),onClick:T},q={id:"theme-item",type:U.createElement(pv,null),title:U.createElement(at,{variant:"title",size:"xmedium"},kt.t("Theme")),end:U.createElement(yv,null,U.createElement(fv,{container:B(),items:Sv,value:n,onChange:Q=>o(Q.id),type:"primary",borderRadius:"small"})),start:Tv(n)},I=d?[]:[k,E];return m||I.push(A),I.push(L),!e?.singleTheme&&!g&&I.push(q),U.createElement(lv,{type:U.createElement(cv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(ef,"SettingsLists");var bv=vv("div",{paddingLeft:"$8"});function tf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=wv(),r=xv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return mo.createElement(ue,{header:{title:Vs.t("Settings")}},mo.createElement(he,null,o&&mo.createElement(Cv,{type:"info",variant:"alarm",title:Vs.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:mo.createElement(bv,null,mo.createElement(kv,{type:"secondary",size:"small",onClick:a},Vs.t("Reset")))}),mo.createElement(Hs,null),mo.createElement(ef,null)))}i(tf,"SettingsPage");import{i18n as cx}from"@lingui/core";import{cancelSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as dx}from"@rango-dev/ui";import pl from"react";import{useParams as fx}from"react-router-dom";import{i18n as Ze}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Gv,getCurrentStep as Vv,getRelatedWalletOrNull as Kv}from"@rango-dev/queue-manager-rango-preset";import{Button as Pf,CopyIcon as Xv,Divider as jv,DoneIcon as Yv,IconButton as Zv,QuoteCost as Jv,RangoExplorerIcon as Rv,StepDetails as ex,Tooltip as _f,Typography as go,useCopyToClipboard as tx}from"@rango-dev/ui";import{useWallets as ox}from"@rango-dev/wallets-react";import Df from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import Z,{useEffect as $f,useRef as nx,useState as Ff}from"react";import{useNavigate as rx}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var Ev=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function of(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ht.t("Today"):`${Ev[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(of,"timeSince");function nf(t){return t.finishTime?of(parseInt(t.finishTime)):of(parseInt(t.creationTime))}i(nf,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ni}from"@lingui/core";import{Button as rf,Divider as Ks,MessageBox as Iv}from"@rango-dev/ui";import Gt from"react";var af=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Ks,{size:20}),Gt.createElement(Iv,{type:"error",title:ni.t("Cancel Swap"),description:ni.t("Are you sure you want to cancel this swap?")}),Gt.createElement(Ks,{size:32}),Gt.createElement(rf,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Cancel it")),Gt.createElement(Ks,{size:12}),Gt.createElement(rf,{variant:"outlined",type:"primary",size:"large",onClick:e},ni.t("No, Continue"))),"CancelContent");import{i18n as ri}from"@lingui/core";import{Button as sf,Divider as Xs,MessageBox as Av,Typography as Wv}from"@rango-dev/ui";import Bt from"react";var lf=i(({onDelete:t,onClose:e})=>Bt.createElement(Bt.Fragment,null,Bt.createElement(Xs,{size:20}),Bt.createElement(Av,{type:"error",title:ri.t("Delete Transaction"),description:ri.t("Are you sure you want to delete this swap?")}),Bt.createElement(Xs,{size:32}),Bt.createElement(sf,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Delete it")),Bt.createElement(Xs,{size:12}),Bt.createElement(sf,{variant:"outlined",type:"primary",size:"large",onClick:e},Bt.createElement(Wv,{variant:"title",size:"medium",color:"primary"},ri.t("No, Cancel")))),"DeleteContent");import{i18n as js}from"@lingui/core";import{PendingSwapNetworkStatus as Ys}from"rango-types";var Zs={[Ys.WaitingForNetworkChange]:{type:"loading",title:js.t("Change Network")},[Ys.WaitingForConnectingWallet]:{type:"warning",title:js.t("Connect Wallet")},[Ys.NetworkChanged]:{type:"success",title:js.t("Network Changed")}};import{debug as ii}from"@rango-dev/logging-core";import{MessageBox as Nv,Wallet as Mv}from"@rango-dev/ui";import{useWallets as Lv}from"@rango-dev/wallets-react";import fo,{useState as uf}from"react";import{styled as pf}from"@rango-dev/ui";var cf=pf("div",{display:"flex",justifyContent:"center"}),Yz=pf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var mf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Lv(),[c,g]=uf(null),[d,m]=uf(null),f=n?.walletType,T=f?Wi(u(f)):null,S=f?p(f):null,y=a&&!!f&&!!T&&!!S,C=i(()=>{c&&g({...c,open:!1})},"handleCloseNamespaceModal"),v=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),x=i(()=>{f&&S&&(S.namespaces?.length?S.namespaces.length>1?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):S.needsDerivationPath?m({open:!0,providerType:f,providerImage:S.img,namespace:S.namespaces[0]}):l(f).catch(w=>ii(w)):l(f).catch(w=>ii(w)))},"handleWalletItemClick"),b=i(w=>{S?.needsDerivationPath&&S?.singleNamespace&&w[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:w[0]}):l(c?.providerType,void 0,w.map(k=>({namespace:k}))).catch(k=>ii(k)),C()},"handleConfirmNamespaces"),M=i(w=>{w&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:w}]).catch(k=>ii(k)),v()},"handleDerivationPathConfirm");return fo.createElement(fo.Fragment,null,fo.createElement(Nv,{type:e,title:o,description:r}),y&&fo.createElement(cf,null,fo.createElement(Mv,{container:B(),title:S.name,image:S.img,type:f,state:T,link:S.installLink,disabled:s,onClick:x})),fo.createElement(ro,{open:!!c?.open,onClose:C,onConfirm:b,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),fo.createElement(oo,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:v,onConfirm:M}))},"WalletStateContent");function Js(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(re,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&si.createElement(mf,{type:Zs[e].type,title:Zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(lf,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(af,{onClose:o,onCancel:r}))}i(Js,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Rs,Divider as li,MessageBox as df,TokenAmount as Bv,Typography as el}from"@rango-dev/ui";import Fe from"react";import{useNavigate as Pv}from"react-router-dom";function tl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:g,diagnosisUrl:d}=t,m=Pv();return Fe.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Fe.createElement(df,{type:"success",title:Sn.t("Swap Successful")},Fe.createElement(Bv,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Fe.createElement(li,{size:12}),Fe.createElement(el,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Fe.createElement(df,{type:"error",title:Sn.t("Transaction Failed"),description:g}),Fe.createElement(li,{size:32}),n==="success"&&Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Fe.createElement(el,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Fe.createElement(li,{size:12}),d&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Fe.createElement(li,{size:12})),Fe.createElement(Rs,{variant:"outlined",type:"primary",size:"large",onClick:o},Fe.createElement(el,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(tl,"SwapDetailsCompleteModal");import Hv from"react";import{i18n as Uv}from"@lingui/core";import{Alert as Nf,IconButton as Qv,LinkIcon as zv}from"@rango-dev/ui";import Vt,{Fragment as qv}from"react";import{Alert as Dv,ChevronDownIcon as $v,IconButton as Fv}from"@rango-dev/ui";import Fo,{useState as Ov}from"react";import{css as Tn,darkTheme as ff,styled as Pt,Typography as _v}from"@rango-dev/ui";var gf=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=Pt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${ff} &`]:{color:"$secondary500"}}}}}),hf=Pt(Ko,{padding:"$0 $20 $20 $20"}),Bq=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Pq=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Tn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ff} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Sf=Tn({padding:"$5 0"}),ci=Tn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Tf=Tn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Cf=Tn({width:"100%",padding:"0 $20 $10"}),kf=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),vf=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=Pt(_v,{wordBreak:"break-word"});import{styled as ol}from"@rango-dev/ui";var xf=ol("div",{display:"flex",flexDirection:"column",gap:"$10"}),wf=ol("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),bf=ol("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Ef(t){let{message:e}=t,[o,n]=Ov(!1);return Fo.createElement(Dv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Fo.createElement(Fv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Fo.createElement(wf,{rotated:o},Fo.createElement($v,{size:12,color:"gray"}))),footer:Fo.createElement(bf,{open:o},Fo.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Ef,"FailedAlert");import{i18n as If}from"@lingui/core";import{Alert as nl,Button as Af}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rl}from"rango-types";import Cn from"react";function Wf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Cn.createElement(nl,{type:"warning",title:n.shortMessage,action:Cn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},If.t("Change"))}):r===rl.WaitingForConnectingWallet?Cn.createElement(nl,{type:"warning",title:n.shortMessage,action:Cn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForConnectingWallet)}},If.t("Connect"))}):Cn.createElement(nl,{type:"warning",title:n.shortMessage})}i(Wf,"WarningAlert");function il(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Vo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Vt.createElement(xf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,T=d===m.length-1,S=(T&&u||p)&&!c,y=T&&a.status==="failed";return Vt.createElement(qv,{key:f},Vt.createElement(Nf,{type:T&&(S&&"loading"||y&&"error")||"success",title:g.description?`${g.description} Tx`:Uv.t("View transaction"),action:g.url&&Vt.createElement(Qv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Vt.createElement(zv,{size:12}))}))}),c&&Vt.createElement(Nf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(Wf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(Ef,{message:r}))}i(il,"SwapDetailsAlerts");var Mf=2e3;var Lf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Je(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Je(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Qo(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Je(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Je(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Hv.createElement(il,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Bf(t){if(Vo(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(Bf,"getStepState");function al(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=ox(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),g=G.use.retry(),d=le.use.isActiveTab(),m=rx(),[f,T]=tx(Mf),S=nx(null),[y,C]=Ff(null),[v,x]=Ff(null),b=i(()=>{r(),C(null)},"onCancel"),M=Ee.use.getNotifications(),w=Ee.use.removeNotification(),k=M(),E=Vv(e),A=E?.networkStatus;$f(()=>{k.find(be=>be.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),w(e.requestId)):v&&x(null))},[e.status,e.requestId]),$f(()=>{D?C(mi.WaitingForNetworkChange):A===mi.WaitingForConnectingWallet||A===mi.NetworkChanged?C(A):C(null)},[A]);let L=Lp(e),q=E?Gv(e,E):null,I=E?Kv(e,E):null,Q=nf(e),te=Bp(e),P=i(se=>!!l(se)?.mobileWallet,"isMobileWallet"),D=A===mi.WaitingForNetworkChange&&!!q&&!!I?.walletType&&(P(I.walletType)||a(I.walletType,q)),j=D?s.bind(null,I.walletType,q):void 0,ye=Mp(e,E),Y=Lf({swap:e,switchNetwork:j,showNetworkModal:A,setNetworkModal:C,message:ye,blockchains:p,swappers:u}),ie=Y.length,[ge,Te]=[e.steps[0],e.steps[ie-1]],$=Te.outputAmount||Te.expectedOutputAmountHumanReadable,W=e.steps.reduce((se,be)=>se+parseFloat(be.feeInUsd||""),0),pe=e.steps.find(se=>se.diagnosisUrl)?.diagnosisUrl,ce=N(parseFloat($||"0")*(Te.toUsdPrice||0),4,4),De=N(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),_=$?new Df($).multipliedBy(Te.toUsdPrice||0).toString():"",z=new Df(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),K=et(De,ce),ae=ye.detailedMessage.content||ye.shortMessage,ee=e.status==="success"?Ze.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N($,6,6),token:Y[ie-1].to.token.displayName,conciseAddress:Dn(e.wallets[Y[ie-1].to.chain.displayName]?.address||""),chain:Y[ie-1].to.chain.displayName}}):Z.createElement(vf,null,Z.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},ae?"":Ze.t("Transaction was not sent."),L?`${Ze.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),ae&&Z.createElement(ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",ae));return Z.createElement(ue,{header:{title:Ze.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(bo,null,Z.createElement(Pf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},Z.createElement(go,{size:"medium",variant:"label",color:"error"},Ze.t("Delete"))))},footer:te&&!v&&Z.createElement(Pf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let se=Jn(e,p,c);g(se),setTimeout(()=>{m("../../")},0)}},Ze.t("Try again"))},Z.createElement(he,{compact:!0,view:!0},Z.createElement(pi,null,Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${Ze.t("Request ID")}:`),Z.createElement("div",{className:ci()},Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(_f,{container:B(),content:f?Ze.t("Copied To Clipboard"):Ze.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Zv,{variant:"ghost",onClick:T.bind(null,o||"")},f?Z.createElement(Yv,{size:16,color:"secondary"}):Z.createElement(Xv,{size:16,color:"gray"}))),Z.createElement(kf,{target:"_blank",href:`${yl}/swap/${o}`},Z.createElement(_f,{container:B(),content:Ze.t("View on Rango Explorer"),side:"bottom"},Z.createElement(Rv,{size:20}))))),Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Ze.t("Finished at"):Ze.t("Created at")),Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},Q))),Z.createElement("div",{className:Tf()},Z.createElement(Jv,{fee:N(String(W),2,2),time:zo(Wn(e.steps)),steps:ie}),Z.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:De,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:N($,6,6),usdValue:ce,realUsdValue:_,realValue:$||""},token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image,displayName:Y[ie-1].to.chain.displayName}},percentageChange:N(K,2,2),warningLevel:wt(K??0)})),Z.createElement("div",{className:Cf()},Z.createElement(go,{variant:"title",size:"small"},Ze.t("Swaps steps"))),Z.createElement(jv,{size:8}),Z.createElement(hf,{ref:S},Y.map((se,be)=>{let xn=be,Oo=Bf(e.steps[be]),lg=Oo==="error"||Oo==="in-progress"||Oo==="warning"||Oo==="completed"&&be===Y.length-1;return Z.createElement(ex,{key:xn,step:se,type:"swap-progress",ref:S,state:Oo,hasSeparator:be!==0,tabIndex:xn,isFocused:lg,tooltipContainer:B()})}))),Z.createElement(Js,{state:y,onClose:()=>C(null),onCancel:b,onDelete:n,message:ye.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),Z.createElement(tl,{open:!!v,diagnosisUrl:pe,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:N($,6,6),usdValue:ce,realUsdValue:_,realValue:$||"",percentageChange:N(K,2,2),token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image},description:ee}))}i(al,"SwapDetails");import{i18n as fi}from"@lingui/core";import{Divider as Qf,NotFound as px,Skeleton as vn,Typography as gi}from"@rango-dev/ui";import ve from"react";import{i18n as ix}from"@lingui/core";import{Divider as ax,Skeleton as sx,Typography as lx}from"@rango-dev/ui";import we from"react";import{css as ft,styled as sl}from"@rango-dev/ui";var Of=sl("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=sl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=sl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),VH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),KH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),XH=ft({paddingTop:"$15",display:"flex"}),jH=ft({padding:"$15 $0"}),YH=ft({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),ZH=ft({paddingBottom:"$10"}),JH=ft({display:"flex",justifyContent:"start",alignItems:"center"}),RH=ft({paddingTop:"$5",display:"flex",alignItems:"center"}),eG=ft({display:"flex",alignItems:"center"}),tG=ft({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Uf=ft({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ll(){return we.createElement(Of,null,we.createElement(nn,{type:"swap-preview"}),we.createElement("div",{className:"swaps-steps"},we.createElement(lx,{variant:"title",size:"small"},ix.t("Swaps steps"))),we.createElement(we.Fragment,null,we.createElement(kn,null,we.createElement(Tt,{separator:!1}),we.createElement("div",{className:Uf()},we.createElement(ax,{direction:"horizontal",size:20}),we.createElement(sx,{height:22,variant:"rectangular"}))),we.createElement(di,null),we.createElement(kn,null,we.createElement(Tt,{separator:!1})),we.createElement(di,null),we.createElement(kn,null,we.createElement(Tt,{separator:!1})),we.createElement(di,null),we.createElement(kn,null,we.createElement(Tt,{separator:!1}))))}i(ll,"LoadingSwapDetails");function zf(t){let{requestId:e,showSkeleton:o}=t;return ve.createElement(ue,{header:{title:fi.t("Swap Details"),suffix:ve.createElement(bo,null)}},o&&ve.createElement(gf,null,ve.createElement(pi,null,ve.createElement("div",{className:$o()},ve.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),ve.createElement("div",{className:ci()},ve.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ve.createElement("div",{className:$o()},ve.createElement(gi,{className:Sf(),variant:"label",size:"large",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})))),ve.createElement(ll,null)),!o&&ve.createElement(yf,null,ve.createElement(px,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(zf,"SwapDetailsPlaceholder");function qf(){let{manager:t,state:e}=mx(),o=!e.loadedFromPersistor,n=ot(t),{requestId:r}=fx(),a=tt(),{fetchStatus:s}=h();if(!r)return pl.createElement(dx,{containerStyles:{margin:"20px"},type:"error",title:cx.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&ux(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?pl.createElement(zf,{requestId:r,showSkeleton:l}):pl.createElement(al,{swap:g,requestId:r,onCancel:u,onDelete:c})}i(qf,"SwapDetailsPage");function Hf(){return qp(),Ri(),gx([{path:H.home,element:Ke.createElement(sd,null)},{path:H.routes,element:Ke.createElement(md,null)},{path:H.fromSwap,children:[{index:!0,element:Ke.createElement(zs,{type:"source"})},{path:H.blockchains,element:Ke.createElement(bs,{type:"source"})}]},{path:H.toSwap,children:[{index:!0,element:Ke.createElement(zs,{type:"destination"})},{path:H.blockchains,element:Ke.createElement(bs,{type:"destination"})}]},{path:H.settings,children:[{index:!0,element:Ke.createElement(tf,null)},{path:H.languages,element:Ke.createElement(pd,null)},{path:H.exchanges,element:Ke.createElement(vs,{sourceType:"Exchanges"})},{path:H.bridges,element:Ke.createElement(vs,{sourceType:"Bridges"})}]},{path:H.swaps,children:[{index:!0,element:Ke.createElement(Om,null)},{path:H.swapDetails,element:Ke.createElement(qf,null)}]},{path:H.wallets,element:Ke.createElement(Yc,null)},{path:H.confirmSwap,element:Ke.createElement(Im,null)}])}i(Hf,"AppRoutes");import{useQueueManager as wx}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as bx}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Ex}from"rango-sdk";import{useContext as Ix,useEffect as Zf,useState as Jf}from"react";import{globalCss as hx}from"@rango-dev/ui";var Gf=i(()=>hx({"@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 Vf(){let{setWatermark:t}=le();return{fetchApiConfig:i(async()=>{let o=await fetch(`${xt("BASE_URL")}/meta/dapp/config?apiKey=${xt("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(Vf,"useFetchApiConfig");import{useWallets as yx}from"@rango-dev/wallets-react";import{useEffect as Sx,useRef as Tx}from"react";function Kf(){let{connect:t,state:e}=yx(),o=Tx({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Sx(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Kf,"useForceAutoConnect");import{isApprovalTX as Cx,RouteEventType as Xf,StepEventType as jf,StepExecutionEventStatus as kx,WidgetEvents as hi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Yf}from"react";function cl(){let t=oe.use.connectedWallets(),e=oe.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h();Yf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===jf.TX_EXECUTION&&s.status===kx.TX_SENT&&!Cx(l)||s.type===jf.SUCCEEDED){let c=t.find(d=>d.chain===l?.fromBlockchain),g=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);c&&e([c],n),g&&e([g],n)}o(s,p)},"handleStepEvent");return Ce.on(hi.StepEvent,r),()=>Ce.off(hi.StepEvent,r)},[Ce,t]),Yf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Xf.FAILED||s.type===Xf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return Ce.on(hi.RouteEvent,r),()=>Ce.off(hi.RouteEvent,r)},[Ce])}i(cl,"useSubscribeToWidgetEvents");import{useManager as vx}from"@rango-dev/queue-manager-react";import{useEffect as xx}from"react";function ul(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=vx();xx(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ot(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ul,"useSyncNotifications");function ml(){Kf(),Gf(),cl(),ul();let t=h().blockchains(),{canSwitchNetworkTo:e}=Cr(),[o,n]=Jf(""),[r,a]=Jf(),s=Ix(zn),l=t.filter(Ex),{fetchApiConfig:p}=Vf();Zf(()=>()=>zp(),[]),wx({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Zf(()=>(jt.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===bx(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(ml,"useBootstrap");import{styled as Ax}from"@rango-dev/ui";var Rf=Ax("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(){ml();let{config:t}=h(),{activeTheme:e}=pr(t?.theme||{}),{activeLanguage:o}=qt();return dl.createElement(Wx,{language:o},dl.createElement(Rf,{id:"swap-container",className:e()},dl.createElement(Hf,null)))}i(yi,"Main");import{setSolanaSignerConfig as jx}from"@rango-dev/signer-solana";import gl,{useEffect as ig,useMemo as Yx}from"react";import{useState as Nx}from"react";var Mx=i(()=>{let[t,e]=Nx(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=Il(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),eg=Mx;import{checkWaitingForNetworkChange as Lx,makeQueueDefinition as Bx}from"@rango-dev/queue-manager-rango-preset";import{Provider as Px}from"@rango-dev/queue-manager-react";import{useWallets as _x}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Dx}from"@rango-dev/wallets-shared";import{isEvmBlockchain as $x}from"rango-types";import Fx,{useMemo as Ox}from"react";function Ux(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=_x(),l=Ox(()=>Bx({API_KEY:t.apiKey||xt("API_KEY"),BASE_URL:xt("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:oe.use.connectedWallets().map(v=>({accounts:[v],name:v.chain}))},g=i(async(v,x)=>{if(a(v,x))return r(v,x)},"switchNetwork"),d=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=p.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),f=p.filter($x),T=i(v=>{let{supportedChains:x}=s(v);return Ln(x)},"getSupportedChainNames"),S=e(),y={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:Dx(f),getSupportedChainNames:T},getSigners:o,wallets:c,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},C=le.use.isActiveTab();return Fx.createElement(Px,{queuesDefs:[l],context:y,onPersistedDataLoaded:v=>{Lx(v)},isPaused:!C},t.children)}i(Ux,"QueueManager");var tg=Ux;import{useManager as Gx}from"@rango-dev/queue-manager-react";import Vx,{createContext as Kx,useContext as Xx}from"react";function og(){let{findToken:t}=h(),e=h().blockchains(),o=h().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=G();return i(u=>{let{fromBlockchain:c,fromToken:g,toBlockchain:d,toToken:m,requestAmount:f}=u,T={blockchains:e,tokens:o};if(c!==void 0){let S=e.find(y=>y.name===c)??null;n(S)}if(g!==void 0){let S=g?t(g)??null:null;r({meta:T,token:S})}if(d!==void 0){let S=e.find(y=>y.name===d)??null;a(S)}if(m!==void 0){let S=m?t(m)??null:null;s({meta:T,token:S})}f!==void 0&&l(f)},"updateQuoteInput")}i(og,"useUpdateQuoteInput");import{cancelSwap as Qx,getCurrentBlockchainOfOrNull as zx,getCurrentStep as qx,getRelatedWalletOrNull as Hx}from"@rango-dev/queue-manager-rango-preset";var Si=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ot(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&&Qx(o)}getCurrentStepInfo(e){let o=qx(e);return{step:o,wallet:o?Hx(e,o):null,network:o?zx(e,o):null}}};var ng=Kx(void 0);function fl(t){let{manager:e}=Gx(),o=le.use.isActiveTab(),n=G.use.retry(),{findToken:r}=h(),a=new Si(e,{retrySwap:n,findToken:r}),s=oe.use.connectedWallets(),l=oe.use.loading(),p=_l(s),u=oe.use.getWalletsDetails(),c=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=qt().resetLanguage,T=Ee().getNotifications(),S=Ee().clearNotifications,y=og(),C={isActiveTab:o,setCurrentTabAsActive:jt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:v=>u(v,r)},meta:{blockchains:c,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:T,clearAll:S},quote:{updateQuoteInput:y}};return Vx.createElement(ng.Provider,{value:C},t.children)}i(fl,"WidgetInfo");function rg(){let t=Xx(ng);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(rg,"useWidget");function Ti(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=eg();return ig(()=>{n&&r(n)},[n]),Yx(()=>{ql({API_KEY:o?.apiKey||wn,BASE_URL:o?.apiUrl||hl})},[o.apiKey,o.apiUrl]),ig(()=>{t.config?.signers?.customSolanaRPC&&jx("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),gl.createElement(qn,{config:o,onUpdateState:e},gl.createElement(tg,{apiKey:o.apiKey},gl.createElement(fl,null,t.children)))}i(Ti,"WidgetProvider");function ag(t){let e=t.config?.externalWallets;return Ci.createElement(fp,null,e?Ci.createElement(yi,null):Ci.createElement(Ti,{config:t.config??Oi},Ci.createElement(yi,null)))}i(ag,"Widget");function sg(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(sg,"useWidgetEvents");export{x5 as EventSeverity,yo as MainEvents,L5 as Networks,_5 as PendingSwapNetworkStatus,Pi as QuoteEventTypes,w5 as RouteEventType,ki as SUPPORTED_FONTS,b5 as StepEventType,E5 as StepExecutionBlockedEventStatus,I5 as StepExecutionEventStatus,Se as UI_ID,Di as UiEventTypes,_i as WalletEventTypes,N5 as WalletEvents,B5 as WalletTypes,ag as Widget,yo as WidgetEvents,Ti as WidgetProvider,qn as WidgetWallets,ma as customizedThemeTokens,W5 as readAccountAddress,Jt as useWalletList,Cr as useWallets,rg as useWidget,sg as useWidgetEvents,mg as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map