@rango-dev/widget-embedded 0.30.1-next.4 → 0.30.1-next.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var ig=Object.defineProperty;var i=(t,e)=>ig(t,"name",{value:e,configurable:!0});import{EventSeverity as V2,RouteEventType as K2,StepEventType as X2,StepExecutionBlockedEventStatus as j2,StepExecutionEventStatus as Y2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as J2,useWallets as xr,Events as R2}from"@rango-dev/wallets-react";import{Networks as t5,WalletTypes as o5}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as r5}from"rango-types";import{UI_ID as ag}from"@rango-dev/ui";var An="c6381a79-2817-4602-83bf-6a641a409e32",hl="https://api.rango.exchange",yl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...ag};var Sl="Roboto",xi=[{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 eh}from"@rango-dev/wallets-react";import{isEvmBlockchain as th}from"rango-sdk";import Gn,{createContext as oh,useEffect as mp,useMemo as nh,useRef as dp}from"react";import{useEffect as Ig}from"react";import{create as xg}from"zustand";import{subscribeWithSelector as bg}from"zustand/middleware";import sg from"mitt";var we=sg(),lg={on:we.on,off:we.off};import{RangoClient as vg}from"rango-sdk";import{BlockchainCategories as gg,WalletState as Tt}from"@rango-dev/ui";import{readAccountAddress as hg}from"@rango-dev/wallets-react";import{detectInstallLink as yg,getCosmosExperimentalChainInfo as Sg,isEvmAddress as Cg,KEPLR_COMPATIBLE_WALLETS as hx,Networks as Wl}from"@rango-dev/wallets-shared";import Mi from"bignumber.js";import{isCosmosBlockchain as Tg}from"rango-types";import pg from"bignumber.js";var $e=new pg(0);import{WalletTypes as cg}from"@rango-dev/wallets-shared";var Cl=[cg.LEAP];import{BlockchainCategories as bi,WalletState as fg}from"@rango-dev/ui";import{TransactionType as Nn}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Ai(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ai,"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 It(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(It,"containsText");function vl(t,e){return t.toLowerCase()===e.toLowerCase()}i(vl,"exactText");function wl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(wl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),zo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function xl(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:0}i(xl,"compareExactMatchText");function Ei(t,e,o){let n=!!e&&It(e,t),r=!!o&&It(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ei,"compareContainsText");function Ii(t,e,o){let n=!!e&&wl(e,t),r=!!o&&wl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ii,"compareStartWithText");function El(t,e,o){if(!o)return 0;let n=xl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=xl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ii(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ei(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ii(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ei(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ii(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ei(o,t.address,e.address);if(r!==0)return r}return 0}i(El,"compareWithSearchFor");var Wn=i((t,e)=>{switch(e){case bi.ALL:return!0;case bi.UTXO:return t===Nn.TRANSFER;case bi.OTHER:return t!==Nn.TRANSFER&&t!==Nn.COSMOS&&t!==Nn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Il=i(t=>xi.find(o=>o.value===t)?.url,"getFontUrlByName");function Mn(t,e){let o=!!t.find(n=>n.state===fg.CONNECTED);return e===!1&&o}i(Mn,"isSingleWalletActive");function Ln(t,e){return e.find(o=>o.name===t)?.displayName}i(Ln,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}i(Re,"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 Ni(t,e){return e.find(o=>o.name===t)??null}i(Ni,"findBlockchain");function Wi(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Wi,"isTokenNative");function ct(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(ct,"createTokenHash");import{BigNumber as Nl}from"bignumber.js";var Ho=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Nl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Nl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Bn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Ct=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Go=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Li(t){switch(!0){case t.connected:return Tt.CONNECTED;case t.connecting:return Tt.CONNECTING;case!t.installed:return Tt.NOT_INSTALLED;default:return Tt.DISCONNECTED}}i(Li,"mapStatusToWalletState");function Ml(t,e,o,n){return o.filter(r=>!Cl.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=To(g.map(y=>y.type)),f=Li(t(r));return{title:a,image:s,link:yg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:d}})}i(Ml,"mapWalletTypesToWalletInfo");function Dn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Dn,"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}=hg(p),g=l.length>0,d=l.includes(c),m=c===Wl.Unknown;if(g&&!d&&!m)return;let y=c===Wl.Unknown&&Cg(u);if(m&&!y)return;o.includes(c)||y?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Ll,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let 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(Jt,"getQuoteWallets");function $n(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i($n,"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 Mi(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=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Mi(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return kg(r)},"calculateWalletUsdValue");function kg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(kg,"numberWithThousandSeparator");var Fn=i((t,e)=>{let o=Sg(Object.entries(t).map(([,n])=>n).filter(Tg));return o&&o[e]?.experimental},"isExperimentalChain");function On(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(On,"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 Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function $l(t){return t.sort((e,o)=>+(o.state===Tt.CONNECTED)-+(e.state===Tt.CONNECTED)||+(o.state===Tt.DISCONNECTED||o.state===Tt.CONNECTING)-+(e.state===Tt.DISCONNECTED||e.state===Tt.CONNECTING))}i($l,"sortWalletsBasedOnConnectionState");function Un(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(Un,"getConciseAddress");function Fl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Fl,"getAddress");function Qn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Mi(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},r=o?ct({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(Qn,"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===gg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Wn(n,e))return!0;return!1})}i(zl,"filterWalletsByCategory");var Bi={API_KEY:An};function At(t){return Bi[t]||""}i(At,"getConfig");function ql(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Bi=e,Bi}i(ql,"initConfig");var Hl=20,Gl=25,Pi="theme-widget",_i=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Di=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Vl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var zn,Ot=i(()=>zn||(zn=new vg(At("API_KEY"),At("BASE_URL")),zn),"httpService");import{WidgetEvents as Kl}from"@rango-dev/queue-manager-rango-preset";var $i=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))($i||{}),Fi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Fi||{}),Vo=(r=>(r[r.RouteEvent=Kl.RouteEvent]="RouteEvent",r[r.StepEvent=Kl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Vo||{});var wg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ut=wg;var te=Ut(xg()(bg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{we.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&we.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Qn(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=>$n(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(y=>$n(y,d)),f=p.find(y=>y.address===d.address&&y.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:Qn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(g=>$n(g,c))?Pl(c):c);return{loading:!1,balances:Qn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=ct(o);return n[r]??null}}))));import{allProviders as Eg}from"@rango-dev/provider-all";function qn(t,e){let o=Eg({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(qn,"matchAndGenerateProviders");function Xl(t,e){return qn(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 Oi(t,e){let o=te.use.clearConnectedWallet(),n=qn(t,e);return Ig(()=>{o(),n=qn(t,e)},[jl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Oi,"useWalletProviders");import Kg,{createContext as Xg,useContext as jg,useEffect as Yg,useRef as Zg}from"react";import{create as Gg}from"zustand";import{persist as Vg}from"zustand/middleware";var Ui=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()}},ko=new Ui;function Ko(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=ct(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=ct(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(Ko,"matchTokensFromConfigWithMeta");var Qi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Ag={clientUrl:void 0},Ng={liquiditySources:void 0},Yl=i((t,e,o)=>({config:{...Qi,...t},iframe:Ag,campaignMode:Ng,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=Ko({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Ko({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});ko.set("supportedSourceTokens",l),ko.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 Hn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(Hn,"getUniqueSwappersGroups");function Zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Zl,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"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=ko.get(u);c||(c=Ko({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),ko.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?!!(It(m.symbol,o.searchFor)||It(m.address||"",o.searchFor)||It(m.name||"",o.searchFor)):!0).sort((m,f)=>{let y=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(y!==S)return y?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),N=o.getBalanceFor(f),x=Dl(b,N);if(x!==0)return x}let C=l.get(m.blockchain),T=l.get(f.blockchain),k=Wi(m,C),w=Wi(f,T);if(k!==w)return k?-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:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=ct(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],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=ct(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 Wg,English as Mg,Finland as Lg,French as Bg,German as Pg,Greece as _g,Italian as Dg,Japanese as $g,Netherlands as Fg,Poland as Og,Portuguese as Ug,Russian as Qg,Spanish as zg,Swedish as qg,Ukrainian as Hg}from"@rango-dev/ui";var ep=[{title:"English",label:"English",local:"en",SVGFlag:Mg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:zg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Bg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:$g},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ug},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Wg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Qg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Pg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Hg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:qg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Lg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Fg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:_g},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Dg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Og}],vo="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=To(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=et("theme",n),s=et("language",n),l=et("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||vo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||vo}})}}),"createSettingsSlice");function sp(t){return Gg()(Vg((...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=Xg(null);function h(){let t=jg(lp);if(Yg(()=>{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=Zg();return e.current||(e.current=sp(t.config)),Kg.createElement(lp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");import{create as Rg}from"zustand";var cp="rango-widget";var Xo=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 ae=Ut(Rg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Xo({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Vn=oh({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function rh(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}=Oi(l.wallets,p),{connectWallet:c,disconnectWallet:g}=te(),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(th).map(T=>T.name),y=i((T,k,w,b,N)=>{if(k===qi.ACCOUNTS)if(w){let x=Dn(N.supportedBlockchains),v=Ll(T,w,f,x,N.isContractWallet);v.length&&c(v,s)}else g(T),m.current?m.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===qi.ACCOUNTS&&b.connected){let x=`${T}-${b.network}-${w}`;b.connected&&(d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===qi.NETWORK&&b.network){let x=`${T}-${b.network}`;d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,k,w,b,N)},"onUpdateState"),S=ae.use.isActiveTab(),C=nh(()=>({onConnectWallet:T=>{d.current=T},onDisconnectWallet:T=>{m.current=T}}),[]);return Gn.createElement(Vn.Provider,{value:C},Gn.createElement(eh,{allBlockChains:a,providers:u,onUpdateState:y,autoConnect:!!S},t.children))}i(rh,"Main");function Kn(t){let{config:e,...o}=t;return Gn.createElement(pp,{config:e},Gn.createElement(rh,{...o,config:e}))}i(Kn,"WidgetWallets");import wi from"react";import ih,{Fragment as ah}from"react";import{MemoryRouter as sh,useInRouterContext as lh}from"react-router";function fp({children:t}){let o=lh()?ah:sh;return ih.createElement(o,null,t)}i(fp,"AppRouter");import{I18nManager as kw}from"@rango-dev/ui";import dl from"react";import Ge from"react";import{useRoutes as sw}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as bo,useRef as rr}from"react";import Oe from"bignumber.js";import{create as uh}from"zustand";import{subscribeWithSelector as mh}from"zustand/middleware";import{getLastSuccessfulStep as ch}from"@rango-dev/queue-manager-rango-preset";import sI from"bignumber.js";function Hi(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(Hi,"getFeeLabel");var Gi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],gp=30;import{i18n as ut}from"@lingui/core";import{RouteEventType as GE}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as Yn}from"rango-types";function Xn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Xn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function hp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(hp,"getQuoteErrorMessage");import{i18n as jn}from"@lingui/core";var to=i(()=>({connectWallet:jn.t("Connect Wallet"),swap:jn.t("Swap"),swapAnyway:jn.t("Swap anyway"),ethWarning:jn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function yp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}i(yp,"hasHighValueLoss");function Sp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Sp,"hasLimitError");function Cp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ut.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ut.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ut.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ut.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Cp,"getLimitErrorMessage");function Tp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(Tp,"getSwapButtonState");function Vi(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Vi,"canComputePriceImpact");function Ki(t,e){let o=$e;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Fe(r.amount).multipliedBy(a||0))}return o}i(Ki,"getUsdFeeOfStep");function Zn(t,e){return t.reduce((o,n)=>o.plus(Ki(n,e)),$e)}i(Zn,"getTotalFeeInUsd");function Xi(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}i(Xi,"getUsdFee");function kp(t){return t.reduce((e,o)=>e.plus(Xi(o)),$e)}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 wp(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(wp,"checkSlippageErrors");function xp(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(xp,"checkSlippageWarnings");function Jn(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(Jn,"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,y=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),S=[];return r?.forEach(T=>{S.push({blockchain:T.chain,addresses:[T.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:y??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),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 wo(t){return t?.outputAmount||null}i(wo,"getQuoteOutputAmount");function Ap(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}i(Ap,"getPercentageChange");function Np(t,e){let o=wo(t),n=wo(e);if(!o||!n)return!1;let r=tt(o,n);return r?r<=-1:!0}i(Np,"isOutputAmountChangedALot");function Wp(t,e,o){let n=t.validationStatus,r=Jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Dp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Fe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Fe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ut.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ut.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ut.t(" for input and network fee")),ut.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Re(s.asset.blockchain,o)}})})}i(Wp,"generateBalanceWarnings");function Rn(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}i(Rn,"calcOutputUsdValue");function jo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Yn.NetworkChanged}i(jo,"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,"")),jo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Yn.WaitingForConnectingWallet:n=n||ut.t("Waiting for connecting wallet");break;case Yn.WaitingForQueue:n=n||ut.t("Waiting for other running tasks to be finished");break;case Yn.WaitingForNetworkChange:n=n||ut.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=Jt({filter:"all",quote:n}),l=Jt({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?Xn(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 tr(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(tr,"getQuoteToTokenUsdPrice");function ji(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(ji,"isNumberOfSwapsChanged");function Yi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ai(o,n)}i(Yi,"isQuoteSwappersUpdated");function Zi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ai(o,n)}i(Zi,"isQuoteInternalCoinsUpdated");function Fp(t,e){return ji(t,e)||Yi(t,e)||Zi(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 Nt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Nt,"getPriceImpactLevel");function or(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ch(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ni(a?a.toBlockchain:n.fromBlockchain,e),p=Ni(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(or,"createRetryQuote");function xo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=tt(s.toString(),l.toString());if(!!c&&yp(s,c)){let d=Zn(t?.swaps,r),m=Nt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Jn(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:xp(t,a),minRequiredSlippage:p};return null}i(xo,"generateQuoteWarnings");function tt(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(tt,"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"),nr=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=Gi.indexOf(o.value),a=Gi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new Oe(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(uh()(mh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Oe(0),outputUsdValue:new Oe(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=$e;return Go(o.inputAmount)?(e&&(n=e?.outputAmount?new Oe(e?.outputAmount):null,r=Rn(e?.outputAmount,tr(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Oe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Oe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Oe(0),outputUsdValue:new Oe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new Oe(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new Oe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Oe(0),inputUsdValue:new Oe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Oe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zp=Y.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function qp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Y(),c=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:y,setAffiliatePercent:S,setAffiliateWallets:C}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,b=c?.to?.blockchains,N=rr(void 0),x=rr(void 0),v=rr(void 0),E=rr(void 0);bo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),bo(()=>{if(g==="success"){r();let I=d.find(A=>A.name===c?.from?.blockchain),_=c?.from?.token,Q=_&&f(_);(I||!I&&v.current)&&n(I??null),Q?a({token:Q,meta:{blockchains:d,tokens:m}}):!Q&&N.current&&a({token:null}),v.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,g]),bo(()=>{_i(s,T)&&a({token:null}),Di(p,k)&&n(null)},[T,k]),bo(()=>{_i(l,w)&&a({token:null}),Di(u,b)&&o(null)},[w,b]),bo(()=>{if(g==="success"){r();let I=d.find(A=>A.name===c?.to?.blockchain),_=c?.to?.token,Q=_&&f(_);(I||!I&&E.current)&&o(I??null),Q?e({token:Q,meta:{blockchains:d,tokens:m}}):!Q&&x.current&&e({token:null}),E.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,g]),bo(()=>{y(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),C(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(qp,"useSyncStoresWithConfig");import{useEffect as ea,useRef as dh}from"react";import{useInRouterContext as fh,useLocation as gh,useSearchParams as hh}from"react-router-dom";function Ji(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ji,"convertTokenSearchParamToAsset");function Ri(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ri,"tokenToSearchParam");function ta(){let t=gh(),[e,o]=hh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:g,setInputAmount:d}=Y(),m=h().fetchStatus,f=h().blockchains(),y=h().tokens(),S=fh(),{updateIframe:C,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),w=dh(),{findToken:b}=h(),N=i(()=>{let v={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(v[B]=Z);let E=e.get("fromAmount"),I=e.get("fromBlockchain"),_=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:I,fromToken:_,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:v}},"getUrlSearchParams"),x=i(v=>{for(let E in v)v[E]||delete v[E];o(v,{replace:!0})},"updateUrlSearchParams");ea(()=>{let{autoConnect:v,clientUrl:E,utmQueryParams:I}=N();S&&m==="success"&&x({fromBlockchain:n?.name,fromToken:Ri(a),toBlockchain:r?.name,toToken:Ri(s),fromAmount:l,autoConnect:v??void 0,clientUrl:E??void 0,liquiditySources:k?w.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),ea(()=>{if(!S)return;let v=N();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&d(v.fromAmount),m==="success"){let E=f.find(A=>A.name===v.fromBlockchain),I=v.fromToken&&E?b(Ji(v.fromToken,E)):void 0,_=f.find(A=>A.name===v.toBlockchain),Q=v.toToken&&_?b(Ji(v.toToken,_)):void 0;E&&(p(E),I&&c({token:I,meta:{blockchains:f,tokens:y}})),_&&(u(_),Q&&g({token:Q,meta:{blockchains:f,tokens:y}}))}},[m]),ea(()=>{let{clientUrl:v,liquiditySources:E}=N();C("clientUrl",v||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(ta,"useSyncUrlAndStore");import{i18n as ns}from"@lingui/core";import{useManager as zC}from"@rango-dev/queue-manager-react";import{Alert as wm,Button as qC,css as is,Divider as rs,IconButton as xm,styled as HC,Typography as GC,WalletIcon as VC}from"@rango-dev/ui";import Ie,{useEffect as Vr,useLayoutEffect as KC,useRef as XC,useState as mn}from"react";import{useNavigate as jC}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{Alert as Da,BalanceErrors as ES,Button as tu,ChevronDownIcon as IS,ChevronLeftIcon as AS,CloseIcon as NS,Divider as en,IconButton as ou,MessageBox as WS,PasteIcon as MS,Typography as br,WalletIcon as LS}from"@rango-dev/ui";import $,{useCallback as BS,useEffect as nu,useMemo as PS,useRef as _S,useState as uo}from"react";import{useNavigate as DS}from"react-router-dom";import{i18n as ir}from"@lingui/core";function ar(t){switch(t.type){case 0:return ir.t("Route has been updated.");case 3:return ir.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return ir.t("Route swappers has been updated.");case 2:return ir.t("Route internal coins has been updated.");default:return""}}i(ar,"getQuoteUpdateWarningMessage");import{Modal as Sh}from"@rango-dev/ui";import Ch from"react";function re(t){let{watermark:e}=ae();return Ch.createElement(Sh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import cr,{useRef as vh}from"react";import*as Eo from"@radix-ui/react-collapsible";import{keyframes as Gp,styled as sr}from"@rango-dev/ui";var oa=300,Th=Gp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),kh=Gp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Vp=sr(Eo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),na=sr(Eo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),lr=sr(Eo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Th} ${oa}ms ease-out`},false:{animation:`${kh} ${oa}ms ease-out`}}}}),pr=sr("div",{transition:`all ${oa}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ur(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=vh(null);return cr.createElement(Vp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&cr.createElement(na,{className:"collapsible_trigger",onClick:a},s),cr.createElement(lr,{className:"collapsible_content",open:e},r),l==="bottom"&&cr.createElement(na,{className:"collapsible_trigger",onClick:a},s))}i(ur,"CustomCollapsible");import{css as Kp,darkTheme as Yo,IconButton as wh,styled as ot,TextField as xh}from"@rango-dev/ui";var Xp=ot("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),jp=ot("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),bh=ot("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Yp=ot(bh,{alignSelf:"stretch",minHeight:"93px"}),Zp=ot("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Jp=ot(wh,{position:"absolute",left:"$20"}),Rp=ot("div",{paddingTop:"$20"}),ec=Kp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),tc=ot("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),oc=Kp({paddingTop:"$5"}),nc=ot("div",{display:"flex"}),rc=ot(xh,{backgroundColor:"$neutral100",padding:"$15"}),ic=ot("div",{overflow:"visible",width:"100%"}),ac=ot("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Yo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as mt}from"@lingui/core";import{Button as vS,Divider as Pa,Image as wS,MessageBox as wr,SelectableWallet as xS,Typography as Jc,WalletState as Rc}from"@rango-dev/ui";import ue,{useEffect as eu,useState as co}from"react";import{WalletState as ra}from"@rango-dev/ui";import{useWallets as Eh}from"@rango-dev/wallets-react";import{detectMobileScreens as Ih,KEPLR_COMPATIBLE_WALLETS as Ah,WalletTypes as Io}from"@rango-dev/wallets-shared";import{useCallback as Nh,useEffect as Wh,useState as Mh}from"react";var Lh=Object.values(Io);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=Eh(),{connectedWallets:c}=te(),g=h().blockchains(),d=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Lh,m=Ml(s,p,d,e);m=Ih()?m.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):m;let f=$l(m),[y,S]=Mh(""),C=i(x=>!c.find(v=>v.walletType===x&&v.chain===e),"isExperimentalChainNotAdded"),T=i(async(x,v)=>{let E=s(x);try{if(y&&S(""),E.connected)await l(x);else{if(Mn(m,a.multiWallets))return;o?.(x),await u(x,void 0,v),n?.(x)}}catch(I){r?.(I?.message),S("Error: "+I?.message)}},"handleClick"),k=Nh(()=>{let x=m?.filter(v=>v.state===ra.CONNECTING)||[];for(let v of x)l(v.type)},[Ul(m)]),w=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");Wh(()=>()=>{k()},[]);let b=i(x=>{let v=x.find(I=>I.type===Io.DEFAULT);return!v||v.state===ra.NOT_INSTALLED?!1:x.filter(I=>I.state!=ra.NOT_INSTALLED&&![Io.DEFAULT,Io.WALLET_CONNECT_2,Io.LEDGER].includes(I.type)&&p(I.type).supportedChains.filter(_=>_.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,v,E)=>Fn(E,v)&&C(x)&&!Ah.includes(x)||x==Io.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(x=>!N(x.type,e??"",g)),error:y,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:w}}i(no,"useWalletList");import{i18n as Gc}from"@lingui/core";import{Divider as dS,getCategoriesCount as fS,SelectableCategoryList as gS,styled as Kc,Typography as hS,Wallet as yS,WalletState as Vc}from"@rango-dev/ui";import it,{useState as Ro}from"react";import{useManager as $y}from"@rango-dev/queue-manager-react";import{BottomLogo as Fy,Divider as Lc,Header as Oy}from"@rango-dev/ui";import Te,{useEffect as Ea,useRef as Bc,useState as Uy}from"react";import{useRef as Bh}from"react";function mr(){return window.self!==window.top}i(mr,"isAppLoadedIntoIframe");function ia(){let t=Bh(null),{iframe:e}=h(),o=mr()&&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(ia,"useIframe");import{useNavigate as Ph}from"react-router-dom";function nt(){let t=Ph();return()=>t(-1)}i(nt,"useNavigateBack");import{createTheme as ma,darkTheme as Xh,lightTheme as jh}from"@rango-dev/ui";import{useEffect as Yh,useState as Zh}from"react";import{theme as Vh,darkColors as Kh}from"@rango-dev/ui";import ca from"react";function _h(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(_h,"expandShortHexColor");function Dh(t){return/[0-9]+$/.test(t)}i(Dh,"isOverridingColor");function $h(t,e){return t.padStart(e,"0")}i($h,"pad");function aa(t){let e=Math.min(Math.max(Math.round(t),0),255);return $h(e.toString(16),2)}i(aa,"intToHex");function Fh(t){return`#${aa(t.red)}${aa(t.green)}${aa(t.blue)}`}i(Fh,"rgbToHex");function Oh(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(Oh,"hexToRGB");function Uh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Uh,"generateShade");function Qh(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(Qh,"generateTint");function zh(t){return sc(t,Uh)}i(zh,"calculateShades");function qh(t){return sc(t,Qh)}i(qh,"calculateTints");function sc(t,e){let o=Oh(t),n=[];for(let r=1;r<9;r++)n.push(Fh(e(o,r)));return n}i(sc,"calculateColors");function sa(t,e,o){let a=qh(t).reverse().concat(t),s=zh(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(sa,"createTintsAndShades");function la(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)&&!Dh(r)){let p=_h(a);Object.assign(n,sa(p,r,s))}}return{...n,...e}}i(la,"expandToGenerateThemeColors");var lc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Hh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=lc(o%52)+e;return lc(o%52)+e},"toAlphabeticName"),Gh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),pa=i(t=>Hh(Gh(5381,JSON.stringify(t))>>>0),"toHash");function ua(t){let e=Vh.colors,o={...e,...Kh},n,r;if(t?.light){let s={colors:la(e,t.light)};n={id:`${Pi}-light-${pa(s)}`,tokens:s}}if(t?.dark){let s={colors:la(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Pi}-dark-${pa(s)}`,tokens:s}}return{light:n,dark:r}}i(ua,"customizedThemeTokens");function pc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ca.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ca.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ca.cloneElement(e,{key:l}))}}),o}i(pc,"joinList");function cc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(cc,"doesWindowPreferDarkColorScheme");function dr(t){let{colors:e,fontFamily:o=Sl,borderRadius:n=Hl,secondaryBorderRadius:r=Gl}=t,[a,s]=Zh(cc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=ua(e),c=ma({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[c.className,jh.className],d=[c.className,Xh.className];if(u){let f=ma(u.id,u.tokens);g.push(f.className)}if(p){let f=ma(p.id,p.tokens);d.push(f.className)}return Yh(()=>{let f=i(y=>{y.matches?s("dark"):s("light")},"switchThemeListener");return cc()&&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(" "),y=d.join(" ");return l==="auto"?a==="dark"?y:f:l==="dark"?y:f},"getActiveTheme")}}i(dr,"useTheme");var rt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as uc}from"@lingui/core";import{Alert as Jh,Button as Rh}from"@rango-dev/ui";import mc from"react";function da(t){return mc.createElement(Jh,{action:mc.createElement(Rh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},uc.t("Activate this tab")),type:"warning",variant:"alarm",title:uc.t("Another tab is open and handles transactions.")})}i(da,"ActivateTabAlert");import{i18n as fa}from"@lingui/core";import{Button as ey,Divider as ty,MessageBox as oy}from"@rango-dev/ui";import fr from"react";function ga(t){let{open:e,onClose:o,onConfirm:n}=t;return fr.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},fr.createElement(oy,{title:fa.t("Activate current tab"),type:"warning",description:fa.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.")},fr.createElement(ty,{size:20}),fr.createElement(ey,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},fa.t("Confirm"))))}i(ga,"ActivateTabModal");import{ChevronLeftIcon as iy}from"@rango-dev/ui";import Cc from"react";import{css as ny,darkTheme as dc,IconButton as ry,styled as ro}from"@rango-dev/ui";var kt=ro(ry,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${dc} &`]:{backgroundColor:"$neutral"}}}),fc=ro("div",{position:"absolute",background:"$secondary500",[`.${dc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ao=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),gc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),hc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),yc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Sc=ny({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),gr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ha(t){return Cc.createElement(kt,{variant:"ghost",size:"small",onClick:t.onClick},Cc.createElement(iy,{color:"black",size:16}))}i(ha,"BackButton");import{i18n as ay}from"@lingui/core";import{Button as sy,Typography as ly}from"@rango-dev/ui";import ya from"react";function Sa(t){return ya.createElement(Ao,null,ya.createElement(sy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ya.createElement(ly,{variant:"label",size:"medium",color:"error500"},ay.t("Cancel"))))}i(Sa,"CancelButton");import{i18n as py}from"@lingui/core";import{Image as cy,Tooltip as uy,WalletIcon as my}from"@rango-dev/ui";import io from"react";function Ca(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:Sc()},o.map(r=>io.createElement(gr,{key:r.title},io.createElement(cy,{src:r.image,size:14})))):py.t("Connect Wallet");return io.createElement(uy,{container:t.container,side:"bottom",content:n},io.createElement(kt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(fc,null),io.createElement(my,{size:18,color:"black"})))}i(Ca,"WalletButton");import{i18n as yr}from"@lingui/core";import{NotificationsIcon as Ay,Popover as Ny,SettingsIcon as Wy,Tooltip as Sr,TransactionIcon as My}from"@rango-dev/ui";import We from"react";import{Notifications as hy}from"@rango-dev/ui";import yy from"react";import{useNavigate as Sy}from"react-router-dom";import{create as dy}from"zustand";import{persist as fy,subscribeWithSelector as gy}from"zustand/middleware";var xe=Ut(dy()(fy(gy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Ta(){let t=Sy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return yy.createElement(hy,{list:n,getBlockchainImage:l=>Al(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ta,"NotificationContent");import{useManager as Cy}from"@rango-dev/queue-manager-react";import{InProgressIcon as Ty}from"@rango-dev/ui";import Tc from"react";var ky=i(()=>{let{manager:t}=Cy();return rt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Tc.createElement(yc,null,Tc.createElement(Ty,{color:"info",size:6})):null},"InProgressTransactionBadge"),kc=ky;import{EventSeverity as vy}from"@rango-dev/queue-manager-rango-preset";import{Typography as wy}from"@rango-dev/ui";import vc from"react";function wc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===vy.WARNING);return o?vc.createElement(gc,{isSever:n},vc.createElement(wy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(wc,"NotificationsBadge");import{RefreshProgressButton as xy}from"@rango-dev/ui";import ka,{useEffect as by,useState as xc}from"react";var Ey=1e3,bc=60,Iy=100;function hr({onClick:t}){let[e,o]=xc(0),[n,r]=xc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");by(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===bc&&l()},Ey):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 ka.createElement(kt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ka.createElement(hc,{onTransitionEnd:()=>r(!1),isRefetched:n},ka.createElement(xy,{size:22,color:t?"black":"gray",progress:e/bc*Iy})))}i(hr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Sr,{container:a||P(),side:"top",content:yr.t("Refresh")},We.createElement(hr,{onClick:e})),!l&&We.createElement(Ny,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:We.createElement(Ta,null)},We.createElement("div",null,We.createElement(Sr,{container:P(),side:"top",content:yr.t("Notifications")},We.createElement(kt,{size:"small",variant:"ghost"},We.createElement(Ay,{size:18,color:"black"}),We.createElement(wc,null))))),!r.includes("settings")&&We.createElement(Sr,{container:P(),side:"top",content:yr.t("Settings")},We.createElement(kt,{size:"small",variant:"ghost",onClick:n},We.createElement(Wy,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Sr,{container:P(),side:"top",content:yr.t("Transactions History")},We.createElement(kt,{size:"small",variant:"ghost",onClick:o},We.createElement(My,{size:18,color:"black"}),We.createElement(kc,null))))}i(ao,"HeaderButtons");import{i18n as va}from"@lingui/core";import{Divider as Ic,MessageBox as Py,RefreshIcon as _y}from"@rango-dev/ui";import No from"react";import{Button as Ly,styled as By}from"@rango-dev/ui";var Ec=By(Ly,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wa(t){let{open:e,onClose:o}=t;return No.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},No.createElement(Py,{title:va.t("Something went wrong"),type:"error",description:va.t("Something went wrong. Please refresh the app.")},No.createElement(Ic,{size:30}),No.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},No.createElement(_y,{size:20,color:"primary"}),No.createElement(Ic,{size:4,direction:"horizontal"}),va.t("Refresh"))))}i(wa,"RefreshModal");function xa(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(xa,"onScrollContentAttachStatusToContainer");import{css as Dy,styled as ba}from"@rango-dev/ui";var Ac="700px",Cr=Dy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Nc=ba("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ac},fixed:{height:Ac}}}}),Wc=ba("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Mc=ba("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ia(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Uy(!1),c=te.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=ae(),f=m==="FULL",{activeTheme:y}=dr(d||{}),S=et("connectWalletButton",g),{isActiveTab:C,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:b}=ae(),N=nt(),{manager:x}=$y(),E=rt(x).map(({swap:j})=>j).some(j=>j.status==="running"),I=i(()=>b(eo.forceClaim,E),"onActivateTab"),_=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Bc(null),z=Bc(null);return Ea(()=>(mr()&&z.current&&e(z.current),()=>{o()}),[]),Ea(()=>(A.current?.addEventListener("scroll",xa),()=>{A.current?.removeEventListener("scroll",xa)}),[]),Ea(()=>{u(l==="failed")},[l]),Te.createElement(Nc,{height:s,id:he.SWAP_BOX_ID,className:`${y()} ${Cr()}`,ref:z},Te.createElement(Oy,{prefix:Te.createElement(Te.Fragment,null,Q&&Te.createElement(ha,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!S&&Te.createElement(Ca,{container:P(),onClick:_,isConnected:!!c?.length}),r.onCancel&&Te.createElement(Sa,{onClick:r.onCancel}))}),Te.createElement(Wc,{ref:A},n),Te.createElement(ga,{open:k,onClose:()=>w(!1),onConfirm:I}),Te.createElement(Mc,null,Te.createElement("div",{className:"footer__content"},T&&!C&&Te.createElement("div",{className:"footer__alert"},Te.createElement(da,{onActivateTab:I}),Te.createElement(Lc,{size:10})),a),Te.createElement(Lc,{size:12}),Te.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},Te.createElement(Fy,null))),Te.createElement(wa,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Qy}from"@rango-dev/ui";var Pc="$20 $20 $10 $20",Zo=Qy("div",{padding:Pc,overflowY:"auto",flexGrow:1});import{styled as zy}from"@rango-dev/ui";var fe=zy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Lo}from"@lingui/core";import{Button as Vy,Divider as $c,Image as Ky,MessageBox as Xy,Select as jy,TextField as Yy}from"@rango-dev/ui";import{namespaces as Zy}from"@rango-dev/wallets-shared";import qe,{useEffect as Jy,useState as Fc}from"react";import{keyframes as qy,styled as Tr}from"@rango-dev/ui";var LW=Tr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=Tr("div",{position:"relative"}),Hy=qy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mo=Tr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Hy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),kr=Tr("div",{"& img":{borderRadius:"50%"}});import{styled as _c,Typography as Gy}from"@rango-dev/ui";var Dc=_c("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ia=_c(Gy,{paddingLeft:"$10"}),Aa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Uc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Oc(t){let e=t?Zy[t].derivationPaths:null;return e?[...e,Uc]:[]}i(Oc,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Fc(null),[u,c]=Fc("0"),g=l===Uc.id,d=Oc(n),m=i(({value:y})=>{let S=d?.find(C=>C.id===y);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let y=d.find(S=>S.id===l);if(y)o(y.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Jy(()=>{p(Oc(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement($c,{size:20}),qe.createElement(Xy,{type:"info",title:Lo.t("Select Derivation Path"),description:Lo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:qe.createElement(Wo,null,qe.createElement(kr,null,qe.createElement(Ky,{src:r,size:45})),qe.createElement(Mo,null))}),qe.createElement(Dc,null,qe.createElement(Ia,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),qe.createElement(jy,{value:l||"",options:d.map(y=>({value:y.id,label:y.label})),variant:"filled",handleItemClick:m,styles:{trigger:Aa}}),qe.createElement($c,{size:20}),qe.createElement(Ia,{variant:"body",size:"xsmall",color:"$neutral600"},g?Lo.t("Enter Path"):Lo.t("Enter Index")),qe.createElement(Yy,{type:g?"text":"number",variant:"contained",value:u,onChange:y=>c(y.target.value),style:Aa})),qe.createElement(Vy,{type:"primary",onClick:f,disabled:!d||!l||!u},Lo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as tS}from"@rango-dev/ui";import Wa from"react";import{i18n as Bo}from"@lingui/core";import{Image as Ry,MessageBox as Na,WalletState as eS}from"@rango-dev/ui";import lo from"react";function Qc(t){let{state:e,image:o,error:n}=t;return e===eS.CONNECTED?lo.createElement(Na,{type:"success",title:Bo.t("Wallet Connected"),description:Bo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Na,{type:"error",title:Bo.t("Failed to Connect"),description:n||Bo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Na,{type:"loading",title:Bo.t("Connecting to your wallet"),description:Bo.t("Click connect in your wallet popup."),icon:lo.createElement(Wo,null,lo.createElement(kr,null,lo.createElement(Ry,{src:o,size:45})),lo.createElement(Mo,null))})}i(Qc,"ModalContent");function Jo(t){let{open:e,onClose:o,...n}=t;return Wa.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Wa.createElement(Qc,{...n}),Wa.createElement(tS,{direction:"vertical",size:32}))}i(Jo,"WalletModal");import{i18n as Ma}from"@lingui/core";import{Button as nS,Checkbox as rS,Divider as iS,Image as qc,ListItemButton as aS,MessageBox as sS,Radio as lS,RadioRoot as pS}from"@rango-dev/ui";import{namespaces as Hc}from"@rango-dev/wallets-shared";import Me,{useMemo as cS,useState as uS}from"react";import{styled as oS}from"@rango-dev/ui";var zc=oS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var mS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=uS([]),a=h().blockchains(),s=cS(()=>o?.map(u=>({name:u,logo:mS(a,Hc[u].mainBlockchain),title:Hc[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?Me.createElement(pS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(iS,{size:20}),Me.createElement(sS,{type:"info",title:Ma.t("Select chain types"),description:Ma.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Me.createElement(Wo,null,Me.createElement(gr,null,Me.createElement(qc,{src:t.image,size:45})),Me.createElement(Mo,null))}),Me.createElement(zc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(aS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(qc,{src:u.logo,size:22}),end:e?Me.createElement(lS,{value:u.name}):Me.createElement(rS,{checked:n.includes(u.name)})}))))),Me.createElement(nS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ma.t("Confirm")))}i(po,"WalletNamespacesModal");var SS=Kc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),CS=Kc(fe,{textAlign:"center"}),vr=3e3,La=300;function Xc(){let{fetchStatus:t}=h(),[e,o]=Ro("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Ro(!1),[l,p]=Ro(null),[u,c]=Ro(null),[g,d]=Ro(""),m=null,f=ae.use.isActiveTab(),{list:y,handleClick:S,error:C,disconnectConnectingWallets:T}=no({onBeforeConnect:G=>{m=setTimeout(()=>{s(!0),d(G)},La)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},vr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),w=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=y.find(G=>G.type===g),x=N?.image||"",v=N?.state||Vc.NOT_INSTALLED,E=Ql(y,n),_=fS(E)!==1,Q=zl(y,e),A=i((G,B)=>{Mn(y,r.multiWallets)||(B.namespaces&&B.state===Vc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):S(G))},"handleWalletItemClick"),z=i(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):S(l?.providerType,G.map(Z=>({namespace:Z}))),w()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&S(u.providerType,[{namespace:u.namespace,derivationPath:G}]),b()},"handleDerivationPathConfirm");return it.createElement(ce,{header:{title:Gc.t("Connect Wallets")}},it.createElement(CS,null,_&&it.createElement(it.Fragment,null,it.createElement(gS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),it.createElement(dS,{size:24})),it.createElement(hS,{variant:"title",size:"xmedium",align:"center"},Gc.t("Choose a wallet to connect.")),it.createElement(SS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return it.createElement(yS,{key:Z,...G,container:P(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!f})}),it.createElement(Jo,{open:!!a,onClose:k,image:x,state:v,error:C}),it.createElement(po,{open:!!l?.open,onClose:w,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),it.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:b,onConfirm:j}))))}i(Xc,"WalletsPage");import{keyframes as TS,styled as Ba}from"@rango-dev/ui";var jc=Ba("div",{position:"relative"}),kS=TS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Yc=Ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${kS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Zc=Ba("div",{"& img":{borderRadius:"50%"}});var bS=7;function _a(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,g]=co(""),[d,m]=co(null),[f,y]=co(!1),[S,C]=co(null),[T,k]=co(null),[w,b]=co(null),{suggestAndConnect:N}=xr(),x=null,{list:v,error:E,handleClick:I,disconnectWallet:_,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{g(L)},La)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{g("")},vr)}}),[A,z]=co(v),j=v.length,G=r&&j-r>0,B=i(async L=>{y(!1),C("in-progress");try{await N(L.walletType,L.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain"),Z=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{w&&b({...w,open:!1})},"handleCloseDerivationPathModal"),J=i(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=i(L=>{let me=A.find(se=>se.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?b({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):I(T?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&w?.namespace&&I(w.providerType,[{namespace:w.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");eu(()=>{z(L=>{let me=v.findIndex(se=>o(se.type,e));return G&&me>1?[v[me]].concat(v.filter((se,_e)=>_e!==me)):L.map(se=>v.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(v)]);let Ce=document.getElementById(he.SWAP_BOX_ID);eu(()=>{let L=null;return(S==="completed"||S==="rejected")&&(L=setTimeout(()=>C(null),vr)),()=>{L&&clearTimeout(L)}},[S]);let D=i(()=>{Q(),g("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=Fl({connectedWallets:p,walletType:L.type,chain:e}),se=me?Un(me,bS):"",_e=Fn(u(),e),pt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&pt&&L.state===Rc.CONNECTED,Ve=De?mt.t({id:"Add {chain} chain",values:{chain:e}}):se,Ke=i(async()=>{L.state===Rc.DISCONNECTED?L.namespaces?J(L):I(L.type):L.namespaces&&!se?(await _(L.type),J(L)):De?(m({walletType:L.type,chain:e,address:me??""}),y(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=d?.chain?Ln(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Jo,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:E}),ue.createElement(po,{open:!!T?.open,onClose:Z,onConfirm:ne,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),ue.createElement(so,{open:!!w?.open,selectedNamespace:w?.namespace,type:w?.providerType,image:w?.providerImage,onClose:ie,onConfirm:ge}),!!d&&ue.createElement(re,{open:!!d&&f,container:Ce,onClose:()=>{m(null)}},ue.createElement(wr,{title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Pa,{size:18}),ue.createElement(Pa,{size:32}),ue.createElement(vS,{onClick:B.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},mt.t("Confirm")))),S&&ue.createElement(re,{open:!!S,onClose:C.bind(null,null),container:Ce},S==="in-progress"&&ue.createElement(wr,{type:"loading",title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(jc,null,ue.createElement(Zc,null,ue.createElement(wS,{src:L.image,size:45})),ue.createElement(Yc,null))}),S==="completed"&&ue.createElement(wr,{type:"success",title:mt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:mt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ve}})}),S==="rejected"&&ue.createElement(wr,{type:"error",title:mt.t("Request Rejected"),description:mt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Pa,{direction:"vertical",size:32})),ue.createElement(xS,{key:L.type,description:Ve,onClick:Ke,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(Yp,{selected:!1,onClick:a},ue.createElement(Jc,{variant:"label",size:"medium"},mt.t("Show more wallets"),ue.createElement(Jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(_a,"WalletList");var $S=2;function ru(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=DS(),l=h().config,p=_S(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:g,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:y}=Y(),{connectedWallets:S,selectWallets:C}=te(),[T,k]=uo(""),[w,b]=uo([]),[N,x]=uo(""),[v,E]=uo(null),[I,_]=uo(!!f),Q=navigator?.userAgent.includes("Firefox"),A=PS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=i(W=>z.includes(W),"isWalletRequiredFor"),B=BS(()=>S.filter(W=>W.selected&&A.includes(W.chain)),[S,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((W,V)=>ne(K=>K.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=w.length>0,D=i((W,V)=>!!Z.find(K=>K.walletType===W&&K.chain===V&&K.selected&&(G(V)||!G(V)&&!f)),"isSelected"),L=!!f&&I&&j&&!Xn(j,f),me=i(()=>{_(!1),y(null),ie(W=>{let V=!1;return W.map(K=>!V&&K.chain===j?.name?(V=!0,{...K,selected:!0}):K)})},"resetCustomDestination"),se=i(()=>y(""),"handleClearCustomDestination"),_e=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();y(V),p?.current?.focus()}},"handlePasteCustomDestination"),pt=i(W=>{W?G(j?.name??"")||ie(V=>V.map(K=>K.chain===j?.name?{...K,selected:!1}:K)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=i(W=>{if(T&&k(""),D(W.walletType,W.chain))return;let K=S.find(Xe=>Xe.walletType===W.walletType&&Xe.chain===W.chain);K&&(n(),W.chain===j?.name&&I&&!G(j.name)&&(_(!1),y(null)),ie(Xe=>Xe.filter(St=>St.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),Ve=i(()=>{let W=Z.filter(V=>V.selected);C(W),g(W),m(!0),o()},"onConfirmBalance"),Ke=i(async()=>{b([]),x(""),E(null);let W=await r?.({selectedWallets:Z.filter(K=>K.selected),customDestination:f}),V=W.warnings;V?.balance?.messages&&b(V.balance.messages),V?.quoteUpdate&&E(V.quoteUpdate),W.error&&x(hp(W.error)),!W.error&&!V?.balance?.messages.length?Ve():b(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>f?$.createElement(ou,{onClick:se,variant:"ghost"},$.createElement(NS,{size:12,color:"gray"})):Q?null:$.createElement(ou,{onClick:_e,variant:"ghost"},$.createElement(MS,{size:16})),"renderCustomDestinationSuffix");nu(()=>{ie(W=>{let V=[];return W.forEach(K=>{!S.some(St=>St.chain===K.chain&&St.walletType===K.walletType&&St.address===K.address)||V.push(K)}),V=V.concat(S.filter(K=>!!!V.find(St=>St.chain===K.chain)&&K.selected&&A.includes(K.chain))),V})},[S,A]),nu(()=>{let W=[];J.length>0&&(J.forEach(V=>{let K=S.find(Xe=>Xe.chain===V.blockchain&&Xe.walletType===V.walletType);K?De(K):W.push(V)}),ne(W))},[S,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!T,container:de,...!T&&{footer:$.createElement(nc,null,$.createElement(tu,{loading:a,disabled:Pp(a,I,f,c,Z,j),onClick:Ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},vt.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Zp,null,$.createElement(Jp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(AS,{size:16})),$.createElement(br,{variant:"headline",size:"small"},vt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:b.bind(null,[]),container:de},$.createElement(WS,{title:vt.t("Insufficient account balance"),type:"error",description:$.createElement(ES,{messages:w??[]})},$.createElement(tu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ve},vt.t("Proceed anyway")))),T&&$.createElement(Rp,null,$.createElement("div",{className:ec()},$.createElement(_a,{chain:T,isSelected:D,selectWallet:De,onShowMore:()=>k(T),onConnect:W=>{ge(T,W)}}))),!T&&$.createElement($.Fragment,null,N&&$.createElement($.Fragment,null,$.createElement(Da,{variant:"alarm",type:"error",title:vt.t(N)}),$.createElement(en,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Da,{variant:"alarm",type:"warning",title:ar(v)}),$.createElement(en,{size:12})),$.createElement(ic,null,A.map((W,V)=>{let K=u.find(Zt=>Zt.name===W),Xe=`wallet-${V}`,St=V===A.length-1;return $.createElement("div",{key:Xe},$.createElement(Xp,null,$.createElement(br,{variant:"title",size:"xmedium"},vt.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),$.createElement(br,{variant:"label",color:"$neutral700",size:"medium"},vt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),$.createElement(en,{size:24}),$.createElement(jp,null,$.createElement(_a,{chain:W,isSelected:D,selectWallet:De,limit:$S,onShowMore:()=>k(K?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!St&&$.createElement(en,{size:32}),St&&l?.customDestination!==!1&&$.createElement(tc,null,$.createElement(ur,{onOpenChange:pt,hasSelected:!0,open:I,triggerAnchor:"top",trigger:$.createElement(ac,null,$.createElement("div",{className:"button__content"},$.createElement(LS,{size:18,color:"info"}),$.createElement(en,{size:4,direction:"horizontal"}),$.createElement(br,{variant:"label",size:"medium",color:I?"$neutral600":void 0},vt.t("Send to a different address"))),$.createElement(pr,{orientation:I?"up":"down"},$.createElement(IS,{size:10,color:"secondary"}))),onClickTrigger:()=>_(Zt=>!Zt)},$.createElement(rc,{ref:p,style:{padding:0,paddingRight:f?"8px":"5px"},autoFocus:!0,placeholder:vt.t("Enter {blockchainName} address",{blockchainName:Ln(W,u)}),value:f||"",suffix:ve(),onChange:Zt=>{let rg=Zt.target.value;y(rg)},...!f&&{autoFocus:!0}})),L&&$.createElement("div",{className:oc()},$.createElement(Da,{variant:"alarm",type:"error",title:vt.t({values:{destination:f},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(ru,"ConfirmWalletsModal");import{i18n as oC}from"@lingui/core";import{Alert as nC,Button as rC,InfoIcon as iC}from"@rango-dev/ui";import Ye from"react";import{Alert as US,Button as QS,Divider as Oa,NoRouteIcon as zS,RefreshIcon as qS,Typography as uu}from"@rango-dev/ui";import je from"react";import{i18n as iu}from"@lingui/core";var FS=24,OS=60;function au(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:iu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:iu.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(au,"makeInfo");var $a=(o=>(o[o.small=FS]="small",o[o.large=OS]="large",o))($a||{}),Fa=(o=>(o.small="small",o.large="medium",o))(Fa||{});import{styled as Er}from"@rango-dev/ui";var su=Er("div",{display:"flex",flexDirection:"column",alignItems:"center"}),lu=Er("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),pu=Er("div",{variants:{size:{small:{width:"100%"},large:{}}}}),cu=Er("div",{padding:"$6 $0"});function tn(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=au(o,r,()=>a(s,!0),e);return je.createElement(su,null,je.createElement(zS,{size:$a[n],color:"gray"}),je.createElement(Oa,{size:4}),je.createElement(uu,{variant:"title",size:Fa[n]},oe().noResultError.title),n==="large"&&je.createElement(Oa,{size:4}),!!l.description&&je.createElement(lu,{size:n},je.createElement(uu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),je.createElement(Oa,{size:n==="large"?"24":"4"}),!!l.alert&&je.createElement(pu,{size:n},je.createElement(US,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&je.createElement(QS,{size:"xsmall",type:l.alert.type,prefix:je.createElement(cu,null,je.createElement(qS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(tn,"NoResult");import{i18n as on}from"@lingui/core";import{Button as GS,Divider as VS,MessageBox as KS,Typography as XS,WarningIcon as jS}from"@rango-dev/ui";import Wt from"react";import{Typography as gu}from"@rango-dev/ui";import Qa from"react";import{darkTheme as HS,styled as Ir}from"@rango-dev/ui";var mu=Ir("div",{width:"100%"}),Ua=Ir("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),du=Ir("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${HS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fu=Ir("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function hu(t){let{title:e,value:o,valueColor:n}=t;return Qa.createElement(du,null,Qa.createElement(gu,{size:"medium",variant:"label",className:"_title"},e),Qa.createElement(gu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(hu,"QuoteErrorsModalItem");function yu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:on.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:on.t("Gas cost"),value:M(r.totalFee,2,2)},{title:on.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:on.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Wt.createElement(re,{footer:Wt.createElement(GS,{type:"primary",size:"large",prefix:Wt.createElement(jS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Wt.createElement(KS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Wt.createElement(Ua,null,Wt.createElement(VS,{size:"4"}),Wt.createElement(XS,{size:"small",variant:"title"},on.t("Details")),Wt.createElement(Ua,null,l.map((p,u)=>Wt.createElement(hu,{key:u,...p})))))}i(yu,"HighValueLossWarningModal");import{i18n as za}from"@lingui/core";function Su(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=za.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&&(Nt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=za.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=za.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Su,"makeAlerts");import{i18n as Po}from"@lingui/core";import{Button as Cu,Divider as Tu,MessageBox as YS,Typography as ZS}from"@rango-dev/ui";import mo from"react";import{useNavigate as JS}from"react-router-dom";function ku(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=JS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(Cu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(ZS,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:P(),onClose:r},mo.createElement(YS,{type:"warning",title:s.type===3?Po.t("High slippage"):Po.t("Low slippage"),description:s.type===3?Po.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Po.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(Tu,{size:18}),mo.createElement(Tu,{size:32}),mo.createElement(Cu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Po.t("Confirm anyway"))))}i(ku,"SlippageWarningModal");import{Button as RS,MessageBox as eC,WarningIcon as tC}from"@rango-dev/ui";import Ar from"react";function vu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ar.createElement(re,{footer:Ar.createElement(RS,{type:"primary",size:"large",prefix:Ar.createElement(tC,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Ar.createElement(eC,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(vu,"UnknownPriceWarningModal");function nn(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=Su(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),Ye.createElement(Ye.Fragment,null,d&&Ye.createElement(tn,{error:o,fetch:s}),!!m&&Ye.createElement(mu,null,Ye.createElement(nC,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ye.createElement(fu,{onClick:l},Ye.createElement(iC,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ye.createElement(rC,{size:"xxsmall",type:m.alertType,onClick:c},oC.t("Change"))}})),e&&Ye.createElement(Ye.Fragment,null,e.type===0&&Ye.createElement(yu,{...g,warning:e}),(e.type===3||e.type===2)&&Ye.createElement(ku,{...g,warning:e}),e.type===1&&Ye.createElement(vu,{...g,warning:e})))}i(nn,"QuoteWarningsAndErrors");import DC from"bignumber.js";import zr from"react";import{i18n as fo}from"@lingui/core";import{Alert as wC,Divider as Do,FullExpandedQuote as xC,InfoIcon as bC,NumericTooltip as tm,QuoteTag as EC,StepDetails as IC,TokenAmount as AC,Typography as $o}from"@rango-dev/ui";import Ya from"bignumber.js";import F,{useRef as NC,useState as WC}from"react";import{styled as qa}from"@rango-dev/ui";var Ha=qa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),wu=qa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),xu=qa("div",{width:"100%",display:"flex"});import*as Nr from"@radix-ui/react-collapsible";import{Button as aC,css as rn,darkTheme as be,Image as bu,styled as Ue,Typography as sC}from"@rango-dev/ui";var lC=300,Eu=Ue(Nr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Iu=rn({padding:"$10 $15"}),Au=Ue(aC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Nu=Ue("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Wu=rn({width:"100%",padding:"$15 $15 $10 $15"}),Mu=rn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=rn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Lu=rn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Bu=Ue(Nr.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:{[`& ${bu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${bu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Pu=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),_u=Ue(lr,{width:"100%",background:"inherit"}),Ga=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${lC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),JB=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Du=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),$u=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Va=Ue(sC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Fu=Ue("div",{display:"flex",flexWrap:"wrap"}),Ka=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Ou=Ue("div",{display:"flex"}),Wr=Ue("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as wt}from"@lingui/core";import{ChevronDownIcon as cC,CloseIcon as uC,Divider as Br,IconButton as mC,NumericTooltip as dC,QuoteCost as fC,Typography as dt}from"@rango-dev/ui";import ee,{useState as qu}from"react";import{css as pC,styled as Mr}from"@rango-dev/ui";var Lr=Mr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Xa=Mr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Uu=Mr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Qu=Mr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),zu=pC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var gC=i(t=>t.fee.isZero()?null:ee.createElement(Lr,null,ee.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(dt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Hu(t){let[e,o]=qu(!1),[n,r]=qu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,g=s?.swaps??[],d=P(),m=vp(g);return ee.createElement(ee.Fragment,null,ee.createElement(fC,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?wt.t("View more info"):void 0,tooltipContainer:d}),ee.createElement(re,{container:d,open:e,header:ee.createElement(Qu,null,ee.createElement(dt,{variant:"title",size:"medium"},wt.t("Gas & Fee Explanation")),ee.createElement(mC,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(uC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement(Uu,null,ee.createElement(dt,{variant:"title",size:"small"},wt.t("Details")),ee.createElement(Br,{size:10}),Object.entries(m.payable).flatMap(([f,y])=>y.map((S,C)=>{let T=`payable-fee-${C}`,k=Xi(S);return ee.createElement(Lr,{key:T},ee.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},Hi(f,wt.t)),ee.createElement(dC,{content:S.amount,container:d},ee.createElement(dt,{variant:"label",size:"medium"},M(S.amount,2,2)," ",S.asset.symbol," ($",M(k,4,4),")")))})),ee.createElement(Lr,{className:"total_payable_fee"},ee.createElement(dt,{variant:"label",size:"medium"},wt.t("Total Payable Fee")),ee.createElement(dt,{variant:"label",size:"medium"},"$",M(l,4,4))),ee.createElement(Xa,null),Object.keys(m.nonePayable).length&&ee.createElement(ur,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:ee.createElement("div",{className:zu()},ee.createElement(dt,{size:"small",variant:"body",color:"neutral700"},n?wt.t("Hide non-payable fees"):wt.t("Show non-payable fees")),ee.createElement(Br,{size:4,direction:"horizontal"}),ee.createElement(pr,{orientation:n?"up":"down"},ee.createElement(cC,{size:12,color:"gray"}))),open:n},ee.createElement(dt,{size:"small",variant:"title"},wt.t("Description")),ee.createElement(Br,{size:4}),ee.createElement(dt,{size:"small",variant:"body",color:"neutral700"},wt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),ee.createElement(Br,{size:10}),Object.entries(m.nonePayable).map(([f,y],S)=>{let C=kp(y),T=Hi(f,wt.t),k=`non-payable-fee-${S}`;return ee.createElement(gC,{key:k,fee:C,label:T})}),ee.createElement(Xa,null)))))}i(Hu,"QuoteCostDetails");import{i18n as Ku}from"@lingui/core";import{TokenAmount as Xu}from"@rango-dev/ui";import Pr from"react";import{css as hC,styled as yC}from"@rango-dev/ui";var Gu=yC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Vu=hC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function an(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Pr.createElement(Gu,null,Pr.createElement(Xu,{direction:"horizontal",label:Ku.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Pr.createElement("div",{className:Vu()}),Pr.createElement(Xu,{direction:"horizontal",tooltipContainer:P(),label:Ku.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(an,"QuoteSummary");import{i18n as Ru}from"@lingui/core";import{ChevronDownIcon as TC,ChevronRightIcon as kC,Divider as ja,Image as vC,Tooltip as Or,Typography as Dr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as SC,useState as sn}from"react";var ju=480,Yu=768,Zu=1024,Ju=1200,CC=i(()=>{let[t,e]=sn(!1),[o,n]=sn(!1),[r,a]=sn(!1),[s,l]=sn(!1),[p,u]=sn(!1),c=i(()=>{e(window.innerWidth<=ju),n(window.innerWidth>ju&&window.innerWidth<=Yu),a(window.innerWidth>Yu&&window.innerWidth<=Zu),l(window.innerWidth>Zu&&window.innerWidth<=Ju),u(window.innerWidth>Ju)},"handleResize");return SC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),_r=CC;var $r=4,Fr=6,ln=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return O.createElement(Or,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Pu,{className:n,state:a},O.createElement(vC,{src:o,size:16})))},"ImageComponent");function em(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Op(r),{isTablet:g,isMobile:d}=_r();return O.createElement(Bu,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:_o()},O.createElement(Dr,{variant:"body",size:"xsmall"},Ru.t("Via:")),O.createElement(ja,{direction:"horizontal",size:4}),r.map((m,f)=>{let y=`item-${f}`,S=O.createElement(Ga,null,O.createElement(kC,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:y},O.createElement(ln,{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:y},u<=$r||u>$r&&f<$r-1?O.createElement(O.Fragment,null,O.createElement(ln,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):f===$r-1&&O.createElement(Or,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},S,r.map((C,T)=>{let k=`image-${T}`;return T>=f&&O.createElement(O.Fragment,{key:k},O.createElement(ln,{content:C.swapper.displayName,src:C.swapper.image,state:C.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(Ka,{state:r.find((C,T)=>T>=f&&(C.state==="error"||C.state==="warning"))?.state},O.createElement(Dr,{size:"xsmall",variant:"body"},"+",u-f))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement(Dr,{variant:"body",size:"xsmall"},Ru.t("Chains:")),O.createElement(ja,{direction:"horizontal",size:4}),c.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},c.length<=Fr||c.length>Fr&&f<Fr-1?O.createElement(Or,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(ln,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Fr-1&&O.createElement(Or,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},c.map((y,S)=>S>=f&&O.createElement(ln,{key:y.displayName,content:"",src:y.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(Ka,{className:"blockchainImage"},O.createElement(Dr,{size:"xsmall",variant:"body"},"+",c.length-f))))),O.createElement(ja,{direction:"horizontal",size:32}))),O.createElement(Ga,{orientation:a?"up":"down"},O.createElement(TC,{size:12,color:"black"}))))}i(em,"QuoteTrigger");function Za(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),y=h().swappers(),{customSlippage:S,slippage:C}=h(),T=S||C,[k,w]=WC(t.expanded),b=NC(null),N=M(o.value,6,6),x=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",E=tt(o.usdValue,n.usdValue??null),I=M(E,2,2),_=Nt(E??0),Q=i((ge,Ce)=>ge.map((D,L)=>{let me,se=r?.type===3&&r.swap.swapperId===D.swapperId,_e=r?.type===4&&r.recommendedSlippages?.has(L),pt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=pt;De?me="error":Ve&&(me="warning");let Ke=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Ke=fo.t("Bridge Limit Error")),{swapper:{displayName:qo(D.swapperId,y)??"",image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Re(D.from.blockchain,m)??"",image:D.from.blockchainLogo},price:{value:L===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:L===0?o.value:D.fromAmount,realUsdValue:new Ya(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Re(D.to.blockchain,m)||"",image:D.to.blockchainLogo},price:{value:M(D.toAmount,6,6),usdValue:M((D.to.usdPrice??0)*parseFloat(D.toAmount),4,4),realValue:D.toAmount,realUsdValue:new Ya(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ve?F.createElement(wu,{dense:g},F.createElement(wC,{variant:"alarm",type:De?"error":"warning",title:Ke,footer:F.createElement(xu,null,se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(_e||pt)&&!se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Ho(D.estimatedTimeInSeconds),fee:M(Ki(D,f),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=d||P(),G=Qp(t.quote.tags||[]),B=!!c,Z=Ho(Bn(e?.swaps)),ie=Zn(e?.swaps??[],f),J=M(ie,2,2),ne=ie.gte(new Ya(gp));return g?F.createElement(xC,{selected:l,fee:J,time:Z,tooltipContainer:zo(),steps:A,tags:G,feeWarning:ne,percentageChange:I,warningLevel:_,outputPrice:{value:x,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Nu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Wu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Ou,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(EC,{label:ge.label,value:ge.value}),F.createElement(Do,{size:4,direction:"horizontal"}))})),F.createElement(Wr,null),!B&&F.createElement(Do,{size:4})):null,F.createElement("div",{id:"portal-root",className:Mu()},F.createElement(Hu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(Au,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement($o,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Lu()},F.createElement($u,null,F.createElement(bC,{size:12,color:"gray"})),F.createElement(Fu,null,F.createElement(Va,{size:"small",variant:"body"},`${N} ${A[0].from.token.displayName} = `),F.createElement(tm,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Va,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(tm,{content:n.usdValue,container:j},F.createElement(Do,{size:2,direction:"horizontal"}),F.createElement($o,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&F.createElement(AC,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:v,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:I,warningLevel:_}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(an,{from:A[0].from,to:A[z-1].to,percentageChange:I,warningLevel:_}),F.createElement(Do,{size:4}))),F.createElement(Eu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},F.createElement(em,{type:s,quoteRef:b,selected:l,setExpanded:w,container:j,expanded:k,steps:A}),F.createElement(_u,{open:k},F.createElement(Du,null),F.createElement("div",{className:Iu()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(IC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Za,"Quote");import{Divider as PC,Skeleton as _C}from"@rango-dev/ui";import Lt from"react";import{darkTheme as MC,styled as Ur}from"@rango-dev/ui";var om=Ur("div",{$$color:"$colors$neutral100",[`.${MC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),nm=Ur("div",{paddingTop:"$2"}),rm=Ur("div",{paddingLeft:"$8"}),im=Ur("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as gm,Divider as ft,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as LC,styled as Mt}from"@rango-dev/ui";var Ja=Mt("div",{display:"flex"}),am=Mt("div",{padding:"$10 $0 $20"}),sm=Mt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),lm=Mt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),pm=Mt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),cm=Mt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),um=Mt("div",{width:"65%",display:"flex",justifyContent:"start"}),mm=Mt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),dm=Mt("div",{padding:"$15 $0 $15 $0"}),fm=LC({display:"flex",justifyContent:"space-between",alignItems:"center"});function pn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(pm,null,H.createElement(um,null,H.createElement(gm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ft,{size:8,direction:"horizontal"}),H.createElement(mm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(ft,{size:4}),H.createElement(Ze,{height:15,variant:"rounded"}))),H.createElement(Ze,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Ja,null,H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Wr,null),!r&&H.createElement(ft,{size:4})),H.createElement("div",{className:fm()},H.createElement(Ja,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ze,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(am,null,H.createElement(Ze,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(sm,null,H.createElement(lm,null,H.createElement(gm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ft,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(ft,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(ft,{size:4}),H.createElement(dm,null,n,H.createElement(cm,null),n),H.createElement(ft,{size:12})))}i(pn,"QuoteSummarySkeleton");import{ChainToken as Tm,Divider as es,NextIcon as BC,Skeleton as Qr}from"@rango-dev/ui";import Ee from"react";import{styled as cn}from"@rango-dev/ui";var hm=cn("div",{display:"flex",alignItems:"start"}),ym=cn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ra=cn("div",{display:"flex",alignItems:"center",flexGrow:1}),Sm=cn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Cm=cn("div",{display:"flex",alignItems:"center"});function xt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(Cm,null,Ee.createElement(Qr,{height:22,width:22,variant:"circular"}),Ee.createElement(es,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:15,width:148,variant:"rounded"})),Ee.createElement(hm,null,Ee.createElement(im,{hideSeparator:!e}),Ee.createElement(ym,{extraSpace:e},Ee.createElement(Ra,null,Ee.createElement(Tm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(es,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:12,variant:"rounded"})),Ee.createElement(Sm,null,Ee.createElement(BC,{color:"gray",size:16})),Ee.createElement(Ra,null,Ee.createElement(Tm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(es,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:12,variant:"rounded"})))))}i(xt,"StepSkeleton");function un(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Lt.createElement(om,{expanded:o,rounded:e!=="basic"},Lt.createElement(pn,{type:e,tagHidden:n}),Lt.createElement(nm,null,Lt.createElement(_C,{height:15,variant:"rounded"})),o&&Lt.createElement(rm,null,Lt.createElement(PC,{size:24}),Lt.createElement(xt,null),Lt.createElement(xt,null),Lt.createElement(xt,{separator:!1})))}i(un,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:y,toToken:S}=Y(),C=e?.outputAmount?new DC(e?.outputAmount):null,T=e?.outputAmount?Rn(e?.outputAmount,tr(e)||S?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?zr.createElement(Ha,null,zr.createElement(un,{tagHidden:l,type:o,expanded:s})):w?zr.createElement(Ha,{onClick:()=>p?.(e)},zr.createElement(Za,{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:y?.toString()??""},output:{value:C?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as UC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as QC}from"react";import{useRef as $C,useState as FC}from"react";var OC=2e3;function qr({request:t}){let[e,o]=FC(!1),n=$C(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,OC)),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(qr,"useFetch");function km(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(km,"useFetchConfirmQuote");function Hr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ts(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Hr,"throwErrorIfResponseIsNotValid");function ts(t){if(Sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=wp(t);if(o){let n=Jn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ts,"getQuoteError");function vm(t,e,o){let n=!1;t&&(n=Fp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=xo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Np(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(wo(e)),percentageChange:M(tt(wo(t)??"",wo(e)??""),null,2)}:ji(t,e)?r.quoteUpdate={type:0}:Yi(t,e)?r.quoteUpdate={type:1}:Zi(t,e)&&(r.quoteUpdate={type:2}));let s=Wp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(vm,"generateWarnings");function Gr(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(Gr,"handleQuoteErrors");function os(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:y,cancelFetch:S,loading:C}=km();return QC(()=>S,[]),{loading:C,fetch:i(async k=>{let w=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=w.reduce((v,E)=>(v[E.chain]=E.address,v),{}),x={requestId:r?.requestId||"",selectedWallets:N,destination:b||void 0};try{return await y(x,!0).then(v=>{let{result:E}=v;Hr({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let I={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(I);let _={slippage:f.toString(),disabledSwappersGroups:c},Q=vm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:w,userSlippage:f});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=UC(o.toString(),E,Ip(w),_,!A,{blockchains:g,tokens:d});return{quote:I,swap:z,error:null,warnings:Q}})}catch(v){return Gr(v)}},"fetch"),cancelFetch:S}}i(os,"useConfirmSwap");var YC=HC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${xm}`]:{width:"$48",height:"$48"}}),ZC=is({flexGrow:1,paddingRight:"$10"}),JC=is({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),RC=is({display:"flex",justifyContent:"space-between",alignItems:"center"});function bm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=jC(),[l,p]=mn(""),u=!n,[c,g]=mn(!1),[d,m]=mn(!1),{isActiveTab:f}=ae(),y=h().getDisabledLiquiditySources(),S=XC(y),{manager:C}=zC(),{fetch:T,loading:k,cancelFetch:w}=os(),[b,N]=mn({swap:null,error:null,warnings:null}),[x,v]=mn(!1),E=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await T?.({selectedWallets:B,customDestination:Z});return N(ie),ie},"onConfirmSwap"),I=i(async()=>{if(b.swap&&n)try{await C?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let B=`../${q.swaps}/${b.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),_=i(async()=>{m(!0),await I(),m(!1)},"onConfirm"),Q=i(async()=>{b?.warnings?.quote&&!a?v(!0):await _()},"onStartConfirmSwap"),A=i(async()=>{N({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(B=>{N(B)}).catch(B=>console.error(B))},"onRefresh");Vr(()=>{!!S.current.length&&!y.length&&A(),S.current=y},[y.length]),Vr(()=>{u&&w()},[u]),Vr(()=>{u&&g(u)},[u]),Vr(()=>{u||T({selectedWallets:o,customDestination:r}).then(B=>N(B)).catch(B=>console.error(B))},[]),KC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=b.warnings?.quote??null,j=b.error,G=[];if(l&&G.push(Ie.createElement(wm,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&G.push(Ie.createElement(wm,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&ar(b.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(nn,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!f,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await I()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:ns.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(YC,null,Ie.createElement("div",{className:ZC()},Ie.createElement(qC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!b.error||!f,onClick:Q},ns.t("Start Swap"))),Ie.createElement(xm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!f,onClick:g.bind(null,!0)},Ie.createElement(VC,{size:24})))},c&&Ie.createElement(ru,{open:c,onClose:()=>g(!1),onCancel:w,loading:k,onCheckBalance:E}),Ie.createElement(fe,null,Ie.createElement("div",{className:RC()},Ie.createElement(GC,{variant:"title",size:"small"},ns.t("You get")),Ie.createElement("div",{className:JC()},Ie.createElement(hr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(rs,{size:"12"}),pc(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(rs,{size:10})),G.length>0?Ie.createElement(rs,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(bm,"ConfirmSwapPage");import{i18n as Xr}from"@lingui/core";import{useManager as gT}from"@rango-dev/queue-manager-react";import{Divider as Dm,NotFound as hT,styled as yT}from"@rango-dev/ui";import Pt,{useState as ST}from"react";import{useNavigate as CT}from"react-router-dom";import{i18n as oT}from"@lingui/core";import{Divider as Wm,GroupedVirtualizedList as nT,Skeleton as rT,SwapListItem as Mm,Typography as iT}from"@rango-dev/ui";import Qe,{useCallback as Lm,useEffect as aT,useRef as sT,useState as lT}from"react";function Em(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(Em,"calculateGroupsSoFar");import{css as eT,darkTheme as tT,styled as dn}from"@rango-dev/ui";var as=eT(),Im=dn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ss=dn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${as}`]:{$$color:"$colors$neutral600",[`.${tT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ls=dn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Am=dn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Nm=dn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var pT=10;function ps(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lT([]),l=sT(0),{swaps:p,groupCounts:u,groups:c}=n(e),g=Lm(Em,[]),d=Lm(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,pT),s(g(u,l.current)))},[e.length]);if(aT(()=>{r||d()},[r,d]),r){let m=[1,2];return Qe.createElement(Qe.Fragment,null,[m,m].map((y,S)=>Qe.createElement(ss,{key:S},Qe.createElement(ls,null,Qe.createElement(rT,{variant:"text",width:60,size:"small"}),Qe.createElement(Wm,{size:16})),Qe.createElement(Wm,{size:4}),Qe.createElement(Am,null,y.map((T,k)=>Qe.createElement(Mm,{isLoading:!0,key:k}))))))}return Qe.createElement(nT,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>Qe.createElement(ss,null,Qe.createElement(ls,null,Qe.createElement(iT,{variant:"label",size:"medium",className:as()},c[m]))),itemContent:(m,f)=>{let y=p[m];if(!y)return null;let S=y.steps[0],C=y.steps[y.steps.length-1];return Qe.createElement(Im,{key:y.requestId},Qe.createElement(Mm,{requestId:y.requestId,creationTime:y.creationTime,status:y.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[f]===oT.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(y.inputAmount,6,6),realAmount:y.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(ps,"HistoryGroupedList");import{CloseIcon as uT,IconButton as mT,SearchIcon as dT,TextField as fT}from"@rango-dev/ui";import fn from"react";import{styled as cT}from"@rango-dev/ui";var Bm=cT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Bt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return fn.createElement(fT,{prefix:fn.createElement(Bm,null,fn.createElement(dT,{color:"black"})),suffix:!!s.length&&fn.createElement(mT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},fn.createElement(uT,{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(Bt,"SearchInput");import{i18n as Kr}from"@lingui/core";import Pm from"dayjs";var _m=i(t=>{let e=new Map([["today",{title:Kr.t("Today"),swaps:[]}],["week",{title:Kr.t("This week"),swaps:[]}],["month",{title:Kr.t("This month"),swaps:[]}],["year",{title:Kr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Pm();t.forEach(p=>{let u=Number(p.creationTime),c=Pm(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 TT=yT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),kT=i((t,e)=>t?.length?t.filter(o=>Ct(o.fromBlockchain,e)||Ct(o.toBlockchain,e)||Ct(o.toSymbol,e)||Ct(o.fromSymbol,e)).length:!1,"isStepContainsText");function $m(){let t=CT(),{manager:e,state:o}=gT(),n=rt(e).map(({swap:c})=>c),[r,a]=ST(""),s=!o.loadedFromPersistor,l=i(c=>{let g=c.target.value;a(g)},"searchHandler"),p=n;r&&(p=n.filter(c=>Ct(c.inputAmount,r)||Ct(c.status,r)||kT(c.steps,r)||Ct(c.requestId,r)));let u=!p?.length&&!s;return Pt.createElement(ce,{header:{title:Xr.t("History")}},Pt.createElement(fe,null,Pt.createElement(Bt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Pt.createElement(Dm,{size:"16"}),Pt.createElement(TT,null,u&&Pt.createElement(Nm,null,Pt.createElement(Dm,{size:32}),Pt.createElement(hT,{title:Xr.t("No results found"),description:r?Xr.t("Try using different keywords"):""})),!u&&Pt.createElement(ps,{list:p,onSwapClick:t,groupBy:_m,isLoading:s}))))}i($m,"HistoryPage");import{i18n as UT}from"@lingui/core";import{Button as QT,Divider as td,styled as zT,WarningIcon as qT}from"@rango-dev/ui";import HT from"bignumber.js";import He,{useEffect as od,useState as nd}from"react";import{useNavigate as GT}from"react-router-dom";import{i18n as IT}from"@lingui/core";import{Header as AT}from"@rango-dev/ui";import Vt,{useEffect as NT,useState as WT}from"react";import{i18n as wT}from"@lingui/core";import{Divider as us,FullExpandedQuote as xT,Typography as bT}from"@rango-dev/ui";import ye from"react";import{styled as cs}from"@rango-dev/ui";var Fm=cs("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Om=cs("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Um=cs("div",{width:"146px"});import{i18n as gn}from"@lingui/core";import{Select as vT}from"@rango-dev/ui";import Qm from"react";function jr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:gn.t("Smart Routing")},{value:"FEE",label:gn.t("Lowest Fee")},{value:"SPEED",label:gn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:gn.t("Maximum Return")},{value:"PRICE",label:gn.t("Maximum Output")}];return Qm.createElement(Um,null,Qm.createElement(vT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(jr,"SelectStrategy");var zm=3;function hn(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}=Y(),{slippage:y,customSlippage:S}=h(),{findToken:C}=h(),T=l||P(),k=!!u&&u.results.length,w=S??y,b=i(v=>{if(!g||!d||!u)return null;let E={requestAmount:u.requestAmount,...v};return xo(E,{fromToken:g,toToken:d,userSlippage:w,findToken:C})},"getQuoteWarning"),N=f?.type===0||f?.type===1,x=u?.results?nr(m,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Om,null,ye.createElement(bT,{size:"xmedium",variant:"title"},wT.t("Sort by")),ye.createElement(jr,{container:T})),ye.createElement(us,{size:"10"})),e&&Array.from({length:zm},(v,E)=>ye.createElement(ye.Fragment,{key:E},s?ye.createElement(xT,{loading:!0}):ye.createElement(un,{tagHidden:!1,type:"list-item",expanded:!1}),E!==zm-1&&ye.createElement(us,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((v,E)=>{let I=b(v),_=ts(v.swaps),Q=x.length-1===E;return ye.createElement(ye.Fragment,{key:v.requestId},ye.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:_?.options||null,warning:I,fullExpandedMode:s,onClick:A=>{_||c("warning",I),c("error",_?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(us,{size:16}))}):N&&ye.createElement(Fm,null,ye.createElement(tn,{size:s?"large":"small",error:f,fetch:n}))))}i(hn,"Quotes");import{darkTheme as ET,styled as qm}from"@rango-dev/ui";var Hm=qm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${ET} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Gm=qm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var MT=100;function ms(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=WT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",g=zo();return NT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},MT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Vt.createElement(Hm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Cr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(AT,{title:IT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(jr,{container:g}),Vt.createElement(ao,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(Gm,null,Vt.createElement(hn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:zo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ms,"ExpandedQuotes");import{i18n as Jm}from"@lingui/core";import{SwapInput as Rm}from"@rango-dev/ui";import yn from"react";import{ReverseIcon as PT}from"@rango-dev/ui";import fs from"react";import{keyframes as LT,styled as Vm}from"@rango-dev/ui";var ds=450,BT=LT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Km=Vm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Xm=Vm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${BT} ${ds}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 gs(){let t=Y.use.switchFromAndTo();return fs.createElement(Km,null,fs.createElement(Xm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ds),t()}},fs.createElement(PT,{size:12})))}i(gs,"SwitchFromAndToButton");import{styled as jm}from"@rango-dev/ui";var Ym=jm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Zm=jm("div",{position:"relative"});function hs(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}=Y(),{connectedWallets:y,getBalanceFor:S}=te(),C=a?S(a):null,T=On(C)?.amount??"0",k=s&&a?M(C?.amount,C?.decimals):"0",w=!!s&&Ol(y,s.name),b=!Vi(f,c,g),N=!Vi(f,c,m),x=!g||!m||!m.gt(0)?null:tt(g.toString(),m.toString());return yn.createElement(Ym,null,yn.createElement(Zm,null,yn.createElement(Rm,{label:Jm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:b?void 0:M(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),yn.createElement(gs,null)),yn.createElement(Rm,{sharpBottomStyle:!r&&(!!f||e),label:Jm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(tt(g,m),2,2),warningLevel:Nt(x??0),price:{value:M(d,6,6),usdValue:N?void 0:M(m,4,4),realValue:d?.toString(),realUsdValue:N?void 0:m?.toString(),error:N?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(hs,"Inputs");import{useCallback as _T,useEffect as DT,useRef as $T,useState as FT}from"react";function ed(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ed,"useFetchAllQuotes");var OT=600;function Yr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ed(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:y,setSelectedQuote:S,updateQuotePartialState:C}=Y(),{slippage:T,customSlippage:k,affiliatePercent:w,affiliateRef:b,affiliateWallets:N,fetchStatus:x}=h(),v=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),I=h().excludeLiquiditySources(),{findToken:_}=h(),[Q,A]=FT(!0),z=$T(u),j=k??T,B=!l||!p||Rt(l,p)||!Go(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve}=ne;if(Q||Z(!0),!B&&ge&&Ce){m();let Ke=Ep({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve,enableCentralizedSwappers:a});Jl("experimentalRoute",r)&&(Ke.experimental=!0),e(Ke).then(ve=>{let de=nr(d,ve.results),W=Up(g,de,ve.requestAmount);A(!1),C("quotes",ve),S(W),Hr({diagnosisMessages:ve.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&xo(W,{fromToken:ge,toToken:Ce,userSlippage:j,findToken:_});C("warning",V)}).catch(ve=>{let{error:de}=Gr(ve);(de?.type===0||de?.type===1)&&m(),de?.type!==2&&(C("error",de),A(!1))})}},"fetch"),J=_T(bl(ne=>{ie(ne)},OT),[B]);return DT(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(g||f||y)&&m();return}if(!Go(u)||c?.eq(0)){Z(!1),o();return}m(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:j,affiliateRef:b,affiliatePercent:w,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,v?.length,n,E.length,j,b,w,JSON.stringify(N)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:j,affiliateRef:b,affiliatePercent:w,affiliateWallets:N}),loading:Q}}i(Yr,"useSwapInput");var VT=zT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),KT=300;function rd(){let t=GT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=Y(),[m,f]=nd(!1),{isLargeScreen:y,isExtraLargeScreen:S}=_r(),{fetch:C,loading:T}=Yr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:b}=te(),{isActiveTab:N}=ae(),[x,v]=nd(!1),I=Tp({fetchMetaStatus:w,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),_=Vl(y,S,k?.variant),Q=!!n&&!!e&&!!o&&new HT(n).gt(0)&&!_p(e,o),A=Q&&w==="success"&&T,G=(!_||_&&p?.results.length)&&(l||s);od(()=>{c(),d("refetchQuote",!0)},[]),od(()=>{f(Q)},[Q]);let B=(r||s)&&!x?C:void 0,Z=i(J=>{_&&m?(f(!1),setTimeout(()=>{t(J)},KT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(v(!1),u(J))},"onClickOnQuote");return He.createElement(VT,null,He.createElement(ce,{height:"auto",footer:He.createElement(QT,{type:"primary",size:"large",disabled:I.disabled||!N,prefix:I.action==="confirm-warning"&&He.createElement(qT,null),fullWidth:!0,onClick:()=>{I.action==="connect-wallet"?Z(q.wallets):I.action==="confirm-warning"?v(!0):Z(q.confirmSwap)}},I.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||UT.t("Swap"),suffix:He.createElement(ao,{hidden:_?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},He.createElement(fe,null,He.createElement(hs,{fetchingQuote:A,fetchMetaStatus:w,isExpandable:_,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(td,{size:"2"}),_?null:He.createElement(go,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),Z(q.routes)}:void 0}),G?He.createElement(He.Fragment,null,He.createElement(td,{size:"10"}),He.createElement(nn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:C,showWarningModal:x,confirmationDisabled:!N,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),g(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),_?He.createElement(ms,{loading:A,onClickOnQuote:ie,fetch:C,onClickRefresh:B,isVisible:m}):null)}i(rd,"Home");import{i18n as id}from"@lingui/core";import{Alert as XT,Divider as jT,List as YT,ListItemButton as ZT,Radio as JT,RadioRoot as RT,Typography as ek}from"@rango-dev/ui";import bt from"react";function Kt(){let{setLanguage:t,language:e,config:o}=h(),n=ep,r=o?.language||vo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||vo),resetLanguage:()=>t(null)}}i(Kt,"useLanguage");function ad(){let{activeLanguage:t,changeLanguage:e,languages:o}=Kt(),n=nt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:bt.createElement(ek,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:bt.createElement(JT,{value:s}),start:bt.createElement(p,null)}});return bt.createElement(ce,{header:{title:id.t("Language")}},bt.createElement(fe,null,bt.createElement(XT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),bt.createElement(jT,{size:"8"}),bt.createElement(RT,{value:t},bt.createElement(YT,{type:bt.createElement(ZT,{title:id.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(ad,"LanguagePage");import{i18n as _t}from"@lingui/core";import{Button as ik,Checkbox as ak,Image as sk,ListItemButton as lk,NotFound as pk,Typography as ck}from"@rango-dev/ui";import ze,{useState as uk}from"react";import{Checkbox as nk,Skeleton as ld}from"@rango-dev/ui";import Cn from"react";import{styled as ys}from"@rango-dev/ui";var Sn=ys("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ss=ys("div",{width:80,display:"flex",justifyContent:"flex-end"}),Cs=ys("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as tk,styled as ok}from"@rango-dev/ui";var sd=ok(tk,{height:61});var rk=30;function Ts(){return Cn.createElement(Sn,null,Array.from(Array(rk),(t,e)=>Cn.createElement(sd,{hasDivider:!0,key:e,start:Cn.createElement(ld,{variant:"circular",width:35,height:35}),title:Cn.createElement(ld,{variant:"text",size:"large",width:90}),end:Cn.createElement(nk,{checked:!1})})))}i(Ts,"LoadingLiquiditySourceList");function ks({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=uk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Hn(o,n),u={Exchanges:_t.t("Exchanges"),Bridges:_t.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(C=>c.includes(C.type)),d=g.length===g.filter(C=>C.selected).length,m=i(()=>{g.forEach(C=>{d?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),f=g.map(C=>{let{selected:T,groupTitle:k,logo:w}=C;return{start:ze.createElement(sk,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(ak,{checked:T,disabled:l}),title:ze.createElement(ck,{variant:"title",size:"xmedium"},_t.t(k)),...C}}),y=i(C=>{let T=C.target.value;a(T)},"searchHandler"),S=f;return r&&(S=f.filter(C=>Ct(C.groupTitle,r))),ze.createElement(ce,{header:{title:_t.t(t),suffix:ze.createElement(Ss,null,ze.createElement(ik,{variant:"ghost",size:"xsmall",onClick:m},d?_t.t("Deselect all"):_t.t("Select all")))}},ze.createElement(fe,{view:!0},ze.createElement(Bt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:_t.t("Search {sourceType}",{sourceType:u[t]}),onChange:y}),e==="loading"&&ze.createElement(Ts,null),!S.length&&r?ze.createElement(Cs,null,ze.createElement(pk,{title:_t.t("No results found"),description:_t.t("Try using different keywords")})):e==="success"&&ze.createElement(Sn,{disabled:l},S.map(C=>{let{groupTitle:T,...k}=C;return ze.createElement(ze.Fragment,{key:C.id},ze.createElement(lk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ks,"LiquiditySourcePage");import{i18n as mk}from"@lingui/core";import Zr from"react";import{useNavigate as dk}from"react-router-dom";function pd(){let t=dk(),e=nt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=Yr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,g=`../${q.wallets}`;return Zr.createElement(ce,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:mk.t("Routes"),suffix:Zr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Zr.createElement(fe,null,Zr.createElement(hn,{fetch:l,loading:p,onClickOnQuote:u})))}i(pd,"RoutesPage");import{i18n as yd}from"@lingui/core";import{Divider as Sd,getCategoriesCount as vk,SelectableCategoryList as wk}from"@rango-dev/ui";import Dt,{useState as Cd}from"react";import{i18n as vs}from"@lingui/core";import{Divider as gd,Image as yk,ListItemButton as Sk,NotFound as Ck,Typography as hd}from"@rango-dev/ui";import at,{useEffect as Tk,useState as kk}from"react";var cd=i((t,e,o)=>t.filter(n=>Wn(n.type,o)).filter(n=>It(n.name,e)||It(n.displayName,e)),"filterBlockchains");import{ImageContainer as fk,styled as ud}from"@rango-dev/ui";var md=ud("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Jr=ud(Zo,{padding:0,margin:0,listStyle:"none",[`& ${fk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as gk,Skeleton as dd}from"@rango-dev/ui";import Rr from"react";var hk=20;function fd(){return Rr.createElement(Jr,null,Array.from(Array(hk),t=>Rr.createElement(gk,{key:t,hasDivider:!0,start:Rr.createElement(dd,{variant:"circular",width:35,height:35}),title:Rr.createElement(dd,{variant:"text",size:"large",width:90})})))}i(fd,"LoadingBlockchainList");function ws(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=kk(e),{fetchStatus:l}=h();Tk(()=>{s([...cd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?at.createElement(at.Fragment,null,at.createElement(gd,{size:32}),at.createElement(Ck,{title:vs.t("No results found"),description:vs.t("Try using different keywords")})):at.createElement(Jr,{as:"ul",key:`${r}-${o}`},a.map(u=>at.createElement(Sk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:at.createElement(yk,{src:u.logo,size:30}),title:at.createElement(hd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return at.createElement(md,null,at.createElement(hd,{variant:"label",size:"large"},vs.t("Select Blockchain")),at.createElement(gd,{size:4}),l==="loading"&&at.createElement(fd,null),l==="success"&&p())}i(ws,"BlockchainList");function xs(t){let{type:e}=t,o=nt(),[n,r]=Cd(""),[a,s]=Cd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=vk(c)!==1;return Dt.createElement(ce,{header:{title:yd.t("Select Blockchain")}},Dt.createElement(fe,{view:!0},d&&Dt.createElement(Dt.Fragment,null,Dt.createElement(wk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Dt.createElement(Sd,{size:24})),Dt.createElement(Bt,{value:n,autoFocus:!0,placeholder:yd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Dt.createElement(Sd,{size:16}),Dt.createElement(ws,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(xs,"SelectBlockchainPage");import{i18n as ri}from"@lingui/core";import{Divider as Ud}from"@rango-dev/ui";import ho,{useState as Uk}from"react";import{useNavigate as Qk}from"react-router-dom";import{i18n as Is}from"@lingui/core";import{BlockchainsChip as ei,Divider as wd,Image as xd,Skeleton as Ak,Tooltip as Nk,Typography as As}from"@rango-dev/ui";import Le from"react";import{useEffect as Ek}from"react";var Td=["ETH","COSMOS","OSMOSIS"];function bs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(xk),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(bs,"prepare");function xk(t,e){let o=Td,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(xk,"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 kd(t,e){return!!e.list.find(o=>o.name===t)}i(kd,"isInVisibleList");function Es(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Ek(()=>{if(e?.selected){let a=bs(t,o,e);kd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=bs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Es,"usePrepareBlockchainList");import{styled as Ik}from"@rango-dev/ui";var vd=Ik("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Wk=12;function Ns(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Es(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,g=s.more.length===1,d=!g&&c;return Le.createElement(Le.Fragment,null,Le.createElement(wd,{size:12}),Le.createElement(As,{variant:"label",size:"large"},Is.t("Select Blockchain")),Le.createElement(wd,{size:12}),Le.createElement(vd,null,l==="loading"&&Array.from(Array(Wk),m=>Le.createElement(Ak,{key:m,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(ei,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(As,{variant:"body",size:"xsmall",color:"secondary500"},Is.t("All"))),s.list.map(m=>Le.createElement(Nk,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:P()},Le.createElement(ei,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},Le.createElement(xd,{src:m.logo,size:30})))),g?Le.createElement(ei,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(xd,{src:s.more[0].logo,size:30})):null,d?Le.createElement(ei,{onClick:a,key:"more-blockchains"},Le.createElement(As,{variant:"body",size:"xsmall",color:"secondary500"},Is._("More +{count}",{count:s.more.length}))):null)))}i(Ns,"BlockchainsSection");import{i18n as Os}from"@lingui/core";import{darkTheme as _d,Divider as Oo,ExternalLinkIcon as Bk,Image as Pk,ListItemButton as _k,NotFound as Dk,PinIcon as $k,Skeleton as Dd,Typography as ni,VirtualizedList as Fk}from"@rango-dev/ui";import X,{useEffect as $d,useState as Fd}from"react";import{Divider as Bd,ListItem as Lk,Skeleton as Tn}from"@rango-dev/ui";import gt from"react";import{css as Fo,darkTheme as bd,ImageContainer as Mk,styled as st,Typography as Ed}from"@rango-dev/ui";var Ws=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ms=Fo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ls=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Bs=Fo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${bd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ps=Fo({}),_s=Fo(),Id=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ds=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ti=st("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ms}`]:{[`& .${Bs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ps}`]:{bottom:"-15px"},[`& .${Ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ls}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),$s=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Fs=st(Ed,{}),Ad=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${_s}`]:{$$color:"$colors$neutral600",[`.${bd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),oi=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),DU=st("div",{display:"flex",alignItems:"center"}),Nd=st("div",{position:"relative",[`& ${Mk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Wd=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Md=st(Ed,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Ld=st("a",{"& svg:hover":{color:"$colors$info"}});function Pd(t){return gt.createElement(ti,null,Array.from(Array(t.size),e=>gt.createElement(Lk,{key:e,hasDivider:!0,start:gt.createElement(Tn,{variant:"circular",width:35,height:35}),end:gt.createElement(oi,null,gt.createElement(Tn,{variant:"text",size:"large",width:70}),gt.createElement(Bd,{size:4}),gt.createElement(Tn,{variant:"text",size:"medium",width:50})),title:gt.createElement("div",null,gt.createElement(Tn,{variant:"text",size:"large",width:90}),gt.createElement(Bd,{size:4}),gt.createElement(Tn,{variant:"text",size:"medium",width:90}))})))}i(Pd,"LoadingTokenList");var Us=20,Ok=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:Ms()},o?X.createElement("div",{className:Ws()},o):X.createElement(Ds,{className:Ls()},X.createElement(ni,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Oo,{direction:"horizontal",size:4}),X.createElement($s,{css:a},X.createElement(Fs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Bs()} ${!o&&Ps()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Oo,{size:4,direction:"horizontal"}),X.createElement(Ld,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(Bk,{size:12}))))},"renderDesc");function Od(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Fd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Fd(!0),{getBalanceFor:g,loading:d}=te(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Us))},"loadNextPage");$d(()=>{c(e.length>a.length)},[a.length]),$d(()=>{s(e.slice(0,Us))},[e.length,r]);let y=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Oo,{size:32}),X.createElement(Dk,{title:Os.t("No results found"),description:Os.t("Try using different keywords")})):X.createElement(Fk,{endReached:u?f:void 0,itemContent:S=>{let C=a[S],T=On(g(C)),k=C.address||"",w=p.find(v=>v.name===C.blockchain),b=sa(w.color,"main"),N={$$color:b.main150,[`.${_d} &`]:{$$color:b.main750},backgroundColor:"$$color"},x={$$color:b.main750,[`.${_d} &`]:{$$color:b.main150},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(_k,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${C.symbol}${C.address}`,id:`${C.symbol}${C.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:X.createElement(Nd,null,X.createElement(Pk,{src:C.image,size:30}),m(C,t.type)&&X.createElement(Wd,null,X.createElement($k,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||C.name||!C.name&&!k?X.createElement(Ds,null,X.createElement(ni,{variant:"title",size:"xmedium"},C.symbol),X.createElement(Oo,{direction:"horizontal",size:4}),X.createElement($s,{css:N},X.createElement(Fs,{variant:"body",size:"xsmall",css:x},C.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?Ok({address:k,token:a[S],customCssForTag:N,customCssForTagTitle:x,name:C.name,url:w.info.addressUrl.split("{wallet}").join(k)}):C.name||void 0,end:d?X.createElement(oi,null,X.createElement(Dd,{variant:"text",size:"large",width:70}),X.createElement(Oo,{size:4}),X.createElement(Dd,{variant:"text",size:"medium",width:50})):T&&X.createElement(Ad,null,X.createElement(Md,{variant:"title",size:"small"},T.amount),X.createElement("div",null),T.usdValue&&X.createElement(ni,{variant:"body",className:_s(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(Id,null,X.createElement(ni,{variant:"label",size:"large"},Os.t("Select Token")),X.createElement(Oo,{size:4}),l==="loading"&&X.createElement(Pd,{size:Us}),l==="success"&&X.createElement(ti,{as:"ul"},y()))}i(Od,"TokenList");function Qs(t){let{type:e}=t,o=Qk(),n=nt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[g,d]=Uk(""),f=(e==="source"?r:a)?.name??"",y=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:c}),C=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),T=i(w=>{e==="source"?s({token:w,meta:{blockchains:y,tokens:S}}):l({token:w,meta:{blockchains:y,tokens:S}})},"updateToken"),k={source:ri.t("Source"),destination:ri.t("Destination")};return ho.createElement(ce,{header:{title:ri.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(Ns,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:w=>{C(w)}}),ho.createElement(Ud,{size:24}),ho.createElement(Bt,{value:g,autoFocus:!0,placeholder:ri.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:w=>d(w.target.value)}),ho.createElement(Ud,{size:16}),ho.createElement(Od,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:w=>{T(w);let b=y.find(N=>w.blockchain===N.name);b&&C(b),n()}})))}i(Qs,"SelectSwapItemsPage");import{i18n as Gs}from"@lingui/core";import{Alert as mv,Button as dv,styled as fv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as gv,useSearchParams as hv}from"react-router-dom";import{i18n as Vd}from"@lingui/core";import{Divider as Gk,InfoIcon as Vk,TextField as Kk,Tooltip as Xk,Typography as Kd}from"@rango-dev/ui";import ht from"react";import{Chip as zk,styled as kn,TextField as qk}from"@rango-dev/ui";var Qd=kn("div",{paddingTop:"$5",padding:"$10 $5"}),zd=kn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${qk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),qd=kn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ii=kn("div",{maxWidth:"280px",padding:"$10"}),Hd=kn(zk,{width:"61px",flexShrink:0});import{i18n as zs}from"@lingui/core";import{Typography as Hk}from"@rango-dev/ui";import vn from"react";function Gd(){return vn.createElement(ii,null,vn.createElement(Hk,{variant:"label",size:"medium",color:"neutral700"},zs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),vn.createElement("br",null),vn.createElement("br",null),vn.createElement("b",null,zs.t("Warning")),":",zs.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(Gd,"SlippageTooltipContent");function qs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ht.createElement(Qd,null,ht.createElement(qd,null,ht.createElement(Kd,{variant:"title",size:"xmedium"},Vd.t("Slippage tolerance per swap")),ht.createElement(Gk,{direction:"horizontal",size:4}),ht.createElement(Xk,{container:P(),side:"top",sideOffset:4,content:ht.createElement(Gd,null)},ht.createElement(Vk,{color:"gray"}))),ht.createElement(zd,null,tp.map((r,a)=>{let s=`slippage-${a}`;return ht.createElement(Hd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ht.createElement(Kk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=ip&&s<=rp?n(s):n(null)},suffix:o&&ht.createElement(Kd,{variant:"body",size:"small"},"%"),placeholder:Vd.t("Custom")})))}i(qs,"Slippage");import{i18n as Et}from"@lingui/core";import{AutoThemeIcon as Xd,BridgesIcon as jk,ChevronRightIcon as Hs,DarkModeIcon as jd,Divider as ai,ExchangeIcon as Yk,InfinityIcon as Zk,InfoIcon as Jk,LanguageIcon as Rk,LightModeIcon as Yd,List as ev,ListItem as tv,ListItemButton as ov,Skeleton as nv,styled as rv,Switch as iv,Tabs as av,Tooltip as sv,Typography as lt}from"@rango-dev/ui";import U from"react";import{useNavigate as lv}from"react-router-dom";var pv=rv("div",{width:"202px",height:"$40"}),cv=[{id:"light",icon:U.createElement(Yd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Light"))},{id:"dark",icon:U.createElement(jd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Dark"))},{id:"auto",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Auto"))}],uv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Xd,{...e});case"dark":return U.createElement(jd,{...e});default:return U.createElement(Yd,{...e})}},"getThemeIcon");function Zd(){let t=lv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Kt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),g=et("theme",c),d=et("liquiditySource",c),m=et("language",c),f=h().infiniteApprove,y=h().toggleInfiniteApprove,S=Hn(p,u),C=S.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),T=C.length,k=C.filter(z=>z.selected).length,w=S.filter(z=>z.type==="DEX"),b=w.length,N=w.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(nv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(lt,{variant:"body",size:"medium",color:"$error500"},Et.t("Loading failed"));default:return U.createElement(lt,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,T),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Hs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(jk,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Exchanges")),end:U.createElement(U.Fragment,null,x(N,b),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Hs,{color:"black"})),start:U.createElement(Yk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},I={id:"language-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Language")),start:U.createElement(Rk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"body",size:"medium"},s),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Hs,{color:"black"})),onClick:()=>t(q.languages)},_={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Infinite approval")),U.createElement(ai,{direction:"horizontal",size:4}),U.createElement(sv,{side:"top",sideOffset:4,container:P(),content:U.createElement(ii,null,U.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},Et.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},U.createElement(Jk,{color:"gray"}))),start:U.createElement(Zk,{color:"gray",size:16}),end:U.createElement(iv,{checked:f}),onClick:y},Q={id:"theme-item",type:U.createElement(tv,null),title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Theme")),end:U.createElement(pv,null,U.createElement(av,{container:P(),items:cv,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:uv(n)},A=d?[]:[v,E];return m||A.push(I),A.push(_),!e?.singleTheme&&!g&&A.push(Q),U.createElement(ev,{type:U.createElement(ov,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Zd,"SettingsLists");var yv=fv("div",{paddingLeft:"$8"});function Jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=hv(),r=gv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:Gs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(mv,{type:"info",variant:"alarm",title:Gs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:yo.createElement(yv,null,yo.createElement(dv,{type:"secondary",size:"small",onClick:a},Gs.t("Reset")))}),yo.createElement(qs,null),yo.createElement(Zd,null)))}i(Jd,"SettingsPage");import{i18n as ow}from"@lingui/core";import{cancelSwap as nw}from"@rango-dev/queue-manager-rango-preset";import{useManager as rw}from"@rango-dev/queue-manager-react";import{Alert as iw}from"@rango-dev/ui";import pl from"react";import{useParams as aw}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{getCurrentBlockchainOfOrNull as $v,getCurrentStep as Fv,getRelatedWalletOrNull as Ov}from"@rango-dev/queue-manager-rango-preset";import{Button as Mf,CopyIcon as Uv,Divider as Qv,DoneIcon as zv,IconButton as qv,QuoteCost as Hv,RangoExplorerIcon as Gv,StepDetails as Vv,Tooltip as Lf,Typography as Co,useCopyToClipboard as Kv}from"@rango-dev/ui";import{useWallets as Xv}from"@rango-dev/wallets-react";import Bf from"bignumber.js";import{PendingSwapNetworkStatus as gi}from"rango-types";import R,{useEffect as Pf,useRef as jv,useState as _f}from"react";import{useNavigate as Yv}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Sv=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.t("Saturday")];function Rd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Xt.t("Today"):`${Sv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Rd,"timeSince");function ef(t){return t.finishTime?Rd(parseInt(t.finishTime)):Rd(parseInt(t.creationTime))}i(ef,"getSwapDate");import{PendingSwapNetworkStatus as pi}from"rango-types";import ci from"react";import{i18n as si}from"@lingui/core";import{Button as tf,Divider as Vs,MessageBox as Cv}from"@rango-dev/ui";import jt from"react";var of=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Vs,{size:20}),jt.createElement(Cv,{type:"error",title:si.t("Cancel Swap"),description:si.t("Are you sure you want to cancel this swap?")}),jt.createElement(Vs,{size:32}),jt.createElement(tf,{variant:"contained",type:"primary",size:"large",onClick:t},si.t("Yes, Cancel it")),jt.createElement(Vs,{size:12}),jt.createElement(tf,{variant:"outlined",type:"primary",size:"large",onClick:e},si.t("No, Continue"))),"CancelContent");import{i18n as li}from"@lingui/core";import{Button as nf,Divider as Ks,MessageBox as Tv,Typography as kv}from"@rango-dev/ui";import $t from"react";var rf=i(({onDelete:t,onClose:e})=>$t.createElement($t.Fragment,null,$t.createElement(Ks,{size:20}),$t.createElement(Tv,{type:"error",title:li.t("Delete Transaction"),description:li.t("Are you sure you want to delete this swap?")}),$t.createElement(Ks,{size:32}),$t.createElement(nf,{variant:"contained",type:"primary",size:"large",onClick:t},li.t("Yes, Delete it")),$t.createElement(Ks,{size:12}),$t.createElement(nf,{variant:"outlined",type:"primary",size:"large",onClick:e},$t.createElement(kv,{variant:"title",size:"medium",color:"primary"},li.t("No, Cancel")))),"DeleteContent");import{i18n as Xs}from"@lingui/core";import{PendingSwapNetworkStatus as js}from"rango-types";var Ys={[js.WaitingForNetworkChange]:{type:"loading",title:Xs.t("Change Network")},[js.WaitingForConnectingWallet]:{type:"warning",title:Xs.t("Connect Wallet")},[js.NetworkChanged]:{type:"success",title:Xs.t("Network Changed")}};import{debug as Zs}from"@rango-dev/logging-core";import{MessageBox as vv,Wallet as wv}from"@rango-dev/ui";import{useWallets as xv}from"@rango-dev/wallets-react";import So,{useState as lf}from"react";import{styled as af}from"@rango-dev/ui";var sf=af("div",{display:"flex",justifyContent:"center"}),xz=af("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var pf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=xv(),[c,g]=lf(null),[d,m]=lf(null),f=n?.walletType,y=f?Li(u(f)):null,S=f?p(f):null,C=a&&!!f&&!!y&&!!S,T=i(()=>{c&&g({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),w=i(N=>{S?.needsDerivationPath&&S?.singleNamespace&&N[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Zs(x)),T()},"handleConfirmNamespaces"),b=i(N=>{N&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:N}]).catch(x=>Zs(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(vv,{type:e,title:o,description:r}),C&&So.createElement(sf,null,So.createElement(wv,{container:P(),title:S.name,image:S.img,type:f,state:y,link:S.installLink,disabled:s,onClick:async()=>{S.namespaces?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):l(f).catch(N=>Zs(N))}})),So.createElement(po,{open:!!c?.open,onClose:T,onConfirm:w,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:b}))},"WalletStateContent");function Js(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===pi.WaitingForNetworkChange||e===pi.WaitingForConnectingWallet||e===pi.NetworkChanged;return ci.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ci.createElement(pf,{type:Ys[e].type,title:Ys[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==pi.WaitingForNetworkChange}),e==="delete"&&ci.createElement(rf,{onClose:o,onDelete:n}),e==="cancel"&&ci.createElement(of,{onClose:o,onCancel:r}))}i(Js,"SwapDetailsModal");import{i18n as wn}from"@lingui/core";import{Button as Rs,Divider as ui,MessageBox as cf,TokenAmount as bv,Typography as el}from"@rango-dev/ui";import Pe from"react";import{useNavigate as Ev}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=Ev();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(cf,{type:"success",title:wn.t("Swap Successful")},Pe.createElement(bv,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(ui,{size:12}),Pe.createElement(el,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Pe.createElement(cf,{type:"error",title:wn.t("Transaction Failed"),description:g}),Pe.createElement(ui,{size:32}),n==="success"&&Pe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Pe.createElement(el,{variant:"title",size:"medium",color:"neutral100"},wn.t("Done"))),Pe.createElement(ui,{size:12}),d&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},wn.t("Diagnosis")),Pe.createElement(ui,{size:12})),Pe.createElement(Rs,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(el,{variant:"title",size:"medium",color:"primary"},wn.t("See Details"))))}i(tl,"SwapDetailsCompleteModal");import Dv from"react";import{i18n as Lv}from"@lingui/core";import{Alert as If,IconButton as Bv,LinkIcon as Pv}from"@rango-dev/ui";import Yt,{Fragment as _v}from"react";import{Alert as Av,ChevronDownIcon as Nv,IconButton as Wv}from"@rango-dev/ui";import Qo,{useState as Mv}from"react";import{css as xn,darkTheme as uf,styled as Ft,Typography as Iv}from"@rango-dev/ui";var mf=Ft("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),mi=Ft("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${uf} &`]:{color:"$secondary500"}}}}}),df=Ft(Zo,{padding:"$0 $20 $20 $20"}),sq=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),ff=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),lq=Ft("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=xn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${uf} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),gf=xn({padding:"$5 0"}),di=xn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),hf=xn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),yf=xn({width:"100%",padding:"0 $20 $10"}),Sf=Ft("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Cf=Ft("div",{display:"flex",flexDirection:"column",gap:"$5"}),fi=Ft(Iv,{wordBreak:"break-word"});import{styled as ol}from"@rango-dev/ui";var Tf=ol("div",{display:"flex",flexDirection:"column",gap:"$10"}),kf=ol("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),vf=ol("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function wf(t){let{message:e}=t,[o,n]=Mv(!1);return Qo.createElement(Av,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qo.createElement(Wv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Qo.createElement(kf,{rotated:o},Qo.createElement(Nv,{size:12,color:"gray"}))),footer:Qo.createElement(vf,{open:o},Qo.createElement(fi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(wf,"FailedAlert");import{i18n as xf}from"@lingui/core";import{Alert as nl,Button as bf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rl}from"rango-types";import bn from"react";function Ef(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?bn.createElement(nl,{type:"warning",title:n.shortMessage,action:bn.createElement(bf,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},xf.t("Change"))}):r===rl.WaitingForConnectingWallet?bn.createElement(nl,{type:"warning",title:n.shortMessage,action:bn.createElement(bf,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForConnectingWallet)}},xf.t("Connect"))}):bn.createElement(nl,{type:"warning",title:n.shortMessage})}i(Ef,"WarningAlert");function il(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=jo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(Tf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,y=d===m.length-1,S=(y&&u||p)&&!c,C=y&&a.status==="failed";return Yt.createElement(_v,{key:f},Yt.createElement(If,{type:y&&(S&&"loading"||C&&"error")||"success",title:g.description?`${g.description} Tx`:Lv.t("View transaction"),action:g.url&&Yt.createElement(Bv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Yt.createElement(Pv,{size:12}))}))}),c&&Yt.createElement(If,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(Ef,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(wf,{message:r}))}i(il,"SwapDetailsAlerts");var Af=2e3;var Nf=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:qo(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Dv.createElement(il,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Wf(t){if(jo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(Wf,"getStepState");function al(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Xv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),g=Y.use.retry(),d=ae.use.isActiveTab(),m=Yv(),[f,y]=Kv(Af),S=jv(null),[C,T]=_f(null),[k,w]=_f(null),b=i(()=>{r(),T(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),v=N(),E=Fv(e),I=E?.networkStatus;Pf(()=>{v.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),x(e.requestId)):k&&w(null))},[e.status,e.requestId]),Pf(()=>{B?T(gi.WaitingForNetworkChange):I===gi.WaitingForConnectingWallet||I===gi.NetworkChanged?T(I):T(null)},[I]);let _=Lp(e),Q=E?$v(e,E):null,A=E?Ov(e,E):null,z=ef(e),j=Bp(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=I===gi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Mp(e,E),J=Nf({swap:e,switchNetwork:Z,showNetworkModal:I,setNetworkModal:T,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,W)=>de+parseFloat(W.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),pt=D?new Bf(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Bf(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=tt(_e,se),Ke=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?Je.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:Un(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):R.createElement(Cf,null,R.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ke?"":Je.t("Transaction was not sent."),_?`${Je.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:_.outputAmount,symbol:_.symbol,blockchain:_.blockchain}})}`:""),Ke&&R.createElement(fi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",Ke));return R.createElement(ce,{header:{title:Je.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(Ao,null,R.createElement(Mf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},R.createElement(Co,{size:"medium",variant:"label",color:"error"},Je.t("Delete"))))},footer:j&&!k&&R.createElement(Mf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=or(e,p,c);g(de),setTimeout(()=>{m("../../")},0)}},Je.t("Try again"))},R.createElement(fe,{compact:!0,view:!0},R.createElement(mi,null,R.createElement("div",{className:Uo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${Je.t("Request ID")}:`),R.createElement("div",{className:di()},R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Lf,{container:P(),content:f?Je.t("Copied To Clipboard"):Je.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},R.createElement(qv,{variant:"ghost",onClick:y.bind(null,o||"")},f?R.createElement(zv,{size:16,color:"secondary"}):R.createElement(Uv,{size:16,color:"gray"}))),R.createElement(Sf,{target:"_blank",href:`${yl}/swap/${o}`},R.createElement(Lf,{container:P(),content:Je.t("View on Rango Explorer"),side:"bottom"},R.createElement(Gv,{size:20}))))),R.createElement("div",{className:Uo()},R.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Je.t("Finished at"):Je.t("Created at")),R.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),R.createElement("div",{className:hf()},R.createElement(Hv,{fee:M(String(L),2,2),time:Ho(Bn(e.steps)),steps:ne}),R.createElement(an,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||""},token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image,displayName:J[ne-1].to.chain.displayName}},percentageChange:M(Ve,2,2),warningLevel:Nt(Ve??0)})),R.createElement("div",{className:yf()},R.createElement(Co,{variant:"title",size:"small"},Je.t("Swaps steps"))),R.createElement(Qv,{size:8}),R.createElement(df,{ref:S},J.map((de,W)=>{let V=W,K=Wf(e.steps[W]),Xe=K==="error"||K==="in-progress"||K==="warning"||K==="completed"&&W===J.length-1;return R.createElement(Vv,{key:V,step:de,type:"swap-progress",ref:S,state:K,hasSeparator:W!==0,tabIndex:V,isFocused:Xe,tooltipContainer:P()})}))),R.createElement(Js,{state:C,onClose:()=>T(null),onCancel:b,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!d}),R.createElement(tl,{open:!!k,diagnosisUrl:me,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||"",percentageChange:M(Ve,2,2),token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image},description:ve}))}i(al,"SwapDetails");import{i18n as yi}from"@lingui/core";import{Divider as Ff,NotFound as tw,Skeleton as In,Typography as Si}from"@rango-dev/ui";import Se from"react";import{i18n as Zv}from"@lingui/core";import{Divider as Jv,Skeleton as Rv,Typography as ew}from"@rango-dev/ui";import ke from"react";import{css as yt,styled as sl}from"@rango-dev/ui";var Df=sl("div",{width:"100%",height:"100%",padding:"$10 $20"}),En=sl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),hi=sl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),TH=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),kH=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),vH=yt({paddingTop:"$15",display:"flex"}),wH=yt({padding:"$15 $0"}),xH=yt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),bH=yt({paddingBottom:"$10"}),EH=yt({display:"flex",justifyContent:"start",alignItems:"center"}),IH=yt({paddingTop:"$5",display:"flex",alignItems:"center"}),AH=yt({display:"flex",alignItems:"center"}),NH=yt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),$f=yt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ll(){return ke.createElement(Df,null,ke.createElement(pn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(ew,{variant:"title",size:"small"},Zv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(En,null,ke.createElement(xt,{separator:!1}),ke.createElement("div",{className:$f()},ke.createElement(Jv,{direction:"horizontal",size:20}),ke.createElement(Rv,{height:22,variant:"rectangular"}))),ke.createElement(hi,null),ke.createElement(En,null,ke.createElement(xt,{separator:!1})),ke.createElement(hi,null),ke.createElement(En,null,ke.createElement(xt,{separator:!1})),ke.createElement(hi,null),ke.createElement(En,null,ke.createElement(xt,{separator:!1}))))}i(ll,"LoadingSwapDetails");function Of(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:yi.t("Swap Details"),suffix:Se.createElement(Ao,null)}},o&&Se.createElement(mf,null,Se.createElement(mi,null,Se.createElement("div",{className:Uo()},Se.createElement(Si,{variant:"label",size:"large",color:"neutral700"},`${yi.t("Request ID")}:`),Se.createElement("div",{className:di()},Se.createElement(Si,{variant:"label",size:"small",color:"neutral700"},Se.createElement(In,{width:60,height:10,variant:"rounded"})),Se.createElement(Ff,{direction:"horizontal",size:4}),Se.createElement(In,{width:16,height:16,variant:"rectangular"}),Se.createElement(Ff,{direction:"horizontal",size:4}),Se.createElement(In,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Uo()},Se.createElement(Si,{className:gf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(In,{width:60,height:10,variant:"rounded"})),Se.createElement(Si,{variant:"label",size:"small",color:"neutral700"},Se.createElement(In,{width:60,height:10,variant:"rounded"})))),Se.createElement(ll,null)),!o&&Se.createElement(ff,null,Se.createElement(tw,{title:yi.t("Not found"),description:yi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Of,"SwapDetailsPlaceholder");function Uf(){let{manager:t,state:e}=rw(),o=!e.loadedFromPersistor,n=rt(t),{requestId:r}=aw(),a=nt(),{fetchStatus:s}=h();if(!r)return pl.createElement(iw,{containerStyles:{margin:"20px"},type:"error",title:ow.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&&nw(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(Of,{requestId:r,showSkeleton:l}):pl.createElement(al,{swap:g,requestId:r,onCancel:u,onDelete:c})}i(Uf,"SwapDetailsPage");function Qf(){return qp(),ta(),sw([{path:q.home,element:Ge.createElement(rd,null)},{path:q.routes,element:Ge.createElement(pd,null)},{path:q.fromSwap,children:[{index:!0,element:Ge.createElement(Qs,{type:"source"})},{path:q.blockchains,element:Ge.createElement(xs,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ge.createElement(Qs,{type:"destination"})},{path:q.blockchains,element:Ge.createElement(xs,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ge.createElement(Jd,null)},{path:q.languages,element:Ge.createElement(ad,null)},{path:q.exchanges,element:Ge.createElement(ks,{sourceType:"Exchanges"})},{path:q.bridges,element:Ge.createElement(ks,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ge.createElement($m,null)},{path:q.swapDetails,element:Ge.createElement(Uf,null)}]},{path:q.wallets,element:Ge.createElement(Xc,null)},{path:q.confirmSwap,element:Ge.createElement(bm,null)}])}i(Qf,"AppRoutes");import{useQueueManager as hw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as yw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Sw}from"rango-sdk";import{useContext as Cw,useEffect as Xf,useState as jf}from"react";import{globalCss as lw}from"@rango-dev/ui";var zf=i(()=>lw({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function qf(){let{setWatermark:t}=ae();return{fetchApiConfig:i(async()=>{let o=await fetch(`${At("BASE_URL")}/meta/dapp/config?apiKey=${At("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(qf,"useFetchApiConfig");import{useWallets as pw}from"@rango-dev/wallets-react";import{useEffect as cw,useRef as uw}from"react";function Hf(){let{connect:t,state:e}=pw(),o=uw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);cw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Hf,"useForceAutoConnect");import{isApprovalTX as mw,RouteEventType as Gf,StepEventType as Vf,StepExecutionEventStatus as dw,WidgetEvents as Ci}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Kf}from"react";function cl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();Kf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Vf.TX_EXECUTION&&s.status===dw.TX_SENT&&!mw(l)||s.type===Vf.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 we.on(Ci.StepEvent,r),()=>we.off(Ci.StepEvent,r)},[we,t]),Kf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Gf.FAILED||s.type===Gf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Ci.RouteEvent,r),()=>we.off(Ci.RouteEvent,r)},[we])}i(cl,"useSubscribeToWidgetEvents");import{useManager as fw}from"@rango-dev/queue-manager-react";import{useEffect as gw}from"react";function ul(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=fw();gw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(rt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ul,"useSyncNotifications");function ml(){Hf(),zf(),cl(),ul();let t=h().blockchains(),{canSwitchNetworkTo:e}=xr(),[o,n]=jf(""),[r,a]=jf(),s=Cw(Vn),l=t.filter(Sw),{fetchApiConfig:p}=qf();Xf(()=>()=>zp(),[]),hw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Xf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===yw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(ml,"useBootstrap");import{styled as Tw}from"@rango-dev/ui";var Yf=Tw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ti(){ml();let{config:t}=h(),{activeTheme:e}=dr(t?.theme||{}),{activeLanguage:o}=Kt();return dl.createElement(kw,{language:o},dl.createElement(Yf,{id:"swap-container",className:e()},dl.createElement(Qf,null)))}i(Ti,"Main");import{setSolanaSignerConfig as Qw}from"@rango-dev/signer-solana";import gl,{useEffect as tg,useMemo as zw}from"react";import{useState as vw}from"react";var ww=i(()=>{let[t,e]=vw(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Il(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Zf=ww;import{checkWaitingForNetworkChange as xw,makeQueueDefinition as bw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Ew}from"@rango-dev/queue-manager-react";import{useWallets as Iw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Aw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Nw}from"rango-types";import Ww,{useMemo as Mw}from"react";function Lw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Iw(),l=Mw(()=>bw({API_KEY:t.apiKey||At("API_KEY"),BASE_URL:At("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},g=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),f=p.filter(Nw),y=i(k=>{let{supportedChains:w}=s(k);return Dn(w)},"getSupportedChainNames"),S=e(),C={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:Aw(f),getSupportedChainNames:y},getSigners:o,wallets:c,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=ae.use.isActiveTab();return Ww.createElement(Ew,{queuesDefs:[l],context:C,onPersistedDataLoaded:k=>{xw(k)},isPaused:!T},t.children)}i(Lw,"QueueManager");var Jf=Lw;import{useManager as $w}from"@rango-dev/queue-manager-react";import Fw,{createContext as Ow,useContext as Uw}from"react";import{cancelSwap as Bw,getCurrentBlockchainOfOrNull as Pw,getCurrentStep as _w,getRelatedWalletOrNull as Dw}from"@rango-dev/queue-manager-rango-preset";var ki=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return rt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=or(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Bw(o)}getCurrentStepInfo(e){let o=_w(e);return{step:o,wallet:o?Dw(e,o):null,network:o?Pw(e,o):null}}};var Rf=Ow(void 0);function fl(t){let{manager:e}=$w(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new ki(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=_l(s),u=te.use.getWalletsDetails(),c=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Kt().resetLanguage,y=xe().getNotifications(),S=xe().clearNotifications,C={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:y,clearAll:S}};return Fw.createElement(Rf.Provider,{value:C},t.children)}i(fl,"WidgetInfo");function eg(){let t=Uw(Rf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(eg,"useWidget");function vi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Zf();return tg(()=>{n&&r(n)},[n]),zw(()=>{ql({API_KEY:o?.apiKey||An,BASE_URL:o?.apiUrl||hl})},[o.apiKey,o.apiUrl]),tg(()=>{t.config?.signers?.customSolanaRPC&&Qw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),gl.createElement(Kn,{config:o,onUpdateState:e},gl.createElement(Jf,{apiKey:o.apiKey},gl.createElement(fl,null,t.children)))}i(vi,"WidgetProvider");function og(t){let e=t.config?.externalWallets;return wi.createElement(fp,null,e?wi.createElement(Ti,null):wi.createElement(vi,{config:t.config??Qi},wi.createElement(Ti,null)))}i(og,"Widget");function ng(){let{on:t,off:e}=we;return{on:t,off:e}}i(ng,"useWidgetEvents");export{V2 as EventSeverity,Vo as MainEvents,t5 as Networks,r5 as PendingSwapNetworkStatus,$i as QuoteEventTypes,K2 as RouteEventType,xi as SUPPORTED_FONTS,X2 as StepEventType,j2 as StepExecutionBlockedEventStatus,Y2 as StepExecutionEventStatus,he as UI_ID,Fi as WalletEventTypes,R2 as WalletEvents,o5 as WalletTypes,og as Widget,Vo as WidgetEvents,vi as WidgetProvider,Kn as WidgetWallets,ua as customizedThemeTokens,J2 as readAccountAddress,no as useWalletList,xr as useWallets,eg as useWidget,ng as useWidgetEvents,lg as widgetEventEmitter};
1
+ var sg=Object.defineProperty;var r=(t,e)=>sg(t,"name",{value:e,configurable:!0});import{EventSeverity as e5,RouteEventType as t5,StepEventType as o5,StepExecutionBlockedEventStatus as n5,StepExecutionEventStatus as r5}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as a5,useWallets as xr,Events as s5}from"@rango-dev/wallets-react";import{Networks as p5,WalletTypes as c5}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as m5}from"rango-types";import{UI_ID as lg}from"@rango-dev/ui";var An="c6381a79-2817-4602-83bf-6a641a409e32",yl="https://api.rango.exchange",Sl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...lg};var Tl="Roboto",xi=[{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 Hi,Provider as oh}from"@rango-dev/wallets-react";import{isEvmBlockchain as nh}from"rango-sdk";import Gn,{createContext as rh,useEffect as dp,useMemo as ih,useRef as fp}from"react";import{useEffect as Ng}from"react";import{create as Eg}from"zustand";import{subscribeWithSelector as Ig}from"zustand/middleware";import pg from"mitt";var ye=pg(),cg={on:ye.on,off:ye.off};import{RangoClient as xg}from"rango-sdk";import{BlockchainCategories as yg,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as Sg}from"@rango-dev/wallets-react";import{detectInstallLink as Tg,getCosmosExperimentalChainInfo as Cg,isEvmAddress as kg,KEPLR_COMPATIBLE_WALLETS as Sx,Networks as Ml}from"@rango-dev/wallets-shared";import Mi from"bignumber.js";import{isCosmosBlockchain as vg}from"rango-types";import ug from"bignumber.js";var $e=new ug(0);import{WalletTypes as mg}from"@rango-dev/wallets-shared";var Cl=[mg.LEAP];import{BlockchainCategories as bi,WalletState as hg}from"@rango-dev/ui";import{TransactionType as Nn}from"rango-sdk";function Co(t){return Array.from(new Set(t))}r(Co,"removeDuplicateFrom");function Ai(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}r(Ai,"areEqual");function El(t,e){let o;return n;function n(...i){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...i)},e)}}r(El,"debounce");function It(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}r(It,"containsText");function wl(t,e){return t.toLowerCase()===e.toLowerCase()}r(wl,"exactText");function xl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}r(xl,"startWithText");var P=r(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),qo=r(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function bl(t,e,o){let n=!!e&&wl(e,t),i=!!o&&wl(o,t);return n!==i?n?-1:1:0}r(bl,"compareExactMatchText");function Ei(t,e,o){let n=!!e&&It(e,t),i=!!o&&It(o,t);return n!==i?n?-1:1:n&&i&&e?.length!==o?.length?e?.length-o?.length:0}r(Ei,"compareContainsText");function Ii(t,e,o){let n=!!e&&xl(e,t),i=!!o&&xl(o,t);return n!==i?n?-1:1:n&&i&&e?.length!==o?.length?e?.length-o?.length:0}r(Ii,"compareStartWithText");function Il(t,e,o){if(!o)return 0;let n=bl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let i=bl(o,t.name,e.name);if(i)return i}if(o.length>=2){let i=Ii(o,t.symbol,e.symbol);if(i)return i}if(o.length>=3){let i=Ei(o,t.symbol,e.symbol);if(i)return i}if(o.length>=3){let i=Ii(o,t.name,e.name);if(i)return i}if(o.length>=3){let i=Ei(o,t.name,e.name);if(i!==0)return i}if(o.length>=4){let i=Ii(o,t.address,e.address);if(i)return i}if(o.length>=4){let i=Ei(o,t.address,e.address);if(i!==0)return i}return 0}r(Il,"compareWithSearchFor");var Wn=r((t,e)=>{switch(e){case bi.ALL:return!0;case bi.UTXO:return t===Nn.TRANSFER;case bi.OTHER:return t!==Nn.TRANSFER&&t!==Nn.COSMOS&&t!==Nn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Al=r(t=>xi.find(o=>o.value===t)?.url,"getFontUrlByName");function Mn(t,e){let o=!!t.find(n=>n.state===hg.CONNECTED);return e===!1&&o}r(Mn,"isSingleWalletActive");function Ln(t,e){return e.find(o=>o.name===t)?.displayName}r(Ln,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}r(Re,"getBlockchainShortNameFor");function Nl(t,e){return e.find(o=>o.name===t)?.logo}r(Nl,"getBlockchainImage");function Ho(t,e){return e.find(o=>o.id===t)?.title}r(Ho,"getSwapperDisplayName");function Ni(t,e){return e.find(o=>o.name===t)??null}r(Ni,"findBlockchain");function Wi(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}r(Wi,"isTokenNative");function ct(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}r(ct,"createTokenHash");import{BigNumber as Wl}from"bignumber.js";var Go=r(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=r((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Wl(t),i=1,a=1e3;for(let s=0;s<60;s++)if(new Wl(n.toFixed(s,i)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,i);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),i);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),i);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),i);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))),i);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),i)},"numberToString");var Bn=r(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Tt=r((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Vo=r(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Li(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}r(Li,"mapStatusToWalletState");function Ll(t,e,o,n){return o.filter(i=>!Cl.includes(i)).filter(i=>{let{supportedChains:a,isContractWallet:s}=e(i),{installed:l,network:p}=t(i);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(i=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:g,needsDerivationPath:d}=e(i),m=Co(g.map(y=>y.type)),f=Li(t(i));return{title:a,image:s,link:Tg(l),state:f,type:i,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:d}})}r(Ll,"mapWalletTypesToWalletInfo");function Dn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}r(Dn,"walletAndSupportedChainsNames");function Bl(t,e,o,n,i){let a=[];function s(p,u){if(!!!a.find(g=>g.chain===p)){let g={address:u,chain:p,walletType:t};a.push(g)}}r(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Sg(p),g=l.length>0,d=l.includes(c),m=c===Ml.Unknown;if(g&&!d&&!m)return;let y=c===Ml.Unknown&&kg(u);if(m&&!y)return;o.includes(c)||y?i?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}r(Bl,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((i,a)=>{let s=i.from.blockchain,l=i.to.blockchain;if(n.add(s),i.internalSwaps){let{internalSwaps:p}=i;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)}r(Jt,"getQuoteWallets");function $n(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}r($n,"isAccountAndWalletMatched");function Pl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(i=>({chain:o,symbol:i.asset.symbol,ticker:i.asset.symbol,address:i.asset.address||null,rawAmount:i.amount.amount,decimal:i.amount.decimals,amount:new Mi(i.amount.amount).shiftedBy(-i.amount.decimals).toFixed(),logo:"",usdPrice:e(i.asset)?.usdPrice||null}))||[]}r(Pl,"makeBalanceFor");function _l(t){return{...t,loading:!1,error:!0}}r(_l,"resetConnectedWalletState");var Dl=r(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}),i=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Mi(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return wg(i)},"calculateWalletUsdValue");function wg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}r(wg,"numberWithThousandSeparator");var Fn=r((t,e)=>{let o=Cg(Object.entries(t).map(([,n])=>n).filter(vg));return o&&o[e]?.experimental},"isExperimentalChain");function On(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}r(On,"formatBalance");function $l(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}r($l,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}r(Rt,"areTokensEqual");function Fl(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}r(Fl,"sortWalletsBasedOnConnectionState");function Un(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),i=t.slice(-e);return`${n}${".".repeat(o)}${i}`}r(Un,"getConciseAddress");function Ol({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}r(Ol,"getAddress");function Qn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Mi(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},i=o?ct({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=i?e[i]:null;return i&&(!a||a&&a.amount<n.amount)&&(e[i]=n),e},{})}r(Qn,"makeTokensBalance");var Ul=r((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ql(t){return t.map(e=>e.state).join("-")}r(Ql,"hashWalletsState");function zl(t,e){let o=new Set;return t.forEach(i=>{i.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(i=>o.has(i.type))}r(zl,"filterBlockchainsByWalletTypes");function ql(t,e){return e===yg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Wn(n,e))return!0;return!1})}r(ql,"filterWalletsByCategory");var Bi={API_KEY:An};function At(t){return Bi[t]||""}r(At,"getConfig");function Hl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Bi=e,Bi}r(Hl,"initConfig");var Gl=20,Vl=25,Pi="theme-widget",_i=r((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(i=>Rt(i,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Di=r((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Kl=r((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var zn,Ot=r(()=>zn||(zn=new xg(At("API_KEY"),At("BASE_URL")),zn),"httpService");import{WidgetEvents as Xl}from"@rango-dev/queue-manager-rango-preset";var $i=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))($i||{}),Fi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Fi||{}),Oi=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Oi||{}),ko=(a=>(a[a.RouteEvent=Xl.RouteEvent]="RouteEvent",a[a.StepEvent=Xl.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(ko||{});var bg=r(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ut=bg;var te=Ut(Eg()(Ig((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ye.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let i=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}}))})),i(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&ye.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let i=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>i.includes(l.chain)?l:(i.push(l.chain),{...l,selected:!0}));return{balances:Qn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(i=>{let a=!!o.find(l=>l.chain===i.chain&&l.walletType!==i.walletType&&i.selected),s=!!o.find(l=>l.chain===i.chain&&l.walletType===i.walletType&&!i.selected);return a?{...i,selected:!1}:s?{...i,selected:!0}:i})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,i=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>$n(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(y=>$n(y,d)),f=p.find(y=>y.address===d.address&&y.blockChain===d.chain);return f?.failed&&m&&i&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Pl(f,n),loading:!1}:d});return{loading:!1,balances:Qn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(g=>$n(g,c))?_l(c):c);return{loading:!1,balances:Qn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),i=ct(o);return n[i]??null}}))));import{allProviders as Ag}from"@rango-dev/provider-all";function qn(t,e){let o=Ag({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(i=>{if(typeof i=="string"){let a=o.find(s=>s.config.type===i);a?n.push(a):console.warn(`Couldn't find ${i} provider. Please make sure you are passing the correct name.`)}else n.push(i)}),n}return o}r(qn,"matchAndGenerateProviders");function jl(t,e){return qn(t,e).map(i=>i.config.type)}r(jl,"configWalletsToWalletName");function Yl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}r(Yl,"hashProviders");function Ui(t,e){let o=te.use.clearConnectedWallet(),n=qn(t,e);return Ng(()=>{o(),n=qn(t,e)},[Yl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}r(Ui,"useWalletProviders");import jg,{createContext as Yg,useContext as Zg,useEffect as Jg,useRef as Rg}from"react";import{create as Kg}from"zustand";import{persist as Xg}from"zustand/middleware";var Qi=class{static{r(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()}},vo=new Qi;function Ko(t){let{config:e,meta:o}=t,n={},i=e.tokens,a=r(l=>{l.forEach(p=>{typeof p!="string"&&(p=ct(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(i))return i.length>0?(a(i),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!i)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(i);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=i[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=ct(u);delete n[c]})):a(p.tokens))}),Object.values(n)}r(Ko,"matchTokensFromConfigWithMeta");var zi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Wg={clientUrl:void 0},Mg={liquiditySources:void 0},Zl=r((t,e,o)=>({config:{...zi,...t},iframe:Wg,campaignMode:Mg,getLiquiditySources:()=>{let{config:n,campaignMode:i}=o();return i.liquiditySources?.length?i.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:i}=o();return i.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:i}=o();return i.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let i=o().config,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=Ko({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Ko({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});vo.set("supportedSourceTokens",l),vo.set("supportedDestinationTokens",p),e({config:{...i,...n}})},updateCampaignMode:(n,i)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:i}})},updateIframe:(n,i)=>{let a=o().iframe;e({iframe:{...a,[n]:i}})}}),"createConfigSlice");function Hn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Co(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}r(Hn,"getUniqueSwappersGroups");function Jl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}r(Jl,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}r(et,"isFeatureHidden");function Rl(t,e){return e?.[t]==="enabled"}r(Rl,"isFeatureEnabled");var ep=r((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,i=Array.from(n?.values()||[]);if(!o||!o?.type)return i;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return i.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:i,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=vo.get(u);c||(c=Ko({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:i}}),vo.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?!!(It(m.symbol,o.searchFor)||It(m.address||"",o.searchFor)||It(m.name||"",o.searchFor)):!0).sort((m,f)=>{let y=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(y!==S)return y?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),N=o.getBalanceFor(f),x=$l(b,N);if(x!==0)return x}let T=l.get(m.blockchain),C=l.get(f.blockchain),k=Wi(m,T),w=Wi(f,C);if(k!==w)return k?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=Il(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:T&&C?T.sort-C.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,i=ct(o);return n.get(i)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),i=n.liquiditySources?.length?n.liquiditySources:null,a=i??o.liquiditySources,s=i?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Jl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let i=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)&&i.set(d.name,d)}),l.forEach(d=>{let m=ct(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:i,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Lg,English as Bg,Finland as Pg,French as _g,German as Dg,Greece as $g,Italian as Fg,Japanese as Og,Netherlands as Ug,Poland as Qg,Portuguese as zg,Russian as qg,Spanish as Hg,Swedish as Gg,Ukrainian as Vg}from"@rango-dev/ui";var tp=[{title:"English",label:"English",local:"en",SVGFlag:Bg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Hg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:_g},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Og},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:zg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Lg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:qg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Dg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Vg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Gg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Pg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ug},{title:"Greek",label:"Grieks",local:"el",SVGFlag:$g},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Fg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Qg}],wo="en";var op=[.5,1,3],np=1,rp=5,ip=100,ap=0;var sp=r((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:np,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(i=>{if(n)return{disabledLiquiditySources:[]};let a=Co(o.map(s=>s.swapperGroup));return a.length===i.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(i=>i!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:i}=o,a=et("theme",n),s=et("language",n),l=et("liquiditySource",n),p=i?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||wo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||wo}})}}),"createSettingsSlice");function lp(t){return Kg()(Xg((...e)=>({...ep(...e),...sp(...e),...Zl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}r(lp,"createAppStore");var pp=Yg(null);function h(){let t=Zg(pp);if(Jg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}r(h,"useAppStore");function cp(t){let e=Rg();return e.current||(e.current=lp(t.config)),jg.createElement(pp.Provider,{value:e.current},t.children)}r(cp,"AppStoreProvider");import{create as th}from"zustand";var up="rango-widget";var Xo=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(up),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{r(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 ae=Ut(th()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:i}=e();!i&&n?t({showActivateTabModal:!0}):(i||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Xo({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Vn=rh({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function ah(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:i}=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}=Ui(l.wallets,p),{connectWallet:c,disconnectWallet:g}=te(),d=fp(),m=fp();dp(()=>{n().catch(console.log)},[]),dp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,i]);let f=a.filter(nh).map(C=>C.name),y=r((C,k,w,b,N)=>{if(k===Hi.ACCOUNTS)if(w){let x=Dn(N.supportedBlockchains),v=Bl(C,w,f,x,N.isContractWallet);v.length&&c(v,s)}else g(C),m.current?m.current(C):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===Hi.ACCOUNTS&&b.connected){let x=`${C}-${b.network}-${w}`;b.connected&&(d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===Hi.NETWORK&&b.network){let x=`${C}-${b.network}`;d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(C,k,w,b,N)},"onUpdateState"),S=ae.use.isActiveTab(),T=ih(()=>({onConnectWallet:C=>{d.current=C},onDisconnectWallet:C=>{m.current=C}}),[]);return Gn.createElement(Vn.Provider,{value:T},Gn.createElement(oh,{allBlockChains:a,providers:u,onUpdateState:y,autoConnect:!!S},t.children))}r(ah,"Main");function Kn(t){let{config:e,...o}=t;return Gn.createElement(cp,{config:e},Gn.createElement(ah,{...o,config:e}))}r(Kn,"WidgetWallets");import wi from"react";import sh,{Fragment as lh}from"react";import{MemoryRouter as ph,useInRouterContext as ch}from"react-router";function gp({children:t}){let o=ch()?lh:ph;return sh.createElement(o,null,t)}r(gp,"AppRouter");import{I18nManager as ww}from"@rango-dev/ui";import fl from"react";import Ge from"react";import{useRoutes as pw}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as Eo,useRef as rr}from"react";import Oe from"bignumber.js";import{create as dh}from"zustand";import{subscribeWithSelector as fh}from"zustand/middleware";import{getLastSuccessfulStep as mh}from"@rango-dev/queue-manager-rango-preset";import pI from"bignumber.js";function Gi(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]}r(Gi,"getFeeLabel");var Vi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],hp=30;import{i18n as ut}from"@lingui/core";import{RouteEventType as KE}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as Yn}from"rango-types";function Xn(t,e){return t.addressPatterns.filter(i=>new RegExp(i).test(e)).length>0}r(Xn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=r(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function yp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}r(yp,"getQuoteErrorMessage");import{i18n as jn}from"@lingui/core";var to=r(()=>({connectWallet:jn.t("Connect Wallet"),swap:jn.t("Swap"),swapAnyway:jn.t("Swap anyway"),ethWarning:jn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Sp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}r(Sp,"hasHighValueLoss");function Tp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}r(Tp,"hasLimitError");function Cp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,i=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!i&&o&&o.gt(e.fromAmount)?(a=ut.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):i&&o&&o.gte(e.fromAmount)&&(a=ut.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!i&&n&&n.lt(e.fromAmount)?(a=ut.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):i&&n&&n.lte(e.fromAmount)&&(a=ut.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}r(Cp,"getLimitErrorMessage");function kp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:i,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!i||i==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}r(kp,"getSwapButtonState");function Ki(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}r(Ki,"canComputePriceImpact");function Xi(t,e){let o=$e;for(let n=0;n<t.fee.length;n++){let i=t.fee[n];if(i.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(i.asset)?.usdPrice||null;o=o.plus(new Fe(i.amount).multipliedBy(a||0))}return o}r(Xi,"getUsdFeeOfStep");function Zn(t,e){return t.reduce((o,n)=>o.plus(Xi(n,e)),$e)}r(Zn,"getTotalFeeInUsd");function ji(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}r(ji,"getUsdFee");function vp(t){return t.reduce((e,o)=>e.plus(ji(o)),$e)}r(vp,"getTotalFeesInUsd");function wp(t){return t.reduce((e,o)=>{for(let n of o.fee){let i=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[i]=[...a[i]||[],n]}return e},{payable:{},nonePayable:{}})}r(wp,"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}r(xp,"checkSlippageErrors");function bp(t,e){let o=new Map;return t?.swaps.forEach((n,i)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(i,n.recommendedSlippage.slippage)}),o.size>0?o:null}r(bp,"checkSlippageWarnings");function Jn(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}r(Jn,"getMinRequiredSlippage");function Ep(t,e){return e?parseFloat(t)>=parseFloat(e):!0}r(Ep,"hasProperSlippage");function Ip(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:i,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,y=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),S=[];return i?.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:y??{},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}}r(Ip,"createQuoteRequestBody");function Ap(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}r(Ap,"getWalletsForNewSwap");function xo(t){return t?.outputAmount||null}r(xo,"getQuoteOutputAmount");function Np(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}r(Np,"getPercentageChange");function Wp(t,e){let o=xo(t),n=xo(e);if(!o||!n)return!1;let i=tt(o,n);return i?i<=-1:!0}r(Wp,"isOutputAmountChangedALot");function Mp(t,e,o){let n=t.validationStatus,i=Jt({filter:"required",quote:t});return e.sort((s,l)=>i.indexOf(s.chain)-i.indexOf(l.chain)).flatMap(s=>$p(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Fe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Fe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ut.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ut.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ut.t(" for input and network fee")),ut.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Re(s.asset.blockchain,o)}})})}r(Mp,"generateBalanceWarnings");function Rn(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}r(Rn,"calcOutputUsdValue");function jo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Yn.NetworkChanged}r(jo,"isNetworkStatusInWarningState");function Lp(t,e){let o="bellow button or",n=t.extraMessage,i=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),jo(e))switch(n=t.networkStatusExtraMessage||"",i=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Yn.WaitingForConnectingWallet:n=n||ut.t("Waiting for connecting wallet");break;case Yn.WaitingForQueue:n=n||ut.t("Waiting for other running tasks to be finished");break;case Yn.WaitingForNetworkChange:n=n||ut.t("Waiting for changing wallet network");break;default:n=n||"";break}i=i||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:i,long:s}}}r(Lp,"getSwapMessages");function Bp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}r(Bp,"getLastConvertedTokenInFailedSwap");function Pp(t){return t.status==="failed"}r(Pp,"shouldRetrySwap");function _p(t,e,o,n,i,a){if(!n||t)return!0;let s=Jt({filter:"all",quote:n}),l=Jt({filter:"required",quote:n}),p=s.every(g=>i.some(d=>d.chain===g)),u=l.every(g=>i.some(d=>d.chain===g)),c=o&&a?Xn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}r(_p,"isConfirmSwapDisabled");function Dp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}r(Dp,"isTokensIdentical");function tr(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}r(tr,"getQuoteToTokenUsdPrice");function Yi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}r(Yi,"isNumberOfSwapsChanged");function Zi(t,e){let o=t?.swaps.map(i=>i.swapperId)||[],n=e?.swaps.map(i=>i.swapperId)||[];return!Ai(o,n)}r(Zi,"isQuoteSwappersUpdated");function Ji(t,e){let o=t?.swaps.map(i=>i.to.symbol)||[],n=e?.swaps.map(i=>i.to.symbol)||[];return!Ai(o,n)}r(Ji,"isQuoteInternalCoinsUpdated");function Op(t,e){return Yi(t,e)||Zi(t,e)||Ji(t,e)}r(Op,"isQuoteChanged");function $p(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}r($p,"getRequiredBalanceOfWallet");function Nt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}r(Nt,"getPriceImpactLevel");function or(t,e,o){let n=t.steps[0],i=t.steps[t.steps.length-1],a=mh(t.steps),s={blockchain:i.toBlockchain,symbol:i.toSymbol,address:i.toSymbolAddress},l=Ni(a?a.toBlockchain:n.fromBlockchain,e),p=Ni(i.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}}r(or,"createRetryQuote");function bo(t,e){let{fromToken:o,toToken:n,findToken:i,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=tt(s.toString(),l.toString());if(!!c&&Sp(s,c)){let d=Zn(t?.swaps,i),m=Nt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Jn(t.swaps),u=a>rp;if(Ep(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:bp(t,a),minRequiredSlippage:p};return null}r(bo,"generateQuoteWarnings");function tt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Np(t.toString(),e.toString());return n&&n<0?n:null}r(tt,"getPriceImpact");var Up=r(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"),nr=r((t,e)=>e.sort((o,n)=>{let i=r(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=i(o),s=i(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Qp=r((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)),i=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,...i||e[0]}},"getDefaultQuote"),zp=r(t=>{let e=r((o,n)=>{let i=Vi.indexOf(o.value),a=Vi.indexOf(n.value);return i!==-1&&a!==-1?i-a:i!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=r((t,e)=>t?.usdPrice?new Oe(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(dh()(fh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Oe(0),outputUsdValue:new Oe(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,i=$e;return Vo(o.inputAmount)?(e&&(n=e?.outputAmount?new Oe(e?.outputAmount):null,i=Rn(e?.outputAmount,tr(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:i}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Oe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Oe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Oe(0),outputUsdValue:new Oe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:i,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new Oe(0),toBlockchain:i,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new Oe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Oe(0),inputUsdValue:new Oe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Oe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),qp=Y.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ye.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&&ye.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 Hp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:i,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Y(),c=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:y,setAffiliatePercent:S,setAffiliateWallets:T}=h(),C=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,b=c?.to?.blockchains,N=rr(void 0),x=rr(void 0),v=rr(void 0),E=rr(void 0);Eo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),Eo(()=>{if(g==="success"){i();let I=d.find(A=>A.name===c?.from?.blockchain),_=c?.from?.token,Q=_&&f(_);(I||!I&&v.current)&&n(I??null),Q?a({token:Q,meta:{blockchains:d,tokens:m}}):!Q&&N.current&&a({token:null}),v.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,g]),Eo(()=>{_i(s,C)&&a({token:null}),Di(p,k)&&n(null)},[C,k]),Eo(()=>{_i(l,w)&&a({token:null}),Di(u,b)&&o(null)},[w,b]),Eo(()=>{if(g==="success"){i();let I=d.find(A=>A.name===c?.to?.blockchain),_=c?.to?.token,Q=_&&f(_);(I||!I&&E.current)&&o(I??null),Q?e({token:Q,meta:{blockchains:d,tokens:m}}):!Q&&x.current&&e({token:null}),E.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,g]),Eo(()=>{y(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),T(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}r(Hp,"useSyncStoresWithConfig");import{useEffect as ta,useRef as gh}from"react";import{useInRouterContext as hh,useLocation as yh,useSearchParams as Sh}from"react-router-dom";function Ri(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}r(Ri,"convertTokenSearchParamToAsset");function ea(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}r(ea,"tokenToSearchParam");function oa(){let t=yh(),[e,o]=Sh(),{fromBlockchain:n,toBlockchain:i,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:g,setInputAmount:d}=Y(),m=h().fetchStatus,f=h().blockchains(),y=h().tokens(),S=hh(),{updateIframe:T,updateCampaignMode:C}=h(),k=h().isInCampaignMode(),w=gh(),{findToken:b}=h(),N=r(()=>{let v={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(v[B]=Z);let E=e.get("fromAmount"),I=e.get("fromBlockchain"),_=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:I,fromToken:_,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:v}},"getUrlSearchParams"),x=r(v=>{for(let E in v)v[E]||delete v[E];o(v,{replace:!0})},"updateUrlSearchParams");ta(()=>{let{autoConnect:v,clientUrl:E,utmQueryParams:I}=N();S&&m==="success"&&x({fromBlockchain:n?.name,fromToken:ea(a),toBlockchain:i?.name,toToken:ea(s),fromAmount:l,autoConnect:v??void 0,clientUrl:E??void 0,liquiditySources:k?w.current:void 0,...I})},[t.pathname,l,n,a,i,s,k]),ta(()=>{if(!S)return;let v=N();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&d(v.fromAmount),m==="success"){let E=f.find(A=>A.name===v.fromBlockchain),I=v.fromToken&&E?b(Ri(v.fromToken,E)):void 0,_=f.find(A=>A.name===v.toBlockchain),Q=v.toToken&&_?b(Ri(v.toToken,_)):void 0;E&&(p(E),I&&c({token:I,meta:{blockchains:f,tokens:y}})),_&&(u(_),Q&&g({token:Q,meta:{blockchains:f,tokens:y}}))}},[m]),ta(()=>{let{clientUrl:v,liquiditySources:E}=N();T("clientUrl",v||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}r(oa,"useSyncUrlAndStore");import{i18n as rs}from"@lingui/core";import{useManager as HT}from"@rango-dev/queue-manager-react";import{Alert as xm,Button as GT,css as as,Divider as is,IconButton as bm,styled as VT,Typography as KT,WalletIcon as XT}from"@rango-dev/ui";import Ie,{useEffect as Vr,useLayoutEffect as jT,useRef as YT,useState as mn}from"react";import{useNavigate as ZT}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{Alert as $a,BalanceErrors as AS,Button as ou,ChevronDownIcon as NS,ChevronLeftIcon as WS,CloseIcon as MS,Divider as en,IconButton as nu,MessageBox as LS,PasteIcon as BS,Typography as br,WalletIcon as PS}from"@rango-dev/ui";import $,{useCallback as _S,useEffect as ru,useMemo as DS,useRef as $S,useState as uo}from"react";import{useNavigate as FS}from"react-router-dom";import{i18n as ir}from"@lingui/core";function ar(t){switch(t.type){case 0:return ir.t("Route has been updated.");case 3:return ir.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return ir.t("Route swappers has been updated.");case 2:return ir.t("Route internal coins has been updated.");default:return""}}r(ar,"getQuoteUpdateWarningMessage");import{Modal as Ch}from"@rango-dev/ui";import kh from"react";function re(t){let{watermark:e}=ae();return kh.createElement(Ch,{hasWatermark:e==="FULL",...t},t.children)}r(re,"WatermarkedModal");import cr,{useRef as xh}from"react";import*as Io from"@radix-ui/react-collapsible";import{keyframes as Vp,styled as sr}from"@rango-dev/ui";var na=300,vh=Vp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),wh=Vp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Kp=sr(Io.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ra=sr(Io.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),lr=sr(Io.Content,{overflow:"hidden",variants:{open:{true:{animation:`${vh} ${na}ms ease-out`},false:{animation:`${wh} ${na}ms ease-out`}}}}),pr=sr("div",{transition:`all ${na}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ur(t){let{open:e,hasSelected:o,onOpenChange:n,children:i,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=xh(null);return cr.createElement(Kp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&cr.createElement(ra,{className:"collapsible_trigger",onClick:a},s),cr.createElement(lr,{className:"collapsible_content",open:e},i),l==="bottom"&&cr.createElement(ra,{className:"collapsible_trigger",onClick:a},s))}r(ur,"CustomCollapsible");import{css as Xp,darkTheme as Yo,IconButton as bh,styled as ot,TextField as Eh}from"@rango-dev/ui";var jp=ot("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Yp=ot("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ih=ot("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Zp=ot(Ih,{alignSelf:"stretch",minHeight:"93px"}),Jp=ot("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Rp=ot(bh,{position:"absolute",left:"$20"}),ec=ot("div",{paddingTop:"$20"}),tc=Xp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),oc=ot("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),nc=Xp({paddingTop:"$5"}),rc=ot("div",{display:"flex"}),ic=ot(Eh,{backgroundColor:"$neutral100",padding:"$15"}),ac=ot("div",{overflow:"visible",width:"100%"}),sc=ot("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Yo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as mt}from"@lingui/core";import{Button as xS,Divider as _a,Image as bS,MessageBox as wr,SelectableWallet as ES,Typography as Rc,WalletState as eu}from"@rango-dev/ui";import ue,{useEffect as tu,useState as co}from"react";import{WalletState as ia}from"@rango-dev/ui";import{useWallets as Ah}from"@rango-dev/wallets-react";import{detectMobileScreens as Nh,KEPLR_COMPATIBLE_WALLETS as Wh,WalletTypes as Ao}from"@rango-dev/wallets-shared";import{useCallback as Mh,useEffect as Lh,useState as Bh}from"react";var Ph=Object.values(Ao);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:i}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=Ah(),{connectedWallets:c}=te(),g=h().blockchains(),d=jl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ph,m=Ll(s,p,d,e);m=Nh()?m.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):m;let f=Fl(m),[y,S]=Bh(""),T=r(x=>!c.find(v=>v.walletType===x&&v.chain===e),"isExperimentalChainNotAdded"),C=r(async(x,v)=>{let E=s(x);try{if(y&&S(""),E.connected)await l(x);else{if(Mn(m,a.multiWallets))return;o?.(x),await u(x,void 0,v),n?.(x)}}catch(I){i?.(I?.message),S("Error: "+I?.message)}},"handleClick"),k=Mh(()=>{let x=m?.filter(v=>v.state===ia.CONNECTING)||[];for(let v of x)l(v.type)},[Ql(m)]),w=r(async x=>{s(x).connected&&await l(x)},"disconnectWallet");Lh(()=>()=>{k()},[]);let b=r(x=>{let v=x.find(I=>I.type===Ao.DEFAULT);return!v||v.state===ia.NOT_INSTALLED?!1:x.filter(I=>I.state!=ia.NOT_INSTALLED&&![Ao.DEFAULT,Ao.WALLET_CONNECT_2,Ao.LEDGER].includes(I.type)&&p(I.type).supportedChains.filter(_=>_.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=r((x,v,E)=>Fn(E,v)&&T(x)&&!Wh.includes(x)||x==Ao.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(x=>!N(x.type,e??"",g)),error:y,handleClick:C,disconnectConnectingWallets:k,disconnectWallet:w}}r(no,"useWalletList");import{i18n as Vc}from"@lingui/core";import{Divider as gS,getCategoriesCount as hS,SelectableCategoryList as yS,styled as Xc,Typography as SS,Wallet as TS,WalletState as Kc}from"@rango-dev/ui";import it,{useState as Ro}from"react";import{useManager as Oy}from"@rango-dev/queue-manager-react";import{BottomLogo as Uy,Divider as Bc,Header as Qy}from"@rango-dev/ui";import ke,{useEffect as Ia,useRef as Pc,useState as zy}from"react";import{useRef as _h}from"react";function mr(){return window.self!==window.top}r(mr,"isAppLoadedIntoIframe");function aa(){let t=_h(null),{iframe:e}=h(),o=mr()&&e.clientUrl,n=r(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:r(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:r(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}r(aa,"useIframe");import{useNavigate as Dh}from"react-router-dom";function nt(){let t=Dh();return()=>t(-1)}r(nt,"useNavigateBack");import{createTheme as da,darkTheme as Yh,lightTheme as Zh}from"@rango-dev/ui";import{useEffect as Jh,useState as Rh}from"react";import{theme as Xh,darkColors as jh}from"@rango-dev/ui";import ua from"react";function $h(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,i){return n+i+i},"")}`:`#${t}`}r($h,"expandShortHexColor");function Fh(t){return/[0-9]+$/.test(t)}r(Fh,"isOverridingColor");function Oh(t,e){return t.padStart(e,"0")}r(Oh,"pad");function sa(t){let e=Math.min(Math.max(Math.round(t),0),255);return Oh(e.toString(16),2)}r(sa,"intToHex");function Uh(t){return`#${sa(t.red)}${sa(t.green)}${sa(t.blue)}`}r(Uh,"rgbToHex");function Qh(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}}r(Qh,"hexToRGB");function zh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}r(zh,"generateShade");function qh(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}}r(qh,"generateTint");function Hh(t){return lc(t,zh)}r(Hh,"calculateShades");function Gh(t){return lc(t,qh)}r(Gh,"calculateTints");function lc(t,e){let o=Qh(t),n=[];for(let i=1;i<9;i++)n.push(Uh(e(o,i)));return n}r(lc,"calculateColors");function la(t,e,o){let a=Gh(t).reverse().concat(t),s=Hh(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}r(la,"createTintsAndShades");function pa(t,e,o){let n={...t};for(let i in e){let a=e[i],s=i==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(i)&&!Fh(i)){let p=$h(a);Object.assign(n,la(p,i,s))}}return{...n,...e}}r(pa,"expandToGenerateThemeColors");var pc=r(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Vh=r(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=pc(o%52)+e;return pc(o%52)+e},"toAlphabeticName"),Kh=r((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ca=r(t=>Vh(Kh(5381,JSON.stringify(t))>>>0),"toHash");function ma(t){let e=Xh.colors,o={...e,...jh},n,i;if(t?.light){let s={colors:pa(e,t.light)};n={id:`${Pi}-light-${ca(s)}`,tokens:s}}if(t?.dark){let s={colors:pa(o,t.dark,{reverseNeutralRange:!0})};i={id:`${Pi}-dark-${ca(s)}`,tokens:s}}return{light:n,dark:i}}r(ma,"customizedThemeTokens");function cc(t,e){if(t.length<=1)return t.map(({element:n,key:i})=>ua.cloneElement(n,{key:i}));let o=[];return t.forEach((n,i)=>{let{element:a,key:s}=n;if(o.push(ua.cloneElement(a,{key:s})),i<t.length-1){let l=`divider-${i}`;o.push(ua.cloneElement(e,{key:l}))}}),o}r(cc,"joinList");function uc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}r(uc,"doesWindowPreferDarkColorScheme");function dr(t){let{colors:e,fontFamily:o=Tl,borderRadius:n=Gl,secondaryBorderRadius:i=Vl}=t,[a,s]=Rh(uc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=ma(e),c=da({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${i}px`},fonts:{widget:o}}),g=[c.className,Zh.className],d=[c.className,Yh.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 Jh(()=>{let f=r(y=>{y.matches?s("dark"):s("light")},"switchThemeListener");return uc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:r(()=>{let f=g.join(" "),y=d.join(" ");return l==="auto"?a==="dark"?y:f:l==="dark"?y:f},"getActiveTheme")}}r(dr,"useTheme");var rt=r(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let i=o.list.getStorage();i?.swapDetails&&e.push({id:n,swap:i?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as mc}from"@lingui/core";import{Alert as ey,Button as ty}from"@rango-dev/ui";import dc from"react";function fa(t){return dc.createElement(ey,{action:dc.createElement(ty,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},mc.t("Activate this tab")),type:"warning",variant:"alarm",title:mc.t("Another tab is open and handles transactions.")})}r(fa,"ActivateTabAlert");import{i18n as ga}from"@lingui/core";import{Button as oy,Divider as ny,MessageBox as ry}from"@rango-dev/ui";import fr from"react";function ha(t){let{open:e,onClose:o,onConfirm:n}=t;return fr.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},fr.createElement(ry,{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.")},fr.createElement(ny,{size:20}),fr.createElement(oy,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ga.t("Confirm"))))}r(ha,"ActivateTabModal");import{ChevronLeftIcon as sy}from"@rango-dev/ui";import Cc from"react";import{css as iy,darkTheme as fc,IconButton as ay,styled as ro}from"@rango-dev/ui";var kt=ro(ay,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${fc} &`]:{backgroundColor:"$neutral"}}}),gc=ro("div",{position:"absolute",background:"$secondary500",[`.${fc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),No=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),hc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),yc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Sc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Tc=iy({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),gr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ya(t){return Cc.createElement(kt,{variant:"ghost",size:"small",onClick:t.onClick},Cc.createElement(sy,{color:"black",size:16}))}r(ya,"BackButton");import{i18n as ly}from"@lingui/core";import{Button as py,Typography as cy}from"@rango-dev/ui";import Sa from"react";function Ta(t){return Sa.createElement(No,null,Sa.createElement(py,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Sa.createElement(cy,{variant:"label",size:"medium",color:"error500"},ly.t("Cancel"))))}r(Ta,"CancelButton");import{i18n as uy}from"@lingui/core";import{Image as my,Tooltip as dy,WalletIcon as fy}from"@rango-dev/ui";import io from"react";function Ca(t){let{list:e}=no({}),o=e.filter(i=>i.state==="connected"),n=o.length?io.createElement("div",{className:Tc()},o.map(i=>io.createElement(gr,{key:i.title},io.createElement(my,{src:i.image,size:14})))):uy.t("Connect Wallet");return io.createElement(dy,{container:t.container,side:"bottom",content:n},io.createElement(kt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(gc,null),io.createElement(fy,{size:18,color:"black"})))}r(Ca,"WalletButton");import{i18n as yr}from"@lingui/core";import{NotificationsIcon as Wy,Popover as My,SettingsIcon as Ly,Tooltip as Sr,TransactionIcon as By}from"@rango-dev/ui";import We from"react";import{Notifications as Sy}from"@rango-dev/ui";import Ty from"react";import{useNavigate as Cy}from"react-router-dom";import{create as gy}from"zustand";import{persist as hy,subscribeWithSelector as yy}from"zustand/middleware";var xe=Ut(gy()(hy(yy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let i=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:i.fromBlockchain,address:i.fromSymbolAddress,symbol:i.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(i=>i.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((i,a)=>i.route.creationTime&&!a.route.creationTime?-1:!i.route.creationTime&&a.route.creationTime?1:!i.route.creationTime&&!a.route.creationTime?a.creationTime-i.creationTime:a.route.creationTime-i.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:i}=e();if(!n){let a=[];i.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,...i})=>i)}return t}})));function ka(){let t=Cy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),i=h().blockchains(),{findToken:a}=h();return Ty.createElement(Sy,{list:n,getBlockchainImage:l=>Nl(l,i)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:r(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}r(ka,"NotificationContent");import{useManager as ky}from"@rango-dev/queue-manager-react";import{InProgressIcon as vy}from"@rango-dev/ui";import kc from"react";var wy=r(()=>{let{manager:t}=ky();return rt(t).map(({swap:o})=>o).find(o=>o.status==="running")?kc.createElement(Sc,null,kc.createElement(vy,{color:"info",size:6})):null},"InProgressTransactionBadge"),vc=wy;import{EventSeverity as xy}from"@rango-dev/queue-manager-rango-preset";import{Typography as by}from"@rango-dev/ui";import wc from"react";function xc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(i=>i.event.messageSeverity===xy.WARNING);return o?wc.createElement(hc,{isSever:n},wc.createElement(by,{variant:"body",size:"xsmall",color:"$background"},o)):null}r(xc,"NotificationsBadge");import{RefreshProgressButton as Ey}from"@rango-dev/ui";import va,{useEffect as Iy,useState as bc}from"react";var Ay=1e3,Ec=60,Ny=100;function hr({onClick:t}){let[e,o]=bc(0),[n,i]=bc(!1),a=r(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Iy(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ec&&l()},Ay):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=r(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=r(()=>{t?.(),o(0),i(!0)},"handleRefreshClick");return va.createElement(kt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},va.createElement(yc,{onTransitionEnd:()=>i(!1),isRefetched:n},va.createElement(Ey,{size:22,color:t?"black":"gray",progress:e/Ec*Ny})))}r(hr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:i=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||i.includes("notifications");return We.createElement(We.Fragment,null,!i.includes("refresh")&&We.createElement(Sr,{container:a||P(),side:"top",content:yr.t("Refresh")},We.createElement(hr,{onClick:e})),!l&&We.createElement(My,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:We.createElement(ka,null)},We.createElement("div",null,We.createElement(Sr,{container:P(),side:"top",content:yr.t("Notifications")},We.createElement(kt,{size:"small",variant:"ghost"},We.createElement(Wy,{size:18,color:"black"}),We.createElement(xc,null))))),!i.includes("settings")&&We.createElement(Sr,{container:P(),side:"top",content:yr.t("Settings")},We.createElement(kt,{size:"small",variant:"ghost",onClick:n},We.createElement(Ly,{size:18,color:"black"}))),!i.includes("history")&&We.createElement(Sr,{container:P(),side:"top",content:yr.t("Transactions History")},We.createElement(kt,{size:"small",variant:"ghost",onClick:o},We.createElement(By,{size:18,color:"black"}),We.createElement(vc,null))))}r(ao,"HeaderButtons");import{i18n as wa}from"@lingui/core";import{Divider as Ac,MessageBox as Dy,RefreshIcon as $y}from"@rango-dev/ui";import Wo from"react";import{Button as Py,styled as _y}from"@rango-dev/ui";var Ic=_y(Py,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function xa(t){let{open:e,onClose:o}=t;return Wo.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},Wo.createElement(Dy,{title:wa.t("Something went wrong"),type:"error",description:wa.t("Something went wrong. Please refresh the app.")},Wo.createElement(Ac,{size:30}),Wo.createElement(Ic,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Wo.createElement($y,{size:20,color:"primary"}),Wo.createElement(Ac,{size:4,direction:"horizontal"}),wa.t("Refresh"))))}r(xa,"RefreshModal");function ba(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}r(ba,"onScrollContentAttachStatusToContainer");import{css as Fy,styled as Ea}from"@rango-dev/ui";var Nc="700px",Tr=Fy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Wc=Ea("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Nc},fixed:{height:Nc}}}}),Mc=Ea("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Lc=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 ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=aa(),{children:n,header:i,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=zy(!1),c=te.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=ae(),f=m==="FULL",{activeTheme:y}=dr(d||{}),S=et("connectWalletButton",g),{isActiveTab:T,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:b}=ae(),N=nt(),{manager:x}=Oy(),E=rt(x).map(({swap:j})=>j).some(j=>j.status==="running"),I=r(()=>b(eo.forceClaim,E),"onActivateTab"),_=r(()=>{i.onWallet?.()},"onConnectWallet"),Q=typeof i.hasBackButton>"u"||i.hasBackButton,A=Pc(null),z=Pc(null);return Ia(()=>(mr()&&z.current&&e(z.current),()=>{o()}),[]),Ia(()=>(A.current?.addEventListener("scroll",ba),()=>{A.current?.removeEventListener("scroll",ba)}),[]),Ia(()=>{u(l==="failed")},[l]),ke.createElement(Wc,{height:s,id:he.SWAP_BOX_ID,className:`${y()} ${Tr()}`,ref:z},ke.createElement(Qy,{prefix:ke.createElement(ke.Fragment,null,Q&&ke.createElement(ya,{onClick:()=>{N(),i.onBack&&i.onBack()}})),title:i.title,suffix:ke.createElement(ke.Fragment,null,i.suffix,i.onWallet&&!S&&ke.createElement(Ca,{container:P(),onClick:_,isConnected:!!c?.length}),i.onCancel&&ke.createElement(Ta,{onClick:i.onCancel}))}),ke.createElement(Mc,{ref:A},n),ke.createElement(ha,{open:k,onClose:()=>w(!1),onConfirm:I}),ke.createElement(Lc,null,ke.createElement("div",{className:"footer__content"},C&&!T&&ke.createElement("div",{className:"footer__alert"},ke.createElement(fa,{onActivateTab:I}),ke.createElement(Bc,{size:10})),a),ke.createElement(Bc,{size:12}),ke.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},ke.createElement(Uy,null))),ke.createElement(xa,{open:p,onClose:()=>u(!1)}))}r(ce,"Layout");import{styled as qy}from"@rango-dev/ui";var _c="$20 $20 $10 $20",Zo=qy("div",{padding:_c,overflowY:"auto",flexGrow:1});import{styled as Hy}from"@rango-dev/ui";var fe=Hy("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 Bo}from"@lingui/core";import{Button as Xy,Divider as Fc,Image as jy,MessageBox as Yy,Select as Zy,TextField as Jy}from"@rango-dev/ui";import{namespaces as Ry}from"@rango-dev/wallets-shared";import qe,{useEffect as eS,useState as Oc}from"react";import{keyframes as Gy,styled as Cr}from"@rango-dev/ui";var PW=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=Cr("div",{position:"relative"}),Vy=Gy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Lo=Cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Vy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),kr=Cr("div",{"& img":{borderRadius:"50%"}});import{styled as Dc,Typography as Ky}from"@rango-dev/ui";var $c=Dc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Aa=Dc(Ky,{paddingLeft:"$10"}),Na={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Qc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Uc(t){let e=t?Ry[t].derivationPaths:null;return e?[...e,Qc]:[]}r(Uc,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:i,type:a,open:s}=t,[l,p]=Oc(null),[u,c]=Oc("0"),g=l===Qc.id,d=Uc(n),m=r(({value:y})=>{let S=d?.find(T=>T.id===y);S&&p(S.id)},"handleDerivationPathItemClick"),f=r(()=>{let y=d.find(S=>S.id===l);if(y)o(y.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return eS(()=>{p(Uc(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement(Fc,{size:20}),qe.createElement(Yy,{type:"info",title:Bo.t("Select Derivation Path"),description:Bo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:qe.createElement(Mo,null,qe.createElement(kr,null,qe.createElement(jy,{src:i,size:45})),qe.createElement(Lo,null))}),qe.createElement($c,null,qe.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},Bo.t("Choose Derivation Path Template")),qe.createElement(Zy,{value:l||"",options:d.map(y=>({value:y.id,label:y.label})),variant:"filled",handleItemClick:m,styles:{trigger:Na}}),qe.createElement(Fc,{size:20}),qe.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},g?Bo.t("Enter Path"):Bo.t("Enter Index")),qe.createElement(Jy,{type:g?"text":"number",variant:"contained",value:u,onChange:y=>c(y.target.value),style:Na})),qe.createElement(Xy,{type:"primary",onClick:f,disabled:!d||!l||!u},Bo.t("Confirm")))}r(so,"WalletDerivationPathModal");import{Divider as nS}from"@rango-dev/ui";import Ma from"react";import{i18n as Po}from"@lingui/core";import{Image as tS,MessageBox as Wa,WalletState as oS}from"@rango-dev/ui";import lo from"react";function zc(t){let{state:e,image:o,error:n}=t;return e===oS.CONNECTED?lo.createElement(Wa,{type:"success",title:Po.t("Wallet Connected"),description:Po.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Wa,{type:"error",title:Po.t("Failed to Connect"),description:n||Po.t("Your wallet is not connected. Please try again.")}):lo.createElement(Wa,{type:"loading",title:Po.t("Connecting to your wallet"),description:Po.t("Click connect in your wallet popup."),icon:lo.createElement(Mo,null,lo.createElement(kr,null,lo.createElement(tS,{src:o,size:45})),lo.createElement(Lo,null))})}r(zc,"ModalContent");function Jo(t){let{open:e,onClose:o,...n}=t;return Ma.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ma.createElement(zc,{...n}),Ma.createElement(nS,{direction:"vertical",size:32}))}r(Jo,"WalletModal");import{i18n as La}from"@lingui/core";import{Button as iS,Checkbox as aS,Divider as sS,Image as Hc,ListItemButton as lS,MessageBox as pS,Radio as cS,RadioRoot as uS}from"@rango-dev/ui";import{namespaces as Gc}from"@rango-dev/wallets-shared";import Me,{useMemo as mS,useState as dS}from"react";import{styled as rS}from"@rango-dev/ui";var qc=rS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var fS=r((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,i]=dS([]),a=h().blockchains(),s=mS(()=>o?.map(u=>({name:u,logo:fS(a,Gc[u].mainBlockchain),title:Gc[u].title})),[o]),l=r(u=>{i(e?[u]:c=>c.includes(u)?c.filter(g=>g!==u):c.concat(u))},"onSelect"),p=r(u=>e?Me.createElement(uS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(sS,{size:20}),Me.createElement(pS,{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:Me.createElement(Mo,null,Me.createElement(gr,null,Me.createElement(Hc,{src:t.image,size:45})),Me.createElement(Lo,null))}),Me.createElement(qc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(lS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(Hc,{src:u.logo,size:22}),end:e?Me.createElement(cS,{value:u.name}):Me.createElement(aS,{checked:n.includes(u.name)})}))))),Me.createElement(iS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},La.t("Confirm")))}r(po,"WalletNamespacesModal");var CS=Xc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),kS=Xc(fe,{textAlign:"center"}),vr=3e3,Ba=300;function jc(){let{fetchStatus:t}=h(),[e,o]=Ro("ALL"),n=h().blockchains(),{config:i}=h(),[a,s]=Ro(!1),[l,p]=Ro(null),[u,c]=Ro(null),[g,d]=Ro(""),m=null,f=ae.use.isActiveTab(),{list:y,handleClick:S,error:T,disconnectConnectingWallets:C}=no({onBeforeConnect:G=>{m=setTimeout(()=>{s(!0),d(G)},Ba)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},vr)}}),k=r(()=>{C(),s(!1)},"handleCloseWalletModal"),w=r(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=r(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=y.find(G=>G.type===g),x=N?.image||"",v=N?.state||Kc.NOT_INSTALLED,E=zl(y,n),_=hS(E)!==1,Q=ql(y,e),A=r((G,B)=>{Mn(y,i.multiWallets)||(B.namespaces&&B.state===Kc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):S(G))},"handleWalletItemClick"),z=r(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):S(l?.providerType,G.map(Z=>({namespace:Z}))),w()},"handleConfirmNamespaces"),j=r(G=>{G&&u?.namespace&&S(u.providerType,[{namespace:u.namespace,derivationPath:G}]),b()},"handleDerivationPathConfirm");return it.createElement(ce,{header:{title:Vc.t("Connect Wallets")}},it.createElement(kS,null,_&&it.createElement(it.Fragment,null,it.createElement(yS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),it.createElement(gS,{size:24})),it.createElement(SS,{variant:"title",size:"xmedium",align:"center"},Vc.t("Choose a wallet to connect.")),it.createElement(CS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return it.createElement(TS,{key:Z,...G,container:P(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!f})}),it.createElement(Jo,{open:!!a,onClose:k,image:x,state:v,error:T}),it.createElement(po,{open:!!l?.open,onClose:w,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),it.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:b,onConfirm:j}))))}r(jc,"WalletsPage");import{keyframes as vS,styled as Pa}from"@rango-dev/ui";var Yc=Pa("div",{position:"relative"}),wS=vS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Zc=Pa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${wS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Jc=Pa("div",{"& img":{borderRadius:"50%"}});var IS=7;function Da(t){let{chain:e,isSelected:o,selectWallet:n,limit:i,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,g]=co(""),[d,m]=co(null),[f,y]=co(!1),[S,T]=co(null),[C,k]=co(null),[w,b]=co(null),{suggestAndConnect:N}=xr(),x=null,{list:v,error:E,handleClick:I,disconnectWallet:_,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{g(L)},Ba)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{g("")},vr)}}),[A,z]=co(v),j=v.length,G=i&&j-i>0,B=r(async L=>{y(!1),T("in-progress");try{await N(L.walletType,L.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain"),Z=r(()=>{C&&k({...C,open:!1})},"handleCloseNamespaceModal"),ie=r(()=>{w&&b({...w,open:!1})},"handleCloseDerivationPathModal"),J=r(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=r(L=>{let me=A.find(se=>se.type===C?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?b({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):I(C?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=r(L=>{L&&w?.namespace&&I(w.providerType,[{namespace:w.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");tu(()=>{z(L=>{let me=v.findIndex(se=>o(se.type,e));return G&&me>1?[v[me]].concat(v.filter((se,_e)=>_e!==me)):L.map(se=>v.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(v)]);let Ce=document.getElementById(he.SWAP_BOX_ID);tu(()=>{let L=null;return(S==="completed"||S==="rejected")&&(L=setTimeout(()=>T(null),vr)),()=>{L&&clearTimeout(L)}},[S]);let D=r(()=>{Q(),g("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,i).map(L=>{let me=Ol({connectedWallets:p,walletType:L.type,chain:e}),se=me?Un(me,IS):"",_e=Fn(u(),e),pt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&pt&&L.state===eu.CONNECTED,Ve=De?mt.t({id:"Add {chain} chain",values:{chain:e}}):se,Ke=r(async()=>{L.state===eu.DISCONNECTED?L.namespaces?J(L):I(L.type):L.namespaces&&!se?(await _(L.type),J(L)):De?(m({walletType:L.type,chain:e,address:me??""}),y(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),we=d?.chain?Ln(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${we}`},ue.createElement(Jo,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:E}),ue.createElement(po,{open:!!C?.open,onClose:Z,onConfirm:ne,image:C?.providerImage,availableNamespaces:C?.availableNamespaces,singleNamespace:C?.singleNamespace}),ue.createElement(so,{open:!!w?.open,selectedNamespace:w?.namespace,type:w?.providerType,image:w?.providerImage,onClose:ie,onConfirm:ge}),!!d&&ue.createElement(re,{open:!!d&&f,container:Ce,onClose:()=>{m(null)}},ue.createElement(wr,{title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:we}}),type:"warning",description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:we}})},ue.createElement(_a,{size:18}),ue.createElement(_a,{size:32}),ue.createElement(xS,{onClick:B.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},mt.t("Confirm")))),S&&ue.createElement(re,{open:!!S,onClose:T.bind(null,null),container:Ce},S==="in-progress"&&ue.createElement(wr,{type:"loading",title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:we}}),description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:we}}),icon:ue.createElement(Yc,null,ue.createElement(Jc,null,ue.createElement(bS,{src:L.image,size:45})),ue.createElement(Zc,null))}),S==="completed"&&ue.createElement(wr,{type:"success",title:mt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:we}}),description:mt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:we}})}),S==="rejected"&&ue.createElement(wr,{type:"error",title:mt.t("Request Rejected"),description:mt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:we}})}),ue.createElement(_a,{direction:"vertical",size:32})),ue.createElement(ES,{key:L.type,description:Ve,onClick:Ke,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(Zp,{selected:!1,onClick:a},ue.createElement(Rc,{variant:"label",size:"medium"},mt.t("Show more wallets"),ue.createElement(Rc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(i??0)))))}r(Da,"WalletList");var OS=2;function iu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:i,loading:a}=t,s=FS(),l=h().config,p=$S(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:g,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:y}=Y(),{connectedWallets:S,selectWallets:T}=te(),[C,k]=uo(""),[w,b]=uo([]),[N,x]=uo(""),[v,E]=uo(null),[I,_]=uo(!!f),Q=navigator?.userAgent.includes("Firefox"),A=DS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=r(W=>z.includes(W),"isWalletRequiredFor"),B=_S(()=>S.filter(W=>W.selected&&A.includes(W.chain)),[S,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=r((W,V)=>ne(K=>K.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=w.length>0,D=r((W,V)=>!!Z.find(K=>K.walletType===W&&K.chain===V&&K.selected&&(G(V)||!G(V)&&!f)),"isSelected"),L=!!f&&I&&j&&!Xn(j,f),me=r(()=>{_(!1),y(null),ie(W=>{let V=!1;return W.map(K=>!V&&K.chain===j?.name?(V=!0,{...K,selected:!0}):K)})},"resetCustomDestination"),se=r(()=>y(""),"handleClearCustomDestination"),_e=r(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();y(V),p?.current?.focus()}},"handlePasteCustomDestination"),pt=r(W=>{W?G(j?.name??"")||ie(V=>V.map(K=>K.chain===j?.name?{...K,selected:!1}:K)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=r(W=>{if(C&&k(""),D(W.walletType,W.chain))return;let K=S.find(Xe=>Xe.walletType===W.walletType&&Xe.chain===W.chain);K&&(n(),W.chain===j?.name&&I&&!G(j.name)&&(_(!1),y(null)),ie(Xe=>Xe.filter(St=>St.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),Ve=r(()=>{let W=Z.filter(V=>V.selected);T(W),g(W),m(!0),o()},"onConfirmBalance"),Ke=r(async()=>{b([]),x(""),E(null);let W=await i?.({selectedWallets:Z.filter(K=>K.selected),customDestination:f}),V=W.warnings;V?.balance?.messages&&b(V.balance.messages),V?.quoteUpdate&&E(V.quoteUpdate),W.error&&x(yp(W.error)),!W.error&&!V?.balance?.messages.length?Ve():b(V?.balance?.messages??[])},"onConfirmWallets"),we=r(()=>f?$.createElement(nu,{onClick:se,variant:"ghost"},$.createElement(MS,{size:12,color:"gray"})):Q?null:$.createElement(nu,{onClick:_e,variant:"ghost"},$.createElement(BS,{size:16})),"renderCustomDestinationSuffix");ru(()=>{ie(W=>{let V=[];return W.forEach(K=>{!S.some(St=>St.chain===K.chain&&St.walletType===K.walletType&&St.address===K.address)||V.push(K)}),V=V.concat(S.filter(K=>!!!V.find(St=>St.chain===K.chain)&&K.selected&&A.includes(K.chain))),V})},[S,A]),ru(()=>{let W=[];J.length>0&&(J.forEach(V=>{let K=S.find(Xe=>Xe.chain===V.blockchain&&Xe.walletType===V.walletType);K?De(K):W.push(V)}),ne(W))},[S,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!C,container:de,...!C&&{footer:$.createElement(rc,null,$.createElement(ou,{loading:a,disabled:_p(a,I,f,c,Z,j),onClick:Ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},vt.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:$.createElement(Jp,null,$.createElement(Rp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(WS,{size:16})),$.createElement(br,{variant:"headline",size:"small"},vt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(C,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:b.bind(null,[]),container:de},$.createElement(LS,{title:vt.t("Insufficient account balance"),type:"error",description:$.createElement(AS,{messages:w??[]})},$.createElement(ou,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ve},vt.t("Proceed anyway")))),C&&$.createElement(ec,null,$.createElement("div",{className:tc()},$.createElement(Da,{chain:C,isSelected:D,selectWallet:De,onShowMore:()=>k(C),onConnect:W=>{ge(C,W)}}))),!C&&$.createElement($.Fragment,null,N&&$.createElement($.Fragment,null,$.createElement($a,{variant:"alarm",type:"error",title:vt.t(N)}),$.createElement(en,{size:12})),v&&$.createElement($.Fragment,null,$.createElement($a,{variant:"alarm",type:"warning",title:ar(v)}),$.createElement(en,{size:12})),$.createElement(ac,null,A.map((W,V)=>{let K=u.find(Zt=>Zt.name===W),Xe=`wallet-${V}`,St=V===A.length-1;return $.createElement("div",{key:Xe},$.createElement(jp,null,$.createElement(br,{variant:"title",size:"xmedium"},vt.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),$.createElement(br,{variant:"label",color:"$neutral700",size:"medium"},vt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),$.createElement(en,{size:24}),$.createElement(Yp,null,$.createElement(Da,{chain:W,isSelected:D,selectWallet:De,limit:OS,onShowMore:()=>k(K?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!St&&$.createElement(en,{size:32}),St&&l?.customDestination!==!1&&$.createElement(oc,null,$.createElement(ur,{onOpenChange:pt,hasSelected:!0,open:I,triggerAnchor:"top",trigger:$.createElement(sc,null,$.createElement("div",{className:"button__content"},$.createElement(PS,{size:18,color:"info"}),$.createElement(en,{size:4,direction:"horizontal"}),$.createElement(br,{variant:"label",size:"medium",color:I?"$neutral600":void 0},vt.t("Send to a different address"))),$.createElement(pr,{orientation:I?"up":"down"},$.createElement(NS,{size:10,color:"secondary"}))),onClickTrigger:()=>_(Zt=>!Zt)},$.createElement(ic,{ref:p,style:{padding:0,paddingRight:f?"8px":"5px"},autoFocus:!0,placeholder:vt.t("Enter {blockchainName} address",{blockchainName:Ln(W,u)}),value:f||"",suffix:we(),onChange:Zt=>{let ag=Zt.target.value;y(ag)},...!f&&{autoFocus:!0}})),L&&$.createElement("div",{className:nc()},$.createElement($a,{variant:"alarm",type:"error",title:vt.t({values:{destination:f},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}r(iu,"ConfirmWalletsModal");import{i18n as rT}from"@lingui/core";import{Alert as iT,Button as aT,InfoIcon as sT}from"@rango-dev/ui";import Ye from"react";import{Alert as zS,Button as qS,Divider as Ua,NoRouteIcon as HS,RefreshIcon as GS,Typography as mu}from"@rango-dev/ui";import je from"react";import{i18n as au}from"@lingui/core";var US=24,QS=60;function su(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:au.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:au.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}r(su,"makeInfo");var Fa=(o=>(o[o.small=US]="small",o[o.large=QS]="large",o))(Fa||{}),Oa=(o=>(o.small="small",o.large="medium",o))(Oa||{});import{styled as Er}from"@rango-dev/ui";var lu=Er("div",{display:"flex",flexDirection:"column",alignItems:"center"}),pu=Er("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),cu=Er("div",{variants:{size:{small:{width:"100%"},large:{}}}}),uu=Er("div",{padding:"$6 $0"});function tn(t){let{fetch:e,error:o,size:n="small"}=t,i=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=su(o,i,()=>a(s,!0),e);return je.createElement(lu,null,je.createElement(HS,{size:Fa[n],color:"gray"}),je.createElement(Ua,{size:4}),je.createElement(mu,{variant:"title",size:Oa[n]},oe().noResultError.title),n==="large"&&je.createElement(Ua,{size:4}),!!l.description&&je.createElement(pu,{size:n},je.createElement(mu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),je.createElement(Ua,{size:n==="large"?"24":"4"}),!!l.alert&&je.createElement(cu,{size:n},je.createElement(zS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&je.createElement(qS,{size:"xsmall",type:l.alert.type,prefix:je.createElement(uu,null,je.createElement(GS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}r(tn,"NoResult");import{i18n as on}from"@lingui/core";import{Button as KS,Divider as XS,MessageBox as jS,Typography as YS,WarningIcon as ZS}from"@rango-dev/ui";import Wt from"react";import{Typography as hu}from"@rango-dev/ui";import za from"react";import{darkTheme as VS,styled as Ir}from"@rango-dev/ui";var du=Ir("div",{width:"100%"}),Qa=Ir("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),fu=Ir("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${VS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gu=Ir("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function yu(t){let{title:e,value:o,valueColor:n}=t;return za.createElement(fu,null,za.createElement(hu,{size:"medium",variant:"label",className:"_title"},e),za.createElement(hu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}r(yu,"QuoteErrorsModalItem");function Su(t){let{open:e,onClose:o,onConfirm:n,warning:i,confirmationDisabled:a}=t,s=i.warningLevel==="high"?"error":"warning",l=[{title:on.t("Swapping"),value:M(i.inputUsdValue,4,4)},{title:on.t("Gas cost"),value:M(i.totalFee,2,2)},{title:on.t("Receiving"),value:M(i.outputUsdValue,4,4)},{title:on.t("Price impact"),value:M(i.priceImpact,2,2),valueColor:`${s}500`}];return Wt.createElement(re,{footer:Wt.createElement(KS,{type:"primary",size:"large",prefix:Wt.createElement(ZS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Wt.createElement(jS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Wt.createElement(Qa,null,Wt.createElement(XS,{size:"4"}),Wt.createElement(YS,{size:"small",variant:"title"},on.t("Details")),Wt.createElement(Qa,null,l.map((p,u)=>Wt.createElement(yu,{key:u,...p})))))}r(Su,"HighValueLossWarningModal");import{i18n as qa}from"@lingui/core";function Tu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=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&&(Nt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=qa.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=qa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}r(Tu,"makeAlerts");import{i18n as _o}from"@lingui/core";import{Button as Cu,Divider as ku,MessageBox as JS,Typography as RS}from"@rango-dev/ui";import mo from"react";import{useNavigate as eT}from"react-router-dom";function vu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:i,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=eT(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(Cu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(RS,{variant:"label",size:"medium",color:"$neutral900"},_o.t("Change settings"))),container:P(),onClose:i},mo.createElement(JS,{type:"warning",title:s.type===3?_o.t("High slippage"):_o.t("Low slippage"),description:s.type===3?_o.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):_o.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(ku,{size:18}),mo.createElement(ku,{size:32}),mo.createElement(Cu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},_o.t("Confirm anyway"))))}r(vu,"SlippageWarningModal");import{Button as tT,MessageBox as oT,WarningIcon as nT}from"@rango-dev/ui";import Ar from"react";function wu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:i}=t;return Ar.createElement(re,{footer:Ar.createElement(tT,{type:"primary",size:"large",prefix:Ar.createElement(nT,null),fullWidth:!0,disabled:i,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Ar.createElement(oT,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}r(wu,"UnknownPriceWarningModal");function nn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:i,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,g={confirmationDisabled:a,open:i,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=Tu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),Ye.createElement(Ye.Fragment,null,d&&Ye.createElement(tn,{error:o,fetch:s}),!!m&&Ye.createElement(du,null,Ye.createElement(iT,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ye.createElement(gu,{onClick:l},Ye.createElement(sT,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ye.createElement(aT,{size:"xxsmall",type:m.alertType,onClick:c},rT.t("Change"))}})),e&&Ye.createElement(Ye.Fragment,null,e.type===0&&Ye.createElement(Su,{...g,warning:e}),(e.type===3||e.type===2)&&Ye.createElement(vu,{...g,warning:e}),e.type===1&&Ye.createElement(wu,{...g,warning:e})))}r(nn,"QuoteWarningsAndErrors");import FT from"bignumber.js";import zr from"react";import{i18n as fo}from"@lingui/core";import{Alert as bT,Divider as $o,FullExpandedQuote as ET,InfoIcon as IT,NumericTooltip as om,QuoteTag as AT,StepDetails as NT,TokenAmount as WT,Typography as Fo}from"@rango-dev/ui";import Za from"bignumber.js";import F,{useRef as MT,useState as LT}from"react";import{styled as Ha}from"@rango-dev/ui";var Ga=Ha("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),xu=Ha("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),bu=Ha("div",{width:"100%",display:"flex"});import*as Nr from"@radix-ui/react-collapsible";import{Button as lT,css as rn,darkTheme as be,Image as Eu,styled as Ue,Typography as pT}from"@rango-dev/ui";var cT=300,Iu=Ue(Nr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Au=rn({padding:"$10 $15"}),Nu=Ue(lT,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Wu=Ue("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Mu=rn({width:"100%",padding:"$15 $15 $10 $15"}),Lu=rn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Do=rn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Bu=rn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Pu=Ue(Nr.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:{[`& ${Eu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Eu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),_u=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Du=Ue(lr,{width:"100%",background:"inherit"}),Va=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${cT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),eP=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),$u=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Fu=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ka=Ue(pT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Ou=Ue("div",{display:"flex",flexWrap:"wrap"}),Xa=Ue("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Uu=Ue("div",{display:"flex"}),Wr=Ue("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as wt}from"@lingui/core";import{ChevronDownIcon as mT,CloseIcon as dT,Divider as Br,IconButton as fT,NumericTooltip as gT,QuoteCost as hT,Typography as dt}from"@rango-dev/ui";import ee,{useState as Hu}from"react";import{css as uT,styled as Mr}from"@rango-dev/ui";var Lr=Mr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),ja=Mr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Qu=Mr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),zu=Mr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),qu=uT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var yT=r(t=>t.fee.isZero()?null:ee.createElement(Lr,null,ee.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(dt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Gu(t){let[e,o]=Hu(!1),[n,i]=Hu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,g=s?.swaps??[],d=P(),m=wp(g);return ee.createElement(ee.Fragment,null,ee.createElement(hT,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?wt.t("View more info"):void 0,tooltipContainer:d}),ee.createElement(re,{container:d,open:e,header:ee.createElement(zu,null,ee.createElement(dt,{variant:"title",size:"medium"},wt.t("Gas & Fee Explanation")),ee.createElement(fT,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(dT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement(Qu,null,ee.createElement(dt,{variant:"title",size:"small"},wt.t("Details")),ee.createElement(Br,{size:10}),Object.entries(m.payable).flatMap(([f,y])=>y.map((S,T)=>{let C=`payable-fee-${T}`,k=ji(S);return ee.createElement(Lr,{key:C},ee.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},Gi(f,wt.t)),ee.createElement(gT,{content:S.amount,container:d},ee.createElement(dt,{variant:"label",size:"medium"},M(S.amount,2,2)," ",S.asset.symbol," ($",M(k,4,4),")")))})),ee.createElement(Lr,{className:"total_payable_fee"},ee.createElement(dt,{variant:"label",size:"medium"},wt.t("Total Payable Fee")),ee.createElement(dt,{variant:"label",size:"medium"},"$",M(l,4,4))),ee.createElement(ja,null),Object.keys(m.nonePayable).length&&ee.createElement(ur,{triggerAnchor:"bottom",onClickTrigger:()=>i(f=>!f),trigger:ee.createElement("div",{className:qu()},ee.createElement(dt,{size:"small",variant:"body",color:"neutral700"},n?wt.t("Hide non-payable fees"):wt.t("Show non-payable fees")),ee.createElement(Br,{size:4,direction:"horizontal"}),ee.createElement(pr,{orientation:n?"up":"down"},ee.createElement(mT,{size:12,color:"gray"}))),open:n},ee.createElement(dt,{size:"small",variant:"title"},wt.t("Description")),ee.createElement(Br,{size:4}),ee.createElement(dt,{size:"small",variant:"body",color:"neutral700"},wt.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),ee.createElement(Br,{size:10}),Object.entries(m.nonePayable).map(([f,y],S)=>{let T=vp(y),C=Gi(f,wt.t),k=`non-payable-fee-${S}`;return ee.createElement(yT,{key:k,fee:T,label:C})}),ee.createElement(ja,null)))))}r(Gu,"QuoteCostDetails");import{i18n as Xu}from"@lingui/core";import{TokenAmount as ju}from"@rango-dev/ui";import Pr from"react";import{css as ST,styled as TT}from"@rango-dev/ui";var Vu=TT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Ku=ST({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function an(t){let{from:e,to:o,percentageChange:n,warningLevel:i}=t;return Pr.createElement(Vu,null,Pr.createElement(ju,{direction:"horizontal",label:Xu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Pr.createElement("div",{className:Ku()}),Pr.createElement(ju,{direction:"horizontal",tooltipContainer:P(),label:Xu.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:i}))}r(an,"QuoteSummary");import{i18n as em}from"@lingui/core";import{ChevronDownIcon as vT,ChevronRightIcon as wT,Divider as Ya,Image as xT,Tooltip as Or,Typography as Dr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as CT,useState as sn}from"react";var Yu=480,Zu=768,Ju=1024,Ru=1200,kT=r(()=>{let[t,e]=sn(!1),[o,n]=sn(!1),[i,a]=sn(!1),[s,l]=sn(!1),[p,u]=sn(!1),c=r(()=>{e(window.innerWidth<=Yu),n(window.innerWidth>Yu&&window.innerWidth<=Zu),a(window.innerWidth>Zu&&window.innerWidth<=Ju),l(window.innerWidth>Ju&&window.innerWidth<=Ru),u(window.innerWidth>Ru)},"handleResize");return CT(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:i,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),_r=kT;var $r=4,Fr=6,ln=r(t=>{let{content:e,src:o,className:n,open:i,state:a,container:s}=t,l=s||P();return O.createElement(Or,{container:l,side:"bottom",sideOffset:4,open:i,content:e},O.createElement(_u,{className:n,state:a},O.createElement(xT,{src:o,size:16})))},"ImageComponent");function tm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:i,expanded:a,type:s,container:l}=t,p=l||P(),u=i.length,c=Up(i),{isTablet:g,isMobile:d}=_r();return O.createElement(Pu,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:Do()},O.createElement(Dr,{variant:"body",size:"xsmall"},em.t("Via:")),O.createElement(Ya,{direction:"horizontal",size:4}),i.map((m,f)=>{let y=`item-${f}`,S=O.createElement(Va,null,O.createElement(wT,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:y},O.createElement(ln,{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:y},u<=$r||u>$r&&f<$r-1?O.createElement(O.Fragment,null,O.createElement(ln,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):f===$r-1&&O.createElement(Or,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Do()},S,i.map((T,C)=>{let k=`image-${C}`;return C>=f&&O.createElement(O.Fragment,{key:k},O.createElement(ln,{content:T.swapper.displayName,src:T.swapper.image,state:T.state,open:!1}),C!==u-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(Xa,{state:i.find((T,C)=>C>=f&&(T.state==="error"||T.state==="warning"))?.state},O.createElement(Dr,{size:"xsmall",variant:"body"},"+",u-f))))})),O.createElement("div",{className:Do()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:Do()},O.createElement(Dr,{variant:"body",size:"xsmall"},em.t("Chains:")),O.createElement(Ya,{direction:"horizontal",size:4}),c.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},c.length<=Fr||c.length>Fr&&f<Fr-1?O.createElement(Or,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(ln,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Fr-1&&O.createElement(Or,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:Do()},c.map((y,S)=>S>=f&&O.createElement(ln,{key:y.displayName,content:"",src:y.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(Xa,{className:"blockchainImage"},O.createElement(Dr,{size:"xsmall",variant:"body"},"+",c.length-f))))),O.createElement(Ya,{direction:"horizontal",size:32}))),O.createElement(Va,{orientation:a?"up":"down"},O.createElement(vT,{size:12,color:"black"}))))}r(tm,"QuoteTrigger");function Ja(t){let{quote:e,input:o,output:n,error:i,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(),y=h().swappers(),{customSlippage:S,slippage:T}=h(),C=S||T,[k,w]=LT(t.expanded),b=MT(null),N=M(o.value,6,6),x=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",E=tt(o.usdValue,n.usdValue??null),I=M(E,2,2),_=Nt(E??0),Q=r((ge,Ce)=>ge.map((D,L)=>{let me,se=i?.type===3&&i.swap.swapperId===D.swapperId,_e=i?.type===4&&i.recommendedSlippages?.has(L),pt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=pt;De?me="error":Ve&&(me="warning");let Ke=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Ke=fo.t("Bridge Limit Error")),{swapper:{displayName:Ho(D.swapperId,y)??"",image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Re(D.from.blockchain,m)??"",image:D.from.blockchainLogo},price:{value:L===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:L===0?o.value:D.fromAmount,realUsdValue:new Za(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Re(D.to.blockchain,m)||"",image:D.to.blockchainLogo},price:{value:M(D.toAmount,6,6),usdValue:M((D.to.usdPrice??0)*parseFloat(D.toAmount),4,4),realValue:D.toAmount,realUsdValue:new Za(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ve?F.createElement(xu,{dense:g},F.createElement(bT,{variant:"alarm",type:De?"error":"warning",title:Ke,footer:F.createElement(bu,null,se&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},i.fromAmountRangeError),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(_e||pt)&&!se&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...i?.type===4&&{minRequiredSlippage:i.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Go(D.estimatedTimeInSeconds),fee:M(Xi(D,f),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=d||P(),G=zp(t.quote.tags||[]),B=!!c,Z=Go(Bn(e?.swaps)),ie=Zn(e?.swaps??[],f),J=M(ie,2,2),ne=ie.gte(new Za(hp));return g?F.createElement(ET,{selected:l,fee:J,time:Z,tooltipContainer:qo(),steps:A,tags:G,feeWarning:ne,percentageChange:I,warningLevel:_,outputPrice:{value:x,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Wu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Mu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Uu,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(AT,{label:ge.label,value:ge.value}),F.createElement($o,{size:4,direction:"horizontal"}))})),F.createElement(Wr,null),!B&&F.createElement($o,{size:4})):null,F.createElement("div",{id:"portal-root",className:Lu()},F.createElement(Gu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&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(Fo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Bu()},F.createElement(Fu,null,F.createElement(IT,{size:12,color:"gray"})),F.createElement(Ou,null,F.createElement(Ka,{size:"small",variant:"body"},`${N} ${A[0].from.token.displayName} = `),F.createElement(om,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Ka,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(om,{content:n.usdValue,container:j},F.createElement($o,{size:2,direction:"horizontal"}),F.createElement(Fo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&F.createElement(WT,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:v,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:I,warningLevel:_}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(an,{from:A[0].from,to:A[z-1].to,percentageChange:I,warningLevel:_}),F.createElement($o,{size:4}))),F.createElement(Iu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},F.createElement(tm,{type:s,quoteRef:b,selected:l,setExpanded:w,container:j,expanded:k,steps:A}),F.createElement(Du,{open:k},F.createElement($u,null),F.createElement("div",{className:Au()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(NT,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}r(Ja,"Quote");import{Divider as DT,Skeleton as $T}from"@rango-dev/ui";import Lt from"react";import{darkTheme as BT,styled as Ur}from"@rango-dev/ui";var nm=Ur("div",{$$color:"$colors$neutral100",[`.${BT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),rm=Ur("div",{paddingTop:"$2"}),im=Ur("div",{paddingLeft:"$8"}),am=Ur("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as hm,Divider as ft,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as PT,styled as Mt}from"@rango-dev/ui";var Ra=Mt("div",{display:"flex"}),sm=Mt("div",{padding:"$10 $0 $20"}),lm=Mt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),pm=Mt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),cm=Mt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),um=Mt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),mm=Mt("div",{width:"65%",display:"flex",justifyContent:"start"}),dm=Mt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),fm=Mt("div",{padding:"$15 $0 $15 $0"}),gm=PT({display:"flex",justifyContent:"space-between",alignItems:"center"});function pn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(cm,null,H.createElement(mm,null,H.createElement(hm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ft,{size:8,direction:"horizontal"}),H.createElement(dm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(ft,{size:4}),H.createElement(Ze,{height:15,variant:"rounded"}))),H.createElement(Ze,{height:12,width:64,variant:"rounded"})),i=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Ra,null,H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Wr,null),!i&&H.createElement(ft,{size:4})),H.createElement("div",{className:gm()},H.createElement(Ra,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"})),i&&H.createElement(Ze,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(sm,null,H.createElement(Ze,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(lm,null,H.createElement(pm,null,H.createElement(hm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ft,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(ft,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(ft,{size:4}),H.createElement(fm,null,n,H.createElement(um,null),n),H.createElement(ft,{size:12})))}r(pn,"QuoteSummarySkeleton");import{ChainToken as km,Divider as ts,NextIcon as _T,Skeleton as Qr}from"@rango-dev/ui";import Ee from"react";import{styled as cn}from"@rango-dev/ui";var ym=cn("div",{display:"flex",alignItems:"start"}),Sm=cn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),es=cn("div",{display:"flex",alignItems:"center",flexGrow:1}),Tm=cn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Cm=cn("div",{display:"flex",alignItems:"center"});function xt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(Cm,null,Ee.createElement(Qr,{height:22,width:22,variant:"circular"}),Ee.createElement(ts,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:15,width:148,variant:"rounded"})),Ee.createElement(ym,null,Ee.createElement(am,{hideSeparator:!e}),Ee.createElement(Sm,{extraSpace:e},Ee.createElement(es,null,Ee.createElement(km,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(ts,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:12,variant:"rounded"})),Ee.createElement(Tm,null,Ee.createElement(_T,{color:"gray",size:16})),Ee.createElement(es,null,Ee.createElement(km,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(ts,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:12,variant:"rounded"})))))}r(xt,"StepSkeleton");function un(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Lt.createElement(nm,{expanded:o,rounded:e!=="basic"},Lt.createElement(pn,{type:e,tagHidden:n}),Lt.createElement(rm,null,Lt.createElement($T,{height:15,variant:"rounded"})),o&&Lt.createElement(im,null,Lt.createElement(DT,{size:24}),Lt.createElement(xt,null),Lt.createElement(xt,null),Lt.createElement(xt,{separator:!1})))}r(un,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:i,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:y,toToken:S}=Y(),T=e?.outputAmount?new FT(e?.outputAmount):null,C=e?.outputAmount?Rn(e?.outputAmount,tr(e)||S?.usdPrice):null,w=!(i&&(i.type===0||i.type===1))&&e&&!n;return n?zr.createElement(Ga,null,zr.createElement(un,{tagHidden:l,type:o,expanded:s})):w?zr.createElement(Ga,{onClick:()=>p?.(e)},zr.createElement(Ja,{quote:e,error:i,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:y?.toString()??""},output:{value:T?.toString()??"",usdValue:C?.toString()??""}})):null}r(go,"QuoteInfo");import{calculatePendingSwap as zT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as qT}from"react";import{useRef as OT,useState as UT}from"react";var QT=2e3;function qr({request:t}){let[e,o]=UT(!1),n=OT(null),i=r(()=>n.current?.abort(),"cancelFetch"),a=r(async l=>(await new Promise(p=>setTimeout(p,QT)),await s(l,!1)),"retryFetch"),s=r(async(l,p=!1)=>{i(),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:i}}r(qr,"useFetch");function vm(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,i)=>await Ot().confirmRouteRequest(n,i)});return{fetch:t,loading:e,cancelFetch:o}}r(vm,"useFetchConfirmQuote");function Hr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=os(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}r(Hr,"throwErrorIfResponseIsNotValid");function os(t){if(Tp(t)){let{swap:n,recommendation:i,fromAmountRangeError:a}=Cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:i,fromAmountRangeError:a}}}let o=xp(t);if(o){let n=Jn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}r(os,"getQuoteError");function wm(t,e,o){let n=!1;t&&(n=Op(t,e));let i={quote:null,quoteUpdate:null,balance:null},a=bo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(i.quote=a),t&&n&&(Wp(t,e)?i.quoteUpdate={type:3,newOutputAmount:M(xo(e)),percentageChange:M(tt(xo(t)??"",xo(e)??""),null,2)}:Yi(t,e)?i.quoteUpdate={type:0}:Zi(t,e)?i.quoteUpdate={type:1}:Ji(t,e)&&(i.quoteUpdate={type:2}));let s=Mp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(i.balance={messages:s}),i}r(wm,"generateWarnings");function Gr(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}}r(Gr,"handleQuoteErrors");function ns(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:i,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:y,cancelFetch:S,loading:T}=vm();return qT(()=>S,[]),{loading:T,fetch:r(async k=>{let w=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=w.reduce((v,E)=>(v[E.chain]=E.address,v),{}),x={requestId:i?.requestId||"",selectedWallets:N,destination:b||void 0};try{return await y(x,!0).then(v=>{let{result:E}=v;Hr({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let I={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(I);let _={slippage:f.toString(),disabledSwappersGroups:c},Q=wm(i??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:w,userSlippage:f});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=zT(o.toString(),E,Ap(w),_,!A,{blockchains:g,tokens:d});return{quote:I,swap:z,error:null,warnings:Q}})}catch(v){return Gr(v)}},"fetch"),cancelFetch:S}}r(ns,"useConfirmSwap");var JT=VT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${bm}`]:{width:"$48",height:"$48"}}),RT=as({flexGrow:1,paddingRight:"$10"}),eC=as({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),tC=as({display:"flex",justifyContent:"space-between",alignItems:"center"});function Em(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:i,quoteWarningsConfirmed:a}=Y(),s=ZT(),[l,p]=mn(""),u=!n,[c,g]=mn(!1),[d,m]=mn(!1),{isActiveTab:f}=ae(),y=h().getDisabledLiquiditySources(),S=YT(y),{manager:T}=HT(),{fetch:C,loading:k,cancelFetch:w}=ns(),[b,N]=mn({swap:null,error:null,warnings:null}),[x,v]=mn(!1),E=r(async({selectedWallets:B,customDestination:Z})=>{let ie=await C?.({selectedWallets:B,customDestination:Z});return N(ie),ie},"onConfirmSwap"),I=r(async()=>{if(b.swap&&n)try{await T?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let B=`../${q.swaps}/${b.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),_=r(async()=>{m(!0),await I(),m(!1)},"onConfirm"),Q=r(async()=>{b?.warnings?.quote&&!a?v(!0):await _()},"onStartConfirmSwap"),A=r(async()=>{N({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:i}).then(B=>{N(B)}).catch(B=>console.error(B))},"onRefresh");Vr(()=>{!!S.current.length&&!y.length&&A(),S.current=y},[y.length]),Vr(()=>{u&&w()},[u]),Vr(()=>{u&&g(u)},[u]),Vr(()=>{u||C({selectedWallets:o,customDestination:i}).then(B=>N(B)).catch(B=>console.error(B))},[]),jT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=b.warnings?.quote??null,j=b.error,G=[];if(l&&G.push(Ie.createElement(xm,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&G.push(Ie.createElement(xm,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&ar(b.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(nn,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!f,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await I()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:rs.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(JT,null,Ie.createElement("div",{className:RT()},Ie.createElement(GT,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!b.error||!f,onClick:Q},rs.t("Start Swap"))),Ie.createElement(bm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!f,onClick:g.bind(null,!0)},Ie.createElement(XT,{size:24})))},c&&Ie.createElement(iu,{open:c,onClose:()=>g(!1),onCancel:w,loading:k,onCheckBalance:E}),Ie.createElement(fe,null,Ie.createElement("div",{className:tC()},Ie.createElement(KT,{variant:"title",size:"small"},rs.t("You get")),Ie.createElement("div",{className:eC()},Ie.createElement(hr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(is,{size:"12"}),cc(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(is,{size:10})),G.length>0?Ie.createElement(is,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}r(Em,"ConfirmSwapPage");import{i18n as Xr}from"@lingui/core";import{useManager as yC}from"@rango-dev/queue-manager-react";import{Divider as $m,NotFound as SC,styled as TC}from"@rango-dev/ui";import Pt,{useState as CC}from"react";import{useNavigate as kC}from"react-router-dom";import{i18n as rC}from"@lingui/core";import{Divider as Mm,GroupedVirtualizedList as iC,Skeleton as aC,SwapListItem as Lm,Typography as sC}from"@rango-dev/ui";import Qe,{useCallback as Bm,useEffect as lC,useRef as pC,useState as cC}from"react";function Im(t,e){let o=[],n=0;do{let i=t[n];o.push(Math.min(i,e)),e-=i,n++}while(e>0&&n<=t.length);return o}r(Im,"calculateGroupsSoFar");import{css as oC,darkTheme as nC,styled as dn}from"@rango-dev/ui";var ss=oC(),Am=dn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ls=dn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ss}`]:{$$color:"$colors$neutral600",[`.${nC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ps=dn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Nm=dn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Wm=dn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var uC=10;function cs(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:i}=t,[a,s]=cC([]),l=pC(0),{swaps:p,groupCounts:u,groups:c}=n(e),g=Bm(Im,[]),d=Bm(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,uC),s(g(u,l.current)))},[e.length]);if(lC(()=>{i||d()},[i,d]),i){let m=[1,2];return Qe.createElement(Qe.Fragment,null,[m,m].map((y,S)=>Qe.createElement(ls,{key:S},Qe.createElement(ps,null,Qe.createElement(aC,{variant:"text",width:60,size:"small"}),Qe.createElement(Mm,{size:16})),Qe.createElement(Mm,{size:4}),Qe.createElement(Nm,null,y.map((C,k)=>Qe.createElement(Lm,{isLoading:!0,key:k}))))))}return Qe.createElement(iC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>Qe.createElement(ls,null,Qe.createElement(ps,null,Qe.createElement(sC,{variant:"label",size:"medium",className:ss()},c[m]))),itemContent:(m,f)=>{let y=p[m];if(!y)return null;let S=y.steps[0],T=y.steps[y.steps.length-1];return Qe.createElement(Am,{key:y.requestId},Qe.createElement(Lm,{requestId:y.requestId,creationTime:y.creationTime,status:y.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[f]===rC.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(y.inputAmount,6,6),realAmount:y.inputAmount},to:{token:{image:T.toLogo,displayName:T.toSymbol},blockchain:{image:T.toBlockchainLogo||""},amount:M(T.outputAmount||T.expectedOutputAmountHumanReadable||"",6,6),realAmount:T.outputAmount||T.expectedOutputAmountHumanReadable||""}}}))}})}r(cs,"HistoryGroupedList");import{CloseIcon as dC,IconButton as fC,SearchIcon as gC,TextField as hC}from"@rango-dev/ui";import fn from"react";import{styled as mC}from"@rango-dev/ui";var Pm=mC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Bt(t){let{variant:e,fullWidth:o,color:n,size:i,onChange:a,value:s,setValue:l,...p}=t;return fn.createElement(hC,{prefix:fn.createElement(Pm,null,fn.createElement(gC,{color:"black"})),suffix:!!s.length&&fn.createElement(fC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},fn.createElement(dC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:i,value:s,onChange:a,...p})}r(Bt,"SearchInput");import{i18n as Kr}from"@lingui/core";import _m from"dayjs";var Dm=r(t=>{let e=new Map([["today",{title:Kr.t("Today"),swaps:[]}],["week",{title:Kr.t("This week"),swaps:[]}],["month",{title:Kr.t("This month"),swaps:[]}],["year",{title:Kr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}r(o,"addYearsToOutput");let n=_m();t.forEach(p=>{let u=Number(p.creationTime),c=_m(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 i=Array.from(e.values()).filter(p=>p.swaps.length>0),a=i.flatMap(p=>p.swaps),s=i.map(p=>p.swaps.length),l=i.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var vC=TC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),wC=r((t,e)=>t?.length?t.filter(o=>Tt(o.fromBlockchain,e)||Tt(o.toBlockchain,e)||Tt(o.toSymbol,e)||Tt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Fm(){let t=kC(),{manager:e,state:o}=yC(),n=rt(e).map(({swap:c})=>c),[i,a]=CC(""),s=!o.loadedFromPersistor,l=r(c=>{let g=c.target.value;a(g)},"searchHandler"),p=n;i&&(p=n.filter(c=>Tt(c.inputAmount,i)||Tt(c.status,i)||wC(c.steps,i)||Tt(c.requestId,i)));let u=!p?.length&&!s;return Pt.createElement(ce,{header:{title:Xr.t("History")}},Pt.createElement(fe,null,Pt.createElement(Bt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xr.t("Search Transaction"),autoFocus:!0,onChange:l,value:i}),Pt.createElement($m,{size:"16"}),Pt.createElement(vC,null,u&&Pt.createElement(Wm,null,Pt.createElement($m,{size:32}),Pt.createElement(SC,{title:Xr.t("No results found"),description:i?Xr.t("Try using different keywords"):""})),!u&&Pt.createElement(cs,{list:p,onSwapClick:t,groupBy:Dm,isLoading:s}))))}r(Fm,"HistoryPage");import{i18n as zC}from"@lingui/core";import{Button as qC,Divider as nd,styled as HC,WarningIcon as GC}from"@rango-dev/ui";import VC from"bignumber.js";import He,{useEffect as rd,useState as id}from"react";import{useNavigate as KC}from"react-router-dom";import{i18n as NC}from"@lingui/core";import{Header as WC}from"@rango-dev/ui";import Vt,{useEffect as MC,useState as LC}from"react";import{i18n as bC}from"@lingui/core";import{Divider as ms,FullExpandedQuote as EC,Typography as IC}from"@rango-dev/ui";import Se from"react";import{styled as us}from"@rango-dev/ui";var Om=us("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Um=us("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Qm=us("div",{width:"146px"});import{i18n as gn}from"@lingui/core";import{Select as xC}from"@rango-dev/ui";import zm from"react";function jr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:gn.t("Smart Routing")},{value:"FEE",label:gn.t("Lowest Fee")},{value:"SPEED",label:gn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:gn.t("Maximum Return")},{value:"PRICE",label:gn.t("Maximum Output")}];return zm.createElement(Qm,null,zm.createElement(xC,{container:t.container,options:n,value:o,handleItemClick:i=>{e("sortStrategy",i.value)},variant:"filled"}))}r(jr,"SelectStrategy");var qm=3;function hn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:i,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:g,toToken:d,sortStrategy:m,error:f}=Y(),{slippage:y,customSlippage:S}=h(),{findToken:T}=h(),C=l||P(),k=!!u&&u.results.length,w=S??y,b=r(v=>{if(!g||!d||!u)return null;let E={requestAmount:u.requestAmount,...v};return bo(E,{fromToken:g,toToken:d,userSlippage:w,findToken:T})},"getQuoteWarning"),N=f?.type===0||f?.type===1,x=u?.results?nr(m,u?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Um,null,Se.createElement(IC,{size:"xmedium",variant:"title"},bC.t("Sort by")),Se.createElement(jr,{container:C})),Se.createElement(ms,{size:"10"})),e&&Array.from({length:qm},(v,E)=>Se.createElement(Se.Fragment,{key:E},s?Se.createElement(EC,{loading:!0}):Se.createElement(un,{tagHidden:!1,type:"list-item",expanded:!1}),E!==qm-1&&Se.createElement(ms,{size:16}))),!e&&Se.createElement(Se.Fragment,null,k?x.map((v,E)=>{let I=b(v),_=os(v.swaps),Q=x.length-1===E;return Se.createElement(Se.Fragment,{key:v.requestId},Se.createElement(go,{showModalFee:i,container:C,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:_?.options||null,warning:I,fullExpandedMode:s,onClick:A=>{_||c("warning",I),c("error",_?.options||null),o(A)},type:"list-item"}),!Q&&Se.createElement(ms,{size:16}))}):N&&Se.createElement(Om,null,Se.createElement(tn,{size:s?"large":"small",error:f,fetch:n}))))}r(hn,"Quotes");import{darkTheme as AC,styled as Hm}from"@rango-dev/ui";var Gm=Hm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${AC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Vm=Hm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var BC=100;function ds(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:i,isVisible:a}=t,[s,l]=LC(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",g=qo();return MC(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},BC):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Vt.createElement(Gm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Tr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(WC,{title:NC.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(jr,{container:g}),Vt.createElement(ao,{container:g,onClickRefresh:i,hidden:["history","notifications","settings"]}))}),Vt.createElement(Vm,null,Vt.createElement(hn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:qo(),onClickOnQuote:n,fullExpandedMode:c})))}r(ds,"ExpandedQuotes");import{i18n as Rm}from"@lingui/core";import{SwapInput as ed}from"@rango-dev/ui";import yn from"react";import{ReverseIcon as DC}from"@rango-dev/ui";import gs from"react";import{keyframes as PC,styled as Km}from"@rango-dev/ui";var fs=450,_C=PC({"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)"}}),Xm=Km("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),jm=Km("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${_C} ${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=Y.use.switchFromAndTo();return gs.createElement(Xm,null,gs.createElement(jm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},fs),t()}},gs.createElement(DC,{size:12})))}r(hs,"SwitchFromAndToButton");import{styled as Ym}from"@rango-dev/ui";var Zm=Ym("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Jm=Ym("div",{position:"relative"});function ys(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:i}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=Y(),{connectedWallets:y,getBalanceFor:S}=te(),T=a?S(a):null,C=On(T)?.amount??"0",k=s&&a?M(T?.amount,T?.decimals):"0",w=!!s&&Ul(y,s.name),b=!Ki(f,c,g),N=!Ki(f,c,m),x=!g||!m||!m.gt(0)?null:tt(g.toString(),m.toString());return yn.createElement(Zm,null,yn.createElement(Jm,null,yn.createElement(ed,{label:Rm.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:M(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),yn.createElement(hs,null)),yn.createElement(ed,{sharpBottomStyle:!i&&(!!f||e),label:Rm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(tt(g,m),2,2),warningLevel:Nt(x??0),price:{value:M(d,6,6),usdValue:N?void 0:M(m,4,4),realValue:d?.toString(),realUsdValue:N?void 0:m?.toString(),error:N?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}r(ys,"Inputs");import{useCallback as $C,useEffect as FC,useRef as OC,useState as UC}from"react";function td(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,i)=>await Ot().getAllRoutes(n,i)});return{fetch:t,loading:e,cancelFetch:o}}r(td,"useFetchAllQuotes");var QC=600;function Yr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=td(),{excludeLiquiditySources:n,features:i,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:y,setSelectedQuote:S,updateQuotePartialState:T}=Y(),{slippage:C,customSlippage:k,affiliatePercent:w,affiliateRef:b,affiliateWallets:N,fetchStatus:x}=h(),v=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),I=h().excludeLiquiditySources(),{findToken:_}=h(),[Q,A]=UC(!0),z=OC(u),j=k??C,B=!l||!p||Rt(l,p)||!Vo(u),Z=r(ne=>{A(ne)},"resetState"),ie=r(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve}=ne;if(Q||Z(!0),!B&&ge&&Ce){m();let Ke=Ip({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve,enableCentralizedSwappers:a});Rl("experimentalRoute",i)&&(Ke.experimental=!0),e(Ke).then(we=>{let de=nr(d,we.results),W=Qp(g,de,we.requestAmount);A(!1),T("quotes",we),S(W),Hr({diagnosisMessages:we.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&bo(W,{fromToken:ge,toToken:Ce,userSlippage:j,findToken:_});T("warning",V)}).catch(we=>{let{error:de}=Gr(we);(de?.type===0||de?.type===1)&&m(),de?.type!==2&&(T("error",de),A(!1))})}},"fetch"),J=$C(El(ne=>{ie(ne)},QC),[B]);return FC(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(g||f||y)&&m();return}if(!Vo(u)||c?.eq(0)){Z(!1),o();return}m(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:j,affiliateRef:b,affiliatePercent:w,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,v?.length,n,E.length,j,b,w,JSON.stringify(N)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:j,affiliateRef:b,affiliatePercent:w,affiliateWallets:N}),loading:Q}}r(Yr,"useSwapInput");function od(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ye.emit("uiEvent",{type:t.type,payload:n}),o||e()}r(od,"emitPreventableEvent");var XC=HC("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),jC=300;function ad(){let t=KC(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:i,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=Y(),[m,f]=id(!1),{isLargeScreen:y,isExtraLargeScreen:S}=_r(),{fetch:T,loading:C}=Yr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:b}=te(),{isActiveTab:N}=ae(),[x,v]=id(!1),I=kp({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:i,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),_=Kl(y,S,k?.variant),Q=!!n&&!!e&&!!o&&new VC(n).gt(0)&&!Dp(e,o),A=Q&&w==="success"&&C,G=(!_||_&&p?.results.length)&&(l||s);rd(()=>{c(),d("refetchQuote",!0)},[]),rd(()=>{f(Q)},[Q]);let B=(i||s)&&!x?T:void 0,Z=r(J=>{_&&m?(f(!1),setTimeout(()=>{t(J)},jC)):t(J)},"onHandleNavigation"),ie=r(J=>{i?.requestId!==J.requestId&&(v(!1),u(J))},"onClickOnQuote");return He.createElement(XC,null,He.createElement(ce,{height:"auto",footer:He.createElement(qC,{type:"primary",size:"large",disabled:I.disabled||!N,prefix:I.action==="confirm-warning"&&He.createElement(GC,null),fullWidth:!0,onClick:()=>{I.action==="connect-wallet"?od({type:"clickConnectWallet"},()=>Z(q.wallets)):I.action==="confirm-warning"?v(!0):Z(q.confirmSwap)}},I.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||zC.t("Swap"),suffix:He.createElement(ao,{hidden:_?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},He.createElement(fe,null,He.createElement(ys,{fetchingQuote:A,fetchMetaStatus:w,isExpandable:_,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(nd,{size:"2"}),_?null:He.createElement(go,{quote:i,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),Z(q.routes)}:void 0}),G?He.createElement(He.Fragment,null,He.createElement(nd,{size:"10"}),He.createElement(nn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:T,showWarningModal:x,confirmationDisabled:!N,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),g(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),_?He.createElement(ds,{loading:A,onClickOnQuote:ie,fetch:T,onClickRefresh:B,isVisible:m}):null)}r(ad,"Home");import{i18n as sd}from"@lingui/core";import{Alert as YC,Divider as ZC,List as JC,ListItemButton as RC,Radio as ek,RadioRoot as tk,Typography as ok}from"@rango-dev/ui";import bt from"react";function Kt(){let{setLanguage:t,language:e,config:o}=h(),n=tp,i=o?.language||wo;return{activeLanguage:e||i,languages:n,defaultLanguage:i,changeLanguage:a=>t(a||wo),resetLanguage:()=>t(null)}}r(Kt,"useLanguage");function ld(){let{activeLanguage:t,changeLanguage:e,languages:o}=Kt(),n=nt(),i=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:bt.createElement(ok,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:bt.createElement(ek,{value:s}),start:bt.createElement(p,null)}});return bt.createElement(ce,{header:{title:sd.t("Language")}},bt.createElement(fe,null,bt.createElement(YC,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),bt.createElement(ZC,{size:"8"}),bt.createElement(tk,{value:t},bt.createElement(JC,{type:bt.createElement(RC,{title:sd.t("language"),id:"_",onClick:()=>console.log()}),items:i}))))}r(ld,"LanguagePage");import{i18n as _t}from"@lingui/core";import{Button as sk,Checkbox as lk,Image as pk,ListItemButton as ck,NotFound as uk,Typography as mk}from"@rango-dev/ui";import ze,{useState as dk}from"react";import{Checkbox as ik,Skeleton as cd}from"@rango-dev/ui";import Tn from"react";import{styled as Ss}from"@rango-dev/ui";var Sn=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 nk,styled as rk}from"@rango-dev/ui";var pd=rk(nk,{height:61});var ak=30;function ks(){return Tn.createElement(Sn,null,Array.from(Array(ak),(t,e)=>Tn.createElement(pd,{hasDivider:!0,key:e,start:Tn.createElement(cd,{variant:"circular",width:35,height:35}),title:Tn.createElement(cd,{variant:"text",size:"large",width:90}),end:Tn.createElement(ik,{checked:!1})})))}r(ks,"LoadingLiquiditySourceList");function vs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[i,a]=dk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Hn(o,n),u={Exchanges:_t.t("Exchanges"),Bridges:_t.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(T=>c.includes(T.type)),d=g.length===g.filter(T=>T.selected).length,m=r(()=>{g.forEach(T=>{d?s(T.groupTitle):T.selected||s(T.groupTitle)})},"toggleAllSources"),f=g.map(T=>{let{selected:C,groupTitle:k,logo:w}=T;return{start:ze.createElement(pk,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(lk,{checked:C,disabled:l}),title:ze.createElement(mk,{variant:"title",size:"xmedium"},_t.t(k)),...T}}),y=r(T=>{let C=T.target.value;a(C)},"searchHandler"),S=f;return i&&(S=f.filter(T=>Tt(T.groupTitle,i))),ze.createElement(ce,{header:{title:_t.t(t),suffix:ze.createElement(Ts,null,ze.createElement(sk,{variant:"ghost",size:"xsmall",onClick:m},d?_t.t("Deselect all"):_t.t("Select all")))}},ze.createElement(fe,{view:!0},ze.createElement(Bt,{value:i,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:_t.t("Search {sourceType}",{sourceType:u[t]}),onChange:y}),e==="loading"&&ze.createElement(ks,null),!S.length&&i?ze.createElement(Cs,null,ze.createElement(uk,{title:_t.t("No results found"),description:_t.t("Try using different keywords")})):e==="success"&&ze.createElement(Sn,{disabled:l},S.map(T=>{let{groupTitle:C,...k}=T;return ze.createElement(ze.Fragment,{key:T.id},ze.createElement(ck,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}r(vs,"LiquiditySourcePage");import{i18n as fk}from"@lingui/core";import Zr from"react";import{useNavigate as gk}from"react-router-dom";function ud(){let t=gk(),e=nt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:i,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=Yr({refetchQuote:n}),u=r(d=>{i(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,g=`../${q.wallets}`;return Zr.createElement(ce,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:fk.t("Routes"),suffix:Zr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Zr.createElement(fe,null,Zr.createElement(hn,{fetch:l,loading:p,onClickOnQuote:u})))}r(ud,"RoutesPage");import{i18n as Td}from"@lingui/core";import{Divider as Cd,getCategoriesCount as xk,SelectableCategoryList as bk}from"@rango-dev/ui";import Dt,{useState as kd}from"react";import{i18n as ws}from"@lingui/core";import{Divider as yd,Image as Tk,ListItemButton as Ck,NotFound as kk,Typography as Sd}from"@rango-dev/ui";import at,{useEffect as vk,useState as wk}from"react";var md=r((t,e,o)=>t.filter(n=>Wn(n.type,o)).filter(n=>It(n.name,e)||It(n.displayName,e)),"filterBlockchains");import{ImageContainer as hk,styled as dd}from"@rango-dev/ui";var fd=dd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Jr=dd(Zo,{padding:0,margin:0,listStyle:"none",[`& ${hk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as yk,Skeleton as gd}from"@rango-dev/ui";import Rr from"react";var Sk=20;function hd(){return Rr.createElement(Jr,null,Array.from(Array(Sk),t=>Rr.createElement(yk,{key:t,hasDivider:!0,start:Rr.createElement(gd,{variant:"circular",width:35,height:35}),title:Rr.createElement(gd,{variant:"text",size:"large",width:90})})))}r(hd,"LoadingBlockchainList");function xs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:i}=t,[a,s]=wk(e),{fetchStatus:l}=h();vk(()=>{s([...md(e,o,i)])},[e,o,i]);let p=r(()=>!a.length&&o?at.createElement(at.Fragment,null,at.createElement(yd,{size:32}),at.createElement(kk,{title:ws.t("No results found"),description:ws.t("Try using different keywords")})):at.createElement(Jr,{as:"ul",key:`${i}-${o}`},a.map(u=>at.createElement(Ck,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:at.createElement(Tk,{src:u.logo,size:30}),title:at.createElement(Sd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return at.createElement(fd,null,at.createElement(Sd,{variant:"label",size:"large"},ws.t("Select Blockchain")),at.createElement(yd,{size:4}),l==="loading"&&at.createElement(hd,null),l==="success"&&p())}r(xs,"BlockchainList");function bs(t){let{type:e}=t,o=nt(),[n,i]=kd(""),[a,s]=kd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=xk(c)!==1;return Dt.createElement(ce,{header:{title:Td.t("Select Blockchain")}},Dt.createElement(fe,{view:!0},d&&Dt.createElement(Dt.Fragment,null,Dt.createElement(bk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Dt.createElement(Cd,{size:24})),Dt.createElement(Bt,{value:n,autoFocus:!0,placeholder:Td.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>i(""),onChange:m=>i(m.target.value)}),Dt.createElement(Cd,{size:16}),Dt.createElement(xs,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}r(bs,"SelectBlockchainPage");import{i18n as ri}from"@lingui/core";import{Divider as zd}from"@rango-dev/ui";import ho,{useState as zk}from"react";import{useNavigate as qk}from"react-router-dom";import{i18n as As}from"@lingui/core";import{BlockchainsChip as ei,Divider as bd,Image as Ed,Skeleton as Wk,Tooltip as Mk,Typography as Ns}from"@rango-dev/ui";import Le from"react";import{useEffect as Ak}from"react";var vd=["ETH","COSMOS","OSMOSIS"];function Es(t,e,o){let n=JSON.parse(JSON.stringify(t)),i=[];if(n.sort(Ek),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(Ik(s)),i=n.splice(a)}return{list:n,more:i}}r(Es,"prepare");function Ek(t,e){let o=vd,n=o.findIndex(l=>l===t.name),i=o.findIndex(l=>l===e.name),a=n>-1,s=i>-1;return a&&s?n>i?1:-1:a?-1:s?1:0}r(Ek,"sortByMostUsedBlockchains");function Ik(t){return r(function(o,n){let i=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=i>-1,l=a>-1;return s&&l?i>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}r(Ik,"generateSortByPreferredBlockchainsFor");function wd(t,e){return!!e.list.find(o=>o.name===t)}r(wd,"isInVisibleList");function Is(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Ak(()=>{if(e?.selected){let a=Es(t,o,e);wd(e.selected,a)||n(e?.selected)}},[e?.selected]);let i=Es(t,o,e);return{list:i.list,more:i.more,history:[]}}r(Is,"usePrepareBlockchainList");import{styled as Nk}from"@rango-dev/ui";var xd=Nk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Lk=12;function Ws(t){let{blockchains:e,type:o,blockchain:n,onChange:i,onMoreClick:a}=t,s=Is(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,g=s.more.length===1,d=!g&&c;return Le.createElement(Le.Fragment,null,Le.createElement(bd,{size:12}),Le.createElement(Ns,{variant:"label",size:"large"},As.t("Select Blockchain")),Le.createElement(bd,{size:12}),Le.createElement(xd,null,l==="loading"&&Array.from(Array(Lk),m=>Le.createElement(Wk,{key:m,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(ei,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(Ns,{variant:"body",size:"xsmall",color:"secondary500"},As.t("All"))),s.list.map(m=>Le.createElement(Mk,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:P()},Le.createElement(ei,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>i(m)},Le.createElement(Ed,{src:m.logo,size:30})))),g?Le.createElement(ei,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>i(s.more[0])},Le.createElement(Ed,{src:s.more[0].logo,size:30})):null,d?Le.createElement(ei,{onClick:a,key:"more-blockchains"},Le.createElement(Ns,{variant:"body",size:"xsmall",color:"secondary500"},As._("More +{count}",{count:s.more.length}))):null)))}r(Ws,"BlockchainsSection");import{i18n as Us}from"@lingui/core";import{darkTheme as $d,Divider as Uo,ExternalLinkIcon as _k,Image as Dk,ListItemButton as $k,NotFound as Fk,PinIcon as Ok,Skeleton as Fd,Typography as ni,VirtualizedList as Uk}from"@rango-dev/ui";import X,{useEffect as Od,useState as Ud}from"react";import{Divider as _d,ListItem as Pk,Skeleton as Cn}from"@rango-dev/ui";import gt from"react";import{css as Oo,darkTheme as Id,ImageContainer as Bk,styled as st,Typography as Ad}from"@rango-dev/ui";var Ms=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ls=Oo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Bs=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ps=Oo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Id} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),_s=Oo({}),Ds=Oo(),Nd=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),$s=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ti=st("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=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Os=st(Ad,{}),Wd=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ds}`]:{$$color:"$colors$neutral600",[`.${Id} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),oi=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),HU=st("div",{display:"flex",alignItems:"center"}),Md=st("div",{position:"relative",[`& ${Bk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Ld=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Bd=st(Ad,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Pd=st("a",{"& svg:hover":{color:"$colors$info"}});function Dd(t){return gt.createElement(ti,null,Array.from(Array(t.size),e=>gt.createElement(Pk,{key:e,hasDivider:!0,start:gt.createElement(Cn,{variant:"circular",width:35,height:35}),end:gt.createElement(oi,null,gt.createElement(Cn,{variant:"text",size:"large",width:70}),gt.createElement(_d,{size:4}),gt.createElement(Cn,{variant:"text",size:"medium",width:50})),title:gt.createElement("div",null,gt.createElement(Cn,{variant:"text",size:"large",width:90}),gt.createElement(_d,{size:4}),gt.createElement(Cn,{variant:"text",size:"medium",width:90}))})))}r(Dd,"LoadingTokenList");var Qs=20,Qk=r(t=>{let{address:e,name:o,url:n,token:i,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(ni,{variant:"title",size:"xmedium"},i.symbol),X.createElement(Uo,{direction:"horizontal",size:4}),X.createElement(Fs,{css:a},X.createElement(Os,{variant:"body",size:"xsmall",css:s},i.blockchain))),!!e&&X.createElement("div",{className:`${Ps()} ${!o&&_s()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Uo,{size:4,direction:"horizontal"}),X.createElement(Pd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(_k,{size:12}))))},"renderDesc");function Qd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:i}=t,[a,s]=Ud(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Ud(!0),{getBalanceFor:g,loading:d}=te(),{isTokenPinned:m}=h(),f=r(()=>{s(e.slice(0,a.length+Qs))},"loadNextPage");Od(()=>{c(e.length>a.length)},[a.length]),Od(()=>{s(e.slice(0,Qs))},[e.length,i]);let y=r(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Uo,{size:32}),X.createElement(Fk,{title:Us.t("No results found"),description:Us.t("Try using different keywords")})):X.createElement(Uk,{endReached:u?f:void 0,itemContent:S=>{let T=a[S],C=On(g(T)),k=T.address||"",w=p.find(v=>v.name===T.blockchain),b=la(w.color,"main"),N={$$color:b.main150,[`.${$d} &`]:{$$color:b.main750},backgroundColor:"$$color"},x={$$color:b.main750,[`.${$d} &`]:{$$color:b.main150},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement($k,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${T.symbol}${T.address}`,id:`${T.symbol}${T.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:X.createElement(Md,null,X.createElement(Dk,{src:T.image,size:30}),m(T,t.type)&&X.createElement(Ld,null,X.createElement(Ok,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||T.name||!T.name&&!k?X.createElement($s,null,X.createElement(ni,{variant:"title",size:"xmedium"},T.symbol),X.createElement(Uo,{direction:"horizontal",size:4}),X.createElement(Fs,{css:N},X.createElement(Os,{variant:"body",size:"xsmall",css:x},T.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?Qk({address:k,token:a[S],customCssForTag:N,customCssForTagTitle:x,name:T.name,url:w.info.addressUrl.split("{wallet}").join(k)}):T.name||void 0,end:d?X.createElement(oi,null,X.createElement(Fd,{variant:"text",size:"large",width:70}),X.createElement(Uo,{size:4}),X.createElement(Fd,{variant:"text",size:"medium",width:50})):C&&X.createElement(Wd,null,X.createElement(Bd,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(ni,{variant:"body",className:Ds(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${i}-${o}`}),"renderList");return X.createElement(Nd,null,X.createElement(ni,{variant:"label",size:"large"},Us.t("Select Token")),X.createElement(Uo,{size:4}),l==="loading"&&X.createElement(Dd,{size:Qs}),l==="success"&&X.createElement(ti,{as:"ul"},y()))}r(Qd,"TokenList");function zs(t){let{type:e}=t,o=qk(),n=nt(),{fromBlockchain:i,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[g,d]=zk(""),f=(e==="source"?i:a)?.name??"",y=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:c}),T=r(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),C=r(w=>{e==="source"?s({token:w,meta:{blockchains:y,tokens:S}}):l({token:w,meta:{blockchains:y,tokens:S}})},"updateToken"),k={source:ri.t("Source"),destination:ri.t("Destination")};return ho.createElement(ce,{header:{title:ri.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(Ws,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?i:a,onMoreClick:()=>o(q.blockchains),onChange:w=>{T(w)}}),ho.createElement(zd,{size:24}),ho.createElement(Bt,{value:g,autoFocus:!0,placeholder:ri.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:w=>d(w.target.value)}),ho.createElement(zd,{size:16}),ho.createElement(Qd,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:w=>{C(w);let b=y.find(N=>w.blockchain===N.name);b&&T(b),n()}})))}r(zs,"SelectSwapItemsPage");import{i18n as Vs}from"@lingui/core";import{Alert as fv,Button as gv,styled as hv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as yv,useSearchParams as Sv}from"react-router-dom";import{i18n as Xd}from"@lingui/core";import{Divider as Kk,InfoIcon as Xk,TextField as jk,Tooltip as Yk,Typography as jd}from"@rango-dev/ui";import ht from"react";import{Chip as Hk,styled as kn,TextField as Gk}from"@rango-dev/ui";var qd=kn("div",{paddingTop:"$5",padding:"$10 $5"}),Hd=kn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Gk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Gd=kn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ii=kn("div",{maxWidth:"280px",padding:"$10"}),Vd=kn(Hk,{width:"61px",flexShrink:0});import{i18n as qs}from"@lingui/core";import{Typography as Vk}from"@rango-dev/ui";import vn from"react";function Kd(){return vn.createElement(ii,null,vn.createElement(Vk,{variant:"label",size:"medium",color:"neutral700"},qs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),vn.createElement("br",null),vn.createElement("br",null),vn.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.")))}r(Kd,"SlippageTooltipContent");function Hs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ht.createElement(qd,null,ht.createElement(Gd,null,ht.createElement(jd,{variant:"title",size:"xmedium"},Xd.t("Slippage tolerance per swap")),ht.createElement(Kk,{direction:"horizontal",size:4}),ht.createElement(Yk,{container:P(),side:"top",sideOffset:4,content:ht.createElement(Kd,null)},ht.createElement(Xk,{color:"gray"}))),ht.createElement(Hd,null,op.map((i,a)=>{let s=`slippage-${a}`;return ht.createElement(Vd,{key:s,onClick:()=>{o&&n(null),e(i)},selected:!o&&i===t,label:`${i.toString()}%`})}),ht.createElement(jk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:i=>{let a=i.target.value,s=parseFloat(a);s>=ap&&s<=ip?n(s):n(null)},suffix:o&&ht.createElement(jd,{variant:"body",size:"small"},"%"),placeholder:Xd.t("Custom")})))}r(Hs,"Slippage");import{i18n as Et}from"@lingui/core";import{AutoThemeIcon as Yd,BridgesIcon as Zk,ChevronRightIcon as Gs,DarkModeIcon as Zd,Divider as ai,ExchangeIcon as Jk,InfinityIcon as Rk,InfoIcon as ev,LanguageIcon as tv,LightModeIcon as Jd,List as ov,ListItem as nv,ListItemButton as rv,Skeleton as iv,styled as av,Switch as sv,Tabs as lv,Tooltip as pv,Typography as lt}from"@rango-dev/ui";import U from"react";import{useNavigate as cv}from"react-router-dom";var uv=av("div",{width:"202px",height:"$40"}),mv=[{id:"light",icon:U.createElement(Jd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Light"))},{id:"dark",icon:U.createElement(Zd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Dark"))},{id:"auto",icon:U.createElement(Yd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Auto"))}],dv=r(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Yd,{...e});case"dark":return U.createElement(Zd,{...e});default:return U.createElement(Jd,{...e})}},"getThemeIcon");function Rd(){let t=cv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:i,languages:a}=Kt(),s=a.find(z=>z.local===i)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),g=et("theme",c),d=et("liquiditySource",c),m=et("language",c),f=h().infiniteApprove,y=h().toggleInfiniteApprove,S=Hn(p,u),T=S.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),C=T.length,k=T.filter(z=>z.selected).length,w=S.filter(z=>z.type==="DEX"),b=w.length,N=w.filter(z=>z.selected).length,x=r((z,j)=>{switch(l){case"loading":return U.createElement(iv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(lt,{variant:"body",size:"medium",color:"$error500"},Et.t("Loading failed"));default:return U.createElement(lt,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,C),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(Zk,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Exchanges")),end:U.createElement(U.Fragment,null,x(N,b),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),start:U.createElement(Jk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},I={id:"language-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Language")),start:U.createElement(tv,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"body",size:"medium"},s),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Gs,{color:"black"})),onClick:()=>t(q.languages)},_={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Infinite approval")),U.createElement(ai,{direction:"horizontal",size:4}),U.createElement(pv,{side:"top",sideOffset:4,container:P(),content:U.createElement(ii,null,U.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},Et.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(ev,{color:"gray"}))),start:U.createElement(Rk,{color:"gray",size:16}),end:U.createElement(sv,{checked:f}),onClick:y},Q={id:"theme-item",type:U.createElement(nv,null),title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Theme")),end:U.createElement(uv,null,U.createElement(lv,{container:P(),items:mv,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:dv(n)},A=d?[]:[v,E];return m||A.push(I),A.push(_),!e?.singleTheme&&!g&&A.push(Q),U.createElement(ov,{type:U.createElement(rv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}r(Rd,"SettingsLists");var Tv=hv("div",{paddingLeft:"$8"});function ef(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Sv(),i=yv(),a=r(()=>{i&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:Vs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(fv,{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:yo.createElement(Tv,null,yo.createElement(gv,{type:"secondary",size:"small",onClick:a},Vs.t("Reset")))}),yo.createElement(Hs,null),yo.createElement(Rd,null)))}r(ef,"SettingsPage");import{i18n as rw}from"@lingui/core";import{cancelSwap as iw}from"@rango-dev/queue-manager-rango-preset";import{useManager as aw}from"@rango-dev/queue-manager-react";import{Alert as sw}from"@rango-dev/ui";import cl from"react";import{useParams as lw}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ov,getCurrentStep as Uv,getRelatedWalletOrNull as Qv}from"@rango-dev/queue-manager-rango-preset";import{Button as Bf,CopyIcon as zv,Divider as qv,DoneIcon as Hv,IconButton as Gv,QuoteCost as Vv,RangoExplorerIcon as Kv,StepDetails as Xv,Tooltip as Pf,Typography as To,useCopyToClipboard as jv}from"@rango-dev/ui";import{useWallets as Yv}from"@rango-dev/wallets-react";import _f from"bignumber.js";import{PendingSwapNetworkStatus as gi}from"rango-types";import R,{useEffect as Df,useRef as Zv,useState as $f}from"react";import{useNavigate as Jv}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Cv=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.t("Saturday")];function tf(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),i=e.getFullYear();return`${e.getDay()===new Date().getDay()?Xt.t("Today"):`${Cv[e.getDay()]} ${o} ${n} ${i}`}, ${new Date(t).toLocaleTimeString()}`}r(tf,"timeSince");function of(t){return t.finishTime?tf(parseInt(t.finishTime)):tf(parseInt(t.creationTime))}r(of,"getSwapDate");import{PendingSwapNetworkStatus as pi}from"rango-types";import ci from"react";import{i18n as si}from"@lingui/core";import{Button as nf,Divider as Ks,MessageBox as kv}from"@rango-dev/ui";import jt from"react";var rf=r(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Ks,{size:20}),jt.createElement(kv,{type:"error",title:si.t("Cancel Swap"),description:si.t("Are you sure you want to cancel this swap?")}),jt.createElement(Ks,{size:32}),jt.createElement(nf,{variant:"contained",type:"primary",size:"large",onClick:t},si.t("Yes, Cancel it")),jt.createElement(Ks,{size:12}),jt.createElement(nf,{variant:"outlined",type:"primary",size:"large",onClick:e},si.t("No, Continue"))),"CancelContent");import{i18n as li}from"@lingui/core";import{Button as af,Divider as Xs,MessageBox as vv,Typography as wv}from"@rango-dev/ui";import $t from"react";var sf=r(({onDelete:t,onClose:e})=>$t.createElement($t.Fragment,null,$t.createElement(Xs,{size:20}),$t.createElement(vv,{type:"error",title:li.t("Delete Transaction"),description:li.t("Are you sure you want to delete this swap?")}),$t.createElement(Xs,{size:32}),$t.createElement(af,{variant:"contained",type:"primary",size:"large",onClick:t},li.t("Yes, Delete it")),$t.createElement(Xs,{size:12}),$t.createElement(af,{variant:"outlined",type:"primary",size:"large",onClick:e},$t.createElement(wv,{variant:"title",size:"medium",color:"primary"},li.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 Js}from"@rango-dev/logging-core";import{MessageBox as xv,Wallet as bv}from"@rango-dev/ui";import{useWallets as Ev}from"@rango-dev/wallets-react";import So,{useState as cf}from"react";import{styled as lf}from"@rango-dev/ui";var pf=lf("div",{display:"flex",justifyContent:"center"}),Lz=lf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var uf=r(t=>{let{type:e,title:o,currentStepWallet:n,message:i,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Ev(),[c,g]=cf(null),[d,m]=cf(null),f=n?.walletType,y=f?Li(u(f)):null,S=f?p(f):null,T=a&&!!f&&!!y&&!!S,C=r(()=>{c&&g({...c,open:!1})},"handleCloseNamespaceModal"),k=r(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),w=r(N=>{S?.needsDerivationPath&&S?.singleNamespace&&N[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Js(x)),C()},"handleConfirmNamespaces"),b=r(N=>{N&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:N}]).catch(x=>Js(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(xv,{type:e,title:o,description:i}),T&&So.createElement(pf,null,So.createElement(bv,{container:P(),title:S.name,image:S.img,type:f,state:y,link:S.installLink,disabled:s,onClick:async()=>{S.namespaces?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):l(f).catch(N=>Js(N))}})),So.createElement(po,{open:!!c?.open,onClose:C,onConfirm:w,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:b}))},"WalletStateContent");function Rs(t){let{state:e,onClose:o,onDelete:n,onCancel:i,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===pi.WaitingForNetworkChange||e===pi.WaitingForConnectingWallet||e===pi.NetworkChanged;return ci.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ci.createElement(uf,{type:Zs[e].type,title:Zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==pi.WaitingForNetworkChange}),e==="delete"&&ci.createElement(sf,{onClose:o,onDelete:n}),e==="cancel"&&ci.createElement(rf,{onClose:o,onCancel:i}))}r(Rs,"SwapDetailsModal");import{i18n as wn}from"@lingui/core";import{Button as el,Divider as ui,MessageBox as mf,TokenAmount as Iv,Typography as tl}from"@rango-dev/ui";import Pe from"react";import{useNavigate as Av}from"react-router-dom";function ol(t){let{open:e,onClose:o,status:n,priceValue:i,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:g,diagnosisUrl:d}=t,m=Av();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(mf,{type:"success",title:wn.t("Swap Successful")},Pe.createElement(Iv,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:i,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(ui,{size:12}),Pe.createElement(tl,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Pe.createElement(mf,{type:"error",title:wn.t("Transaction Failed"),description:g}),Pe.createElement(ui,{size:32}),n==="success"&&Pe.createElement(el,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Pe.createElement(tl,{variant:"title",size:"medium",color:"neutral100"},wn.t("Done"))),Pe.createElement(ui,{size:12}),d&&Pe.createElement(Pe.Fragment,null,Pe.createElement(el,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},wn.t("Diagnosis")),Pe.createElement(ui,{size:12})),Pe.createElement(el,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(tl,{variant:"title",size:"medium",color:"primary"},wn.t("See Details"))))}r(ol,"SwapDetailsCompleteModal");import Fv from"react";import{i18n as Pv}from"@lingui/core";import{Alert as Nf,IconButton as _v,LinkIcon as Dv}from"@rango-dev/ui";import Yt,{Fragment as $v}from"react";import{Alert as Wv,ChevronDownIcon as Mv,IconButton as Lv}from"@rango-dev/ui";import zo,{useState as Bv}from"react";import{css as xn,darkTheme as df,styled as Ft,Typography as Nv}from"@rango-dev/ui";var ff=Ft("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),mi=Ft("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${df} &`]:{color:"$secondary500"}}}}}),gf=Ft(Zo,{padding:"$0 $20 $20 $20"}),gq=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),hf=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),hq=Ft("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Qo=xn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${df} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),yf=xn({padding:"$5 0"}),di=xn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Sf=xn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Tf=xn({width:"100%",padding:"0 $20 $10"}),Cf=Ft("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),kf=Ft("div",{display:"flex",flexDirection:"column",gap:"$5"}),fi=Ft(Nv,{wordBreak:"break-word"});import{styled as nl}from"@rango-dev/ui";var vf=nl("div",{display:"flex",flexDirection:"column",gap:"$10"}),wf=nl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),xf=nl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function bf(t){let{message:e}=t,[o,n]=Bv(!1);return zo.createElement(Wv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&zo.createElement(Lv,{onClick:()=>n(i=>!i),variant:"ghost",size:"xsmall"},zo.createElement(wf,{rotated:o},zo.createElement(Mv,{size:12,color:"gray"}))),footer:zo.createElement(xf,{open:o},zo.createElement(fi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}r(bf,"FailedAlert");import{i18n as Ef}from"@lingui/core";import{Alert as rl,Button as If}from"@rango-dev/ui";import{PendingSwapNetworkStatus as il}from"rango-types";import bn from"react";function Af(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:i}=t;return e?bn.createElement(rl,{type:"warning",title:n.shortMessage,action:bn.createElement(If,{size:"xxsmall",type:"warning",onClick:()=>{o(il.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Ef.t("Change"))}):i===il.WaitingForConnectingWallet?bn.createElement(rl,{type:"warning",title:n.shortMessage,action:bn.createElement(If,{size:"xxsmall",type:"warning",onClick:()=>{o(il.WaitingForConnectingWallet)}},Ef.t("Connect"))}):bn.createElement(rl,{type:"warning",title:n.shortMessage})}r(Af,"WarningAlert");function al(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:i,step:a,hasAlreadyProceededToSign:s}=t,l=jo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(vf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,y=d===m.length-1,S=(y&&u||p)&&!c,T=y&&a.status==="failed";return Yt.createElement($v,{key:f},Yt.createElement(Nf,{type:y&&(S&&"loading"||T&&"error")||"success",title:g.description?`${g.description} Tx`:Pv.t("View transaction"),action:g.url&&Yt.createElement(_v,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Yt.createElement(Dv,{size:12}))}))}),c&&Yt.createElement(Nf,{type:"loading",title:i.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(Af,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:i}),a.status==="failed"&&Yt.createElement(bf,{message:i}))}r(al,"SwapDetailsAlerts");var Wf=2e3;var Mf=r(({swap:t,blockchains:e,swappers:o,...n})=>{let i=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Ho(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Ho(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Fv.createElement(al,{step:a,hasAlreadyProceededToSign:i,...n})}})},"getSteps");function Lf(t){if(jo(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}r(Lf,"getStepState");function sl(t){let{swap:e,requestId:o,onDelete:n,onCancel:i}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Yv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),g=Y.use.retry(),d=ae.use.isActiveTab(),m=Jv(),[f,y]=jv(Wf),S=Zv(null),[T,C]=$f(null),[k,w]=$f(null),b=r(()=>{i(),C(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),v=N(),E=Uv(e),I=E?.networkStatus;Df(()=>{v.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),x(e.requestId)):k&&w(null))},[e.status,e.requestId]),Df(()=>{B?C(gi.WaitingForNetworkChange):I===gi.WaitingForConnectingWallet||I===gi.NetworkChanged?C(I):C(null)},[I]);let _=Bp(e),Q=E?Ov(e,E):null,A=E?Qv(e,E):null,z=of(e),j=Pp(e),G=r(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=I===gi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Lp(e,E),J=Mf({swap:e,switchNetwork:Z,showNetworkModal:I,setNetworkModal:C,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,W)=>de+parseFloat(W.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),pt=D?new _f(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new _f(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=tt(_e,se),Ke=ie.detailedMessage.content||ie.shortMessage,we=e.status==="success"?Je.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:Un(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):R.createElement(kf,null,R.createElement(To,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ke?"":Je.t("Transaction was not sent."),_?`${Je.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:_.outputAmount,symbol:_.symbol,blockchain:_.blockchain}})}`:""),Ke&&R.createElement(fi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",Ke));return R.createElement(ce,{header:{title:Je.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(No,null,R.createElement(Bf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},R.createElement(To,{size:"medium",variant:"label",color:"error"},Je.t("Delete"))))},footer:j&&!k&&R.createElement(Bf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=or(e,p,c);g(de),setTimeout(()=>{m("../../")},0)}},Je.t("Try again"))},R.createElement(fe,{compact:!0,view:!0},R.createElement(mi,null,R.createElement("div",{className:Qo()},R.createElement(To,{variant:"label",size:"large",color:"neutral700"},`${Je.t("Request ID")}:`),R.createElement("div",{className:di()},R.createElement(To,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Pf,{container:P(),content:f?Je.t("Copied To Clipboard"):Je.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},R.createElement(Gv,{variant:"ghost",onClick:y.bind(null,o||"")},f?R.createElement(Hv,{size:16,color:"secondary"}):R.createElement(zv,{size:16,color:"gray"}))),R.createElement(Cf,{target:"_blank",href:`${Sl}/swap/${o}`},R.createElement(Pf,{container:P(),content:Je.t("View on Rango Explorer"),side:"bottom"},R.createElement(Kv,{size:20}))))),R.createElement("div",{className:Qo()},R.createElement(To,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Je.t("Finished at"):Je.t("Created at")),R.createElement(To,{variant:"label",size:"small",color:"neutral700"},z))),R.createElement("div",{className:Sf()},R.createElement(Vv,{fee:M(String(L),2,2),time:Go(Bn(e.steps)),steps:ne}),R.createElement(an,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||""},token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image,displayName:J[ne-1].to.chain.displayName}},percentageChange:M(Ve,2,2),warningLevel:Nt(Ve??0)})),R.createElement("div",{className:Tf()},R.createElement(To,{variant:"title",size:"small"},Je.t("Swaps steps"))),R.createElement(qv,{size:8}),R.createElement(gf,{ref:S},J.map((de,W)=>{let V=W,K=Lf(e.steps[W]),Xe=K==="error"||K==="in-progress"||K==="warning"||K==="completed"&&W===J.length-1;return R.createElement(Xv,{key:V,step:de,type:"swap-progress",ref:S,state:K,hasSeparator:W!==0,tabIndex:V,isFocused:Xe,tooltipContainer:P()})}))),R.createElement(Rs,{state:T,onClose:()=>C(null),onCancel:b,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!d}),R.createElement(ol,{open:!!k,diagnosisUrl:me,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||"",percentageChange:M(Ve,2,2),token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image},description:we}))}r(sl,"SwapDetails");import{i18n as yi}from"@lingui/core";import{Divider as Uf,NotFound as nw,Skeleton as In,Typography as Si}from"@rango-dev/ui";import Te from"react";import{i18n as Rv}from"@lingui/core";import{Divider as ew,Skeleton as tw,Typography as ow}from"@rango-dev/ui";import ve from"react";import{css as yt,styled as ll}from"@rango-dev/ui";var Ff=ll("div",{width:"100%",height:"100%",padding:"$10 $20"}),En=ll("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),hi=ll("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),AH=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),NH=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),WH=yt({paddingTop:"$15",display:"flex"}),MH=yt({padding:"$15 $0"}),LH=yt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),BH=yt({paddingBottom:"$10"}),PH=yt({display:"flex",justifyContent:"start",alignItems:"center"}),_H=yt({paddingTop:"$5",display:"flex",alignItems:"center"}),DH=yt({display:"flex",alignItems:"center"}),$H=yt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Of=yt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function pl(){return ve.createElement(Ff,null,ve.createElement(pn,{type:"swap-preview"}),ve.createElement("div",{className:"swaps-steps"},ve.createElement(ow,{variant:"title",size:"small"},Rv.t("Swaps steps"))),ve.createElement(ve.Fragment,null,ve.createElement(En,null,ve.createElement(xt,{separator:!1}),ve.createElement("div",{className:Of()},ve.createElement(ew,{direction:"horizontal",size:20}),ve.createElement(tw,{height:22,variant:"rectangular"}))),ve.createElement(hi,null),ve.createElement(En,null,ve.createElement(xt,{separator:!1})),ve.createElement(hi,null),ve.createElement(En,null,ve.createElement(xt,{separator:!1})),ve.createElement(hi,null),ve.createElement(En,null,ve.createElement(xt,{separator:!1}))))}r(pl,"LoadingSwapDetails");function Qf(t){let{requestId:e,showSkeleton:o}=t;return Te.createElement(ce,{header:{title:yi.t("Swap Details"),suffix:Te.createElement(No,null)}},o&&Te.createElement(ff,null,Te.createElement(mi,null,Te.createElement("div",{className:Qo()},Te.createElement(Si,{variant:"label",size:"large",color:"neutral700"},`${yi.t("Request ID")}:`),Te.createElement("div",{className:di()},Te.createElement(Si,{variant:"label",size:"small",color:"neutral700"},Te.createElement(In,{width:60,height:10,variant:"rounded"})),Te.createElement(Uf,{direction:"horizontal",size:4}),Te.createElement(In,{width:16,height:16,variant:"rectangular"}),Te.createElement(Uf,{direction:"horizontal",size:4}),Te.createElement(In,{width:16,height:16,variant:"rectangular"}))),Te.createElement("div",{className:Qo()},Te.createElement(Si,{className:yf(),variant:"label",size:"large",color:"neutral700"},Te.createElement(In,{width:60,height:10,variant:"rounded"})),Te.createElement(Si,{variant:"label",size:"small",color:"neutral700"},Te.createElement(In,{width:60,height:10,variant:"rounded"})))),Te.createElement(pl,null)),!o&&Te.createElement(hf,null,Te.createElement(nw,{title:yi.t("Not found"),description:yi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}r(Qf,"SwapDetailsPlaceholder");function zf(){let{manager:t,state:e}=aw(),o=!e.loadedFromPersistor,n=rt(t),{requestId:i}=lw(),a=nt(),{fetchStatus:s}=h();if(!i)return cl.createElement(sw,{containerStyles:{margin:"20px"},type:"error",title:rw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=i?n.find(({swap:d})=>d.requestId===i):void 0,u=r(()=>{if(p?.id){let d=t?.get(p.id);d&&iw(d)}},"onCancel"),c=r(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?cl.createElement(Qf,{requestId:i,showSkeleton:l}):cl.createElement(sl,{swap:g,requestId:i,onCancel:u,onDelete:c})}r(zf,"SwapDetailsPage");function qf(){return Hp(),oa(),pw([{path:q.home,element:Ge.createElement(ad,null)},{path:q.routes,element:Ge.createElement(ud,null)},{path:q.fromSwap,children:[{index:!0,element:Ge.createElement(zs,{type:"source"})},{path:q.blockchains,element:Ge.createElement(bs,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ge.createElement(zs,{type:"destination"})},{path:q.blockchains,element:Ge.createElement(bs,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ge.createElement(ef,null)},{path:q.languages,element:Ge.createElement(ld,null)},{path:q.exchanges,element:Ge.createElement(vs,{sourceType:"Exchanges"})},{path:q.bridges,element:Ge.createElement(vs,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ge.createElement(Fm,null)},{path:q.swapDetails,element:Ge.createElement(zf,null)}]},{path:q.wallets,element:Ge.createElement(jc,null)},{path:q.confirmSwap,element:Ge.createElement(Em,null)}])}r(qf,"AppRoutes");import{useQueueManager as Sw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Tw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Cw}from"rango-sdk";import{useContext as kw,useEffect as Yf,useState as Zf}from"react";import{globalCss as cw}from"@rango-dev/ui";var Hf=r(()=>cw({"@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 Gf(){let{setWatermark:t}=ae();return{fetchApiConfig:r(async()=>{let o=await fetch(`${At("BASE_URL")}/meta/dapp/config?apiKey=${At("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}r(Gf,"useFetchApiConfig");import{useWallets as uw}from"@rango-dev/wallets-react";import{useEffect as mw,useRef as dw}from"react";function Vf(){let{connect:t,state:e}=uw(),o=dw({}),{fetchStatus:n}=h(),i=new URLSearchParams(location.search).get("autoConnect")||"",a=e(i);mw(()=>{n==="success"&&i&&a.installed&&!a.connecting&&!a.connected&&!o.current[i]&&(o.current[i]=!0,t(i))},[a,n])}r(Vf,"useForceAutoConnect");import{isApprovalTX as fw,RouteEventType as Kf,StepEventType as Xf,StepExecutionEventStatus as gw,WidgetEvents as Ti}from"@rango-dev/queue-manager-rango-preset";import{useEffect as jf}from"react";function ul(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();jf(()=>{let i=r(a=>{let{event:s,step:l,route:p}=a;if(s.type===Xf.TX_EXECUTION&&s.status===gw.TX_SENT&&!fw(l)||s.type===Xf.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 ye.on(Ti.StepEvent,i),()=>ye.off(Ti.StepEvent,i)},[ye,t]),jf(()=>{let i=r(a=>{let{event:s,route:l}=a;(s.type===Kf.FAILED||s.type===Kf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ye.on(Ti.RouteEvent,i),()=>ye.off(Ti.RouteEvent,i)},[ye])}r(ul,"useSubscribeToWidgetEvents");import{useManager as hw}from"@rango-dev/queue-manager-react";import{useEffect as yw}from"react";function ml(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=hw();yw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(rt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}r(ml,"useSyncNotifications");function dl(){Vf(),Hf(),ul(),ml();let t=h().blockchains(),{canSwitchNetworkTo:e}=xr(),[o,n]=Zf(""),[i,a]=Zf(),s=kw(Vn),l=t.filter(Cw),{fetchApiConfig:p}=Gf();Yf(()=>()=>qp(),[]),Sw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:i,evmChains:l,canSwitchNetworkTo:e}),Yf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Tw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}r(dl,"useBootstrap");import{styled as vw}from"@rango-dev/ui";var Jf=vw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ci(){dl();let{config:t}=h(),{activeTheme:e}=dr(t?.theme||{}),{activeLanguage:o}=Kt();return fl.createElement(ww,{language:o},fl.createElement(Jf,{id:"swap-container",className:e()},fl.createElement(qf,null)))}r(Ci,"Main");import{setSolanaSignerConfig as qw}from"@rango-dev/signer-solana";import hl,{useEffect as ng,useMemo as Hw}from"react";import{useState as xw}from"react";var bw=r(()=>{let[t,e]=xw(null),o=r(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=r(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:r(a=>{n();let s=Al(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Rf=bw;import{checkWaitingForNetworkChange as Ew,makeQueueDefinition as Iw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Aw}from"@rango-dev/queue-manager-react";import{useWallets as Nw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Ww}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Mw}from"rango-types";import Lw,{useMemo as Bw}from"react";function Pw(t){let{providers:e,getSigners:o,state:n,connect:i,canSwitchNetworkTo:a,getWalletInfo:s}=Nw(),l=Bw(()=>Iw({API_KEY:t.apiKey||At("API_KEY"),BASE_URL:At("BASE_URL"),emitter:{emit:ye.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},g=r(async(k,w)=>{if(a(k,w))return i(k,w)},"switchNetwork"),d=r(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),f=p.filter(Mw),y=r(k=>{let{supportedChains:w}=s(k);return Dn(w)},"getSupportedChainNames"),S=e(),T={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:Ww(f),getSupportedChainNames:y},getSigners:o,wallets:c,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:i,state:n,isMobileWallet:d},C=ae.use.isActiveTab();return Lw.createElement(Aw,{queuesDefs:[l],context:T,onPersistedDataLoaded:k=>{Ew(k)},isPaused:!C},t.children)}r(Pw,"QueueManager");var eg=Pw;import{useManager as Ow}from"@rango-dev/queue-manager-react";import Uw,{createContext as Qw,useContext as zw}from"react";import{cancelSwap as _w,getCurrentBlockchainOfOrNull as Dw,getCurrentStep as $w,getRelatedWalletOrNull as Fw}from"@rango-dev/queue-manager-rango-preset";var ki=class{static{r(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return rt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=or(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&_w(o)}getCurrentStepInfo(e){let o=$w(e);return{step:o,wallet:o?Fw(e,o):null,network:o?Dw(e,o):null}}};var tg=Qw(void 0);function gl(t){let{manager:e}=Ow(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:i}=h(),a=new ki(e,{retrySwap:n,findToken:i}),s=te.use.connectedWallets(),l=te.use.loading(),p=Dl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Kt().resetLanguage,y=xe().getNotifications(),S=xe().clearNotifications,T={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:C=>u(C,i)},meta:{blockchains:c,tokens:g,swappers:d,loadingStatus:m,findToken:i},resetLanguage:f,notifications:{list:y,clearAll:S}};return Uw.createElement(tg.Provider,{value:T},t.children)}r(gl,"WidgetInfo");function og(){let t=zw(tg);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}r(og,"useWidget");function vi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:i}=Rf();return ng(()=>{n&&i(n)},[n]),Hw(()=>{Hl({API_KEY:o?.apiKey||An,BASE_URL:o?.apiUrl||yl})},[o.apiKey,o.apiUrl]),ng(()=>{t.config?.signers?.customSolanaRPC&&qw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),hl.createElement(Kn,{config:o,onUpdateState:e},hl.createElement(eg,{apiKey:o.apiKey},hl.createElement(gl,null,t.children)))}r(vi,"WidgetProvider");function rg(t){let e=t.config?.externalWallets;return wi.createElement(gp,null,e?wi.createElement(Ci,null):wi.createElement(vi,{config:t.config??zi},wi.createElement(Ci,null)))}r(rg,"Widget");function ig(){let{on:t,off:e}=ye;return{on:t,off:e}}r(ig,"useWidgetEvents");export{e5 as EventSeverity,ko as MainEvents,p5 as Networks,m5 as PendingSwapNetworkStatus,$i as QuoteEventTypes,t5 as RouteEventType,xi as SUPPORTED_FONTS,o5 as StepEventType,n5 as StepExecutionBlockedEventStatus,r5 as StepExecutionEventStatus,he as UI_ID,Oi as UiEventTypes,Fi as WalletEventTypes,s5 as WalletEvents,c5 as WalletTypes,rg as Widget,ko as WidgetEvents,vi as WidgetProvider,Kn as WidgetWallets,ma as customizedThemeTokens,a5 as readAccountAddress,no as useWalletList,xr as useWallets,og as useWidget,ig as useWidgetEvents,cg as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map