@rango-dev/widget-embedded 0.29.1-next.17 → 0.29.1-next.18

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
1
  var zf=Object.defineProperty;var i=(t,e)=>zf(t,"name",{value:e,configurable:!0});import{EventSeverity as JV,RouteEventType as RV,StepEventType as e2,StepExecutionBlockedEventStatus as t2,StepExecutionEventStatus as o2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as r2,useWallets as kr,Events as i2}from"@rango-dev/wallets-react";import{Networks as s2,WalletTypes as l2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as c2}from"rango-types";import{UI_ID as Hf}from"@rango-dev/ui";var wn="c6381a79-2817-4602-83bf-6a641a409e32",ll="https://api.rango.exchange",pl="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Hf};var cl="Roboto",ki=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as Fi,Provider as Fg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Og}from"rango-sdk";import Un,{createContext as Ug,useEffect as ip,useMemo as Qg,useRef as ap}from"react";import{useEffect as ug}from"react";import{create as lg}from"zustand";import{subscribeWithSelector as pg}from"zustand/middleware";import Gf from"mitt";var ke=Gf(),Vf={on:ke.on,off:ke.off};import{RangoClient as ag}from"rango-sdk";import{BlockchainCategories as Rf,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as eg}from"@rango-dev/wallets-react";import{detectInstallLink as tg,getCosmosExperimentalChainInfo as og,isEvmAddress as ng,KEPLR_COMPATIBLE_WALLETS as jw,Networks as wl}from"@rango-dev/wallets-shared";import Ai from"bignumber.js";import{isCosmosBlockchain as rg}from"rango-types";import Xf from"bignumber.js";var Be=new Xf(0);import{WalletTypes as Kf}from"@rango-dev/wallets-shared";var ul=[Kf.LEAP];import{BlockchainCategories as vi,WalletState as Jf}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function yl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(yl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function fl(t,e){return t.toLowerCase()===e.toLowerCase()}i(fl,"exactText");function gl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(gl,"startWithText");var P=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Do=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function hl(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:0}i(hl,"compareExactMatchText");function wi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareContainsText");function xi(t,e,o){let n=!!e&&gl(e,t),r=!!o&&gl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareStartWithText");function Sl(t,e,o){if(!o)return 0;let n=hl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=hl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r!==0)return r}return 0}i(Sl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Cl=i(t=>ki.find(o=>o.value===t)?.url,"getFontUrlByName");function En(t,e){let o=!!t.find(n=>n.state===Jf.CONNECTED);return e===!1&&o}i(En,"isSingleWalletActive");function In(t,e){return e.find(o=>o.name===t)?.displayName}i(In,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Tl(t,e){return e.find(o=>o.name===t)?.logo}i(Tl,"getBlockchainImage");function Fo(t,e){return e.find(o=>o.id===t)?.title}i(Fo,"getSwapperDisplayName");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ii(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ii,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as vl}from"bignumber.js";var Oo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new vl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new vl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var An=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Uo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Ni(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Ni,"mapStatusToWalletState");function xl(t,e,o,n){return o.filter(r=>!ul.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),f=yo(m.map(g=>g.type)),d=Ni(t(r));return{title:a,image:s,link:tg(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f}})}i(xl,"mapWalletTypesToWalletInfo");function Mn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Mn,"walletAndSupportedChainsNames");function bl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=eg(p),m=l.length>0,f=l.includes(c),d=c===wl.Unknown;if(m&&!f&&!d)return;let T=c===wl.Unknown&&ng(u);if(d&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(c,u)}),a}i(bl,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"isAccountAndWalletMatched");function El(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ai(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(El,"makeBalanceFor");function Il(t){return{...t,loading:!1,error:!0}}i(Il,"resetConnectedWalletState");var Al=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ai(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return ig(r)},"calculateWalletUsdValue");function ig(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ig,"numberWithThousandSeparator");var Bn=i((t,e)=>{let o=og(Object.entries(t).map(([,n])=>n).filter(rg));return o&&o[e]?.experimental},"isExperimentalChain");function Pn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Pn,"formatBalance");function Nl(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(Nl,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Wl(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Wl,"sortWalletsBasedOnConnectionState");function _n(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(_n,"getConciseAddress");function Ml({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Ml,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ai(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ll=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Bl(t){return t.map(e=>e.state).join("-")}i(Bl,"hashWalletsState");function Pl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Pl,"filterBlockchainsByWalletTypes");function _l(t,e){return e===Rf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(_l,"filterWalletsByCategory");var Wi={API_KEY:wn};function bt(t){return Wi[t]||""}i(bt,"getConfig");function $l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Wi=e,Wi}i($l,"initConfig");var Dl=20,Fl=25,Mi="theme-widget",Qo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Li=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Ol=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Dn,Ft=i(()=>Dn||(Dn=new ag(bt("API_KEY"),bt("BASE_URL")),Dn),"httpService");import{WidgetEvents as Ul}from"@rango-dev/queue-manager-rango-preset";var Bi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Bi||{}),Pi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Pi||{}),qo=(r=>(r[r.RouteEvent=Ul.RouteEvent]="RouteEvent",r[r.StepEvent=Ul.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(qo||{});var sg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ot=sg;var te=Ot(lg()(pg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ke.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&ke.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Ln(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(T=>Ln(T,f)),g=p.find(T=>T.address===f.address&&T.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:El(g,n),loading:!1}:f});return{loading:!1,balances:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Ln(m,c))?Il(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as cg}from"@rango-dev/provider-all";function Fn(t,e){let o=cg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Fn,"matchAndGenerateProviders");function Ql(t,e){return Fn(t,e).map(r=>r.config.type)}i(Ql,"configWalletsToWalletName");function ql(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(ql,"hashProviders");function _i(t,e){let o=te.use.clearConnectedWallet(),n=Fn(t,e);return ug(()=>{o(),n=Fn(t,e)},[ql(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(_i,"useWalletProviders");import Mg,{createContext as Lg,useContext as Bg,useEffect as Pg,useRef as _g}from"react";import{create as Ng}from"zustand";import{persist as Wg}from"zustand/middleware";var $i={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},mg={clientUrl:void 0},dg={liquiditySources:void 0},zl=i((t,e,o)=>({config:{...$i,...t},iframe:mg,campaignMode:dg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function On(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(On,"getUniqueSwappersGroups");function Hl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Hl,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Gl(t,e){return e?.[t]==="enabled"}i(Gl,"isFeatureEnabled");var Vl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Qo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let S=o.getBalanceFor(c),k=o.getBalanceFor(m),w=Nl(S,k);if(w!==0)return w}let g=a.get(c.blockchain),T=a.get(m.blockchain),C=Ii(c,g),y=Ii(m,T);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let S=Sl(c,m,o.searchFor);if(S)return S}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&T?g.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Hl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Dt(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as fg,English as gg,Finland as hg,French as yg,German as Sg,Greece as Cg,Italian as Tg,Japanese as kg,Netherlands as vg,Poland as wg,Portuguese as xg,Russian as bg,Spanish as Eg,Swedish as Ig,Ukrainian as Ag}from"@rango-dev/ui";var Xl=[{title:"English",label:"English",local:"en",SVGFlag:gg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Eg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:yg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:kg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:xg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:fg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:bg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Sg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Ag},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Ig},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:hg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:vg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Cg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Tg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:wg}],So="en";var Kl=[.5,1,3],jl=1,Yl=5,Zl=100,Jl=0;var Rl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:jl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=yo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Ke("theme",n),s=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||So},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||So}})}}),"createSettingsSlice");function ep(t){return Ng()(Wg((...e)=>({...Vl(...e),...Rl(...e),...zl(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(ep,"createAppStore");var tp=Lg(null);function h(){let t=Bg(tp);if(Pg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function op(t){let e=_g();return e.current||(e.current=ep(t.config)),Mg.createElement(tp.Provider,{value:e.current},t.children)}i(op,"AppStoreProvider");import{create as Dg}from"zustand";var np="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(np),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot(Dg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new zo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Qn=Ug({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function qg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=_i(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=ap(),f=ap();ip(()=>{n().catch(console.log)},[]),ip(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Og).map(y=>y.name),g=i((y,S,k,w,A)=>{if(S===Fi.ACCOUNTS)if(k){let L=Mn(A.supportedBlockchains),E=bl(y,k,d,L,A.isContractWallet);E.length&&u(E,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(S===Fi.ACCOUNTS&&w.connected){let L=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(S===Fi.NETWORK&&w.network){let L=`${y}-${w.network}`;m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,S,k,w,A)},"onUpdateState"),T=ie.use.isActiveTab(),C=Qg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Un.createElement(Qn.Provider,{value:C},Un.createElement(Fg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!T},t.children))}i(qg,"Main");function qn(t){let{config:e,...o}=t;return Un.createElement(op,{config:e},Un.createElement(qg,{...o,config:e}))}i(qn,"WidgetWallets");import Ti from"react";import zg,{Fragment as Hg}from"react";import{MemoryRouter as Gg,useInRouterContext as Vg}from"react-router";function sp({children:t}){let o=Vg()?Hg:Gg;return zg.createElement(o,null,t)}i(sp,"AppRouter");import{I18nManager as Rv}from"@rango-dev/ui";import il from"react";import Qe from"react";import{useRoutes as Ov}from"react-router-dom";var 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 ko,useRef as Rn}from"react";import It from"bignumber.js";import{create as jg}from"zustand";import{subscribeWithSelector as Yg}from"zustand/middleware";import{getLastSuccessfulStep as Kg}from"@rango-dev/queue-manager-rango-preset";import WE from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Oi={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Ui=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],lp=30;import{i18n as it}from"@lingui/core";import{RouteEventType as fE}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Gn}from"rango-types";function zn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(zn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function pp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(pp,"getQuoteErrorMessage");import{i18n as Hn}from"@lingui/core";var to=i(()=>({connectWallet:Hn.t("Connect Wallet"),swap:Hn.t("Swap"),swapAnyway:Hn.t("Swap anyway"),ethWarning:Hn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function cp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(cp,"hasHighValueLoss");function up(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(up,"hasLimitError");function mp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(mp,"getLimitErrorMessage");function dp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(dp,"getSwapButtonState");function Qi(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Qi,"canComputePriceImpact");function qi(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(qi,"getUsdFeeOfStep");function Vn(t,e){return t.reduce((o,n)=>o.plus(qi(n,e)),Be)}i(Vn,"getTotalFeeInUsd");function zi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(zi,"getUsdFee");function fp(t){return t.reduce((e,o)=>e.plus(zi(o)),Be)}i(fp,"getTotalFeesInUsd");function gp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(gp,"getFeesGroup");function hp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(hp,"checkSlippageErrors");function yp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(yp,"checkSlippageWarnings");function Xn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Xn,"getMinRequiredSlippage");function Sp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Sp,"hasProperSlippage");function Cp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,enableCentralizedSwappers:g}=t,T=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:T??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(Cp,"createQuoteRequestBody");function Tp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Tp,"getWalletsForNewSwap");function Co(t){return t?.outputAmount||null}i(Co,"getQuoteOutputAmount");function kp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(kp,"getPercentageChange");function vp(t,e){let o=Co(t),n=Co(e);if(!o||!n)return!1;let r=je(o,n);return r?r<=-1:!0}i(vp,"isOutputAmountChangedALot");function wp(t,e,o){let n=t.validationStatus,r=Jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Np(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Xe(s.asset.blockchain,o)}})})}i(wp,"generateBalanceWarnings");function Kn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Kn,"calcOutputUsdValue");function Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Gn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function xp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Gn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Gn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Gn.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(xp,"getSwapMessages");function bp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(bp,"getLastConvertedTokenInFailedSwap");function Ep(t){return t.status==="failed"}i(Ep,"shouldRetrySwap");function Ip(t,e,o,n,r,a){if(!n||t)return!0;let s=Jt({filter:"all",quote:n}),l=Jt({filter:"required",quote:n}),p=s.every(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?zn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Ip,"isConfirmSwapDisabled");function Ap(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ap,"isTokensIdentical");function Yn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Yn,"getQuoteToTokenUsdPrice");function Hi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Hi,"isNumberOfSwapsChanged");function Gi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Gi,"isQuoteSwappersUpdated");function Vi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(Vi,"isQuoteInternalCoinsUpdated");function Mp(t,e){return Hi(t,e)||Gi(t,e)||Vi(t,e)}i(Mp,"isQuoteChanged");function Np(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Np,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function Zn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Kg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Zn,"createRetryQuote");function To(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=je(s.toString(),l.toString());if(!!c&&cp(s,c)){let f=Vn(t?.swaps,r),d=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>Yl;if(Sp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:yp(t,a),minRequiredSlippage:p};return null}i(To,"generateQuoteWarnings");function je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:kp(t.toString(),e.toString());return n&&n<0?n:null}i(je,"getPriceImpact");var Lp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Jn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Bp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Pp=i(t=>{let e=i((o,n)=>{let r=Ui.indexOf(o.value),a=Ui.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new It(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(jg()(Yg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Be;return Uo(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Kn(e?.outputAmount,Yn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new It(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new It(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new It(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),_p=j.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&ke.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function $p(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:C,setAffiliateWallets:y}=h(),S=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,A=c?.to?.blockchains,L=Rn(void 0),E=Rn(void 0),v=Rn(void 0),b=Rn(void 0);ko(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(x||!x&&v.current)&&n(x??null),U?a({token:U,meta:{blockchains:f,tokens:d}}):!U&&L.current&&a({token:null}),v.current=c?.from?.blockchain,L.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),ko(()=>{Qo(s,S)&&a({token:null}),Li(p,k)&&n(null)},[S,k]),ko(()=>{Qo(l,w)&&a({token:null}),Li(u,A)&&o(null)},[w,A]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(x||!x&&b.current)&&o(x??null),U?e({token:U,meta:{blockchains:f,tokens:d}}):!U&&E.current&&e({token:null}),b.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),ko(()=>{T(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i($p,"useSyncStoresWithConfig");import{useEffect as ji,useRef as Zg}from"react";import{useInRouterContext as Jg,useLocation as Rg,useSearchParams as eh}from"react-router-dom";function Xi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Xi,"convertTokenSearchParamToAsset");function Ki(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ki,"tokenToSearchParam");function Yi(){let t=Rg(),[e,o]=eh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=j(),d=h().fetchStatus,g=h().blockchains(),T=h().tokens(),C=Jg(),{updateIframe:y,updateCampaignMode:S}=h(),k=h().isInCampaignMode(),w=Zg(),{findToken:A}=h(),L=i(()=>{let v={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(v[G]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:x,fromToken:B,toBlockchain:U,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:v}},"getUrlSearchParams"),E=i(v=>{for(let b in v)v[b]||delete v[b];o(v,{replace:!0})},"updateUrlSearchParams");ji(()=>{let{autoConnect:v,clientUrl:b,utmQueryParams:x}=L();C&&d==="success"&&E({fromBlockchain:n?.name,fromToken:Ki(a),toBlockchain:r?.name,toToken:Ki(s),fromAmount:l,autoConnect:v??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),ji(()=>{if(!C)return;let v=L();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&f(v.fromAmount),d==="success"){let b=g.find(I=>I.name===v.fromBlockchain),x=v.fromToken&&b?A(Xi(v.fromToken,b)):void 0,B=g.find(I=>I.name===v.toBlockchain),U=v.toToken&&B?A(Xi(v.toToken,B)):void 0;b&&(p(b),x&&c({token:x,meta:{blockchains:g,tokens:T}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:T}}))}},[d]),ji(()=>{let{clientUrl:v,liquiditySources:b}=L();y("clientUrl",v||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(Yi,"useSyncUrlAndStore");import{i18n as Ya}from"@lingui/core";import{useManager as SC}from"@rango-dev/queue-manager-react";import{Alert as pm,Button as CC,css as Ja,Divider as Za,IconButton as cm,styled as TC,Typography as kC,WalletIcon as vC}from"@rango-dev/ui";import be,{useEffect as zr,useLayoutEffect as wC,useRef as xC,useState as sn}from"react";import{useNavigate as bC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Na,BalanceErrors as oS,Button as Qc,ChevronDownIcon as nS,ChevronLeftIcon as rS,CloseIcon as iS,Divider as jo,IconButton as qc,MessageBox as aS,PasteIcon as sS,Typography as vr,WalletIcon as lS}from"@rango-dev/ui";import $,{useCallback as pS,useEffect as zc,useMemo as cS,useRef as uS,useState as po}from"react";import{useNavigate as mS}from"react-router-dom";import{i18n as er}from"@lingui/core";function tr(t){switch(t.type){case 0:return er.t("Route has been updated.");case 3:return er.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return er.t("Route swappers has been updated.");case 2:return er.t("Route internal coins has been updated.");default:return""}}i(tr,"getQuoteUpdateWarningMessage");import{Modal as oh}from"@rango-dev/ui";import nh from"react";function ne(t){let{watermark:e}=ie();return nh.createElement(oh,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import ir,{useRef as ah}from"react";import*as vo from"@radix-ui/react-collapsible";import{keyframes as Fp,styled as or}from"@rango-dev/ui";var Zi=300,rh=Fp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),ih=Fp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Op=or(vo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ji=or(vo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),nr=or(vo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${rh} ${Zi}ms ease-out`},false:{animation:`${ih} ${Zi}ms ease-out`}}}}),rr=or("div",{transition:`all ${Zi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ar(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ah(null);return ir.createElement(Op,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ir.createElement(Ji,{className:"collapsible_trigger",onClick:a},s),ir.createElement(nr,{className:"collapsible_content",open:e},r),l==="bottom"&&ir.createElement(Ji,{className:"collapsible_trigger",onClick:a},s))}i(ar,"CustomCollapsible");import{css as Up,darkTheme as Vo,IconButton as sh,styled as Ye,TextField as lh}from"@rango-dev/ui";var Qp=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),qp=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ph=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),zp=Ye(ph,{alignSelf:"stretch",minHeight:"93px"}),Hp=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Gp=Ye(sh,{position:"absolute",left:"$20"}),Vp=Ye("div",{paddingTop:"$20"}),Xp=Up({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Kp=Ye("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),jp=Up({paddingTop:"$5"}),Yp=Ye("div",{display:"flex"}),Zp=Ye(lh,{backgroundColor:"$neutral100",padding:"$15"}),Jp=Ye("div",{overflow:"visible",width:"100%"}),Rp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as Jy,Divider as Ia,Image as Ry,MessageBox as Tr,SelectableWallet as eS,Typography as Fc,WalletState as Oc}from"@rango-dev/ui";import ue,{useEffect as Uc,useState as Io}from"react";import{WalletState as Ri}from"@rango-dev/ui";import{useWallets as ch}from"@rango-dev/wallets-react";import{detectMobileScreens as uh,KEPLR_COMPATIBLE_WALLETS as mh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as dh,useEffect as fh,useState as gh}from"react";var hh=Object.values(wo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=ch(),{connectedWallets:c}=te(),m=h().blockchains(),f=Ql(a?.wallets,{walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||hh,d=xl(s,p,f,e);d=uh()?d.filter(E=>E.showOnMobile!==!1&&s(E.type).installed):d;let g=Wl(d),[T,C]=gh(""),y=i(E=>!c.find(v=>v.walletType===E&&v.chain===e),"isExperimentalChainNotAdded"),S=i(async(E,v)=>{let b=s(E);try{if(T&&C(""),b.connected)await l(E);else{if(En(d,a.multiWallets))return;o?.(E),await u(E,void 0,v),n?.(E)}}catch(x){r?.(x?.message),C("Error: "+x?.message)}},"handleClick"),k=dh(()=>{let E=d?.filter(v=>v.state===Ri.CONNECTING)||[];for(let v of E)l(v.type)},[Bl(d)]),w=i(async E=>{s(E).connected&&await l(E)},"disconnectWallet");fh(()=>()=>{k()},[]);let A=i(E=>{let v=E.find(x=>x.type===wo.DEFAULT);return!v||v.state===Ri.NOT_INSTALLED?!1:E.filter(x=>x.state!=Ri.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(x.type)&&p(x.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),L=i((E,v,b)=>Bn(b,v)&&y(E)&&!mh.includes(E)||E==wo.DEFAULT&&!A(d),"shouldExcludeWallet");return{list:g.filter(E=>!L(E.type,e??"",m)),error:T,handleClick:S,disconnectConnectingWallets:k,disconnectWallet:w}}i(no,"useWalletList");import{i18n as Mc}from"@lingui/core";import{Divider as zy,getCategoriesCount as Hy,SelectableCategoryList as Gy,styled as Bc,Typography as Vy,Wallet as Xy,WalletState as Lc}from"@rango-dev/ui";import at,{useState as Sr}from"react";import{useManager as ky}from"@rango-dev/queue-manager-react";import{BottomLogo as vy,Divider as xc,Header as wy}from"@rango-dev/ui";import Se,{useEffect as ka,useRef as bc,useState as xy}from"react";import{useRef as yh}from"react";function sr(){return window.self!==window.top}i(sr,"isAppLoadedIntoIframe");function ea(){let t=yh(null),{iframe:e}=h(),o=sr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(ea,"useIframe");import{useNavigate as Sh}from"react-router-dom";function Ze(){let t=Sh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as sa,darkTheme as Lh,lightTheme as Bh}from"@rango-dev/ui";import{useEffect as Ph,useState as _h}from"react";import{theme as Wh,darkColors as Mh}from"@rango-dev/ui";import ia from"react";function Ch(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Ch,"expandShortHexColor");function Th(t){return/[0-9]+$/.test(t)}i(Th,"isOverridingColor");function kh(t,e){return t.padStart(e,"0")}i(kh,"pad");function ta(t){let e=Math.min(Math.max(Math.round(t),0),255);return kh(e.toString(16),2)}i(ta,"intToHex");function vh(t){return`#${ta(t.red)}${ta(t.green)}${ta(t.blue)}`}i(vh,"rgbToHex");function wh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(wh,"hexToRGB");function xh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(xh,"generateShade");function bh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(bh,"generateTint");function Eh(t){return ec(t,xh)}i(Eh,"calculateShades");function Ih(t){return ec(t,bh)}i(Ih,"calculateTints");function ec(t,e){let o=wh(t),n=[];for(let r=1;r<9;r++)n.push(vh(e(o,r)));return n}i(ec,"calculateColors");function oa(t,e,o){let a=Ih(t).reverse().concat(t),s=Eh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(oa,"createTintsAndShades");function na(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Th(r)){let p=Ch(a);Object.assign(n,oa(p,r,s))}}return{...n,...e}}i(na,"expandToGenerateThemeColors");var tc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ah=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=tc(o%52)+e;return tc(o%52)+e},"toAlphabeticName"),Nh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ra=i(t=>Ah(Nh(5381,JSON.stringify(t))>>>0),"toHash");function aa(t){let e=Wh.colors,o={...e,...Mh},n,r;if(t?.light){let s={colors:na(e,t.light)};n={id:`${Mi}-light-${ra(s)}`,tokens:s}}if(t?.dark){let s={colors:na(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Mi}-dark-${ra(s)}`,tokens:s}}return{light:n,dark:r}}i(aa,"customizedThemeTokens");function oc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ia.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ia.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ia.cloneElement(e,{key:l}))}}),o}i(oc,"joinList");function lr(t){let{colors:e,fontFamily:o=cl,borderRadius:n=Dl,secondaryBorderRadius:r=Fl}=t,[a,s]=_h("light"),{theme:l}=h(),{dark:p,light:u}=aa(e),c=sa({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Bh.className],f=[c.className,Lh.className];if(u){let g=sa(u.id,u.tokens);m.push(g.className)}if(p){let g=sa(p.id,p.tokens);f.push(g.className)}return Ph(()=>{let g=i(T=>{T.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),T=f.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(lr,"useTheme");var Je=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as nc}from"@lingui/core";import{Alert as $h,Button as Dh}from"@rango-dev/ui";import rc from"react";function la(t){return rc.createElement($h,{action:rc.createElement(Dh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},nc.t("Activate this tab")),type:"warning",variant:"alarm",title:nc.t("Another tab is open and handles transactions.")})}i(la,"ActivateTabAlert");import{i18n as pa}from"@lingui/core";import{Button as Fh,Divider as Oh,MessageBox as Uh}from"@rango-dev/ui";import pr from"react";function ca(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},pr.createElement(Uh,{title:pa.t("Activate current tab"),type:"warning",description:pa.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},pr.createElement(Oh,{size:20}),pr.createElement(Fh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pa.t("Confirm"))))}i(ca,"ActivateTabModal");import{ChevronLeftIcon as zh}from"@rango-dev/ui";import uc from"react";import{css as Qh,darkTheme as ic,IconButton as qh,styled as ro}from"@rango-dev/ui";var yt=ro(qh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${ic} &`]:{backgroundColor:"$neutral"}}}),ac=ro("div",{position:"absolute",background:"$secondary500",[`.${ic} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),sc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),lc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),pc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),cc=Qh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ua(t){return uc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},uc.createElement(zh,{color:"black",size:16}))}i(ua,"BackButton");import{i18n as Hh}from"@lingui/core";import{Button as Gh,Typography as Vh}from"@rango-dev/ui";import ma from"react";function da(t){return ma.createElement(xo,null,ma.createElement(Gh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ma.createElement(Vh,{variant:"label",size:"medium",color:"error500"},Hh.t("Cancel"))))}i(da,"CancelButton");import{i18n as Xh}from"@lingui/core";import{Image as Kh,Tooltip as jh,WalletIcon as Yh}from"@rango-dev/ui";import io from"react";function fa(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:cc()},o.map(r=>io.createElement(cr,{key:r.title},io.createElement(Kh,{src:r.image,size:14})))):Xh.t("Connect Wallet");return io.createElement(jh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(ac,null),io.createElement(Yh,{size:18,color:"black"})))}i(fa,"WalletButton");import{i18n as mr}from"@lingui/core";import{NotificationsIcon as my,Popover as dy,SettingsIcon as fy,Tooltip as dr,TransactionIcon as gy}from"@rango-dev/ui";import Ae from"react";import{Notifications as ey}from"@rango-dev/ui";import ty from"react";import{useNavigate as oy}from"react-router-dom";import{create as Zh}from"zustand";import{persist as Jh,subscribeWithSelector as Rh}from"zustand/middleware";var ve=Ot(Zh()(Jh(Rh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function ga(){let t=oy(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=h().blockchains(),{findToken:a}=h();return ty.createElement(ey,{list:n,getBlockchainImage:l=>Tl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ga,"NotificationContent");import{useManager as ny}from"@rango-dev/queue-manager-react";import{InProgressIcon as ry}from"@rango-dev/ui";import mc from"react";var iy=i(()=>{let{manager:t}=ny();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?mc.createElement(pc,null,mc.createElement(ry,{color:"info",size:6})):null},"InProgressTransactionBadge"),dc=iy;import{EventSeverity as ay}from"@rango-dev/queue-manager-rango-preset";import{Typography as sy}from"@rango-dev/ui";import fc from"react";function gc(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ay.WARNING);return o?fc.createElement(sc,{isSever:n},fc.createElement(sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(gc,"NotificationsBadge");import{RefreshProgressButton as ly}from"@rango-dev/ui";import ha,{useEffect as py,useState as hc}from"react";var cy=1e3,yc=60,uy=100;function ur({onClick:t}){let[e,o]=hc(0),[n,r]=hc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");py(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===yc&&l()},cy):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ha.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ha.createElement(lc,{onTransitionEnd:()=>r(!1),isRefetched:n},ha.createElement(ly,{size:22,color:t?"black":"gray",progress:e/yc*uy})))}i(ur,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ke("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(dr,{container:a||P(),side:"top",content:mr.t("Refresh")},Ae.createElement(ur,{onClick:e})),!l&&Ae.createElement(dy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ae.createElement(ga,null)},Ae.createElement("div",null,Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(my,{size:18,color:"black"}),Ae.createElement(gc,null))))),!r.includes("settings")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(fy,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(gy,{size:18,color:"black"}),Ae.createElement(dc,null))))}i(ao,"HeaderButtons");import{i18n as ya}from"@lingui/core";import{Divider as Cc,MessageBox as Sy,RefreshIcon as Cy}from"@rango-dev/ui";import bo from"react";import{Button as hy,styled as yy}from"@rango-dev/ui";var Sc=yy(hy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Sa(t){let{open:e,onClose:o}=t;return bo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},bo.createElement(Sy,{title:ya.t("Something went wrong"),type:"error",description:ya.t("Something went wrong. Please refresh the app.")},bo.createElement(Cc,{size:30}),bo.createElement(Sc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},bo.createElement(Cy,{size:20,color:"primary"}),bo.createElement(Cc,{size:4,direction:"horizontal"}),ya.t("Refresh"))))}i(Sa,"RefreshModal");function Ca(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ca,"onScrollContentAttachStatusToContainer");import{css as Ty,styled as Ta}from"@rango-dev/ui";var Tc="700px",fr=Ty({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),kc=Ta("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Tc},fixed:{height:Tc}}}}),vc=Ta("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),wc=Ta("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ea(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=xy(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ie(),g=d==="FULL",{activeTheme:T}=lr(f||{}),C=Ke("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:S,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),L=Ze(),{manager:E}=ky(),b=Je(E).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),x=i(()=>A(eo.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,I=bc(null),H=bc(null);return ka(()=>(sr()&&H.current&&e(H.current),()=>{o()}),[]),ka(()=>(I.current?.addEventListener("scroll",Ca),()=>{I.current?.removeEventListener("scroll",Ca)}),[]),ka(()=>{u(l==="failed")},[l]),Se.createElement(kc,{height:s,id:ye.SWAP_BOX_ID,className:`${T()} ${fr()}`,ref:H},Se.createElement(wy,{prefix:Se.createElement(Se.Fragment,null,U&&Se.createElement(ua,{onClick:()=>{L(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!C&&Se.createElement(fa,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Se.createElement(da,{onClick:r.onCancel}))}),Se.createElement(vc,{ref:I},n),Se.createElement(ca,{open:k,onClose:()=>w(!1),onConfirm:x}),Se.createElement(wc,null,Se.createElement("div",{className:"footer__content"},S&&!y&&Se.createElement("div",{className:"footer__alert"},Se.createElement(la,{onActivateTab:x}),Se.createElement(xc,{size:10})),a),Se.createElement(xc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(vy,null))),Se.createElement(Sa,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as by}from"@rango-dev/ui";var Ec="$20 $20 $10 $20",Xo=by("div",{padding:Ec,overflowY:"auto",flexGrow:1});import{styled as Ey}from"@rango-dev/ui";var me=Ey("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as My}from"@rango-dev/ui";import wa from"react";import{i18n as Eo}from"@lingui/core";import{Image as Ny,MessageBox as va,WalletState as Wy}from"@rango-dev/ui";import so from"react";import{keyframes as Iy,styled as gr}from"@rango-dev/ui";var tW=gr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),hr=gr("div",{position:"relative"}),Ay=Iy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),yr=gr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ay} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ic=gr("div",{"& img":{borderRadius:"50%"}});function Ac(t){let{state:e,image:o,error:n}=t;return e===Wy.CONNECTED?so.createElement(va,{type:"success",title:Eo.t("Wallet Connected"),description:Eo.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(va,{type:"error",title:Eo.t("Failed to Connect"),description:n||Eo.t("Your wallet is not connected. Please try again.")}):so.createElement(va,{type:"loading",title:Eo.t("Connecting to your wallet"),description:Eo.t("Click connect in your wallet popup."),icon:so.createElement(hr,null,so.createElement(Ic,null,so.createElement(Ny,{src:o,size:45})),so.createElement(yr,null))})}i(Ac,"ModalContent");function Ko(t){let{open:e,onClose:o,...n}=t;return wa.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},wa.createElement(Ac,{...n}),wa.createElement(My,{direction:"vertical",size:32}))}i(Ko,"WalletModal");import{i18n as xa}from"@lingui/core";import{Button as By,Checkbox as Py,Image as Wc,ListItemButton as _y,MessageBox as $y,Radio as Dy,RadioRoot as Fy}from"@rango-dev/ui";import{namespaceMainBlockchain as Oy}from"@rango-dev/wallets-shared";import We,{useMemo as Uy,useState as Qy}from"react";import{styled as Ly}from"@rango-dev/ui";var Nc=Ly("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var qy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Qy([]),a=h().blockchains(),s=Uy(()=>o?.map(u=>({name:u,logo:qy(a,Oy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(Fy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},We.createElement($y,{type:"info",title:xa.t("Select chain types"),description:xa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(hr,null,We.createElement(cr,null,We.createElement(Wc,{src:t.image,size:45})),We.createElement(yr,null))}),We.createElement(Nc,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(_y,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Wc,{src:u.logo,size:22}),end:e?We.createElement(Dy,{value:u.name}):We.createElement(Py,{checked:n.includes(u.name)})}))))),We.createElement(By,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},xa.t("Confirm")))}i(lo,"WalletNamespacesModal");var Ky=Bc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),jy=Bc(me,{textAlign:"center"}),Cr=3e3,ba=300;function Pc(){let{fetchStatus:t}=h(),[e,o]=Sr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Sr(!1),[l,p]=Sr(null),[u,c]=Sr(""),m=null,f=ie.use.isActiveTab(),{list:d,handleClick:g,error:T,disconnectConnectingWallets:C}=no({onBeforeConnect:x=>{m=setTimeout(()=>{s(!0),c(x)},ba)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Cr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),S=d.find(x=>x.type===u),k=S?.image||"",w=S?.state||Lc.NOT_INSTALLED,A=Pl(d,n),E=Hy(A)!==1,v=_l(d,e),b=i((x,B)=>{if(B.namespaces&&B.state===Lc.DISCONNECTED){if(En(d,r.multiWallets))return;p({providerType:x,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(x)},"handleWalletClick");return at.createElement(le,{header:{title:Mc.t("Connect Wallets")}},at.createElement(jy,null,E&&at.createElement(at.Fragment,null,at.createElement(Gy,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),at.createElement(zy,{size:24})),at.createElement(Vy,{variant:"title",size:"xmedium",align:"center"},Mc.t("Choose a wallet to connect.")),at.createElement(Ky,null,v.map((x,B)=>{let U=`wallet-${B}-${x.type}`;return at.createElement(Xy,{key:U,...x,container:P(),onClick:I=>b(I,x),isLoading:t==="loading",disabled:!f})}),at.createElement(Ko,{open:!!a,onClose:y,image:k,state:w,error:T}),at.createElement(lo,{open:!!l,onClose:()=>p(null),onConfirm:x=>{g(l?.providerType,x),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Pc,"WalletsPage");import{keyframes as Yy,styled as Ea}from"@rango-dev/ui";var _c=Ea("div",{position:"relative"}),Zy=Yy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),$c=Ea("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Zy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Dc=Ea("div",{"& img":{borderRadius:"50%"}});var tS=7;function Aa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Io(""),[f,d]=Io(null),[g,T]=Io(!1),[C,y]=Io(null),[S,k]=Io(null),{suggestAndConnect:w}=kr(),A=null,{list:L,error:E,handleClick:v,disconnectWallet:b,disconnectConnectingWallets:x}=no({chain:e,onBeforeConnect:W=>{A=setTimeout(()=>{m(W)},ba)},onConnect:W=>{s?.(W),A&&clearTimeout(A),setTimeout(()=>{m("")},Cr)}}),[B,U]=Io(L),I=L.length,H=r&&I-r>0,Y=i(async W=>{T(!1),y("in-progress");try{await w(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Uc(()=>{U(W=>{let Q=L.findIndex(Z=>o(Z.type,e));return H&&Q>1?[L[Q]].concat(L.filter((Z,re)=>re!==Q)):W.map(Z=>L.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(L)]);let G=document.getElementById(ye.SWAP_BOX_ID);Uc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),Cr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{x(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,B.slice(0,r).map(W=>{let Q=Ml({connectedWallets:p,walletType:W.type,chain:e}),Z=Q?_n(Q,tS):"",re=Bn(u(),e),Te=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&Te&&W.state===Oc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===Oc.DISCONNECTED?W.namespaces?pe(W):v(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(d({walletType:W.type,chain:e,address:Q??""}),T(!0)):n({walletType:W.type,chain:e,address:Q??""})},"onClick"),de=f?.chain?In(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${de}`},ue.createElement(Ko,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:E}),ue.createElement(lo,{open:!!S,onClose:()=>k(null),onConfirm:Oe=>{v(S?.providerType,Oe),k(null)},image:S?.providerImage,namespaces:S?.availableNamespaces,singleNamespace:S?.singleNamespace}),!!f&&ue.createElement(ne,{open:!!f&&g,container:G,onClose:()=>{d(null)}},ue.createElement(Tr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}})},ue.createElement(Ia,{size:18}),ue.createElement(Ia,{size:32}),ue.createElement(Jy,{onClick:Y.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(Tr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}}),icon:ue.createElement(_c,null,ue.createElement(Dc,null,ue.createElement(Ry,{src:W.image,size:45})),ue.createElement($c,null))}),C==="completed"&&ue.createElement(Tr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:de}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:de}})}),C==="rejected"&&ue.createElement(Tr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:de}})}),ue.createElement(Ia,{direction:"vertical",size:32})),ue.createElement(eS,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(zp,{selected:!1,onClick:a},ue.createElement(Fc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Fc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Aa,"WalletList");var dS=2;function Hc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=mS(),l=h().config,p=uS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:T}=j(),{connectedWallets:C,selectWallets:y}=te(),[S,k]=po(""),[w,A]=po([]),[L,E]=po(""),[v,b]=po(null),[x,B]=po(!!g),U=navigator?.userAgent.includes("Firefox"),I=cS(()=>Jt({filter:"all",quote:c}),[c]),H=Jt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=pS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C,I]),[ee,W]=po(G()),[Q,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),Te=w.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&x&&Y&&!zn(Y,g),ot=i(()=>{B(!1),T(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),de=i(()=>T(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();T(V),p?.current?.focus()}},"handlePasteCustomDestination"),wt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(S&&k(""),_(M.walletType,M.chain))return;let X=C.find(qe=>qe.walletType===M.walletType&&qe.chain===M.chain);X&&(n(),M.chain===Y?.name&&x&&!pe(Y.name)&&(B(!1),T(null)),W(qe=>qe.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),d(!0),o()},"onConfirmBalance"),rt=i(async()=>{A([]),E(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&E(pp(M.error)),!M.error&&!V?.balance?.messages.length?nt():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(qc,{onClick:de,variant:"ghost"},$.createElement(iS,{size:12,color:"gray"})):U?null:$.createElement(qc,{onClick:Oe,variant:"ghost"},$.createElement(sS,{size:16})),"renderCustomDestinationSuffix");zc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C,I]),zc(()=>{let M=[];Q.length>0&&(Q.forEach(V=>{let X=C.find(qe=>qe.chain===V.blockchain&&qe.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C,Q]);let he=document.getElementById(ye.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!S,container:he,...!S&&{footer:$.createElement(Yp,null,$.createElement(Qc,{loading:a,disabled:Ip(a,x,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...S&&{styles:{container:{padding:"$0"}},header:$.createElement(Hp,null,$.createElement(Gp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(rS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(S,u)}})))},anchor:"center"},$.createElement(ne,{open:Te,onClose:A.bind(null,[]),container:he},$.createElement(aS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(oS,{messages:w??[]})},$.createElement(Qc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),S&&$.createElement(Vp,null,$.createElement("div",{className:Xp()},$.createElement(Aa,{chain:S,isSelected:_,selectWallet:Ve,onShowMore:()=>k(S),onConnect:M=>{re(S,M)}}))),!S&&$.createElement($.Fragment,null,L&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"error",title:St.t(L)}),$.createElement(jo,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Na,{variant:"alarm",type:"warning",title:tr(v)}),$.createElement(jo,{size:12})),$.createElement(Jp,null,I.map((M,V)=>{let X=u.find(Zt=>Zt.name===M),qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:qe},$.createElement(Qp,null,$.createElement(vr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(jo,{size:24}),$.createElement(qp,null,$.createElement(Aa,{chain:M,isSelected:_,selectWallet:Ve,limit:dS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{re(M,Zt)}})),!ft&&$.createElement(jo,{size:32}),ft&&l?.customDestination!==!1&&$.createElement(Kp,null,$.createElement(ar,{onOpenChange:wt,hasSelected:!0,open:x,triggerAnchor:"top",trigger:$.createElement(Rp,null,$.createElement("div",{className:"button__content"},$.createElement(lS,{size:18,color:"info"}),$.createElement(jo,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:x?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(rr,{orientation:x?"up":"down"},$.createElement(nS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Zt=>!Zt)},$.createElement(Zp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:In(M,u)}),value:g||"",suffix:dt(),onChange:Zt=>{let qf=Zt.target.value;T(qf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:jp()},$.createElement(Na,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Hc,"ConfirmWalletsModal");import{i18n as LS}from"@lingui/core";import{Alert as BS,Button as PS,InfoIcon as _S}from"@rango-dev/ui";import He from"react";import{Alert as hS,Button as yS,Divider as La,NoRouteIcon as SS,RefreshIcon as CS,Typography as Zc}from"@rango-dev/ui";import ze from"react";import{i18n as Gc}from"@lingui/core";var fS=24,gS=60;function Vc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Gc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Gc.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(Vc,"makeInfo");var Wa=(o=>(o[o.small=fS]="small",o[o.large=gS]="large",o))(Wa||{}),Ma=(o=>(o.small="small",o.large="medium",o))(Ma||{});import{styled as wr}from"@rango-dev/ui";var Xc=wr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Kc=wr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),jc=wr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Yc=wr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Vc(o,r,()=>a(s,!0),e);return ze.createElement(Xc,null,ze.createElement(SS,{size:Wa[n],color:"gray"}),ze.createElement(La,{size:4}),ze.createElement(Zc,{variant:"title",size:Ma[n]},oe().noResultError.title),n==="large"&&ze.createElement(La,{size:4}),!!l.description&&ze.createElement(Kc,{size:n},ze.createElement(Zc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ze.createElement(La,{size:n==="large"?"24":"4"}),!!l.alert&&ze.createElement(jc,{size:n},ze.createElement(hS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ze.createElement(yS,{size:"xsmall",type:l.alert.type,prefix:ze.createElement(Yc,null,ze.createElement(CS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as kS,Divider as vS,MessageBox as wS,Typography as xS,WarningIcon as bS}from"@rango-dev/ui";import At from"react";import{Typography as tu}from"@rango-dev/ui";import Pa from"react";import{darkTheme as TS,styled as xr}from"@rango-dev/ui";var Jc=xr("div",{width:"100%"}),Ba=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Rc=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${TS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),eu=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function ou(t){let{title:e,value:o,valueColor:n}=t;return Pa.createElement(Rc,null,Pa.createElement(tu,{size:"medium",variant:"label",className:"_title"},e),Pa.createElement(tu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ou,"QuoteErrorsModalItem");function nu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(kS,{type:"primary",size:"large",prefix:At.createElement(bS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(wS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ba,null,At.createElement(vS,{size:"4"}),At.createElement(xS,{size:"small",variant:"title"},Zo.t("Details")),At.createElement(Ba,null,l.map((p,u)=>At.createElement(ou,{key:u,...p})))))}i(nu,"HighValueLossWarningModal");import{i18n as _a}from"@lingui/core";function ru(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=_a.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Et(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=_a.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=_a.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(ru,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as iu,Divider as au,MessageBox as ES,Typography as IS}from"@rango-dev/ui";import co from"react";import{useNavigate as AS}from"react-router-dom";function su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=AS(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(iu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},co.createElement(IS,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:P(),onClose:r},co.createElement(ES,{type:"warning",title:s.type===3?Ao.t("High slippage"):Ao.t("Low slippage"),description:s.type===3?Ao.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Ao.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(au,{size:18}),co.createElement(au,{size:32}),co.createElement(iu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(su,"SlippageWarningModal");import{Button as NS,MessageBox as WS,WarningIcon as MS}from"@rango-dev/ui";import br from"react";function lu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return br.createElement(ne,{footer:br.createElement(NS,{type:"primary",size:"large",prefix:br.createElement(MS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},br.createElement(WS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(lu,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=ru(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),He.createElement(He.Fragment,null,f&&He.createElement(Yo,{error:o,fetch:s}),!!d&&He.createElement(Jc,null,He.createElement(BS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:He.createElement(eu,{onClick:l},He.createElement(_S,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:He.createElement(PS,{size:"xxsmall",type:d.alertType,onClick:c},LS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(nu,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(su,{...m,warning:e}),e.type===1&&He.createElement(lu,{...m,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import mC from"bignumber.js";import Or from"react";import{i18n as uo}from"@lingui/core";import{Alert as RS,Divider as Wo,FullExpandedQuote as eC,InfoIcon as tC,QuoteTag as oC,StepDetails as nC,TokenAmount as rC,Tooltip as Qu,Typography as Mo}from"@rango-dev/ui";import za from"bignumber.js";import D,{useRef as iC,useState as aC}from"react";import{styled as $a}from"@rango-dev/ui";var Da=$a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),pu=$a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),cu=$a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as $S,css as Ro,darkTheme as we,Image as uu,styled as _e,Typography as DS}from"@rango-dev/ui";var FS=300,mu=_e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),du=Ro({padding:"$10 $15"}),fu=_e($S,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),gu=_e("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),hu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),yu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),No=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Su=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cu=_e(Er.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${uu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${uu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Tu=_e("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ku=_e(nr,{width:"100%",background:"inherit"}),Fa=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${FS}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),iB=_e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),vu=_e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),wu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Oa=_e(DS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),xu=_e("div",{display:"flex",flexWrap:"wrap"}),Ua=_e("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),bu=_e("div",{display:"flex"}),Ir=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Gt}from"@lingui/core";import{ChevronDownIcon as US,CloseIcon as QS,Divider as Wr,IconButton as qS,QuoteCost as zS,Tooltip as HS,Typography as lt}from"@rango-dev/ui";import J,{useState as Nu}from"react";import{css as OS,styled as Ar}from"@rango-dev/ui";var Nr=Ar("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Qa=Ar("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Eu=Ar("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Iu=Ar("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Au=OS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var GS=i(t=>t.fee.isZero()?null:J.createElement(Nr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Wu(t){let[e,o]=Nu(!1),[n,r]=Nu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=gp(m);return J.createElement(J.Fragment,null,J.createElement(zS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Gt.t("View more info"):void 0,tooltipContainer:f}),J.createElement(ne,{container:f,open:e,header:J.createElement(Iu,null,J.createElement(lt,{variant:"title",size:"medium"},Gt.t("Gas & Fee Explanation")),J.createElement(qS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(QS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(Eu,null,J.createElement(lt,{variant:"title",size:"small"},Gt.t("Details")),J.createElement(Wr,{size:10}),Object.entries(d.payable).flatMap(([g,T])=>T.map((C,y)=>{let S=`payable-fee-${y}`,k=zi(C);return J.createElement(Nr,{key:S},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Oi[g]),J.createElement(HS,{content:ce(C.amount),container:f},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Nr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Gt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(Qa,null),Object.keys(d.nonePayable).length&&J.createElement(ar,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:Au()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Gt.t("Hide non-payable fees"):Gt.t("Show non-payable fees")),J.createElement(Wr,{size:4,direction:"horizontal"}),J.createElement(rr,{orientation:n?"up":"down"},J.createElement(US,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Gt.t("Description")),J.createElement(Wr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Gt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),J.createElement(Wr,{size:10}),Object.entries(d.nonePayable).map(([g,T],C)=>{let y=fp(T),S=Oi[g],k=`non-payable-fee-${C}`;return J.createElement(GS,{key:k,fee:y,label:S})}),J.createElement(Qa,null)))))}i(Wu,"QuoteCostDetails");import{i18n as Bu}from"@lingui/core";import{TokenAmount as Pu}from"@rango-dev/ui";import Mr from"react";import{css as VS,styled as XS}from"@rango-dev/ui";var Mu=XS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Lu=VS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Mr.createElement(Mu,null,Mr.createElement(Pu,{direction:"horizontal",label:Bu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Mr.createElement("div",{className:Lu()}),Mr.createElement(Pu,{direction:"horizontal",tooltipContainer:P(),label:Bu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(en,"QuoteSummary");import{i18n as Ou}from"@lingui/core";import{ChevronDownIcon as YS,ChevronRightIcon as ZS,Divider as qa,Image as JS,Tooltip as $r,Typography as Br}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as KS,useState as tn}from"react";var _u=480,$u=768,Du=1024,Fu=1200,jS=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=_u),n(window.innerWidth>_u&&window.innerWidth<=$u),a(window.innerWidth>$u&&window.innerWidth<=Du),l(window.innerWidth>Du&&window.innerWidth<=Fu),u(window.innerWidth>Fu)},"handleResize");return KS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Lr=jS;var Pr=4,_r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement($r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Tu,{className:n,state:a},F.createElement(JS,{src:o,size:16})))},"ImageComponent");function Uu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Lp(r),{isTablet:m,isMobile:f}=Lr();return F.createElement(Cu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Ou.t("Via:")),F.createElement(qa,{direction:"horizontal",size:4}),r.map((d,g)=>{let T=`item-${g}`,C=F.createElement(Fa,null,F.createElement(ZS,{size:12,color:"black"}));return f||m?F.createElement(F.Fragment,{key:T},F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:T},u<=Pr||u>Pr&&g<Pr-1?F.createElement(F.Fragment,null,F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===Pr-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},C,r.map((y,S)=>{let k=`image-${S}`;return S>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),S!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Ua,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Br,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Ou.t("Chains:")),F.createElement(qa,{direction:"horizontal",size:4}),c.map((d,g)=>F.createElement(F.Fragment,{key:d.displayName},c.length<=_r||c.length>_r&&g<_r-1?F.createElement($r,{container:p,side:"bottom",content:d.displayName,sideOffset:4},F.createElement(on,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===_r-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},c.map((T,C)=>C>=g&&F.createElement(on,{key:T.displayName,content:"",src:T.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(Br,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(YS,{size:12,color:"black"}))))}i(Uu,"QuoteTrigger");function Ha(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),T=h().swappers(),{customSlippage:C,slippage:y}=h(),S=C||y,[k,w]=aC(t.expanded),A=iC(null),L=N(o.value,6,6),E=N(n.value,6,6),v=n.usdValue?N(n.usdValue,4,4):"",b=je(o.usdValue,n.usdValue??null),x=N(b,2,2),B=Et(b??0),U=i((re,Te)=>re.map((_,Fe)=>{let ot,de=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),wt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=de||Oe,nt=wt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return de&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Fo(_.swapperId,T),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,d),image:_.from.blockchainLogo},price:{value:Fe===0&&!Te?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new za(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,d),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new za(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(pu,{dense:m},D.createElement(RS,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(cu,null,de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||wt)&&!de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Oo(_.estimatedTimeInSeconds),fee:N(qi(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),I=U(e?.swaps??[]),H=I.length,Y=f||P(),pe=Pp(t.quote.tags||[]),G=!!c,ee=Oo(An(e?.swaps)),W=Vn(e?.swaps??[],g),Q=N(W,2,2),Z=W.gte(new za(lp));return m?D.createElement(eC,{selected:l,fee:Q,time:ee,tooltipContainer:Do(),steps:I,tags:pe,feeWarning:Z,percentageChange:x,warningLevel:B,outputPrice:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(gu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:hu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(bu,null,pe.map((re,Te)=>{let _=`${re.value}_${Te}`;return D.createElement(D.Fragment,{key:_},D.createElement(oC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Ir,null),!G&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:yu()},D.createElement(Wu,{quote:e,time:ee,fee:Q,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(fu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Mo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Su()},D.createElement(wu,null,D.createElement(tC,{size:12,color:"gray"})),D.createElement(xu,null,D.createElement(Oa,{size:"small",variant:"body"},`${L} ${I[0].from.token.displayName} = `),D.createElement(Qu,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${E} ${I[I.length-1].to.token.displayName}`))),D.createElement(Qu,{content:ce(n.usdValue),container:Y},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Mo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&D.createElement(rC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:x,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:I[0].from,to:I[H-1].to,percentageChange:x,warningLevel:B}),D.createElement(Wo,{size:4}))),D.createElement(mu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Uu,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:I}),D.createElement(ku,{open:k},D.createElement(vu,null),D.createElement("div",{className:du()},I.map((re,Te)=>{let _=`item-${Te}`;return D.createElement(nC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:Te!==I.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as cC,Skeleton as uC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as sC,styled as Dr}from"@rango-dev/ui";var qu=Dr("div",{$$color:"$colors$neutral100",[`.${sC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),zu=Dr("div",{paddingTop:"$2"}),Hu=Dr("div",{paddingLeft:"$8"}),Gu=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as tm,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import z from"react";import{css as lC,styled as Nt}from"@rango-dev/ui";var Ga=Nt("div",{display:"flex"}),Vu=Nt("div",{padding:"$10 $0 $20"}),Xu=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ku=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),ju=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Yu=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Zu=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ju=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Ru=Nt("div",{padding:"$15 $0 $15 $0"}),em=lC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(ju,null,z.createElement(Zu,null,z.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{size:8,direction:"horizontal"}),z.createElement(Ju,null,z.createElement(Ge,{height:10,width:60,variant:"rounded"}),z.createElement(pt,{size:4}),z.createElement(Ge,{height:15,variant:"rounded"}))),z.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(Ga,null,z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"})),z.createElement(Ir,null),!r&&z.createElement(pt,{size:4})),z.createElement("div",{className:em()},z.createElement(Ga,null,z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&z.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Vu,null,z.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Xu,null,z.createElement(Ku,null,z.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{direction:"horizontal",size:4}),z.createElement(Ge,{height:15,width:150,variant:"rounded"})),z.createElement(pt,{size:10}),z.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(pt,{size:4}),z.createElement(Ru,null,n,z.createElement(Yu,null),n),z.createElement(pt,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as am,Divider as Xa,NextIcon as pC,Skeleton as Fr}from"@rango-dev/ui";import xe from"react";import{styled as rn}from"@rango-dev/ui";var om=rn("div",{display:"flex",alignItems:"start"}),nm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),rm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),im=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return xe.createElement(xe.Fragment,null,xe.createElement(im,null,xe.createElement(Fr,{height:22,width:22,variant:"circular"}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:15,width:148,variant:"rounded"})),xe.createElement(om,null,xe.createElement(Gu,{hideSeparator:!e}),xe.createElement(nm,{extraSpace:e},xe.createElement(Va,null,xe.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})),xe.createElement(rm,null,xe.createElement(pC,{color:"gray",size:16})),xe.createElement(Va,null,xe.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(qu,{expanded:o,rounded:e!=="basic"},Wt.createElement(nn,{type:e,tagHidden:n}),Wt.createElement(zu,null,Wt.createElement(uC,{height:15,variant:"rounded"})),o&&Wt.createElement(Hu,null,Wt.createElement(cC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:T,toToken:C}=j(),y=e?.outputAmount?new mC(e?.outputAmount):null,S=e?.outputAmount?Kn(e?.outputAmount,Yn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Or.createElement(Da,null,Or.createElement(an,{tagHidden:l,type:o,expanded:s})):w?Or.createElement(Da,{onClick:()=>p?.(e)},Or.createElement(Ha,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as hC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yC}from"react";import{useRef as dC,useState as fC}from"react";var gC=2e3;function Ur({request:t}){let[e,o]=fC(!1),n=dC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,gC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Ur,"useFetch");function sm(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(sm,"useFetchConfirmQuote");function Qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ka(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Qr,"throwErrorIfResponseIsNotValid");function Ka(t){if(up(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=mp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=hp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ka,"getQuoteError");function lm(t,e,o){let n=!1;t&&(n=Mp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=To(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(vp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Co(e)),percentageChange:N(je(Co(t)??"",Co(e)??""),null,2)}:Hi(t,e)?r.quoteUpdate={type:0}:Gi(t,e)?r.quoteUpdate={type:1}:Vi(t,e)&&(r.quoteUpdate={type:2}));let s=wp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(lm,"generateWarnings");function qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(qr,"handleQuoteErrors");function ja(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:T,cancelFetch:C,loading:y}=sm();return yC(()=>C,[]),{loading:y,fetch:i(async k=>{let w=k.selectedWallets,A=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let L=w.reduce((v,b)=>(v[b.chain]=b.address,v),{}),E={requestId:r?.requestId||"",selectedWallets:L,destination:A||void 0};try{return await T(E,!0).then(v=>{let{result:b}=v;Qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let x={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(x);let B={slippage:g.toString(),disabledSwappersGroups:c},U=lm(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let I=!!U.balance,H=hC(o.toString(),b,Tp(w),B,!I,{blockchains:m,tokens:f});return{quote:x,swap:H,error:null,warnings:U}})}catch(v){return qr(v)}},"fetch"),cancelFetch:C}}i(ja,"useConfirmSwap");var EC=TC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${cm}`]:{width:"$48",height:"$48"}}),IC=Ja({flexGrow:1,paddingRight:"$10"}),AC=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),NC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function um(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=bC(),[l,p]=sn(""),u=!n,[c,m]=sn(!1),[f,d]=sn(!1),{isActiveTab:g}=ie(),T=h().getDisabledLiquiditySources(),C=xC(T),{manager:y}=SC(),{fetch:S,loading:k,cancelFetch:w}=ja(),[A,L]=sn({swap:null,error:null,warnings:null}),[E,v]=sn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await S?.({selectedWallets:G,customDestination:ee});return L(W),W},"onConfirmSwap"),x=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${q.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{d(!0),await x(),d(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{L({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(G=>{L(G)}).catch(G=>console.error(G))},"onRefresh");zr(()=>{!!C.current.length&&!T.length&&I(),C.current=T},[T.length]),zr(()=>{u&&w()},[u]),zr(()=>{u&&m(u)},[u]),zr(()=>{u||S({selectedWallets:o,customDestination:r}).then(G=>L(G)).catch(G=>console.error(G))},[]),wC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(be.createElement(pm,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(be.createElement(pm,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&tr(A.warnings.quoteUpdate)})),H||Y){let G=`../${q.settings}`;pe.push(be.createElement(Jo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:E,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await x()},onChangeSettings:()=>s(G)}))}return be.createElement(le,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let G=`../${q.wallets}`;s(G)}},footer:be.createElement(EC,null,be.createElement("div",{className:IC()},be.createElement(CC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!A.error||!g,onClick:U},Ya.t("Start Swap"))),be.createElement(cm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},be.createElement(vC,{size:24})))},c&&be.createElement(Hc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),be.createElement(me,null,be.createElement("div",{className:NC()},be.createElement(kC,{variant:"title",size:"small"},Ya.t("You get")),be.createElement("div",{className:AC()},be.createElement(ur,{onClick:!k&&!c&&!E?I:void 0}))),be.createElement(Za,{size:"12"}),oc(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),be.createElement(Za,{size:10})),pe.length>0?be.createElement(Za,{size:10}):null,be.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:A.error,loading:k,warning:A.warnings?.quote??null})))}i(um,"ConfirmSwapPage");import{i18n as Gr}from"@lingui/core";import{useManager as GC}from"@rango-dev/queue-manager-react";import{Divider as vm,NotFound as VC,styled as XC}from"@rango-dev/ui";import Lt,{useState as KC}from"react";import{useNavigate as jC}from"react-router-dom";import{i18n as LC}from"@lingui/core";import{Divider as hm,GroupedVirtualizedList as BC,Skeleton as PC,SwapListItem as ym,Typography as _C}from"@rango-dev/ui";import $e,{useCallback as Sm,useEffect as $C,useRef as DC,useState as FC}from"react";function mm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(mm,"calculateGroupsSoFar");import{css as WC,darkTheme as MC,styled as ln}from"@rango-dev/ui";var Ra=WC(),dm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${MC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),fm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),gm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var OC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=FC([]),l=DC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Sm(mm,[]),f=Sm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,OC),s(m(u,l.current)))},[e.length]);if($C(()=>{r||f()},[r,f]),r){let d=[1,2];return $e.createElement($e.Fragment,null,[d,d].map((T,C)=>$e.createElement(es,{key:C},$e.createElement(ts,null,$e.createElement(PC,{variant:"text",width:60,size:"small"}),$e.createElement(hm,{size:16})),$e.createElement(hm,{size:4}),$e.createElement(fm,null,T.map((S,k)=>$e.createElement(ym,{isLoading:!0,key:k}))))))}return $e.createElement(BC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>$e.createElement(es,null,$e.createElement(ts,null,$e.createElement(_C,{variant:"label",size:"medium",className:Ra()},c[d]))),itemContent:(d,g)=>{let T=p[d];if(!T)return null;let C=T.steps[0],y=T.steps[T.steps.length-1];return $e.createElement(dm,{key:T.requestId},$e.createElement(ym,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===LC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(T.inputAmount,6,6),realAmount:ce(T.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(os,"HistoryGroupedList");import{CloseIcon as QC,IconButton as qC,SearchIcon as zC,TextField as HC}from"@rango-dev/ui";import pn from"react";import{styled as UC}from"@rango-dev/ui";var Cm=UC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(HC,{prefix:pn.createElement(Cm,null,pn.createElement(zC,{color:"black"})),suffix:!!s.length&&pn.createElement(qC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(QC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as Hr}from"@lingui/core";import Tm from"dayjs";var km=i(t=>{let e=new Map([["today",{title:Hr.t("Today"),swaps:[]}],["week",{title:Hr.t("This week"),swaps:[]}],["month",{title:Hr.t("This month"),swaps:[]}],["year",{title:Hr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Tm();t.forEach(p=>{let u=Number(p.creationTime),c=Tm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var YC=XC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ZC=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function wm(){let t=jC(),{manager:e,state:o}=GC(),n=Je(e).map(({swap:c})=>c),[r,a]=KC(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||ZC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Gr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Gr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(vm,{size:"16"}),Lt.createElement(YC,null,u&&Lt.createElement(gm,null,Lt.createElement(vm,{size:32}),Lt.createElement(VC,{title:Gr.t("No results found"),description:r?Gr.t("Try using different keywords"):""})),!u&&Lt.createElement(os,{list:p,onSwapClick:t,groupBy:km,isLoading:s}))))}i(wm,"HistoryPage");import{i18n as hT}from"@lingui/core";import{Button as yT,Divider as Qm,styled as ST,WarningIcon as CT}from"@rango-dev/ui";import TT from"bignumber.js";import Ue,{useEffect as qm,useState as zm}from"react";import{useNavigate as kT}from"react-router-dom";import{i18n as nT}from"@lingui/core";import{Header as rT}from"@rango-dev/ui";import Vt,{useEffect as iT,useState as aT}from"react";import{i18n as RC}from"@lingui/core";import{Divider as rs,FullExpandedQuote as eT,Typography as tT}from"@rango-dev/ui";import fe from"react";import{styled as ns}from"@rango-dev/ui";var xm=ns("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),bm=ns("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Em=ns("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as JC}from"@rango-dev/ui";import Im from"react";function Vr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return Im.createElement(Em,null,Im.createElement(JC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Vr,"SelectStrategy");var Am=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=j(),{slippage:T,customSlippage:C}=h(),{findToken:y}=h(),S=l||P(),k=!!u&&u.results.length,w=C??T,A=i(v=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...v};return To(b,{fromToken:m,toToken:f,userSlippage:w,findToken:y})},"getQuoteWarning"),L=g?.type===0||g?.type===1,E=u?.results?Jn(d,u?.results):[];return fe.createElement(fe.Fragment,null,a&&fe.createElement(fe.Fragment,null,fe.createElement(bm,null,fe.createElement(tT,{size:"xmedium",variant:"title"},RC.t("Sort by")),fe.createElement(Vr,{container:S})),fe.createElement(rs,{size:"10"})),e&&Array.from({length:Am},(v,b)=>fe.createElement(fe.Fragment,{key:b},s?fe.createElement(eT,{loading:!0}):fe.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Am-1&&fe.createElement(rs,{size:16}))),!e&&fe.createElement(fe.Fragment,null,k?E.map((v,b)=>{let x=A(v),B=Ka(v.swaps),U=E.length-1===b;return fe.createElement(fe.Fragment,{key:v.requestId},fe.createElement(mo,{showModalFee:r,container:S,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:x,fullExpandedMode:s,onClick:I=>{B||c("warning",x),c("error",B?.options||null),o(I)},type:"list-item"}),!U&&fe.createElement(rs,{size:16}))}):L&&fe.createElement(xm,null,fe.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as oT,styled as Nm}from"@rango-dev/ui";var Wm=Nm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${oT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Mm=Nm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var sT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=aT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Do();return iT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},sT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Wm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${fr()}`,id:ye.EXPANDED_BOX_ID},Vt.createElement(rT,{title:nT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Vr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(Mm,null,Vt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as Fm}from"@lingui/core";import{SwapInput as Om}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as cT}from"@rango-dev/ui";import ss from"react";import{keyframes as lT,styled as Lm}from"@rango-dev/ui";var as=450,pT=lT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Bm=Lm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Pm=Lm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${pT} ${as}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ls(){let t=j.use.switchFromAndTo();return ss.createElement(Bm,null,ss.createElement(Pm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(cT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as _m}from"@rango-dev/ui";var $m=_m("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Dm=_m("div",{position:"relative"});function ps(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=j(),{connectedWallets:T,getBalanceFor:C}=te(),y=a?C(a):null,S=Pn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",w=!!s&&Ll(T,s.name),A=!Qi(g,c,m),L=!Qi(g,c,d),E=!m||!d||!d.gt(0)?null:je(m.toString(),d.toString());return mn.createElement($m,null,mn.createElement(Dm,null,mn.createElement(Om,{label:Fm.t("From"),mode:"From",onInputChange:u,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:A?void 0:N(m,4,4),realUsdValue:A?void 0:ce(m),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ls,null)),mn.createElement(Om,{sharpBottomStyle:!r&&(!!g||e),label:Fm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(je(m,d),2,2),warningLevel:Et(E??0),price:{value:N(f,6,6),usdValue:L?void 0:N(d,4,4),realValue:ce(f),realUsdValue:L?void 0:ce(d),error:L?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ps,"Inputs");import{useCallback as uT,useEffect as mT,useRef as dT,useState as fT}from"react";function Um(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Um,"useFetchAllQuotes");var gT=600;function Xr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Um(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:T,setSelectedQuote:C,updateQuotePartialState:y}=j(),{slippage:S,customSlippage:k,affiliatePercent:w,affiliateRef:A,affiliateWallets:L,fetchStatus:E}=h(),v=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),x=h().excludeLiquiditySources(),{findToken:B}=h(),[U,I]=fT(!0),H=dT(u),Y=k??S,G=!l||!p||Rt(l,p)||!Uo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(U||ee(!0),!G&&re&&Te){d();let rt=Cp({fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,wallets:s,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});Gl("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let he=Jn(f,dt.results),M=Bp(m,he,dt.requestAmount);I(!1),y("quotes",dt),C(M),Qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&To(M,{fromToken:re,toToken:Te,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:he}=qr(dt);(he?.type===0||he?.type===1)&&d(),he?.type!==2&&(y("error",he),I(!1))})}},"fetch"),Q=uT(yl(Z=>{W(Z)},gT),[G]);return mT(()=>{if(!t){I(!1);return}if(E!=="success")return;if(G){I(!1),(m||g||T)&&d();return}if(!Uo(u)||c?.eq(0)){ee(!1),o();return}d(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=Q),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,v?.length,n,b.length,Y,A,w,JSON.stringify(L)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),loading:U}}i(Xr,"useSwapInput");var vT=ST("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),wT=300;function Hm(){let t=kT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=j(),[d,g]=zm(!1),{isLargeScreen:T,isExtraLargeScreen:C}=Lr(),{fetch:y,loading:S}=Xr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:L}=ie(),[E,v]=zm(!1),x=dp({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Ol(T,C,k?.variant),U=!!n&&!!e&&!!o&&new TT(n).gt(0)&&!Ap(e,o),I=U&&w==="success"&&S,pe=(!B||B&&p?.results.length)&&(l||s);qm(()=>{c(),f("refetchQuote",!0)},[]),qm(()=>{g(U)},[U]);let G=(r||s)&&!E?y:void 0,ee=i(Q=>{B&&d?(g(!1),setTimeout(()=>{t(Q)},wT)):t(Q)},"onHandleNavigation"),W=i(Q=>{r?.requestId!==Q.requestId&&(v(!1),u(Q))},"onClickOnQuote");return Ue.createElement(vT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(yT,{type:"primary",size:"large",disabled:x.disabled||!L,prefix:x.action==="confirm-warning"&&Ue.createElement(CT,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?ee(q.wallets):x.action==="confirm-warning"?v(!0):ee(q.confirmSwap)}},x.title),header:{onWallet:()=>{ee(q.wallets)},hasBackButton:!1,title:k.title||hT.t("Swap"),suffix:Ue.createElement(ao,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(q.swaps),onClickSettings:()=>{ee(q.settings)}})}},Ue.createElement(me,null,Ue.createElement(ps,{fetchingQuote:I,fetchMetaStatus:w,isExpandable:B,onClickToken:Q=>{ee(Q==="from"?q.fromSwap:q.toSwap)}}),Ue.createElement(Qm,{size:"2"}),B?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),ee(q.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Qm,{size:"10"}),Ue.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:E,confirmationDisabled:!L,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),m(!0),ee(q.confirmSwap)},onChangeSettings:()=>ee(q.settings)})):null)),B?Ue.createElement(is,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:d}):null)}i(Hm,"Home");import{i18n as Gm}from"@lingui/core";import{Alert as xT,Divider as bT,List as ET,ListItemButton as IT,Radio as AT,RadioRoot as NT,Typography as WT}from"@rango-dev/ui";import Tt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Xl,r=o?.language||So;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||So),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function Vm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(WT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(AT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:Gm.t("Language")}},Tt.createElement(me,null,Tt.createElement(xT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(bT,{size:"8"}),Tt.createElement(NT,{value:t},Tt.createElement(ET,{type:Tt.createElement(IT,{title:Gm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Vm,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as _T,Checkbox as $T,Image as DT,ListItemButton as FT,NotFound as OT,Typography as UT}from"@rango-dev/ui";import De,{useState as QT}from"react";import{Checkbox as BT,Skeleton as Km}from"@rango-dev/ui";import fn from"react";import{styled as cs}from"@rango-dev/ui";var dn=cs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),us=cs("div",{width:80,display:"flex",justifyContent:"flex-end"}),ms=cs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as MT,styled as LT}from"@rango-dev/ui";var Xm=LT(MT,{height:61});var PT=30;function ds(){return fn.createElement(dn,null,Array.from(Array(PT),(t,e)=>fn.createElement(Xm,{hasDivider:!0,key:e,start:fn.createElement(Km,{variant:"circular",width:35,height:35}),title:fn.createElement(Km,{variant:"text",size:"large",width:90}),end:fn.createElement(BT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=QT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=On(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:S,groupTitle:k,logo:w}=y;return{start:De.createElement(DT,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement($T,{checked:S,disabled:l}),title:De.createElement(UT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),T=i(y=>{let S=y.target.value;a(S)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(us,null,De.createElement(_T,{variant:"ghost",size:"xsmall",onClick:d},f?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&De.createElement(ds,null),!C.length&&r?De.createElement(ms,null,De.createElement(OT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(dn,{disabled:l},C.map(y=>{let{groupTitle:S,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(FT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as qT}from"@lingui/core";import Kr from"react";import{useNavigate as zT}from"react-router-dom";function jm(){let t=zT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Xr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Kr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:qT.t("Routes"),suffix:Kr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(jm,"RoutesPage");import{i18n as nd}from"@lingui/core";import{Divider as rd,getCategoriesCount as JT,SelectableCategoryList as RT}from"@rango-dev/ui";import Pt,{useState as id}from"react";import{i18n as gs}from"@lingui/core";import{Divider as td,Image as XT,ListItemButton as KT,NotFound as jT,Typography as od}from"@rango-dev/ui";import Re,{useEffect as YT,useState as ZT}from"react";var Ym=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as HT,styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),jr=Zm(Xo,{padding:0,margin:0,listStyle:"none",[`& ${HT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as GT,Skeleton as Rm}from"@rango-dev/ui";import Yr from"react";var VT=20;function ed(){return Yr.createElement(jr,null,Array.from(Array(VT),t=>Yr.createElement(GT,{key:t,hasDivider:!0,start:Yr.createElement(Rm,{variant:"circular",width:35,height:35}),title:Yr.createElement(Rm,{variant:"text",size:"large",width:90})})))}i(ed,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=ZT(e),{fetchStatus:l}=h();YT(()=>{s([...Ym(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(td,{size:32}),Re.createElement(jT,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):Re.createElement(jr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(KT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(XT,{src:u.logo,size:30}),title:Re.createElement(od,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(Jm,null,Re.createElement(od,{variant:"label",size:"large"},gs.t("Select Blockchain")),Re.createElement(td,{size:4}),l==="loading"&&Re.createElement(ed,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Ze(),[n,r]=id(""),[a,s]=id("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=JT(c)!==1;return Pt.createElement(le,{header:{title:nd.t("Select Blockchain")}},Pt.createElement(me,{view:!0},f&&Pt.createElement(Pt.Fragment,null,Pt.createElement(RT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(rd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:nd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Pt.createElement(rd,{size:16}),Pt.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as ti}from"@lingui/core";import{Divider as Ed}from"@rango-dev/ui";import fo,{useState as hk}from"react";import{useNavigate as yk}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Zr,Divider as pd,Image as cd,Skeleton as rk,Tooltip as ik,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as ok}from"react";var ad=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ek),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(tk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function ek(t,e){let o=ad,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(ek,"sortByMostUsedBlockchains");function tk(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(tk,"generateSortByPreferredBlockchainsFor");function sd(t,e){return!!e.list.find(o=>o.name===t)}i(sd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();ok(()=>{if(e?.selected){let a=Ss(t,o,e);sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ss(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Cs,"usePrepareBlockchainList");import{styled as nk}from"@rango-dev/ui";var ld=nk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var ak=12;function vs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Cs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(pd,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(pd,{size:12}),Ne.createElement(ld,null,l==="loading"&&Array.from(Array(ak),d=>Ne.createElement(rk,{key:d,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Zr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts.t("All"))),s.list.map(d=>Ne.createElement(ik,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Ne.createElement(Zr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Ne.createElement(cd,{src:d.logo,size:30})))),m?Ne.createElement(Zr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(cd,{src:s.more[0].logo,size:30})):null,f?Ne.createElement(Zr,{onClick:a,key:"more-blockchains"},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts._("More +{count}",{count:s.more.length}))):null)))}i(vs,"BlockchainsSection");import{i18n as Ls}from"@lingui/core";import{darkTheme as kd,Divider as Bo,ExternalLinkIcon as pk,Image as ck,ListItemButton as uk,NotFound as mk,PinIcon as dk,Skeleton as vd,Typography as ei,VirtualizedList as fk}from"@rango-dev/ui";import K,{useEffect as wd,useState as xd}from"react";import{Divider as Cd,ListItem as lk,Skeleton as gn}from"@rango-dev/ui";import ct from"react";import{css as Lo,darkTheme as ud,ImageContainer as sk,styled as et,Typography as md}from"@rango-dev/ui";var ws=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Lo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Es=Lo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Is=Lo({}),As=Lo(),dd=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ns=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Jr=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${xs}`]:{[`& .${Es}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Is}`]:{bottom:"-15px"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ws=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ms=et(md,{}),fd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rr=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),zO=et("div",{display:"flex",alignItems:"center"}),gd=et("div",{position:"relative",[`& ${sk}`]:{borderRadius:"$xm",overflow:"hidden"}}),hd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),yd=et(md,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Sd=et("a",{"& svg:hover":{color:"$colors$info"}});function Td(t){return ct.createElement(Jr,null,Array.from(Array(t.size),e=>ct.createElement(lk,{key:e,hasDivider:!0,start:ct.createElement(gn,{variant:"circular",width:35,height:35}),end:ct.createElement(Rr,null,ct.createElement(gn,{variant:"text",size:"large",width:70}),ct.createElement(Cd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(gn,{variant:"text",size:"large",width:90}),ct.createElement(Cd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Td,"LoadingTokenList");var Bs=20,gk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:xs()},o?K.createElement("div",{className:ws()},o):K.createElement(Ns,{className:bs()},K.createElement(ei,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ws,{css:a},K.createElement(Ms,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Es()} ${!o&&Is()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Bo,{size:4,direction:"horizontal"}),K.createElement(Sd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(pk,{size:12}))))},"renderDesc");function bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=xd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=xd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");wd(()=>{c(e.length>a.length)},[a.length]),wd(()=>{s(e.slice(0,Bs))},[e.length,r]);let T=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Bo,{size:32}),K.createElement(mk,{title:Ls.t("No results found"),description:Ls.t("Try using different keywords")})):K.createElement(fk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],S=Pn(m(y)),k=y.address||"",w=p.find(v=>v.name===y.blockchain),A=oa(w.color,"main"),L={$$color:A.main250,[`.${kd} &`]:{$$color:A.main850},backgroundColor:"$$color"},E={$$color:A.main600,[`.${kd} &`]:{$$color:A.main200},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(uk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(gd,null,K.createElement(ck,{src:y.image,size:30}),d(y,t.type)&&K.createElement(hd,null,K.createElement(dk,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Ns,null,K.createElement(ei,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ws,{css:L},K.createElement(Ms,{variant:"body",size:"xsmall",css:E},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?gk({address:k,token:a[C],customCssForTag:L,customCssForTagTitle:E,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(Rr,null,K.createElement(vd,{variant:"text",size:"large",width:70}),K.createElement(Bo,{size:4}),K.createElement(vd,{variant:"text",size:"medium",width:50})):S&&K.createElement(fd,null,K.createElement(yd,{variant:"title",size:"small"},S.amount),K.createElement("div",null),S.usdValue&&K.createElement(ei,{variant:"body",className:As(),size:"xsmall"},`$${S.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(dd,null,K.createElement(ei,{variant:"label",size:"large"},Ls.t("Select Token")),K.createElement(Bo,{size:4}),l==="loading"&&K.createElement(Td,{size:Bs}),l==="success"&&K.createElement(Jr,{as:"ul"},T()))}i(bd,"TokenList");function Ps(t){let{type:e}=t,o=yk(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=te.use.getBalanceFor(),[m,f]=hk(""),g=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),S=i(w=>{e==="source"?s({token:w,meta:{blockchains:T,tokens:C}}):l({token:w,meta:{blockchains:T,tokens:C}})},"updateToken"),k={source:ti.t("Source"),destination:ti.t("Destination")};return fo.createElement(le,{header:{title:ti.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(vs,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:w=>{y(w)}}),fo.createElement(Ed,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:ti.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:w=>f(w.target.value)}),fo.createElement(Ed,{size:16}),fo.createElement(bd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{S(w);let A=T.find(L=>w.blockchain===L.name);A&&y(A),n()}})))}i(Ps,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as qk,Button as zk,styled as Hk}from"@rango-dev/ui";import go from"react";import{useInRouterContext as Gk,useSearchParams as Vk}from"react-router-dom";import{i18n as Ld}from"@lingui/core";import{Divider as kk,InfoIcon as vk,TextField as wk,Tooltip as xk,Typography as Bd}from"@rango-dev/ui";import ut from"react";import{Chip as Sk,styled as hn,TextField as Ck}from"@rango-dev/ui";var Id=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Ad=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ck}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Nd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),oi=hn("div",{maxWidth:"280px",padding:"$10"}),Wd=hn(Sk,{width:"61px",flexShrink:0});import{i18n as _s}from"@lingui/core";import{Typography as Tk}from"@rango-dev/ui";import yn from"react";function Md(){return yn.createElement(oi,null,yn.createElement(Tk,{variant:"label",size:"medium",color:"neutral700"},_s.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,_s.t("Warning")),":",_s.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Md,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement(Id,null,ut.createElement(Nd,null,ut.createElement(Bd,{variant:"title",size:"xmedium"},Ld.t("Slippage tolerance per swap")),ut.createElement(kk,{direction:"horizontal",size:4}),ut.createElement(xk,{container:P(),side:"top",sideOffset:4,content:ut.createElement(Md,null)},ut.createElement(vk,{color:"gray"}))),ut.createElement(Ad,null,Kl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Wd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(wk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Jl&&s<=Zl?n(s):n(null)},suffix:o&&ut.createElement(Bd,{variant:"body",size:"small"},"%"),placeholder:Ld.t("Custom")})))}i($s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Pd,BridgesIcon as bk,ChevronRightIcon as Ds,DarkModeIcon as _d,Divider as ni,ExchangeIcon as Ek,InfinityIcon as Ik,InfoIcon as Ak,LanguageIcon as Nk,LightModeIcon as $d,List as Wk,ListItem as Mk,ListItemButton as Lk,Skeleton as Bk,styled as Pk,Switch as _k,Tabs as $k,Tooltip as Dk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as Fk}from"react-router-dom";var Ok=Pk("div",{width:"202px",height:"$40"}),Uk=[{id:"light",icon:O.createElement($d,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(_d,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(Pd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Qk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Pd,{...e});case"dark":return O.createElement(_d,{...e});default:return O.createElement($d,{...e})}},"getThemeIcon");function Dd(){let t=Fk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Ke("theme",c),f=Ke("liquiditySource",c),d=Ke("language",c),g=h().infiniteApprove,T=h().toggleInfiniteApprove,C=On(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),S=y.length,k=y.filter(H=>H.selected).length,w=C.filter(H=>H.type==="DEX"),A=w.length,L=w.filter(H=>H.selected).length,E=i((H,Y)=>{switch(l){case"loading":return O.createElement(Bk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,E(k,S),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(q.bridges),start:O.createElement(bk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,E(L,A),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement(Ek,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},x={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Nk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(q.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ni,{direction:"horizontal",size:4}),O.createElement(Dk,{side:"top",sideOffset:4,container:P(),content:O.createElement(oi,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(Ak,{color:"gray"}))),start:O.createElement(Ik,{color:"gray",size:16}),end:O.createElement(_k,{checked:g}),onClick:T},U={id:"theme-item",type:O.createElement(Mk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(Ok,null,O.createElement($k,{container:P(),items:Uk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Qk(n)},I=f?[]:[v,b];return d||I.push(x),I.push(B),!e?.singleTheme&&!m&&I.push(U),O.createElement(Wk,{type:O.createElement(Lk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Dd,"SettingsLists");var Xk=Hk("div",{paddingLeft:"$8"});function Fd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Vk(),r=Gk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Fs.t("Settings")}},go.createElement(me,null,o&&go.createElement(qk,{type:"info",variant:"alarm",title:Fs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:go.createElement(Xk,null,go.createElement(zk,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),go.createElement($s,null),go.createElement(Dd,null)))}i(Fd,"SettingsPage");import{i18n as Pv}from"@lingui/core";import{cancelSwap as _v}from"@rango-dev/queue-manager-rango-preset";import{useManager as $v}from"@rango-dev/queue-manager-react";import{Alert as Dv}from"@rango-dev/ui";import tl from"react";import{useParams as Fv}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as gv,getCurrentStep as hv,getRelatedWalletOrNull as yv}from"@rango-dev/queue-manager-rango-preset";import{Button as hf,CopyIcon as Sv,Divider as Cv,IconButton as Tv,QuoteCost as kv,RangoExplorerIcon as vv,StepDetails as wv,Tooltip as xv,Typography as ho,useCopyToClipboard as bv}from"@rango-dev/ui";import{useWallets as Ev}from"@rango-dev/wallets-react";import yf from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import R,{useEffect as Sf,useRef as Iv,useState as Cf}from"react";import{useNavigate as Av}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var Kk=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Od(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${Kk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Od,"timeSince");function Ud(t){return t.finishTime?Od(parseInt(t.finishTime)):Od(parseInt(t.creationTime))}i(Ud,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ri}from"@lingui/core";import{Button as Qd,Divider as Os,MessageBox as jk}from"@rango-dev/ui";import jt from"react";var qd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Os,{size:20}),jt.createElement(jk,{type:"error",title:ri.t("Cancel Swap"),description:ri.t("Are you sure you want to cancel this swap?")}),jt.createElement(Os,{size:32}),jt.createElement(Qd,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Cancel it")),jt.createElement(Os,{size:12}),jt.createElement(Qd,{variant:"outlined",type:"primary",size:"large",onClick:e},ri.t("No, Continue"))),"CancelContent");import{i18n as ii}from"@lingui/core";import{Button as zd,Divider as Us,MessageBox as Yk,Typography as Zk}from"@rango-dev/ui";import _t from"react";var Hd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Us,{size:20}),_t.createElement(Yk,{type:"error",title:ii.t("Delete Transaction"),description:ii.t("Are you sure you want to delete this swap?")}),_t.createElement(Us,{size:32}),_t.createElement(zd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Delete it")),_t.createElement(Us,{size:12}),_t.createElement(zd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Zk,{variant:"title",size:"medium",color:"primary"},ii.t("No, Cancel")))),"DeleteContent");import{i18n as Qs}from"@lingui/core";import{PendingSwapNetworkStatus as qs}from"rango-types";var zs={[qs.WaitingForNetworkChange]:{type:"loading",title:Qs.t("Change Network")},[qs.WaitingForConnectingWallet]:{type:"warning",title:Qs.t("Connect Wallet")},[qs.NetworkChanged]:{type:"success",title:Qs.t("Network Changed")}};import{debug as Xd}from"@rango-dev/logging-core";import{MessageBox as Jk,Wallet as Rk}from"@rango-dev/ui";import{useWallets as ev}from"@rango-dev/wallets-react";import Po,{useState as tv}from"react";import{styled as Gd}from"@rango-dev/ui";var Vd=Gd("div",{display:"flex",justifyContent:"center"}),MQ=Gd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Kd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=ev(),[c,m]=tv(null),f=n?.walletType,d=f?Ni(u(f)):null,g=f?p(f):null;return Po.createElement(Po.Fragment,null,Po.createElement(Jk,{type:e,title:o,description:r}),a&&!!f&&!!d&&!!g&&Po.createElement(Vd,null,Po.createElement(Rk,{container:P(),title:g.name,image:g.img,type:f,state:d,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:f,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(f).catch(C=>Xd(C))}})),Po.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Xd(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Hs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ai.WaitingForNetworkChange||e===ai.WaitingForConnectingWallet||e===ai.NetworkChanged;return si.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&si.createElement(Kd,{type:zs[e].type,title:zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(Hd,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(qd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Gs,Divider as li,MessageBox as jd,TokenAmount as ov,Typography as Vs}from"@rango-dev/ui";import Le from"react";import{useNavigate as nv}from"react-router-dom";function Xs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=nv();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(jd,{type:"success",title:Sn.t("Swap Successful")},Le.createElement(ov,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(li,{size:12}),Le.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(jd,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(li,{size:32}),n==="success"&&Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Le.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(li,{size:12}),f&&Le.createElement(Le.Fragment,null,Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Sn.t("Diagnosis")),Le.createElement(li,{size:12})),Le.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import fv from"react";import{i18n as cv}from"@lingui/core";import{Alert as mf,IconButton as uv,LinkIcon as mv}from"@rango-dev/ui";import Yt,{Fragment as dv}from"react";import{Alert as av,ChevronDownIcon as sv,IconButton as lv}from"@rango-dev/ui";import $o,{useState as pv}from"react";import{css as Cn,darkTheme as rv,styled as $t,Typography as iv}from"@rango-dev/ui";var Yd=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=$t("div",{width:"100%"}),Zd=$t(Xo,{padding:"$0 $20 $20 $20"}),dq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jd=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),fq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),_o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${rv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Rd=Cn({padding:"$5 0"}),ci=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),ef=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tf=Cn({width:"100%",padding:"0 $20 $10"}),of=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=$t(iv,{wordBreak:"break-word"});import{styled as Ks}from"@rango-dev/ui";var rf=Ks("div",{display:"flex",flexDirection:"column",gap:"$10"}),af=Ks("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),sf=Ks("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function lf(t){let{message:e}=t,[o,n]=pv(!1);return $o.createElement(av,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(lv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(af,{rotated:o},$o.createElement(sv,{size:12,color:"gray"}))),footer:$o.createElement(sf,{open:o},$o.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(lf,"FailedAlert");import{i18n as pf}from"@lingui/core";import{Alert as js,Button as cf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import Tn from"react";function uf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},pf.t("Change"))}):r===Ys.WaitingForConnectingWallet?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},pf.t("Connect"))}):Tn.createElement(js,{type:"warning",title:n.shortMessage})}i(uf,"WarningAlert");function Zs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Go(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(rf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,T=f===d.length-1,C=(T&&u||p)&&!c,y=T&&a.status==="failed";return Yt.createElement(dv,{key:g},Yt.createElement(mf,{type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:cv.t("View transaction"),action:m.url&&Yt.createElement(uv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(mv,{size:12}))}))}),c&&Yt.createElement(mf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(uf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(lf,{message:r}))}i(Zs,"SwapDetailsAlerts");var df=2e3;var ff=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Fo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Fo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:fv.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function gf(t){if(Go(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(gf,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Ev(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=j.use.retry(),f=ie.use.isActiveTab(),d=Av(),[g,T]=bv(df),C=Iv(null),[y,S]=Cf(null),[k,w]=Cf(null),A=i(()=>{r(),S(null)},"onCancel"),L=ve.use.getNotifications(),E=ve.use.removeNotification(),v=L(),b=hv(e),x=b?.networkStatus;Sf(()=>{v.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId)):k&&w(null))},[e.status,e.requestId]),Sf(()=>{G?S(mi.WaitingForNetworkChange):x===mi.WaitingForConnectingWallet||x===mi.NetworkChanged?S(x):S(null)},[x]);let B=bp(e),U=b?gv(e,b):null,I=b?yv(e,b):null,H=Ud(e),Y=Ep(e),pe=i(he=>!!l(he)?.mobileWallet,"isMobileWallet"),G=x===mi.WaitingForNetworkChange&&!!U&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,U)),ee=G?s.bind(null,I.walletType,U):void 0,W=xp(e,b),Q=ff({swap:e,switchNetwork:ee,showNetworkModal:x,setNetworkModal:S,message:W,blockchains:p,swappers:u}),Z=Q.length,[re,Te]=[e.steps[0],e.steps[Z-1]],_=Te.outputAmount||Te.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((he,M)=>he+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(he=>he.diagnosisUrl)?.diagnosisUrl,de=N(parseFloat(N(_,6,6))*(Te.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),wt=_?ce(new yf(_).multipliedBy(Te.toUsdPrice||0)):"",Ve=ce(new yf(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=je(Oe,de),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?vt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:Q[Z-1].to.token.displayName,conciseAddress:_n(e.wallets[Q[Z-1].to.chain.displayName]?.address||""),chain:Q[Z-1].to.chain.displayName}}):R.createElement(nf,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":vt.t("Transaction was not sent."),B?`${vt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),rt&&R.createElement(ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:vt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(xo,null,R.createElement(hf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},vt.t("Delete"))))},footer:Y&&!k&&R.createElement(hf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let he=Zn(e,p,c);m(he),setTimeout(()=>{d("../../")},0)}},vt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(pi,null,R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t("Request ID")}:`),R.createElement("div",{className:ci()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Tv,{variant:"ghost",onClick:T.bind(null,o||"")},R.createElement(Sv,{size:16,color:"gray"})),R.createElement(of,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(xv,{container:P(),content:vt.t("View on Rango Explorer"),side:"bottom"},R.createElement(vv,{size:20}))))),R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:ef()},R.createElement(kv,{fee:N(String(Fe),2,2),time:Oo(An(e.steps)),steps:Z}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:_},token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image,displayName:Q[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:Et(nt??0)})),R.createElement("div",{className:tf()},R.createElement(ho,{variant:"title",size:"small"},vt.t("Swaps steps"))),R.createElement(Cv,{size:8}),R.createElement(Zd,{ref:C},Q.map((he,M)=>{let V=M,X=gf(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===Q.length-1;return R.createElement(wv,{key:V,step:he,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:P()})}))),R.createElement(Hs,{state:y,onClose:()=>S(null),onCancel:A,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!f}),R.createElement(Xs,{open:!!k,diagnosisUrl:ot,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image},description:dt}))}i(Js,"SwapDetails");import{i18n as fi}from"@lingui/core";import{Divider as vf,NotFound as Bv,Skeleton as vn,Typography as gi}from"@rango-dev/ui";import ge from"react";import{i18n as Nv}from"@lingui/core";import{Divider as Wv,Skeleton as Mv,Typography as Lv}from"@rango-dev/ui";import Ce from"react";import{css as mt,styled as Rs}from"@rango-dev/ui";var Tf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),Ez=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Iz=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Az=mt({paddingTop:"$15",display:"flex"}),Nz=mt({padding:"$15 $0"}),Wz=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Mz=mt({paddingBottom:"$10"}),Lz=mt({display:"flex",justifyContent:"start",alignItems:"center"}),Bz=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),Pz=mt({display:"flex",alignItems:"center"}),_z=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),kf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Ce.createElement(Tf,null,Ce.createElement(nn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Lv,{variant:"title",size:"small"},Nv.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}),Ce.createElement("div",{className:kf()},Ce.createElement(Wv,{direction:"horizontal",size:20}),Ce.createElement(Mv,{height:22,variant:"rectangular"}))),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}))))}i(el,"LoadingSwapDetails");function wf(t){let{requestId:e,showSkeleton:o}=t;return ge.createElement(le,{header:{title:fi.t("Swap and Bridge"),suffix:ge.createElement(xo,null)}},o&&ge.createElement(Yd,null,ge.createElement(pi,null,ge.createElement("div",{className:_o()},ge.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),ge.createElement("div",{className:ci()},ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(vf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}),ge.createElement(vf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ge.createElement("div",{className:_o()},ge.createElement(gi,{className:Rd(),variant:"label",size:"large",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})))),ge.createElement(el,null)),!o&&ge.createElement(Jd,null,ge.createElement(Bv,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(wf,"SwapDetailsPlaceholder");function xf(){let{manager:t,state:e}=$v(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=Fv(),a=Ze(),{fetchStatus:s}=h();if(!r)return tl.createElement(Dv,{containerStyles:{margin:"20px"},type:"error",title:Pv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&_v(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?tl.createElement(wf,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(xf,"SwapDetailsPage");function bf(){return $p(),Yi(),Ov([{path:q.home,element:Qe.createElement(Hm,null)},{path:q.routes,element:Qe.createElement(jm,null)},{path:q.fromSwap,children:[{index:!0,element:Qe.createElement(Ps,{type:"source"})},{path:q.blockchains,element:Qe.createElement(ys,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Qe.createElement(Ps,{type:"destination"})},{path:q.blockchains,element:Qe.createElement(ys,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Qe.createElement(Fd,null)},{path:q.languages,element:Qe.createElement(Vm,null)},{path:q.exchanges,element:Qe.createElement(fs,{sourceType:"Exchanges"})},{path:q.bridges,element:Qe.createElement(fs,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Qe.createElement(wm,null)},{path:q.swapDetails,element:Qe.createElement(xf,null)}]},{path:q.wallets,element:Qe.createElement(Pc,null)},{path:q.confirmSwap,element:Qe.createElement(um,null)}])}i(bf,"AppRoutes");import{useQueueManager as Kv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as jv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Yv}from"rango-sdk";import{useContext as Zv,useEffect as Lf,useState as Bf}from"react";import{globalCss as Uv}from"@rango-dev/ui";var Ef=i(()=>Uv({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function If(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(If,"useFetchApiConfig");import{useWallets as Qv}from"@rango-dev/wallets-react";import{useEffect as qv,useRef as zv}from"react";function Af(){let{connect:t,state:e}=Qv(),o=zv({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);qv(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Af,"useForceAutoConnect");import{isApprovalTX as Hv,RouteEventType as Nf,StepEventType as Wf,StepExecutionEventStatus as Gv,WidgetEvents as hi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mf}from"react";function ol(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=ve.use.setNotification(),{findToken:n}=h();Mf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Wf.TX_EXECUTION&&s.status===Gv.TX_SENT&&!Hv(l)||s.type===Wf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return ke.on(hi.StepEvent,r),()=>ke.off(hi.StepEvent,r)},[ke,t]),Mf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Nf.FAILED||s.type===Nf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ke.on(hi.RouteEvent,r),()=>ke.off(hi.RouteEvent,r)},[ke])}i(ol,"useSubscribeToWidgetEvents");import{useManager as Vv}from"@rango-dev/queue-manager-react";import{useEffect as Xv}from"react";function nl(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=Vv();Xv(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Af(),Ef(),ol(),nl();let t=h().blockchains(),{canSwitchNetworkTo:e}=kr(),[o,n]=Bf(""),[r,a]=Bf(),s=Zv(Qn),l=t.filter(Yv),{fetchApiConfig:p}=If();Lf(()=>()=>_p(),[]),Kv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Lf(()=>(eo.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===jv(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(rl,"useBootstrap");import{styled as Jv}from"@rango-dev/ui";var Pf=Jv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function yi(){rl();let{config:t}=h(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=Xt();return il.createElement(Rv,{language:o},il.createElement(Pf,{id:"swap-container",className:e()},il.createElement(bf,null)))}i(yi,"Main");import{setSolanaSignerConfig as Cw}from"@rango-dev/signer-solana";import sl,{useEffect as Of,useMemo as Tw}from"react";import{useState as ew}from"react";var tw=i(()=>{let[t,e]=ew(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Cl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),_f=tw;import{checkWaitingForNetworkChange as ow,makeQueueDefinition as nw}from"@rango-dev/queue-manager-rango-preset";import{Provider as rw}from"@rango-dev/queue-manager-react";import{useWallets as iw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as aw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sw}from"rango-types";import lw,{useMemo as pw}from"react";function cw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=iw(),l=pw(()=>nw({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(sw),T=i(k=>{let{supportedChains:w}=s(k);return Mn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:aw(g),getSupportedChainNames:T},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},S=ie.use.isActiveTab();return lw.createElement(rw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{ow(k)},isPaused:!S},t.children)}i(cw,"QueueManager");var $f=cw;import{useManager as gw}from"@rango-dev/queue-manager-react";import hw,{createContext as yw,useContext as Sw}from"react";import{cancelSwap as uw,getCurrentBlockchainOfOrNull as mw,getCurrentStep as dw,getRelatedWalletOrNull as fw}from"@rango-dev/queue-manager-rango-preset";var Si=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Zn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&uw(o)}getCurrentStepInfo(e){let o=dw(e);return{step:o,wallet:o?fw(e,o):null,network:o?mw(e,o):null}}};var Df=yw(void 0);function al(t){let{manager:e}=gw(),o=ie.use.isActiveTab(),n=j.use.retry(),{findToken:r}=h(),a=new Si(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Al(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,T=ve().getNotifications(),C=ve().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:S=>u(S,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:C}};return hw.createElement(Df.Provider,{value:y},t.children)}i(al,"WidgetInfo");function Ff(){let t=Sw(Df);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Ff,"useWidget");function Ci(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_f();return Of(()=>{n&&r(n)},[n]),Tw(()=>{$l({API_KEY:o?.apiKey||wn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Of(()=>{t.config?.signers?.customSolanaRPC&&Cw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(qn,{config:o,onUpdateState:e},sl.createElement($f,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(Ci,"WidgetProvider");function Uf(t){let e=t.config?.externalWallets;return Ti.createElement(sp,null,e?Ti.createElement(yi,null):Ti.createElement(Ci,{config:t.config??$i},Ti.createElement(yi,null)))}i(Uf,"Widget");function Qf(){let{on:t,off:e}=ke;return{on:t,off:e}}i(Qf,"useWidgetEvents");export{JV as EventSeverity,qo as MainEvents,s2 as Networks,c2 as PendingSwapNetworkStatus,Bi as QuoteEventTypes,RV as RouteEventType,ki as SUPPORTED_FONTS,e2 as StepEventType,t2 as StepExecutionBlockedEventStatus,o2 as StepExecutionEventStatus,ye as UI_ID,Pi as WalletEventTypes,i2 as WalletEvents,l2 as WalletTypes,Uf as Widget,qo as WidgetEvents,Ci as WidgetProvider,qn as WidgetWallets,aa as customizedThemeTokens,r2 as readAccountAddress,no as useWalletList,kr as useWallets,Ff as useWidget,Qf as useWidgetEvents,Vf as widgetEventEmitter};
2
+ you won\u2019t need to pay extra gas for them.`)),J.createElement(Wr,{size:10}),Object.entries(d.nonePayable).map(([g,T],C)=>{let y=fp(T),S=Oi[g],k=`non-payable-fee-${C}`;return J.createElement(GS,{key:k,fee:y,label:S})}),J.createElement(Qa,null)))))}i(Wu,"QuoteCostDetails");import{i18n as Bu}from"@lingui/core";import{TokenAmount as Pu}from"@rango-dev/ui";import Mr from"react";import{css as VS,styled as XS}from"@rango-dev/ui";var Mu=XS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Lu=VS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Mr.createElement(Mu,null,Mr.createElement(Pu,{direction:"horizontal",label:Bu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Mr.createElement("div",{className:Lu()}),Mr.createElement(Pu,{direction:"horizontal",tooltipContainer:P(),label:Bu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(en,"QuoteSummary");import{i18n as Ou}from"@lingui/core";import{ChevronDownIcon as YS,ChevronRightIcon as ZS,Divider as qa,Image as JS,Tooltip as $r,Typography as Br}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as KS,useState as tn}from"react";var _u=480,$u=768,Du=1024,Fu=1200,jS=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=_u),n(window.innerWidth>_u&&window.innerWidth<=$u),a(window.innerWidth>$u&&window.innerWidth<=Du),l(window.innerWidth>Du&&window.innerWidth<=Fu),u(window.innerWidth>Fu)},"handleResize");return KS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Lr=jS;var Pr=4,_r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement($r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Tu,{className:n,state:a},F.createElement(JS,{src:o,size:16})))},"ImageComponent");function Uu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Lp(r),{isTablet:m,isMobile:f}=Lr();return F.createElement(Cu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Ou.t("Via:")),F.createElement(qa,{direction:"horizontal",size:4}),r.map((d,g)=>{let T=`item-${g}`,C=F.createElement(Fa,null,F.createElement(ZS,{size:12,color:"black"}));return f||m?F.createElement(F.Fragment,{key:T},F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:T},u<=Pr||u>Pr&&g<Pr-1?F.createElement(F.Fragment,null,F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===Pr-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},C,r.map((y,S)=>{let k=`image-${S}`;return S>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),S!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Ua,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Br,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Ou.t("Chains:")),F.createElement(qa,{direction:"horizontal",size:4}),c.map((d,g)=>F.createElement(F.Fragment,{key:d.displayName},c.length<=_r||c.length>_r&&g<_r-1?F.createElement($r,{container:p,side:"bottom",content:d.displayName,sideOffset:4},F.createElement(on,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===_r-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},c.map((T,C)=>C>=g&&F.createElement(on,{key:T.displayName,content:"",src:T.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Ua,{className:"blockchainImage"},F.createElement(Br,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(qa,{direction:"horizontal",size:32}))),F.createElement(Fa,{orientation:a?"up":"down"},F.createElement(YS,{size:12,color:"black"}))))}i(Uu,"QuoteTrigger");function Ha(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),T=h().swappers(),{customSlippage:C,slippage:y}=h(),S=C||y,[k,w]=aC(t.expanded),A=iC(null),L=N(o.value,6,6),E=N(n.value,6,6),v=n.usdValue?N(n.usdValue,4,4):"",b=je(o.usdValue,n.usdValue??null),x=N(b,2,2),B=Et(b??0),U=i((re,Te)=>re.map((_,Fe)=>{let ot,de=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),wt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=de||Oe,nt=wt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return de&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Fo(_.swapperId,T),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,d),image:_.from.blockchainLogo},price:{value:Fe===0&&!Te?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new za(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,d),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new za(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(pu,{dense:m},D.createElement(RS,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(cu,null,de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||wt)&&!de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Oo(_.estimatedTimeInSeconds),fee:N(qi(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),I=U(e?.swaps??[]),H=I.length,Y=f||P(),pe=Pp(t.quote.tags||[]),G=!!c,ee=Oo(An(e?.swaps)),W=Vn(e?.swaps??[],g),Q=N(W,2,2),Z=W.gte(new za(lp));return m?D.createElement(eC,{selected:l,fee:Q,time:ee,tooltipContainer:Do(),steps:I,tags:pe,feeWarning:Z,percentageChange:x,warningLevel:B,outputPrice:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(gu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:hu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(bu,null,pe.map((re,Te)=>{let _=`${re.value}_${Te}`;return D.createElement(D.Fragment,{key:_},D.createElement(oC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Ir,null),!G&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:yu()},D.createElement(Wu,{quote:e,time:ee,fee:Q,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(fu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Mo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:Su()},D.createElement(wu,null,D.createElement(tC,{size:12,color:"gray"})),D.createElement(xu,null,D.createElement(Oa,{size:"small",variant:"body"},`${L} ${I[0].from.token.displayName} = `),D.createElement(Qu,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Oa,{size:"small",variant:"body"},"\xA0",`${E} ${I[I.length-1].to.token.displayName}`))),D.createElement(Qu,{content:ce(n.usdValue),container:Y},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Mo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&D.createElement(rC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:x,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:I[0].from,to:I[H-1].to,percentageChange:x,warningLevel:B}),D.createElement(Wo,{size:4}))),D.createElement(mu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Uu,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:I}),D.createElement(ku,{open:k},D.createElement(vu,null),D.createElement("div",{className:du()},I.map((re,Te)=>{let _=`item-${Te}`;return D.createElement(nC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:Te!==I.length-1,state:re.state})})))))}i(Ha,"Quote");import{Divider as cC,Skeleton as uC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as sC,styled as Dr}from"@rango-dev/ui";var qu=Dr("div",{$$color:"$colors$neutral100",[`.${sC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),zu=Dr("div",{paddingTop:"$2"}),Hu=Dr("div",{paddingLeft:"$8"}),Gu=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as tm,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import z from"react";import{css as lC,styled as Nt}from"@rango-dev/ui";var Ga=Nt("div",{display:"flex"}),Vu=Nt("div",{padding:"$10 $0 $20"}),Xu=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Ku=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),ju=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Yu=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Zu=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),Ju=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Ru=Nt("div",{padding:"$15 $0 $15 $0"}),em=lC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(ju,null,z.createElement(Zu,null,z.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{size:8,direction:"horizontal"}),z.createElement(Ju,null,z.createElement(Ge,{height:10,width:60,variant:"rounded"}),z.createElement(pt,{size:4}),z.createElement(Ge,{height:15,variant:"rounded"}))),z.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(Ga,null,z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"})),z.createElement(Ir,null),!r&&z.createElement(pt,{size:4})),z.createElement("div",{className:em()},z.createElement(Ga,null,z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&z.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Vu,null,z.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Xu,null,z.createElement(Ku,null,z.createElement(tm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{direction:"horizontal",size:4}),z.createElement(Ge,{height:15,width:150,variant:"rounded"})),z.createElement(pt,{size:10}),z.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(pt,{size:4}),z.createElement(Ru,null,n,z.createElement(Yu,null),n),z.createElement(pt,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as am,Divider as Xa,NextIcon as pC,Skeleton as Fr}from"@rango-dev/ui";import xe from"react";import{styled as rn}from"@rango-dev/ui";var om=rn("div",{display:"flex",alignItems:"start"}),nm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Va=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),rm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),im=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return xe.createElement(xe.Fragment,null,xe.createElement(im,null,xe.createElement(Fr,{height:22,width:22,variant:"circular"}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:15,width:148,variant:"rounded"})),xe.createElement(om,null,xe.createElement(Gu,{hideSeparator:!e}),xe.createElement(nm,{extraSpace:e},xe.createElement(Va,null,xe.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})),xe.createElement(rm,null,xe.createElement(pC,{color:"gray",size:16})),xe.createElement(Va,null,xe.createElement(am,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Xa,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(qu,{expanded:o,rounded:e!=="basic"},Wt.createElement(nn,{type:e,tagHidden:n}),Wt.createElement(zu,null,Wt.createElement(uC,{height:15,variant:"rounded"})),o&&Wt.createElement(Hu,null,Wt.createElement(cC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:T,toToken:C}=j(),y=e?.outputAmount?new mC(e?.outputAmount):null,S=e?.outputAmount?Kn(e?.outputAmount,Yn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Or.createElement(Da,null,Or.createElement(an,{tagHidden:l,type:o,expanded:s})):w?Or.createElement(Da,{onClick:()=>p?.(e)},Or.createElement(Ha,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as hC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yC}from"react";import{useRef as dC,useState as fC}from"react";var gC=2e3;function Ur({request:t}){let[e,o]=fC(!1),n=dC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,gC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Ur,"useFetch");function sm(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(sm,"useFetchConfirmQuote");function Qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ka(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Qr,"throwErrorIfResponseIsNotValid");function Ka(t){if(up(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=mp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=hp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ka,"getQuoteError");function lm(t,e,o){let n=!1;t&&(n=Mp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=To(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(vp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Co(e)),percentageChange:N(je(Co(t)??"",Co(e)??""),null,2)}:Hi(t,e)?r.quoteUpdate={type:0}:Gi(t,e)?r.quoteUpdate={type:1}:Vi(t,e)&&(r.quoteUpdate={type:2}));let s=wp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(lm,"generateWarnings");function qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(qr,"handleQuoteErrors");function ja(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:T,cancelFetch:C,loading:y}=sm();return yC(()=>C,[]),{loading:y,fetch:i(async k=>{let w=k.selectedWallets,A=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let L=w.reduce((v,b)=>(v[b.chain]=b.address,v),{}),E={requestId:r?.requestId||"",selectedWallets:L,destination:A||void 0};try{return await T(E,!0).then(v=>{let{result:b}=v;Qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let x={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(x);let B={slippage:g.toString(),disabledSwappersGroups:c},U=lm(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let I=!!U.balance,H=hC(o.toString(),b,Tp(w),B,!I,{blockchains:m,tokens:f});return{quote:x,swap:H,error:null,warnings:U}})}catch(v){return qr(v)}},"fetch"),cancelFetch:C}}i(ja,"useConfirmSwap");var EC=TC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${cm}`]:{width:"$48",height:"$48"}}),IC=Ja({flexGrow:1,paddingRight:"$10"}),AC=Ja({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),NC=Ja({display:"flex",justifyContent:"space-between",alignItems:"center"});function um(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=bC(),[l,p]=sn(""),u=!n,[c,m]=sn(!1),[f,d]=sn(!1),{isActiveTab:g}=ie(),T=h().getDisabledLiquiditySources(),C=xC(T),{manager:y}=SC(),{fetch:S,loading:k,cancelFetch:w}=ja(),[A,L]=sn({swap:null,error:null,warnings:null}),[E,v]=sn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await S?.({selectedWallets:G,customDestination:ee});return L(W),W},"onConfirmSwap"),x=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${q.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{d(!0),await x(),d(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{L({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(G=>{L(G)}).catch(G=>console.error(G))},"onRefresh");zr(()=>{!!C.current.length&&!T.length&&I(),C.current=T},[T.length]),zr(()=>{u&&w()},[u]),zr(()=>{u&&m(u)},[u]),zr(()=>{u||S({selectedWallets:o,customDestination:r}).then(G=>L(G)).catch(G=>console.error(G))},[]),wC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(be.createElement(pm,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(be.createElement(pm,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&tr(A.warnings.quoteUpdate)})),H||Y){let G=`../${q.settings}`;pe.push(be.createElement(Jo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:E,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await x()},onChangeSettings:()=>s(G)}))}return be.createElement(le,{header:{title:Ya.t("Confirm Swap"),onWallet:()=>{let G=`../${q.wallets}`;s(G)}},footer:be.createElement(EC,null,be.createElement("div",{className:IC()},be.createElement(CC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!A.error||!g,onClick:U},Ya.t("Start Swap"))),be.createElement(cm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},be.createElement(vC,{size:24})))},c&&be.createElement(Hc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),be.createElement(me,null,be.createElement("div",{className:NC()},be.createElement(kC,{variant:"title",size:"small"},Ya.t("You get")),be.createElement("div",{className:AC()},be.createElement(ur,{onClick:!k&&!c&&!E?I:void 0}))),be.createElement(Za,{size:"12"}),oc(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),be.createElement(Za,{size:10})),pe.length>0?be.createElement(Za,{size:10}):null,be.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:A.error,loading:k,warning:A.warnings?.quote??null})))}i(um,"ConfirmSwapPage");import{i18n as Gr}from"@lingui/core";import{useManager as GC}from"@rango-dev/queue-manager-react";import{Divider as vm,NotFound as VC,styled as XC}from"@rango-dev/ui";import Lt,{useState as KC}from"react";import{useNavigate as jC}from"react-router-dom";import{i18n as LC}from"@lingui/core";import{Divider as hm,GroupedVirtualizedList as BC,Skeleton as PC,SwapListItem as ym,Typography as _C}from"@rango-dev/ui";import $e,{useCallback as Sm,useEffect as $C,useRef as DC,useState as FC}from"react";function mm(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(mm,"calculateGroupsSoFar");import{css as WC,darkTheme as MC,styled as ln}from"@rango-dev/ui";var Ra=WC(),dm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),es=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ra}`]:{$$color:"$colors$neutral600",[`.${MC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ts=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),fm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),gm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var OC=10;function os(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=FC([]),l=DC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Sm(mm,[]),f=Sm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,OC),s(m(u,l.current)))},[e.length]);if($C(()=>{r||f()},[r,f]),r){let d=[1,2];return $e.createElement($e.Fragment,null,[d,d].map((T,C)=>$e.createElement(es,{key:C},$e.createElement(ts,null,$e.createElement(PC,{variant:"text",width:60,size:"small"}),$e.createElement(hm,{size:16})),$e.createElement(hm,{size:4}),$e.createElement(fm,null,T.map((S,k)=>$e.createElement(ym,{isLoading:!0,key:k}))))))}return $e.createElement(BC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>$e.createElement(es,null,$e.createElement(ts,null,$e.createElement(_C,{variant:"label",size:"medium",className:Ra()},c[d]))),itemContent:(d,g)=>{let T=p[d];if(!T)return null;let C=T.steps[0],y=T.steps[T.steps.length-1];return $e.createElement(dm,{key:T.requestId},$e.createElement(ym,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===LC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(T.inputAmount,6,6),realAmount:ce(T.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(os,"HistoryGroupedList");import{CloseIcon as QC,IconButton as qC,SearchIcon as zC,TextField as HC}from"@rango-dev/ui";import pn from"react";import{styled as UC}from"@rango-dev/ui";var Cm=UC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(HC,{prefix:pn.createElement(Cm,null,pn.createElement(zC,{color:"black"})),suffix:!!s.length&&pn.createElement(qC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(QC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as Hr}from"@lingui/core";import Tm from"dayjs";var km=i(t=>{let e=new Map([["today",{title:Hr.t("Today"),swaps:[]}],["week",{title:Hr.t("This week"),swaps:[]}],["month",{title:Hr.t("This month"),swaps:[]}],["year",{title:Hr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Tm();t.forEach(p=>{let u=Number(p.creationTime),c=Tm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var YC=XC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ZC=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function wm(){let t=jC(),{manager:e,state:o}=GC(),n=Je(e).map(({swap:c})=>c),[r,a]=KC(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||ZC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Gr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Gr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(vm,{size:"16"}),Lt.createElement(YC,null,u&&Lt.createElement(gm,null,Lt.createElement(vm,{size:32}),Lt.createElement(VC,{title:Gr.t("No results found"),description:r?Gr.t("Try using different keywords"):""})),!u&&Lt.createElement(os,{list:p,onSwapClick:t,groupBy:km,isLoading:s}))))}i(wm,"HistoryPage");import{i18n as hT}from"@lingui/core";import{Button as yT,Divider as Qm,styled as ST,WarningIcon as CT}from"@rango-dev/ui";import TT from"bignumber.js";import Ue,{useEffect as qm,useState as zm}from"react";import{useNavigate as kT}from"react-router-dom";import{i18n as nT}from"@lingui/core";import{Header as rT}from"@rango-dev/ui";import Vt,{useEffect as iT,useState as aT}from"react";import{i18n as RC}from"@lingui/core";import{Divider as rs,FullExpandedQuote as eT,Typography as tT}from"@rango-dev/ui";import fe from"react";import{styled as ns}from"@rango-dev/ui";var xm=ns("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),bm=ns("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Em=ns("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as JC}from"@rango-dev/ui";import Im from"react";function Vr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return Im.createElement(Em,null,Im.createElement(JC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Vr,"SelectStrategy");var Am=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=j(),{slippage:T,customSlippage:C}=h(),{findToken:y}=h(),S=l||P(),k=!!u&&u.results.length,w=C??T,A=i(v=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...v};return To(b,{fromToken:m,toToken:f,userSlippage:w,findToken:y})},"getQuoteWarning"),L=g?.type===0||g?.type===1,E=u?.results?Jn(d,u?.results):[];return fe.createElement(fe.Fragment,null,a&&fe.createElement(fe.Fragment,null,fe.createElement(bm,null,fe.createElement(tT,{size:"xmedium",variant:"title"},RC.t("Sort by")),fe.createElement(Vr,{container:S})),fe.createElement(rs,{size:"10"})),e&&Array.from({length:Am},(v,b)=>fe.createElement(fe.Fragment,{key:b},s?fe.createElement(eT,{loading:!0}):fe.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Am-1&&fe.createElement(rs,{size:16}))),!e&&fe.createElement(fe.Fragment,null,k?E.map((v,b)=>{let x=A(v),B=Ka(v.swaps),U=E.length-1===b;return fe.createElement(fe.Fragment,{key:v.requestId},fe.createElement(mo,{showModalFee:r,container:S,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:x,fullExpandedMode:s,onClick:I=>{B||c("warning",x),c("error",B?.options||null),o(I)},type:"list-item"}),!U&&fe.createElement(rs,{size:16}))}):L&&fe.createElement(xm,null,fe.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as oT,styled as Nm}from"@rango-dev/ui";var Wm=Nm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${oT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Mm=Nm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var sT=100;function is(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=aT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Do();return iT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},sT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Wm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${fr()}`,id:ye.EXPANDED_BOX_ID},Vt.createElement(rT,{title:nT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Vr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(Mm,null,Vt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(is,"ExpandedQuotes");import{i18n as Fm}from"@lingui/core";import{SwapInput as Om}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as cT}from"@rango-dev/ui";import ss from"react";import{keyframes as lT,styled as Lm}from"@rango-dev/ui";var as=450,pT=lT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Bm=Lm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Pm=Lm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${pT} ${as}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ls(){let t=j.use.switchFromAndTo();return ss.createElement(Bm,null,ss.createElement(Pm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},as),t()}},ss.createElement(cT,{size:12})))}i(ls,"SwitchFromAndToButton");import{styled as _m}from"@rango-dev/ui";var $m=_m("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Dm=_m("div",{position:"relative"});function ps(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=j(),{connectedWallets:T,getBalanceFor:C}=te(),y=a?C(a):null,S=Pn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",w=!!s&&Ll(T,s.name),A=!Qi(g,c,m),L=!Qi(g,c,d),E=!m||!d||!d.gt(0)?null:je(m.toString(),d.toString());return mn.createElement($m,null,mn.createElement(Dm,null,mn.createElement(Om,{label:Fm.t("From"),mode:"From",onInputChange:u,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:A?void 0:N(m,4,4),realUsdValue:A?void 0:ce(m),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ls,null)),mn.createElement(Om,{sharpBottomStyle:!r&&(!!g||e),label:Fm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(je(m,d),2,2),warningLevel:Et(E??0),price:{value:N(f,6,6),usdValue:L?void 0:N(d,4,4),realValue:ce(f),realUsdValue:L?void 0:ce(d),error:L?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ps,"Inputs");import{useCallback as uT,useEffect as mT,useRef as dT,useState as fT}from"react";function Um(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Um,"useFetchAllQuotes");var gT=600;function Xr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Um(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:T,setSelectedQuote:C,updateQuotePartialState:y}=j(),{slippage:S,customSlippage:k,affiliatePercent:w,affiliateRef:A,affiliateWallets:L,fetchStatus:E}=h(),v=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),x=h().excludeLiquiditySources(),{findToken:B}=h(),[U,I]=fT(!0),H=dT(u),Y=k??S,G=!l||!p||Rt(l,p)||!Uo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(U||ee(!0),!G&&re&&Te){d();let rt=Cp({fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,wallets:s,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});Gl("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let he=Jn(f,dt.results),M=Bp(m,he,dt.requestAmount);I(!1),y("quotes",dt),C(M),Qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&To(M,{fromToken:re,toToken:Te,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:he}=qr(dt);(he?.type===0||he?.type===1)&&d(),he?.type!==2&&(y("error",he),I(!1))})}},"fetch"),Q=uT(yl(Z=>{W(Z)},gT),[G]);return mT(()=>{if(!t){I(!1);return}if(E!=="success")return;if(G){I(!1),(m||g||T)&&d();return}if(!Uo(u)||c?.eq(0)){ee(!1),o();return}d(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=Q),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,v?.length,n,b.length,Y,A,w,JSON.stringify(L)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),loading:U}}i(Xr,"useSwapInput");var vT=ST("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),wT=300;function Hm(){let t=kT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=j(),[d,g]=zm(!1),{isLargeScreen:T,isExtraLargeScreen:C}=Lr(),{fetch:y,loading:S}=Xr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:L}=ie(),[E,v]=zm(!1),x=dp({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Ol(T,C,k?.variant),U=!!n&&!!e&&!!o&&new TT(n).gt(0)&&!Ap(e,o),I=U&&w==="success"&&S,pe=(!B||B&&p?.results.length)&&(l||s);qm(()=>{c(),f("refetchQuote",!0)},[]),qm(()=>{g(U)},[U]);let G=(r||s)&&!E?y:void 0,ee=i(Q=>{B&&d?(g(!1),setTimeout(()=>{t(Q)},wT)):t(Q)},"onHandleNavigation"),W=i(Q=>{r?.requestId!==Q.requestId&&(v(!1),u(Q))},"onClickOnQuote");return Ue.createElement(vT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(yT,{type:"primary",size:"large",disabled:x.disabled||!L,prefix:x.action==="confirm-warning"&&Ue.createElement(CT,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?ee(q.wallets):x.action==="confirm-warning"?v(!0):ee(q.confirmSwap)}},x.title),header:{onWallet:()=>{ee(q.wallets)},hasBackButton:!1,title:k.title||hT.t("Swap"),suffix:Ue.createElement(ao,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(q.swaps),onClickSettings:()=>{ee(q.settings)}})}},Ue.createElement(me,null,Ue.createElement(ps,{fetchingQuote:I,fetchMetaStatus:w,isExpandable:B,onClickToken:Q=>{ee(Q==="from"?q.fromSwap:q.toSwap)}}),Ue.createElement(Qm,{size:"2"}),B?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),ee(q.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Qm,{size:"10"}),Ue.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:E,confirmationDisabled:!L,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),m(!0),ee(q.confirmSwap)},onChangeSettings:()=>ee(q.settings)})):null)),B?Ue.createElement(is,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:d}):null)}i(Hm,"Home");import{i18n as Gm}from"@lingui/core";import{Alert as xT,Divider as bT,List as ET,ListItemButton as IT,Radio as AT,RadioRoot as NT,Typography as WT}from"@rango-dev/ui";import Tt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Xl,r=o?.language||So;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||So),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function Vm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(WT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(AT,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:Gm.t("Language")}},Tt.createElement(me,null,Tt.createElement(xT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(bT,{size:"8"}),Tt.createElement(NT,{value:t},Tt.createElement(ET,{type:Tt.createElement(IT,{title:Gm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Vm,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as _T,Checkbox as $T,Image as DT,ListItemButton as FT,NotFound as OT,Typography as UT}from"@rango-dev/ui";import De,{useState as QT}from"react";import{Checkbox as BT,Skeleton as Km}from"@rango-dev/ui";import fn from"react";import{styled as cs}from"@rango-dev/ui";var dn=cs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),us=cs("div",{width:80,display:"flex",justifyContent:"flex-end"}),ms=cs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as MT,styled as LT}from"@rango-dev/ui";var Xm=LT(MT,{height:61});var PT=30;function ds(){return fn.createElement(dn,null,Array.from(Array(PT),(t,e)=>fn.createElement(Xm,{hasDivider:!0,key:e,start:fn.createElement(Km,{variant:"circular",width:35,height:35}),title:fn.createElement(Km,{variant:"text",size:"large",width:90}),end:fn.createElement(BT,{checked:!1})})))}i(ds,"LoadingLiquiditySourceList");function fs({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=QT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=On(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:S,groupTitle:k,logo:w}=y;return{start:De.createElement(DT,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement($T,{checked:S,disabled:l}),title:De.createElement(UT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),T=i(y=>{let S=y.target.value;a(S)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(us,null,De.createElement(_T,{variant:"ghost",size:"xsmall",onClick:d},f?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&De.createElement(ds,null),!C.length&&r?De.createElement(ms,null,De.createElement(OT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(dn,{disabled:l},C.map(y=>{let{groupTitle:S,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement(FT,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(fs,"LiquiditySourcePage");import{i18n as qT}from"@lingui/core";import Kr from"react";import{useNavigate as zT}from"react-router-dom";function jm(){let t=zT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Xr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Kr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:qT.t("Routes"),suffix:Kr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(jm,"RoutesPage");import{i18n as nd}from"@lingui/core";import{Divider as rd,getCategoriesCount as JT,SelectableCategoryList as RT}from"@rango-dev/ui";import Pt,{useState as id}from"react";import{i18n as gs}from"@lingui/core";import{Divider as td,Image as XT,ListItemButton as KT,NotFound as jT,Typography as od}from"@rango-dev/ui";import Re,{useEffect as YT,useState as ZT}from"react";var Ym=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as HT,styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),jr=Zm(Xo,{padding:0,margin:0,listStyle:"none",[`& ${HT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as GT,Skeleton as Rm}from"@rango-dev/ui";import Yr from"react";var VT=20;function ed(){return Yr.createElement(jr,null,Array.from(Array(VT),t=>Yr.createElement(GT,{key:t,hasDivider:!0,start:Yr.createElement(Rm,{variant:"circular",width:35,height:35}),title:Yr.createElement(Rm,{variant:"text",size:"large",width:90})})))}i(ed,"LoadingBlockchainList");function hs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=ZT(e),{fetchStatus:l}=h();YT(()=>{s([...Ym(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(td,{size:32}),Re.createElement(jT,{title:gs.t("No results found"),description:gs.t("Try using different keywords")})):Re.createElement(jr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(KT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(XT,{src:u.logo,size:30}),title:Re.createElement(od,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(Jm,null,Re.createElement(od,{variant:"label",size:"large"},gs.t("Select Blockchain")),Re.createElement(td,{size:4}),l==="loading"&&Re.createElement(ed,null),l==="success"&&p())}i(hs,"BlockchainList");function ys(t){let{type:e}=t,o=Ze(),[n,r]=id(""),[a,s]=id("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=JT(c)!==1;return Pt.createElement(le,{header:{title:nd.t("Select Blockchain")}},Pt.createElement(me,{view:!0},f&&Pt.createElement(Pt.Fragment,null,Pt.createElement(RT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(rd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:nd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Pt.createElement(rd,{size:16}),Pt.createElement(hs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ys,"SelectBlockchainPage");import{i18n as ti}from"@lingui/core";import{Divider as Ed}from"@rango-dev/ui";import fo,{useState as hk}from"react";import{useNavigate as yk}from"react-router-dom";import{i18n as Ts}from"@lingui/core";import{BlockchainsChip as Zr,Divider as pd,Image as cd,Skeleton as rk,Tooltip as ik,Typography as ks}from"@rango-dev/ui";import Ne from"react";import{useEffect as ok}from"react";var ad=["ETH","COSMOS","OSMOSIS"];function Ss(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ek),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(tk(s)),r=n.splice(a)}return{list:n,more:r}}i(Ss,"prepare");function ek(t,e){let o=ad,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(ek,"sortByMostUsedBlockchains");function tk(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(tk,"generateSortByPreferredBlockchainsFor");function sd(t,e){return!!e.list.find(o=>o.name===t)}i(sd,"isInVisibleList");function Cs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();ok(()=>{if(e?.selected){let a=Ss(t,o,e);sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ss(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Cs,"usePrepareBlockchainList");import{styled as nk}from"@rango-dev/ui";var ld=nk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var ak=12;function vs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Cs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(pd,{size:12}),Ne.createElement(ks,{variant:"label",size:"large"},Ts.t("Select Blockchain")),Ne.createElement(pd,{size:12}),Ne.createElement(ld,null,l==="loading"&&Array.from(Array(ak),d=>Ne.createElement(rk,{key:d,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Zr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts.t("All"))),s.list.map(d=>Ne.createElement(ik,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Ne.createElement(Zr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Ne.createElement(cd,{src:d.logo,size:30})))),m?Ne.createElement(Zr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(cd,{src:s.more[0].logo,size:30})):null,f?Ne.createElement(Zr,{onClick:a,key:"more-blockchains"},Ne.createElement(ks,{variant:"body",size:"xsmall",color:"secondary500"},Ts._("More +{count}",{count:s.more.length}))):null)))}i(vs,"BlockchainsSection");import{i18n as Ls}from"@lingui/core";import{darkTheme as kd,Divider as Bo,ExternalLinkIcon as pk,Image as ck,ListItemButton as uk,NotFound as mk,PinIcon as dk,Skeleton as vd,Typography as ei,VirtualizedList as fk}from"@rango-dev/ui";import K,{useEffect as wd,useState as xd}from"react";import{Divider as Cd,ListItem as lk,Skeleton as gn}from"@rango-dev/ui";import ct from"react";import{css as Lo,darkTheme as ud,ImageContainer as sk,styled as et,Typography as md}from"@rango-dev/ui";var ws=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),xs=Lo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),bs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Es=Lo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Is=Lo({}),As=Lo(),dd=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ns=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Jr=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${xs}`]:{[`& .${Es}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Is}`]:{bottom:"-15px"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${bs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ws=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ms=et(md,{}),fd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${As}`]:{$$color:"$colors$neutral600",[`.${ud} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rr=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),zO=et("div",{display:"flex",alignItems:"center"}),gd=et("div",{position:"relative",[`& ${sk}`]:{borderRadius:"$xm",overflow:"hidden"}}),hd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),yd=et(md,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Sd=et("a",{"& svg:hover":{color:"$colors$info"}});function Td(t){return ct.createElement(Jr,null,Array.from(Array(t.size),e=>ct.createElement(lk,{key:e,hasDivider:!0,start:ct.createElement(gn,{variant:"circular",width:35,height:35}),end:ct.createElement(Rr,null,ct.createElement(gn,{variant:"text",size:"large",width:70}),ct.createElement(Cd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(gn,{variant:"text",size:"large",width:90}),ct.createElement(Cd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Td,"LoadingTokenList");var Bs=20,gk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:xs()},o?K.createElement("div",{className:ws()},o):K.createElement(Ns,{className:bs()},K.createElement(ei,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ws,{css:a},K.createElement(Ms,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Es()} ${!o&&Is()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Bo,{size:4,direction:"horizontal"}),K.createElement(Sd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(pk,{size:12}))))},"renderDesc");function bd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=xd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=xd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Bs))},"loadNextPage");wd(()=>{c(e.length>a.length)},[a.length]),wd(()=>{s(e.slice(0,Bs))},[e.length,r]);let T=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Bo,{size:32}),K.createElement(mk,{title:Ls.t("No results found"),description:Ls.t("Try using different keywords")})):K.createElement(fk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],S=Pn(m(y)),k=y.address||"",w=p.find(v=>v.name===y.blockchain),A=oa(w.color,"main"),L={$$color:A.main150,[`.${kd} &`]:{$$color:A.main750},backgroundColor:"$$color"},E={$$color:A.main750,[`.${kd} &`]:{$$color:A.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(uk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(gd,null,K.createElement(ck,{src:y.image,size:30}),d(y,t.type)&&K.createElement(hd,null,K.createElement(dk,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Ns,null,K.createElement(ei,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ws,{css:L},K.createElement(Ms,{variant:"body",size:"xsmall",css:E},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?gk({address:k,token:a[C],customCssForTag:L,customCssForTagTitle:E,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(Rr,null,K.createElement(vd,{variant:"text",size:"large",width:70}),K.createElement(Bo,{size:4}),K.createElement(vd,{variant:"text",size:"medium",width:50})):S&&K.createElement(fd,null,K.createElement(yd,{variant:"title",size:"small"},S.amount),K.createElement("div",null),S.usdValue&&K.createElement(ei,{variant:"body",className:As(),size:"xsmall"},`$${S.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(dd,null,K.createElement(ei,{variant:"label",size:"large"},Ls.t("Select Token")),K.createElement(Bo,{size:4}),l==="loading"&&K.createElement(Td,{size:Bs}),l==="success"&&K.createElement(Jr,{as:"ul"},T()))}i(bd,"TokenList");function Ps(t){let{type:e}=t,o=yk(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=te.use.getBalanceFor(),[m,f]=hk(""),g=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),S=i(w=>{e==="source"?s({token:w,meta:{blockchains:T,tokens:C}}):l({token:w,meta:{blockchains:T,tokens:C}})},"updateToken"),k={source:ti.t("Source"),destination:ti.t("Destination")};return fo.createElement(le,{header:{title:ti.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(vs,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:w=>{y(w)}}),fo.createElement(Ed,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:ti.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:w=>f(w.target.value)}),fo.createElement(Ed,{size:16}),fo.createElement(bd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{S(w);let A=T.find(L=>w.blockchain===L.name);A&&y(A),n()}})))}i(Ps,"SelectSwapItemsPage");import{i18n as Fs}from"@lingui/core";import{Alert as qk,Button as zk,styled as Hk}from"@rango-dev/ui";import go from"react";import{useInRouterContext as Gk,useSearchParams as Vk}from"react-router-dom";import{i18n as Ld}from"@lingui/core";import{Divider as kk,InfoIcon as vk,TextField as wk,Tooltip as xk,Typography as Bd}from"@rango-dev/ui";import ut from"react";import{Chip as Sk,styled as hn,TextField as Ck}from"@rango-dev/ui";var Id=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Ad=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ck}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Nd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),oi=hn("div",{maxWidth:"280px",padding:"$10"}),Wd=hn(Sk,{width:"61px",flexShrink:0});import{i18n as _s}from"@lingui/core";import{Typography as Tk}from"@rango-dev/ui";import yn from"react";function Md(){return yn.createElement(oi,null,yn.createElement(Tk,{variant:"label",size:"medium",color:"neutral700"},_s.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,_s.t("Warning")),":",_s.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Md,"SlippageTooltipContent");function $s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement(Id,null,ut.createElement(Nd,null,ut.createElement(Bd,{variant:"title",size:"xmedium"},Ld.t("Slippage tolerance per swap")),ut.createElement(kk,{direction:"horizontal",size:4}),ut.createElement(xk,{container:P(),side:"top",sideOffset:4,content:ut.createElement(Md,null)},ut.createElement(vk,{color:"gray"}))),ut.createElement(Ad,null,Kl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Wd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(wk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Jl&&s<=Zl?n(s):n(null)},suffix:o&&ut.createElement(Bd,{variant:"body",size:"small"},"%"),placeholder:Ld.t("Custom")})))}i($s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Pd,BridgesIcon as bk,ChevronRightIcon as Ds,DarkModeIcon as _d,Divider as ni,ExchangeIcon as Ek,InfinityIcon as Ik,InfoIcon as Ak,LanguageIcon as Nk,LightModeIcon as $d,List as Wk,ListItem as Mk,ListItemButton as Lk,Skeleton as Bk,styled as Pk,Switch as _k,Tabs as $k,Tooltip as Dk,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as Fk}from"react-router-dom";var Ok=Pk("div",{width:"202px",height:"$40"}),Uk=[{id:"light",icon:O.createElement($d,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(_d,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(Pd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Qk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Pd,{...e});case"dark":return O.createElement(_d,{...e});default:return O.createElement($d,{...e})}},"getThemeIcon");function Dd(){let t=Fk(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Ke("theme",c),f=Ke("liquiditySource",c),d=Ke("language",c),g=h().infiniteApprove,T=h().toggleInfiniteApprove,C=On(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),S=y.length,k=y.filter(H=>H.selected).length,w=C.filter(H=>H.type==="DEX"),A=w.length,L=w.filter(H=>H.selected).length,E=i((H,Y)=>{switch(l){case"loading":return O.createElement(Bk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,E(k,S),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(q.bridges),start:O.createElement(bk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,E(L,A),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),start:O.createElement(Ek,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},x={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Nk,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement(Ds,{color:"black"})),onClick:()=>t(q.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ni,{direction:"horizontal",size:4}),O.createElement(Dk,{side:"top",sideOffset:4,container:P(),content:O.createElement(oi,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(Ak,{color:"gray"}))),start:O.createElement(Ik,{color:"gray",size:16}),end:O.createElement(_k,{checked:g}),onClick:T},U={id:"theme-item",type:O.createElement(Mk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(Ok,null,O.createElement($k,{container:P(),items:Uk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Qk(n)},I=f?[]:[v,b];return d||I.push(x),I.push(B),!e?.singleTheme&&!m&&I.push(U),O.createElement(Wk,{type:O.createElement(Lk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Dd,"SettingsLists");var Xk=Hk("div",{paddingLeft:"$8"});function Fd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Vk(),r=Gk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Fs.t("Settings")}},go.createElement(me,null,o&&go.createElement(qk,{type:"info",variant:"alarm",title:Fs.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:go.createElement(Xk,null,go.createElement(zk,{type:"secondary",size:"small",onClick:a},Fs.t("Reset")))}),go.createElement($s,null),go.createElement(Dd,null)))}i(Fd,"SettingsPage");import{i18n as Pv}from"@lingui/core";import{cancelSwap as _v}from"@rango-dev/queue-manager-rango-preset";import{useManager as $v}from"@rango-dev/queue-manager-react";import{Alert as Dv}from"@rango-dev/ui";import tl from"react";import{useParams as Fv}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as gv,getCurrentStep as hv,getRelatedWalletOrNull as yv}from"@rango-dev/queue-manager-rango-preset";import{Button as hf,CopyIcon as Sv,Divider as Cv,IconButton as Tv,QuoteCost as kv,RangoExplorerIcon as vv,StepDetails as wv,Tooltip as xv,Typography as ho,useCopyToClipboard as bv}from"@rango-dev/ui";import{useWallets as Ev}from"@rango-dev/wallets-react";import yf from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import R,{useEffect as Sf,useRef as Iv,useState as Cf}from"react";import{useNavigate as Av}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var Kk=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Od(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${Kk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Od,"timeSince");function Ud(t){return t.finishTime?Od(parseInt(t.finishTime)):Od(parseInt(t.creationTime))}i(Ud,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ri}from"@lingui/core";import{Button as Qd,Divider as Os,MessageBox as jk}from"@rango-dev/ui";import jt from"react";var qd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Os,{size:20}),jt.createElement(jk,{type:"error",title:ri.t("Cancel Swap"),description:ri.t("Are you sure you want to cancel this swap?")}),jt.createElement(Os,{size:32}),jt.createElement(Qd,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Cancel it")),jt.createElement(Os,{size:12}),jt.createElement(Qd,{variant:"outlined",type:"primary",size:"large",onClick:e},ri.t("No, Continue"))),"CancelContent");import{i18n as ii}from"@lingui/core";import{Button as zd,Divider as Us,MessageBox as Yk,Typography as Zk}from"@rango-dev/ui";import _t from"react";var Hd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Us,{size:20}),_t.createElement(Yk,{type:"error",title:ii.t("Delete Transaction"),description:ii.t("Are you sure you want to delete this swap?")}),_t.createElement(Us,{size:32}),_t.createElement(zd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Delete it")),_t.createElement(Us,{size:12}),_t.createElement(zd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Zk,{variant:"title",size:"medium",color:"primary"},ii.t("No, Cancel")))),"DeleteContent");import{i18n as Qs}from"@lingui/core";import{PendingSwapNetworkStatus as qs}from"rango-types";var zs={[qs.WaitingForNetworkChange]:{type:"loading",title:Qs.t("Change Network")},[qs.WaitingForConnectingWallet]:{type:"warning",title:Qs.t("Connect Wallet")},[qs.NetworkChanged]:{type:"success",title:Qs.t("Network Changed")}};import{debug as Xd}from"@rango-dev/logging-core";import{MessageBox as Jk,Wallet as Rk}from"@rango-dev/ui";import{useWallets as ev}from"@rango-dev/wallets-react";import Po,{useState as tv}from"react";import{styled as Gd}from"@rango-dev/ui";var Vd=Gd("div",{display:"flex",justifyContent:"center"}),MQ=Gd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Kd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=ev(),[c,m]=tv(null),f=n?.walletType,d=f?Ni(u(f)):null,g=f?p(f):null;return Po.createElement(Po.Fragment,null,Po.createElement(Jk,{type:e,title:o,description:r}),a&&!!f&&!!d&&!!g&&Po.createElement(Vd,null,Po.createElement(Rk,{container:P(),title:g.name,image:g.img,type:f,state:d,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:f,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(f).catch(C=>Xd(C))}})),Po.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Xd(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function Hs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ai.WaitingForNetworkChange||e===ai.WaitingForConnectingWallet||e===ai.NetworkChanged;return si.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&si.createElement(Kd,{type:zs[e].type,title:zs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(Hd,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(qd,{onClose:o,onCancel:r}))}i(Hs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Gs,Divider as li,MessageBox as jd,TokenAmount as ov,Typography as Vs}from"@rango-dev/ui";import Le from"react";import{useNavigate as nv}from"react-router-dom";function Xs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=nv();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(jd,{type:"success",title:Sn.t("Swap Successful")},Le.createElement(ov,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(li,{size:12}),Le.createElement(Vs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(jd,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(li,{size:32}),n==="success"&&Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Le.createElement(Vs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(li,{size:12}),f&&Le.createElement(Le.Fragment,null,Le.createElement(Gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Sn.t("Diagnosis")),Le.createElement(li,{size:12})),Le.createElement(Gs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Vs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Xs,"SwapDetailsCompleteModal");import fv from"react";import{i18n as cv}from"@lingui/core";import{Alert as mf,IconButton as uv,LinkIcon as mv}from"@rango-dev/ui";import Yt,{Fragment as dv}from"react";import{Alert as av,ChevronDownIcon as sv,IconButton as lv}from"@rango-dev/ui";import $o,{useState as pv}from"react";import{css as Cn,darkTheme as rv,styled as $t,Typography as iv}from"@rango-dev/ui";var Yd=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=$t("div",{width:"100%"}),Zd=$t(Xo,{padding:"$0 $20 $20 $20"}),dq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jd=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),fq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),_o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${rv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Rd=Cn({padding:"$5 0"}),ci=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),ef=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tf=Cn({width:"100%",padding:"0 $20 $10"}),of=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=$t(iv,{wordBreak:"break-word"});import{styled as Ks}from"@rango-dev/ui";var rf=Ks("div",{display:"flex",flexDirection:"column",gap:"$10"}),af=Ks("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),sf=Ks("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function lf(t){let{message:e}=t,[o,n]=pv(!1);return $o.createElement(av,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(lv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(af,{rotated:o},$o.createElement(sv,{size:12,color:"gray"}))),footer:$o.createElement(sf,{open:o},$o.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(lf,"FailedAlert");import{i18n as pf}from"@lingui/core";import{Alert as js,Button as cf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ys}from"rango-types";import Tn from"react";function uf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},pf.t("Change"))}):r===Ys.WaitingForConnectingWallet?Tn.createElement(js,{type:"warning",title:n.shortMessage,action:Tn.createElement(cf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ys.WaitingForConnectingWallet)}},pf.t("Connect"))}):Tn.createElement(js,{type:"warning",title:n.shortMessage})}i(uf,"WarningAlert");function Zs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Go(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(rf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,T=f===d.length-1,C=(T&&u||p)&&!c,y=T&&a.status==="failed";return Yt.createElement(dv,{key:g},Yt.createElement(mf,{type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:cv.t("View transaction"),action:m.url&&Yt.createElement(uv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(mv,{size:12}))}))}),c&&Yt.createElement(mf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(uf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(lf,{message:r}))}i(Zs,"SwapDetailsAlerts");var df=2e3;var ff=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Fo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Fo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:fv.createElement(Zs,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function gf(t){if(Go(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(gf,"getStepState");function Js(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Ev(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=j.use.retry(),f=ie.use.isActiveTab(),d=Av(),[g,T]=bv(df),C=Iv(null),[y,S]=Cf(null),[k,w]=Cf(null),A=i(()=>{r(),S(null)},"onCancel"),L=ve.use.getNotifications(),E=ve.use.removeNotification(),v=L(),b=hv(e),x=b?.networkStatus;Sf(()=>{v.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId)):k&&w(null))},[e.status,e.requestId]),Sf(()=>{G?S(mi.WaitingForNetworkChange):x===mi.WaitingForConnectingWallet||x===mi.NetworkChanged?S(x):S(null)},[x]);let B=bp(e),U=b?gv(e,b):null,I=b?yv(e,b):null,H=Ud(e),Y=Ep(e),pe=i(he=>!!l(he)?.mobileWallet,"isMobileWallet"),G=x===mi.WaitingForNetworkChange&&!!U&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,U)),ee=G?s.bind(null,I.walletType,U):void 0,W=xp(e,b),Q=ff({swap:e,switchNetwork:ee,showNetworkModal:x,setNetworkModal:S,message:W,blockchains:p,swappers:u}),Z=Q.length,[re,Te]=[e.steps[0],e.steps[Z-1]],_=Te.outputAmount||Te.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((he,M)=>he+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(he=>he.diagnosisUrl)?.diagnosisUrl,de=N(parseFloat(N(_,6,6))*(Te.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),wt=_?ce(new yf(_).multipliedBy(Te.toUsdPrice||0)):"",Ve=ce(new yf(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=je(Oe,de),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?vt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:Q[Z-1].to.token.displayName,conciseAddress:_n(e.wallets[Q[Z-1].to.chain.displayName]?.address||""),chain:Q[Z-1].to.chain.displayName}}):R.createElement(nf,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":vt.t("Transaction was not sent."),B?`${vt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),rt&&R.createElement(ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:vt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(xo,null,R.createElement(hf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},vt.t("Delete"))))},footer:Y&&!k&&R.createElement(hf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let he=Zn(e,p,c);m(he),setTimeout(()=>{d("../../")},0)}},vt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(pi,null,R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t("Request ID")}:`),R.createElement("div",{className:ci()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Tv,{variant:"ghost",onClick:T.bind(null,o||"")},R.createElement(Sv,{size:16,color:"gray"})),R.createElement(of,{target:"_blank",href:`${pl}/swap/${o}`},R.createElement(xv,{container:P(),content:vt.t("View on Rango Explorer"),side:"bottom"},R.createElement(vv,{size:20}))))),R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:ef()},R.createElement(kv,{fee:N(String(Fe),2,2),time:Oo(An(e.steps)),steps:Z}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:_},token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image,displayName:Q[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:Et(nt??0)})),R.createElement("div",{className:tf()},R.createElement(ho,{variant:"title",size:"small"},vt.t("Swaps steps"))),R.createElement(Cv,{size:8}),R.createElement(Zd,{ref:C},Q.map((he,M)=>{let V=M,X=gf(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===Q.length-1;return R.createElement(wv,{key:V,step:he,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:P()})}))),R.createElement(Hs,{state:y,onClose:()=>S(null),onCancel:A,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!f}),R.createElement(Xs,{open:!!k,diagnosisUrl:ot,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image},description:dt}))}i(Js,"SwapDetails");import{i18n as fi}from"@lingui/core";import{Divider as vf,NotFound as Bv,Skeleton as vn,Typography as gi}from"@rango-dev/ui";import ge from"react";import{i18n as Nv}from"@lingui/core";import{Divider as Wv,Skeleton as Mv,Typography as Lv}from"@rango-dev/ui";import Ce from"react";import{css as mt,styled as Rs}from"@rango-dev/ui";var Tf=Rs("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Rs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=Rs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),Ez=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Iz=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Az=mt({paddingTop:"$15",display:"flex"}),Nz=mt({padding:"$15 $0"}),Wz=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Mz=mt({paddingBottom:"$10"}),Lz=mt({display:"flex",justifyContent:"start",alignItems:"center"}),Bz=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),Pz=mt({display:"flex",alignItems:"center"}),_z=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),kf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function el(){return Ce.createElement(Tf,null,Ce.createElement(nn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Lv,{variant:"title",size:"small"},Nv.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}),Ce.createElement("div",{className:kf()},Ce.createElement(Wv,{direction:"horizontal",size:20}),Ce.createElement(Mv,{height:22,variant:"rectangular"}))),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}))))}i(el,"LoadingSwapDetails");function wf(t){let{requestId:e,showSkeleton:o}=t;return ge.createElement(le,{header:{title:fi.t("Swap and Bridge"),suffix:ge.createElement(xo,null)}},o&&ge.createElement(Yd,null,ge.createElement(pi,null,ge.createElement("div",{className:_o()},ge.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),ge.createElement("div",{className:ci()},ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(vf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}),ge.createElement(vf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ge.createElement("div",{className:_o()},ge.createElement(gi,{className:Rd(),variant:"label",size:"large",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})))),ge.createElement(el,null)),!o&&ge.createElement(Jd,null,ge.createElement(Bv,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(wf,"SwapDetailsPlaceholder");function xf(){let{manager:t,state:e}=$v(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=Fv(),a=Ze(),{fetchStatus:s}=h();if(!r)return tl.createElement(Dv,{containerStyles:{margin:"20px"},type:"error",title:Pv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&_v(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?tl.createElement(wf,{requestId:r,showSkeleton:l}):tl.createElement(Js,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(xf,"SwapDetailsPage");function bf(){return $p(),Yi(),Ov([{path:q.home,element:Qe.createElement(Hm,null)},{path:q.routes,element:Qe.createElement(jm,null)},{path:q.fromSwap,children:[{index:!0,element:Qe.createElement(Ps,{type:"source"})},{path:q.blockchains,element:Qe.createElement(ys,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Qe.createElement(Ps,{type:"destination"})},{path:q.blockchains,element:Qe.createElement(ys,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Qe.createElement(Fd,null)},{path:q.languages,element:Qe.createElement(Vm,null)},{path:q.exchanges,element:Qe.createElement(fs,{sourceType:"Exchanges"})},{path:q.bridges,element:Qe.createElement(fs,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Qe.createElement(wm,null)},{path:q.swapDetails,element:Qe.createElement(xf,null)}]},{path:q.wallets,element:Qe.createElement(Pc,null)},{path:q.confirmSwap,element:Qe.createElement(um,null)}])}i(bf,"AppRoutes");import{useQueueManager as Kv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as jv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Yv}from"rango-sdk";import{useContext as Zv,useEffect as Lf,useState as Bf}from"react";import{globalCss as Uv}from"@rango-dev/ui";var Ef=i(()=>Uv({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function If(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(If,"useFetchApiConfig");import{useWallets as Qv}from"@rango-dev/wallets-react";import{useEffect as qv,useRef as zv}from"react";function Af(){let{connect:t,state:e}=Qv(),o=zv({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);qv(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Af,"useForceAutoConnect");import{isApprovalTX as Hv,RouteEventType as Nf,StepEventType as Wf,StepExecutionEventStatus as Gv,WidgetEvents as hi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mf}from"react";function ol(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=ve.use.setNotification(),{findToken:n}=h();Mf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Wf.TX_EXECUTION&&s.status===Gv.TX_SENT&&!Hv(l)||s.type===Wf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return ke.on(hi.StepEvent,r),()=>ke.off(hi.StepEvent,r)},[ke,t]),Mf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Nf.FAILED||s.type===Nf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ke.on(hi.RouteEvent,r),()=>ke.off(hi.RouteEvent,r)},[ke])}i(ol,"useSubscribeToWidgetEvents");import{useManager as Vv}from"@rango-dev/queue-manager-react";import{useEffect as Xv}from"react";function nl(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=Vv();Xv(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(nl,"useSyncNotifications");function rl(){Af(),Ef(),ol(),nl();let t=h().blockchains(),{canSwitchNetworkTo:e}=kr(),[o,n]=Bf(""),[r,a]=Bf(),s=Zv(Qn),l=t.filter(Yv),{fetchApiConfig:p}=If();Lf(()=>()=>_p(),[]),Kv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Lf(()=>(eo.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===jv(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(rl,"useBootstrap");import{styled as Jv}from"@rango-dev/ui";var Pf=Jv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function yi(){rl();let{config:t}=h(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=Xt();return il.createElement(Rv,{language:o},il.createElement(Pf,{id:"swap-container",className:e()},il.createElement(bf,null)))}i(yi,"Main");import{setSolanaSignerConfig as Cw}from"@rango-dev/signer-solana";import sl,{useEffect as Of,useMemo as Tw}from"react";import{useState as ew}from"react";var tw=i(()=>{let[t,e]=ew(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Cl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),_f=tw;import{checkWaitingForNetworkChange as ow,makeQueueDefinition as nw}from"@rango-dev/queue-manager-rango-preset";import{Provider as rw}from"@rango-dev/queue-manager-react";import{useWallets as iw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as aw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sw}from"rango-types";import lw,{useMemo as pw}from"react";function cw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=iw(),l=pw(()=>nw({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(sw),T=i(k=>{let{supportedChains:w}=s(k);return Mn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:aw(g),getSupportedChainNames:T},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},S=ie.use.isActiveTab();return lw.createElement(rw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{ow(k)},isPaused:!S},t.children)}i(cw,"QueueManager");var $f=cw;import{useManager as gw}from"@rango-dev/queue-manager-react";import hw,{createContext as yw,useContext as Sw}from"react";import{cancelSwap as uw,getCurrentBlockchainOfOrNull as mw,getCurrentStep as dw,getRelatedWalletOrNull as fw}from"@rango-dev/queue-manager-rango-preset";var Si=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Zn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&uw(o)}getCurrentStepInfo(e){let o=dw(e);return{step:o,wallet:o?fw(e,o):null,network:o?mw(e,o):null}}};var Df=yw(void 0);function al(t){let{manager:e}=gw(),o=ie.use.isActiveTab(),n=j.use.retry(),{findToken:r}=h(),a=new Si(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Al(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,T=ve().getNotifications(),C=ve().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:S=>u(S,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:C}};return hw.createElement(Df.Provider,{value:y},t.children)}i(al,"WidgetInfo");function Ff(){let t=Sw(Df);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Ff,"useWidget");function Ci(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_f();return Of(()=>{n&&r(n)},[n]),Tw(()=>{$l({API_KEY:o?.apiKey||wn,BASE_URL:o?.apiUrl||ll})},[o.apiKey,o.apiUrl]),Of(()=>{t.config?.signers?.customSolanaRPC&&Cw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),sl.createElement(qn,{config:o,onUpdateState:e},sl.createElement($f,{apiKey:o.apiKey},sl.createElement(al,null,t.children)))}i(Ci,"WidgetProvider");function Uf(t){let e=t.config?.externalWallets;return Ti.createElement(sp,null,e?Ti.createElement(yi,null):Ti.createElement(Ci,{config:t.config??$i},Ti.createElement(yi,null)))}i(Uf,"Widget");function Qf(){let{on:t,off:e}=ke;return{on:t,off:e}}i(Qf,"useWidgetEvents");export{JV as EventSeverity,qo as MainEvents,s2 as Networks,c2 as PendingSwapNetworkStatus,Bi as QuoteEventTypes,RV as RouteEventType,ki as SUPPORTED_FONTS,e2 as StepEventType,t2 as StepExecutionBlockedEventStatus,o2 as StepExecutionEventStatus,ye as UI_ID,Pi as WalletEventTypes,i2 as WalletEvents,l2 as WalletTypes,Uf as Widget,qo as WidgetEvents,Ci as WidgetProvider,qn as WidgetWallets,aa as customizedThemeTokens,r2 as readAccountAddress,no as useWalletList,kr as useWallets,Ff as useWidget,Qf as useWidgetEvents,Vf as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map