@rango-dev/widget-embedded 0.20.1-next.7 → 0.20.1-next.8

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,2 +1,2 @@
1
- var Qc=Object.defineProperty;var i=(t,e)=>Qc(t,"name",{value:e,configurable:!0});import{MainEvents as gD,RouteEventType as hD,StepEventType as yD,StepExecutionBlockedEventStatus as SD,StepExecutionEventStatus as CD,useEvents as kD}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as wD,useWallets as Bl,Events as xD}from"@rango-dev/wallets-react";import{Networks as AD,WalletTypes as bD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as ED}from"rango-types";import{Events as $r,Provider as Im}from"@rango-dev/wallets-react";import{isEvmBlockchain as Em}from"rango-sdk";import ln,{createContext as Wm,useEffect as Mr,useRef as Bm,useState as Nm}from"react";import{useEffect as rn,useLayoutEffect as Ia,useRef as sn}from"react";import um,{createContext as cm,useContext as mm,useEffect as dm,useRef as fm}from"react";import{create as lm}from"zustand";import{persist as pm}from"zustand/middleware";var gr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},Is=i((t,e,o)=>({config:{...gr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as nm}from"rango-sdk";var _o="c6381a79-2817-4602-83bf-6a641a409e32",Es="https://api.rango.exchange",Te="rango-swap-box";import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as Xc}from"@rango-dev/wallets-react";import{detectInstallLink as Kc,getCosmosExperimentalChainInfo as Yc,isEvmAddress as Jc,KEPLR_COMPATIBLE_WALLETS as VS,Networks as Ls}from"@rango-dev/wallets-shared";import hr from"bignumber.js";import{isCosmosBlockchain as Zc}from"rango-types";import Vc from"bignumber.js";var We=new Vc(0);import{WalletTypes as jc}from"@rango-dev/wallets-shared";var Ws=[jc.LEAP];import{BigNumber as Ns}from"bignumber.js";var Do=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),E=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ns(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ns(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Fo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Xe=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return E(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function yr(t){switch(!0){case t.connected:return Ke.CONNECTED;case t.connecting:return Ke.CONNECTING;case!t.installed:return Ke.NOT_INSTALLED;default:return Ke.DISCONNECTED}}i(yr,"mapStatusToWalletState");function Ps(t,e,o,n){return o.filter(r=>!Ws.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(m=>m.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=yr(t(r));return{title:s,image:a,link:Kc(l),state:p,type:r}})}i(Ps,"mapWalletTypesToWalletInfo");function qo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(qo,"walletAndSupportedChainsNames");function $s(t,e,o,n,r){let s=[];function a(p,u){if(!!!s.find(c=>c.chain===p)){let c={address:u,chain:p,walletType:t};s.push(c)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:m}=Xc(p),c=l.length>0,g=l.includes(m),f=m===Ls.Unknown;if(c&&!g&&!f)return;let h=m===Ls.Unknown&&Jc(u);if(f&&!h)return;o.includes(m)||h?r?a(m,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{a(T,u.toLowerCase())}):a(m,u)}),s}i($s,"prepareAccountsForWalletStore");function Ms(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(s=>{let a=s.from.blockchain,l=s.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(Ms,"getRequiredChains");function zo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(zo,"isAccountAndWalletMatched");function _s(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 hr(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:em(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(_s,"makeBalanceFor");function Ds(t){return{...t,loading:!1,error:!0}}i(Ds,"resetConnectedWalletState");var Fs=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=E(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new hr(s?.amount||We).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),We)||We).toString();return Rc(r)},"calculateWalletUsdValue");function Rc(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Rc,"numberWithThousandSeparator");var em=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Go=i((t,e)=>{let o=Yc(Object.entries(t).map(([,n])=>n).filter(Zc));return o&&o[e]?.experimental},"isExperimentalChain");function Ho(t){return t?{...t,amount:E(t.amount,8,8),usdValue:E(t.usdValue,4,4)}:null}i(Ho,"formatBalance");function tm(t,e){return t?.usdValue&&e?.usdValue?parseFloat(e.usdValue)-parseFloat(t.usdValue):!t?.usdValue&&e?.usdValue?1:t?.usdValue&&!e?.usdValue?-1:!t?.usdValue&&!e?.usdValue?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(tm,"sortTokensByBalance");function om(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(om,"sortTokensByPinnedToken");function Os(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=om(n,r,o);return l!==0?l:tm(s,a)}),t}i(Os,"sortTokens");function Le(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Le,"tokensAreEqual");function Us(t){return t.sort((e,o)=>+(o.state===Ke.CONNECTED)-+(e.state===Ke.CONNECTED)||+(o.state===Ke.DISCONNECTED||o.state===Ke.CONNECTING)-+(e.state===Ke.DISCONNECTED||e.state===Ke.CONNECTING))}i(Us,"sortWalletsBasedOnConnectionState");function Qo(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(Qo,"getConciseAddress");function qs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(qs,"getAddress");function Sr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Sr,"createTokenHash");function Vo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new hr(o?.usdPrice??We).multipliedBy(o?.amount).toString():""},r=o?Sr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(Vo,"makeTokensBalance");var zs=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var Cr={API_KEY:_o};function _t(t){return Cr[t]||""}i(_t,"getConfig");function Gs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Cr=e,Cr}i(Gs,"initConfig");var Hs=20,Qs=25,Vs="Roboto",kr="theme-widget",ro=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Le(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Le(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Tr=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig");var jo,Dt=i(()=>jo||(jo=new nm(_t("API_KEY"),_t("BASE_URL")),jo),"httpService");function Ft(t){return Array.from(new Set(t))}i(Ft,"removeDuplicateFrom");function wr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wr,"areEqual");function js(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(js,"debounce");function At(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(At,"containsText");var O=i(()=>document.getElementById(Te),"getContainer");function Xo(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Ft(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Xo,"getUniqueSwappersGroups");function Xs(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Xs,"sortLiquiditySourcesByGroupTitle");function Pe(t,e){return e?.[t]==="hidden"}i(Pe,"isFeatureHidden");function Ko(t,e){return e?.[t]==="enabled"}i(Ko,"isFeatureEnabled");var Ks=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??{},a=e().blockchains({type:o.type});return n.filter(p=>s&&ro(p,s)||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(At(p.symbol,o.searchFor)||At(p.address||"",o.searchFor)||At(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(u,o.type)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Le(a,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(Xs)},fetch:async()=>{try{let o=await Dt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],s=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as rm,French as im,Japanese as sm,Spanish as am}from"@rango-dev/ui";var Ys=[{title:"English",label:"English",local:"en",SVGFlag:rm},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:am},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:im},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:sm}],Ot="en";var Js=[.5,1,3],Zs=1,Rs=5,ea=100,ta=0;var oa=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ot,preferredBlockchains:[],slippage:Zs,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},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 s=Ft(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),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}=o,r=Pe("theme",n),s=Pe("language",n),a=Pe("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:Ot},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function na(t){return lm()(pm((...e)=>({...Ks(...e),...oa(...e),...Is(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(na,"createAppStore");var ra=cm(null);function d(){let t=mm(ra);if(dm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function ia(t){let e=fm();return e.current||(e.current=na(t.config)),um.createElement(ra.Provider,{value:e.current},t.children)}i(ia,"AppStoreProvider");import ht from"bignumber.js";import{create as Tm}from"zustand";import{subscribeWithSelector as wm}from"zustand/middleware";import{getLastSuccessfulStep as Cm}from"@rango-dev/queue-manager-rango-preset";import Ak from"bignumber.js";var dt=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(dt||{});function sa(t,e){return e.find(o=>o.name===t)?.displayName}i(sa,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function aa(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(aa,"getSwapperDisplayName");function vr(t,e){return e.find(o=>Le(o,t))??null}i(vr,"findToken");function Ar(t,e){return e.find(o=>o.name===t)??null}i(Ar,"findBlockchain");import{i18n as Oe}from"@lingui/core";import ve from"bignumber.js";import{PendingSwapNetworkStatus as Ro}from"rango-types";function Yo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Yo,"getRequiredWallets");function Jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jo,"isValidAddress");import{i18n as fe}from"@lingui/core";var V=i(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.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:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function la(t){switch(t.type){case 0:return t.diagnosisMessage??V().noResultError.title;case 1:return V().genericServerError;default:return""}}i(la,"getQuoteErrorMessage");import{i18n as Zo}from"@lingui/core";var bt=i(()=>({connectWallet:Zo.t("Connect Wallet"),swap:Zo.t("Swap"),swapAnyway:Zo.t("Swap anyway"),ethWarning:Zo.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function pa(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ve(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ve(1e3)))??!1}i(pa,"hasHighValueLoss");function br(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(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(br,"hasLimitError");function Ir(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ve(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ve(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 ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=Oe.t({id:"Required: >= {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Oe.t({id:"Required: > {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Oe.t({id:"Required: <= {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Oe.t({id:"Required: < {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Ir,"getLimitErrorMessage");function ua(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:bt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:bt().swap,action:"confirm-swap",disabled:!0}:a?{title:bt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:bt().ethWarning,action:"confirm-warning",disabled:!1}:{title:bt().swap,action:"confirm-swap",disabled:!1}:{title:bt().connectWallet,action:"connect-wallet",disabled:!1}}i(ua,"getSwapButtonState");function Er(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(Er,"canComputePriceImpact");function gm(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(gm,"requiredWallets");var hm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function ym(t,e){let o=We;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=hm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(ym,"getUsdFeeOfStep");function en(t,e){return t.reduce((o,n)=>o.plus(ym(n,e)),We)}i(en,"getTotalFeeInUsd");function Wr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Wr,"checkSlippageErrors");function ca(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(ca,"checkSlippageWarnings");function tn(t){return t.result?.swaps.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(tn,"getMinRequiredSlippage");function ma(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ma,"hasProperSlippage");function on(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:f,destination:v}=t,h=s?.reduce((b,S)=>(b[S.chain]=S.address,b),{}),y=[];r?.forEach(b=>{let S=y.find(x=>x.blockchain===b.chain);S?S.addresses.push(b.address):y.push({blockchain:b.chain,addresses:[b.address]})});let A=!!f,T=Ft((f?.result?.swaps||[]).reduce((b,S)=>(b.push(S.from.blockchain,S.to.blockchain),S.internalSwaps&&Array.isArray(S.internalSwaps)&&S.internalSwaps.map(x=>{b.push(x.from.blockchain,x.to.blockchain)}),b),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:g??void 0,checkPrerequisites:A,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:h??{},slippage:u.toString(),...v&&{destination:v},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(b=>!a.includes(b)),swappersGroupsExclude:!1},...A&&{blockchains:T}}}i(on,"createQuoteRequestBody");function da(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(da,"getWalletsForNewSwap");function Ut(t){return t.result?.outputAmount||null}i(Ut,"getQuoteOutputAmount");function fa(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(fa,"getPercentageChange");function ga(t,e){let o=Ut(t),n=Ut(e);if(!o||!n)return!1;let r=$e(o,n);return r?r<=-1:!0}i(ga,"isOutputAmountChangedALot");function ha(t,e,o){let n=t.validationStatus,r=Ms(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>wa(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=E(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=E(new ve(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Oe.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Oe.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Oe.t(" for input and network fee")),Oe.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Ye(a.asset.blockchain,o)}})})}i(ha,"generateBalanceWarnings");function ya(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(ya,"calcOutputUsdValue");function io(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ro.NetworkChanged}i(io,"isNetworkStatusInWarningState");function Sa(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),io(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Ro.WaitingForConnectingWallet:n=n||Oe.t("Waiting for connecting wallet");break;case Ro.WaitingForQueue:n=n||Oe.t("Waiting for other running tasks to be finished");break;case Ro.WaitingForNetworkChange:n=n||Oe.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(Sa,"getSwapMessages");function Ca(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(Ca,"getLastConvertedTokenInFailedSwap");function ka(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(ka,"shouldRetrySwap");function Ta(t,e,o,n,r,s){return t||!e&&!gm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Jo(s,o)}i(Ta,"confirmSwapDisabled");function Br(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Br,"searchParamsToToken");function va(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(va,"getQuoteToTokenUsdPrice");function Nr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Nr,"isNumberOfSwapsChanged");function Lr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!wr(o,n)}i(Lr,"isQuoteSwappersUpdated");function Pr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!wr(o,n)}i(Pr,"isQuoteInternalCoinsUpdated");function Aa(t,e){return Nr(t,e)||Lr(t,e)||Pr(t,e)}i(Aa,"isQuoteChanged");function wa(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(wa,"getRequiredBalanceOfWallet");function it(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(it,"getPriceImpactLevel");function ba(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Cm(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ar(s?s.toBlockchain:n.fromBlockchain,e),p=Ar(r.toBlockchain,e),u=vr(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=vr(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(ba,"createRetryQuote");function nn(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=It(o,t.requestAmount),l=It(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=$e(a.toString(),l.toString());if(!!m&&pa(a,m)){let g=en(t.result.swaps,r),f=it(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=tn(t),u=s>Rs;if(ma(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:ca(t,s),minRequiredSlippage:p};return null}i(nn,"generateQuoteWarnings");function $e(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:fa(t.toString(),e.toString());return n&&n<0?n:null}i($e,"getPriceImpact");var km=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"),gt=km;var It=i((t,e)=>t?.usdPrice?new ht(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=gt(Tm()(wm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ht(0),outputUsdValue:new ht(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=We;return no(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ht(e.result?.outputAmount):null,r=ya(e.result?.outputAmount,va(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new ht(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote: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:It(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote: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 ht(0),outputUsdValue:new ht(0),quote:null},...!!o.fromToken&&{inputUsdValue:It(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=ba(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:It(a??null,u),outputUsdValue:new ht(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:It(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Ea(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=U(),u=d().config,m=d().fetchStatus,c=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:v,setAffiliateWallets:h}=d(),y=u?.from?.tokens,A=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,b=sn(void 0),S=sn(void 0),x=sn(void 0),I=sn(void 0);rn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Ia(()=>{if(m==="success"){let C=c.find($=>$.name===u?.from?.blockchain),N=g.find($=>Le($,u?.from?.token||null));(C||!C&&x.current)&&n(C??null),N?r({token:N,meta:{blockchains:c,tokens:g}}):!N&&b.current&&r({token:null}),x.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),rn(()=>{ro(s,y)&&r({token:null}),Tr(l,A)&&n(null)},[y,A]),rn(()=>{ro(a,T)&&r({token:null}),Tr(p,w)&&o(null)},[T,w]),Ia(()=>{if(m==="success"){let C=c.find($=>$.name===u?.to?.blockchain),N=g.find($=>Le($,u?.to?.token||null));(C||!C&&I.current)&&o(C??null),N?e({token:N,meta:{blockchains:c,tokens:g}}):!N&&S.current&&e({token:null}),I.current=u?.to?.blockchain,S.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),rn(()=>{f(u?.affiliate?.ref??null),v(u?.affiliate?.percent??null),h(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ea,"useSyncStoresWithConfig");import{useEffect as bm}from"react";import{create as xm}from"zustand";import{subscribeWithSelector as vm}from"zustand/middleware";var H=gt(xm()(vm((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Vo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>zo(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Dt().getWalletsDetails(a)).wallets;if(p)t(u=>{let m=u.connectedWallets.map(g=>{let f=o.find(h=>zo(h,g)),v=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return v?.failed&&f&&r&&s([f],n,!1),f&&v?{...g,explorerUrl:v.explorerUrl,balances:_s(v,n),loading:!1}:g});return{loading:!1,balances:Vo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>zo(c,m))?Ds(m):m);return{loading:!1,balances:Vo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Sr(o);return n[r]??null}}))));import{allProviders as Am}from"@rango-dev/provider-all";function an(t,e){let o=Am({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(an,"matchAndGenerateProviders");function Wa(t,e){return an(t,e).map(r=>r.config.type)}i(Wa,"configWalletsToWalletName");function Ba(t,e){let o=H.use.clearConnectedWallet(),n=an(void 0,e);return bm(()=>{o(),n=an(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Ba,"useWalletProviders");var pn=Wm({onConnectWallet:()=>{}});function Lm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},[l,p]=Nm([]),{providers:u}=Ba(t.config.wallets,a),{connectWallet:m,disconnectWallet:c}=H(),g=Bm();Ea(),Mr(()=>{n().catch(console.log)},[]),Mr(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let f=r.filter(Em).map(h=>h.name),v=i((h,y,A,T,w)=>{if(y===$r.ACCOUNTS)if(A){let b=qo(w.supportedBlockchains),S=$s(h,A,f,b,w.isContractWallet);p(S)}else c(h);if(y===$r.ACCOUNTS&&T.connected){let b=`${h}-${T.network}-${A}`;T.connected&&(g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(y===$r.NETWORK&&T.network){let b=`${h}-${T.network}`;g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,y,A,T,w)},"onUpdateState");return Mr(()=>{l.length&&m(l,s)},[l,s]),ln.createElement(pn.Provider,{value:{onConnectWallet:h=>{g.current=h}}},ln.createElement(Im,{allBlockChains:r,providers:u,onUpdateState:v,autoConnect:!0},t.children))}i(Lm,"Main");function un(t){let{config:e,...o}=t;return ln.createElement(ia,{config:e},ln.createElement(Lm,{...o,config:e}))}i(un,"WidgetWallets");import bs from"react";import{I18nManager as uS}from"@rango-dev/ui";import Po,{useContext as cS,useEffect as Fc,useState as Oc}from"react";import{useQueueManager as qm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as zm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Gm}from"rango-types";import cn,{Fragment as Hm}from"react";import{MemoryRouter as Qm,useInRouterContext as Vm}from"react-router";import{useWallets as $m}from"@rango-dev/wallets-react";import{useEffect as Mm,useRef as _m}from"react";function Na(){let{connect:t,state:e}=$m(),o=_m({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Mm(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(Na,"useForceAutoConnect");import{useEffect as _r,useRef as Dr}from"react";import{createSearchParams as Fm,useLocation as Om,useSearchParams as Um}from"react-router-dom";var _={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as Dm}from"zustand";var Ae=gt(Dm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function La(){let t=Dr(!0),[e,o]=Um(),n=Om(),r=Dr(n.search),s=Dr({}),a=U.use.fromBlockchain(),l=U.use.toBlockchain(),p=U.use.fromToken(),u=U.use.toToken(),m=U.use.setFromBlockchain(),c=U.use.setFromToken(),g=U.use.setToBlockchain(),f=U.use.setToToken(),v=U.use.inputAmount(),h=U.use.setInputAmount(),y=d().fetchStatus,A=d().blockchains(),T=d().tokens(),w=Ae.use.setSelectedSwap();return _r(()=>{let b={};Fm(r.current).forEach((x,I)=>{b[I]=x}),s.current=b;let S=n.pathname.split(_.swaps+"/")[1]||null;S&&w(S)},[]),_r(()=>{if(!t.current){let b="",S="",x="",I="",C="",N=s.current["autoConnect"];y!=="success"?(b=s.current["fromBlockchain"],S=s.current["fromToken"],x=s.current["toBlockchain"],I=s.current["toToken"],C=s.current["fromAmount"]||v):(b=a?.name||"",S=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),x=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),C=v),o({...b&&{["fromBlockchain"]:b},...S&&{["fromToken"]:S},...x&&{["toBlockchain"]:x},...I&&{["toToken"]:I},...C&&{["fromAmount"]:C.toString()},...N&&{["autoConnect"]:N}},{replace:!0})}t.current=!1},[n.pathname,v,a,p,l,u]),_r(()=>{if(y==="success"){let b=e.get("fromBlockchain"),S=e.get("fromToken"),x=e.get("toBlockchain"),I=e.get("toToken"),C=e.get("fromAmount"),N=A.find(M=>M.name===b),$=Br(T,S,N||null),B=A.find(M=>M.name===x),k=Br(T,I,B||null);N&&(m(N),$&&c({token:$,meta:{blockchains:A,tokens:T}})),B&&(g(B),k&&f({token:k,meta:{blockchains:A,tokens:T}})),C&&h(C)}},[y]),null}i(La,"UpdateUrl");function Pa({children:t,...e}){let o=Vm(),n=o?Hm:Qm,r=d().blockchains(),{canSwitchNetworkTo:s}=zm();Na();let a=r.filter(Gm);return qm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),cn.createElement(cn.Fragment,null,cn.createElement(n,null,t),o&&cn.createElement(La,null))}i(Pa,"AppRouter");import Ie from"react";import{useRoutes as rS}from"react-router-dom";import{i18n as Fn}from"@lingui/core";import{useManager as ug}from"@rango-dev/queue-manager-react";import{Alert as qp,Button as zp,css as wi,Divider as cg,IconButton as Gp,RefreshIcon as mg,SettingsIcon as dg,styled as Hp,Tooltip as fg,Typography as gg,WalletIcon as hg}from"@rango-dev/ui";import te,{useEffect as ko,useLayoutEffect as yg,useRef as Sg,useState as On}from"react";import{flushSync as Cg}from"react-dom";import{useNavigate as kg}from"react-router-dom";import{i18n as st}from"@lingui/core";import{Alert as oi,BalanceErrors as uf,Button as Nl,ChevronDownIcon as cf,ChevronLeftIcon as mf,Divider as Qt,MessageBox as df,Modal as Ll,Typography as En,WalletIcon as ff}from"@rango-dev/ui";import P,{useEffect as gf,useLayoutEffect as hf,useRef as yf,useState as Bt}from"react";import{useNavigate as Sf}from"react-router-dom";import{i18n as mn}from"@lingui/core";function dn(t){switch(t.type){case 0:return mn.t("Route has been updated.");case 3:return mn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return mn.t("Route swappers has been updated.");case 2:return mn.t("Route internal coins has been updated.");default:return""}}i(dn,"getQuoteUpdateWarningMessage");import*as zt from"@radix-ui/react-collapsible";import{Button as Xm,css as $a,darkTheme as qt,IconButton as Km,keyframes as Ma,styled as ge,TextField as Ym}from"@rango-dev/ui";var so=300,Jm=Ma({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Zm=Ma({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_a=ge("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Da=ge("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Rm=ge("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Fa=ge(Rm,{alignSelf:"stretch",minHeight:"93px"}),Oa=ge(zt.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Ua=ge("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),qa=ge(Km,{position:"absolute",left:"$20"}),za=ge("div",{paddingTop:"$20"}),Ga=$a({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ha=ge(zt.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Qa=ge(Xm,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${qt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Va=ge("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),ja=$a({paddingTop:"5px"}),Xa=ge("div",{transition:`all ${so}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ka=ge("div",{display:"flex"}),Ya=ge(Ym,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),fn=ge(zt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${Jm} ${so}ms ease-out`},false:{animation:`${Zm} ${so}ms ease-out`}}}}),Ja=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as af,Divider as ei,Image as lf,MessageBox as In,Modal as bl,SelectableWallet as pf,Typography as Il,WalletState as El}from"@rango-dev/ui";import ee,{useEffect as Wl,useState as lo}from"react";import{WalletState as Fr}from"@rango-dev/ui";import{useWallets as ed}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as td,WalletTypes as gn}from"@rango-dev/wallets-shared";import{useEffect as od,useState as nd}from"react";var rd=Object.values(gn);function hn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=ed(),{connectedWallets:u}=H(),m=d().blockchains(),c=Wa(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||rd,g=Ps(s,l,c,o),f=Us(g),[v,h]=nd(""),y=i(S=>!u.find(x=>x.walletType===S&&x.chain===o),"isExperimentalChainNotAdded"),A=i(async S=>{let x=s(S);try{if(v&&h(""),x.connected)await a(S);else{let I=!!g.find(C=>C.state===Fr.CONNECTED);if(!e?.multiWallets&&I)return;n?.(S),await p(S),r?.(S)}}catch(I){h("Error: "+I?.message)}},"handleClick"),T=i(()=>{let S=g?.filter(x=>x.state===Fr.CONNECTING)||[];for(let x of S)a(x.type)},"disconnectConnectingWallets");od(()=>()=>{T()},[]);let w=i(S=>S.filter(I=>I.state!=Fr.NOT_INSTALLED&&![gn.DEFAULT,gn.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(C=>C.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),b=i((S,x,I)=>Go(I,x)&&y(S)&&!td.includes(S)||S==gn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(S=>!b(S.type,o??"",m)),error:v,handleClick:A}}i(hn,"useWalletList");import{i18n as Cl}from"@lingui/core";import{styled as Tl,Typography as Zd,Wallet as Rd,WalletState as ef}from"@rango-dev/ui";import Wt,{Fragment as tf,useState as kl}from"react";import{BottomLogo as zd,Divider as Gd,Header as Hd}from"@rango-dev/ui";import he from"react";import{useNavigate as id}from"react-router-dom";function yt(){let t=id();return()=>t(-1)}i(yt,"useNavigateBack");import{createTheme as zr,darkTheme as ud,lightTheme as cd}from"@rango-dev/ui";import{useEffect as el,useState as md}from"react";import{theme as ld,darkColors as pd}from"@rango-dev/ui";var Za=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),yn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:Za(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:Za(e,-((l-5)*25))});return a},"generateRangeColors"),Or=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=yn(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,...yn(s,a)}}return n?r:{}},"generateColors");var Ra=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),sd=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Ra(o%52)+e;return Ra(o%52)+e},"toAlphabeticName"),ad=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ur=i(t=>sd(ad(5381,JSON.stringify(t))>>>0),"toHash");function qr(t){let e=ld.colors,o=Or({...e,...pd},!0,t?.dark),n=Or(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${kr}-light-${Ur(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${kr}-dark-${Ur(p)}`,tokens:p}}return{light:a,dark:l}}i(qr,"customizedThemeTokens");function Sn(t){let{colors:e,fontFamily:o=Vs,borderRadius:n=Hs,secondaryBorderRadius:r=Qs,mode:s="auto"}=t,[a,l]=md("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=qr(e),g=zr({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,cd.className],v=[g.className,ud.className];if(c){let y=zr(c.id,c.tokens);f.push(y.className)}if(m){let y=zr(m.id,m.tokens);v.push(y.className)}return el(()=>{let y=i(A=>{A.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),el(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let y=f.join(" "),A=v.join(" ");return u==="auto"?a==="dark"?A:y:u==="dark"?A:y},"getActiveTheme")}}i(Sn,"useTheme");import{ChevronLeftIcon as gd}from"@rango-dev/ui";import nl from"react";import{darkTheme as dd,IconButton as fd,styled as Cn}from"@rango-dev/ui";var Ue=Cn(fd,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),tl=Cn("div",{position:"absolute",background:"$secondary500",[`.${dd} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=Cn("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),ol=Cn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function Gr(t){return nl.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},nl.createElement(gd,{color:"black",size:16}))}i(Gr,"BackButton");import{i18n as hd}from"@lingui/core";import{Button as yd,Typography as Sd}from"@rango-dev/ui";import Hr from"react";function Qr(t){return Hr.createElement(Gt,null,Hr.createElement(yd,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Hr.createElement(Sd,{variant:"label",size:"medium",color:"error500"},hd.t("Cancel"))))}i(Qr,"CancelButton");import{i18n as Cd}from"@lingui/core";import{Tooltip as kd,WalletIcon as Td}from"@rango-dev/ui";import kn from"react";function Vr(t){return kn.createElement(kd,{container:t.container,side:"top",content:Cd.t("Connect Wallet")},kn.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(tl,null),kn.createElement(Td,{size:18,color:"black"})))}i(Vr,"WalletButton");import{i18n as xn}from"@lingui/core";import{NotificationsIcon as _d,Popover as Dd,RefreshIcon as Fd,SettingsIcon as Od,Tooltip as vn,TransactionIcon as Ud}from"@rango-dev/ui";import le from"react";import{i18n as Wd}from"@lingui/core";import{ChainToken as pl,ChevronRightIcon as Bd,ListItemButton as Nd,Typography as Ld}from"@rango-dev/ui";import qe from"react";import{useNavigate as Pd}from"react-router-dom";import{create as wd}from"zustand";import{persist as xd,subscribeWithSelector as vd}from"zustand/middleware";var Me=gt(wd()(xd(vd((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:s.toBlockchain,tokenSymbol:s.toSymbol,tokenAddress:s.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as Tn}from"@rango-dev/ui";var rl=Tn("div",{padding:"$10",width:"350px",minHeight:"150px"}),il=Tn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),sl=Tn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),al=Tn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Ad}from"@lingui/core";import{Divider as bd,NoNotificationIcon as Id,Typography as Ed}from"@rango-dev/ui";import wn from"react";function ll(){return wn.createElement(al,null,wn.createElement(Id,{color:"secondary",size:26}),wn.createElement(bd,{size:12}),wn.createElement(Ed,{variant:"body",size:"medium",color:"neutral700"},Ad.t("You have no notification")))}i(ll,"NotificationNotFound");var $d=4;function jr(){let t=Pd(),e=Ae.use.setSelectedSwap(),{getUnreadNotifications:o}=Me(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,$d),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return qe.createElement(rl,null,a.length?qe.createElement(il,null,a.map(p=>{let u=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),m=r.find(f=>f.name===p.route.from.blockchain),c=s.find(f=>f.address===p.route.to.tokenAddress&&f.blockchain===p.route.to.blockchain&&f.symbol===p.route.to.tokenSymbol),g=r.find(f=>f.name===p.route.to.blockchain);return qe.createElement(Nd,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(Ld,{variant:"body",size:"small",color:"$neutral700"},Wd.t(p.event.message)),id:p.requestId,start:qe.createElement(sl,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(pl,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(pl,{tokenImage:c?c.image:"",chainImage:g?g.logo:"",size:"small"}))),end:qe.createElement(Bd,{size:12,color:"gray"})})})):qe.createElement(ll,null))}i(jr,"NotificationContent");import{Typography as Md}from"@rango-dev/ui";import ul from"react";function cl(){let{getUnreadNotifications:t}=Me(),e=t().length;return e?ul.createElement(ol,null,ul.createElement(Md,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(cl,"UnreadNotificationsBadge");function Xr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r}=t,{config:{features:s}}=d(),a=Pe("notification",s);return le.createElement(le.Fragment,null,le.createElement(vn,{container:O(),side:"top",content:xn.t("Refresh")},le.createElement(Ue,{variant:"ghost",size:"small",onClick:o,disabled:!o},le.createElement(Fd,{size:16,color:o?"black":"gray"}))),!a&&le.createElement(Dd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:le.createElement(jr,null)},le.createElement("div",null,le.createElement(vn,{container:O(),side:"top",content:xn.t("Notifications")},le.createElement(Ue,{size:"small",variant:"ghost"},le.createElement(_d,{size:18,color:"black"}),le.createElement(cl,null))))),le.createElement(vn,{container:O(),side:"top",content:xn.t("Settings")},le.createElement(Ue,{size:"small",variant:"ghost",onClick:r},le.createElement(Od,{size:18,color:"black"}))),le.createElement(vn,{container:O(),side:"top",content:xn.t("Transactions History")},le.createElement(Ue,{size:"small",variant:"ghost",onClick:n},le.createElement(Ud,{size:18,color:"black"}))))}i(Xr,"HomeButtons");import{darkTheme as qd,styled as Kr}from"@rango-dev/ui";var ml=Kr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"100vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${qd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),dl=Kr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),fl=Kr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Qd(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=H.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Sn(m||{}),g=Pe("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),v=yt(),h=i(()=>{!f&&n.onWallet&&n.onWallet()},"onConnectWallet"),y=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(ml,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(Hd,{prefix:he.createElement(he.Fragment,null,y&&he.createElement(Gr,{onClick:v})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!g&&he.createElement(Vr,{container:O(),onClick:h,isConnected:!!p?.length}),n.onCancel&&he.createElement(Qr,{onClick:n.onCancel}))}),he.createElement(dl,{noPadding:s},o),(a||r)&&he.createElement(fl,null,he.createElement("div",{className:"footer__content"},r),a&&he.createElement("div",{className:"footer__logo"},he.createElement(Gd,{size:12}),he.createElement(zd,null))))}i(Qd,"LayoutComponent");var K=he.forwardRef(Qd);K.displayName="Layout";import{Divider as Yd,Modal as Jd}from"@rango-dev/ui";import Jr from"react";import{i18n as Ht}from"@lingui/core";import{Image as Xd,MessageBox as Yr,WalletState as Kd}from"@rango-dev/ui";import Et from"react";import{keyframes as Vd,styled as An}from"@rango-dev/ui";var yv=An("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),gl=An("div",{position:"relative"}),jd=Vd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),hl=An("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${jd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yl=An("div",{"& img":{borderRadius:"50%"}});function Sl(t){let{state:e,image:o,error:n}=t;return e===Kd.CONNECTED?Et.createElement(Yr,{type:"success",title:Ht.t("Wallet Connected"),description:Ht.t("Your wallet is connected, you can use it to swap.")}):n?Et.createElement(Yr,{type:"error",title:Ht.t("Failed to Connect"),description:n||Ht.t("Your wallet is not connected. Please try again.")}):Et.createElement(Yr,{type:"loading",title:Ht.t("Connecting to your wallet"),description:Ht.t("Click connect in your wallet popup."),icon:Et.createElement(gl,null,Et.createElement(yl,null,Et.createElement(Xd,{src:o,size:45})),Et.createElement(hl,null))})}i(Sl,"ModalContent");function ao(t){let{open:e,onClose:o,...n}=t;return Jr.createElement(Jd,{open:e,onClose:o,container:document.getElementById(Te)||document.body},Jr.createElement(Sl,{...n}),Jr.createElement(Yd,{direction:"vertical",size:32}))}i(ao,"WalletModal");var of=Tl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),nf=Tl("div",{textAlign:"center"}),bn=3e3,Zr=300;function wl(){let{config:t,fetchStatus:e}=d(),[o,n]=kl(!1),[r,s]=kl(""),a=null,{list:l,handleClick:p,error:u}=hn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},Zr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},bn)}}),m=l.find(f=>f.type===r),c=m?.image||"",g=m?.state||ef.NOT_INSTALLED;return Wt.createElement(K,{header:{title:Cl.t("Connect Wallets")}},Wt.createElement(nf,null,Wt.createElement(Zd,{variant:"title",size:"xmedium",align:"center"},Cl.t("Choose a wallet to connect.")),Wt.createElement(of,null,l.map((f,v)=>{let h=`wallet-${v}-${f.type}`;return Wt.createElement(tf,{key:h},Wt.createElement(Rd,{...f,container:O(),onClick:y=>{p(y)},isLoading:e==="loading"}))}),Wt.createElement(ao,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(wl,"WalletsPage");import{keyframes as rf,styled as Rr}from"@rango-dev/ui";var xl=Rr("div",{position:"relative"}),sf=rf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),vl=Rr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${sf} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Al=Rr("div",{"& img":{borderRadius:"50%"}});function ti(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=H.use.connectedWallets(),{blockchains:p}=d(),[u,m]=lo(""),[c,g]=lo(null),[f,v]=lo(!1),[h,y]=lo(null),{suggestAndConnect:A}=Bl(),T=null,{list:w,error:b,handleClick:S}=hn({config:a,chain:e,onBeforeConnect:k=>{T=setTimeout(()=>{m(k)},Zr)},onConnect:()=>{T&&clearTimeout(T),setTimeout(()=>{m("")},bn)}}),[x,I]=lo(w),C=w.length,N=r&&C-r>0,$=i(async k=>{v(!1),y("in-progress");try{await A(k.walletType,k.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Wl(()=>{I(k=>{let M=w.findIndex(L=>o(L.type,e));return N&&M>1?[w[M]].concat(w.filter((L,q)=>q!==M)):k.map(L=>w.find(q=>q.type===L.type)??L)})},[JSON.stringify(w)]);let B=document.getElementById(Te);return Wl(()=>{let k=null;return(h==="completed"||h==="rejected")&&(k=setTimeout(()=>y(null),bn)),()=>{k&&clearTimeout(k)}},[h]),ee.createElement(ee.Fragment,null,x.slice(0,r).map(k=>{let M=qs({connectedWallets:l,walletType:k.type,chain:e}),L=M?Qo(M):"",q=Go(p(),e),J=!l.find(Se=>Se.walletType===k.type&&Se.chain===e),Z=q&&J&&k.state===El.CONNECTED,Q=Z?ze.t({id:"Add {chain} chain",values:{chain:e}}):L,re=i(()=>{k.state===El.DISCONNECTED?S(k.type):Z?(g({walletType:k.type,chain:e,address:M??""}),v(!0)):n({walletType:k.type,chain:e,address:M??""})},"onClick"),ye=c?.chain?sa(c.chain,p()):void 0;return ee.createElement(ee.Fragment,null,ee.createElement(ao,{open:u===k.type,onClose:()=>m(""),image:k.image,state:k.state,error:b}),!!c&&ee.createElement(bl,{open:!!c&&f,container:B,onClose:()=>{g(null)}},ee.createElement(In,{title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),type:"warning",description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}})},ee.createElement(ei,{size:18}),ee.createElement(ei,{size:32}),ee.createElement(af,{onClick:$.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),h&&ee.createElement(bl,{open:!!h,onClose:y.bind(null,null),container:B},h==="in-progress"&&ee.createElement(In,{type:"loading",title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}}),icon:ee.createElement(xl,null,ee.createElement(Al,null,ee.createElement(lf,{src:k.image,size:45})),ee.createElement(vl,null))}),h==="completed"&&ee.createElement(In,{type:"success",title:ze.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ye}}),description:ze.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ye}})}),h==="rejected"&&ee.createElement(In,{type:"error",title:ze.t("Request Rejected"),description:ze.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ye}})}),ee.createElement(ei,{direction:"vertical",size:32})),ee.createElement(pf,{key:k.type,description:Q,onClick:re,selected:o(k.type,e),...k}))}),N&&ee.createElement(Fa,{selected:!1,onClick:s},ee.createElement(Il,{variant:"label",size:"medium"},ze.t("Show more wallets"),ee.createElement(Il,{variant:"label",size:"medium",color:"$primary"},"\xA0+",C-(r??0)))))}i(ti,"WalletList");var Cf=2;function Pl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:f}=U(),{connectedWallets:v,selectWallets:h}=H(),[y,A]=Bt(""),[T,w]=Bt([]),[b,S]=Bt(""),[x,I]=Bt(null),[C,N]=Bt(g),[$,B]=Bt(!!g),k=yf(null),M=Yo(p),L=l.find(F=>F.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),q=i(F=>!!p?.result?.swaps.find(z=>z.from.blockchain===F),"isWalletRequiredFor"),[J,Z]=Bt(v.filter(F=>F.selected&&M.includes(F.chain))),Q=l.find(F=>F.name===L?.name),re=i((F,z)=>!!J.find(X=>X.walletType===F&&X.chain===z&&X.selected&&(q(z)||!q(z)&&!C)),"isSelected"),ye=!!C&&$&&Q&&!Jo(Q,C),Se=i(()=>{B(!1),N(""),Z(F=>{let z=!1;return F.map(X=>!z&&X.chain===L?.name?(z=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),Ce=i(F=>{if(y&&A(""),re(F.walletType,F.chain))return;let X=v.find(Ee=>Ee.walletType===F.walletType&&Ee.chain===F.chain);X&&(n(),F.chain===L?.name&&$&&(B(!1),N("")),Z(Ee=>Ee.filter(ce=>ce.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),Mt=i(()=>{let F=J.filter(z=>z.selected);h(F),u(F),f(C),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{w([]),S(""),I(null);let F=v.filter(Ee=>J.find(ce=>ce.chain===Ee.chain&&ce.walletType===Ee.walletType)),z=await r?.({selectedWallets:F,customDestination:C}),X=z.warnings;X?.balance?.messages&&w(X.balance.messages),X?.quoteUpdate&&I(X.quoteUpdate),z.error&&S(la(z.error)),!z.error&&(!X?.balance?.messages.length||0>0)?Mt():w(X?.balance?.messages??[])},"onConfirmWallets");gf(()=>{Z(F=>F.concat(v.filter(z=>!!!F.find(Ee=>Ee.chain===z.chain)&&z.selected&&M.includes(z.chain))))},[v.length]),hf(()=>{$&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},so)},[$]);let mt=document.getElementById(Te),vt=Sf();return P.createElement(Ll,{open:e,onClose:()=>{m||vt("../",{replace:!0}),o()},dismissible:!y,container:mt,...!y&&{footer:P.createElement(Ka,null,P.createElement(Nl,{loading:s,disabled:Ta(s,$,C,p,J,L),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:P.createElement(Ua,null,P.createElement(qa,{variant:"ghost",onClick:A.bind(null,"")},P.createElement(mf,{size:16})),P.createElement(En,{variant:"headline",size:"small"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(y,l)}})))},anchor:"center"},P.createElement(Ll,{open:T.length>0,onClose:w.bind(null,[]),container:mt},P.createElement(df,{title:st.t("Insufficient account balance"),type:"error",description:P.createElement(uf,{messages:T??[]})},P.createElement(Nl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Mt},st.t("Proceed anyway")))),y&&P.createElement(za,null,P.createElement("div",{className:Ga()},P.createElement(ti,{chain:y,isSelected:re,selectWallet:Ce,onShowMore:A.bind(null,y)}))),!y&&P.createElement(P.Fragment,null,b&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"error",title:st.t(b)}),P.createElement(Qt,{size:12})),x&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"warning",title:dn(x)}),P.createElement(Qt,{size:12})),P.createElement(Ja,null,M.map((F,z)=>{let X=l.find(de=>de.name===F),Ee=`wallet-${z}`,ce=z===M.length-1;return P.createElement("div",{key:Ee},P.createElement(_a,null,P.createElement(En,{variant:"title",size:"xmedium"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),P.createElement(En,{variant:"label",color:"$neutral700",size:"medium"},st.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),P.createElement(Qt,{size:24}),P.createElement(Da,null,P.createElement(ti,{chain:F,isSelected:re,selectWallet:Ce,limit:Cf,onShowMore:()=>A(X?.name??"")})),!ce&&P.createElement(Qt,{size:32}),ce&&a?.customDestination&&P.createElement(Va,null,P.createElement(Ha,{ref:k,selected:$,open:$,onOpenChange:de=>{de?q(L?.name??"")||Z(Mo=>Mo.map(rt=>rt.chain===L?.name?{...rt,selected:!1}:rt)):Se()}},P.createElement(Oa,{onClick:()=>B(de=>!de)},P.createElement(Qa,{fullWidth:!0,variant:"default",suffix:P.createElement(Xa,{orientation:$?"up":"down"},P.createElement(cf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(ff,{size:18,color:"info"}),P.createElement(Qt,{size:4,direction:"horizontal"}),P.createElement(En,{variant:"label",size:"medium"},st.t("Send to a different address"))))),P.createElement(fn,{open:$},P.createElement(P.Fragment,null,P.createElement(Qt,{size:4}),P.createElement(Ya,{autoFocus:!0,placeholder:st.t("Your destination address"),value:C,onChange:de=>{N(de.target.value)}})))),ye&&P.createElement("div",{className:ja()},P.createElement(oi,{variant:"alarm",type:"error",title:st.t({values:{destination:C},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Pl,"ConfirmWalletsModal");import{Divider as ig}from"@rango-dev/ui";import _e from"react";import{i18n as pi}from"@lingui/core";import{Alert as xf,ChevronDownIcon as vf,ChevronRightIcon as Af,Divider as ui,Image as Zl,InfoIcon as bf,QuoteCost as If,StepDetails as Ef,TokenAmount as Wf,Tooltip as Nn,Typography as co}from"@rango-dev/ui";import Rl from"bignumber.js";import W,{useLayoutEffect as Bf,useRef as ep,useState as Nf}from"react";import{styled as po}from"@rango-dev/ui";var $l=po("div",{paddingBottom:"$10"}),ni=po("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ml=po("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),_l=po("div",{paddingBottom:"$15"}),Dl=po("div",{width:"100%",display:"flex"});import*as Wn from"@radix-ui/react-collapsible";import{css as ri,darkTheme as Je,Image as Fl,styled as Ge,Typography as kf}from"@rango-dev/ui";var ii=300,Ol=Ge(Wn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Ul=ri({padding:"$10 $15"}),ql=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Je} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Je} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Je} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}]}),zl=ri({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),Gl=ri({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Je} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hl=Ge(Wn.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:{[`& ${Fl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Fl}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),si=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Ql=Ge(fn,{width:"100%",background:"inherit"}),ai=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ii}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),EA=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Vl=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),jl=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),li=Ge(kf,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Xl=Ge("div",{display:"flex",flexWrap:"wrap"});import{TokenAmount as Jl}from"@rango-dev/ui";import Bn from"react";import{css as Tf,styled as wf}from"@rango-dev/ui";var Kl=wf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Yl=Tf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function uo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Bn.createElement(Kl,null,Bn.createElement(Jl,{direction:"horizontal",label:"Swap input",type:"input",tooltipContainer:O(),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}}),Bn.createElement("div",{className:Yl()}),Bn.createElement(Jl,{direction:"horizontal",label:"Estimated output",tooltipContainer:O(),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(uo,"QuoteSummary");function ci(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),u=d().blockchains(),m=d().swappers(),[c,g]=Nf(t.expanded),f=ep(null),v=ep(c),h=E(en(e.result?.swaps??[],p),2,2),y=Do(Fo(e.result?.swaps)),A=E(o.value,6,6),T=E(n.value,6,6),w=n.usdValue?E(n.usdValue,4,4):"",b=$e(o.usdValue,n.usdValue??null),S=E(b,2,2),x=it(b??0),C=i(B=>B.map((k,M)=>{let L,q=r?.type===3&&r.swap.swapperId===k.swapperId||r?.type===4&&r.recommendedSlippages?.has(M),J=s?.type===2&&s.recommendedSlippages?.has(M);return q?L="error":J&&(L="warning"),{swapper:{displayName:aa(k.swapperId,m),image:k.swapperLogo},from:{token:{displayName:k.from.symbol,image:k.from.logo},chain:{displayName:Ye(k.from.blockchain,u),image:k.from.blockchainLogo},price:{value:M===0?E(o.value,6,6):E(k.fromAmount,6,6),usdValue:E((k.from.usdPrice??0)*parseFloat(k.fromAmount),4,4),realValue:se(M===0?o.value:k.fromAmount),realUsdValue:se(new Rl(k.from.usdPrice??0).multipliedBy(k.fromAmount))}},to:{token:{displayName:k.to.symbol,image:k.to.logo},chain:{displayName:Ye(k.to.blockchain,u),image:k.to.blockchainLogo},price:{value:E(k.toAmount,6,6),usdValue:E((k.to.usdPrice??0)*parseFloat(k.toAmount),4,4),realValue:se(k.toAmount),realUsdValue:se(new Rl(k.to.usdPrice??0).multipliedBy(k.toAmount))}},state:L,alerts:q||J?W.createElement(_l,null,W.createElement(xf,{type:q?"error":"warning",title:r?.type===3?r?.recommendation:pi.t("Slippage Error:"),footer:W.createElement(Dl,null,r?.type===3&&W.createElement(W.Fragment,null,W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),W.createElement(ui,{direction:"horizontal",size:8}),W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},"|"),W.createElement(ui,{direction:"horizontal",size:8}),W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Yours: {amount} {symbol}",values:{amount:E(k.fromAmount,6,6),symbol:k?.from.symbol}}))),(r?.type===4||s?.type===2)&&W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(M)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(M)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),N=C.length,$=O();return Bf(()=>{c&&!v.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},ii),v.current=c},[c,v]),W.createElement(W.Fragment,null,W.createElement(ql,{recommended:l,listItem:a==="list-item",basic:a==="basic"},W.createElement("div",{className:zl()},W.createElement(If,{fee:h,time:y,steps:N}),a==="basic"&&W.createElement("div",{className:Gl()},W.createElement(jl,null,W.createElement(bf,{size:12,color:"gray"})),W.createElement(Xl,null,W.createElement(li,{size:"small",variant:"body"},`${A} ${C[0].from.token.displayName} = `),W.createElement(Nn,{content:se(n.value),container:$,open:n.value?void 0:!1},W.createElement(li,{size:"small",variant:"body"},"\xA0",`${T} ${C[C.length-1].to.token.displayName}`))),W.createElement(Nn,{content:se(n.usdValue),container:$,style:{display:"flex"}},W.createElement(co,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`))),a==="list-item"&&W.createElement(Wf,{type:"output",direction:"vertical",tooltipContainer:$,price:{value:T,usdValue:w,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:C[N-1].to.token.displayName,image:C[N-1].to.token.image},chain:{image:C[N-1].to.chain.image},percentageChange:S,warningLevel:x}),a==="swap-preview"&&W.createElement(W.Fragment,null,W.createElement(uo,{from:C[0].from,to:C[N-1].to,percentageChange:S,warningLevel:x}),W.createElement(ui,{size:4}))),W.createElement(Ol,{recommended:l,open:c,onOpenChange:g},W.createElement(Hl,{ref:B=>f.current=B,recommended:l,onClick:()=>g(B=>!B)},W.createElement("div",null,C.map((B,k)=>{let M=`item-${k}`,L=W.createElement(ai,null,W.createElement(Af,{size:12,color:"black",...B.state&&{color:B.state==="error"?"error":"warning"}}));return W.createElement(W.Fragment,{key:M},W.createElement(Nn,{container:$,side:"bottom",sideOffset:4,content:B.from.chain.displayName},W.createElement(si,{state:B.state||C[k-1]?.state},W.createElement(Zl,{src:B.from.chain.image,size:16}))),k===N-1&&W.createElement(W.Fragment,null,L,W.createElement(Nn,{container:$,side:"bottom",sideOffset:4,content:B.to.chain.displayName},W.createElement(si,{state:B.state},W.createElement(Zl,{src:B.to.chain.image,size:16})))),k!==N-1&&W.createElement(W.Fragment,null,L))})),W.createElement(ai,{orientation:c?"up":"down"},W.createElement(vf,{size:12,color:"black"}))),W.createElement(Ql,{open:c},W.createElement(Vl,null),W.createElement("div",{className:Ul()},C.map((B,k)=>{let M=`item-${k}`;return W.createElement(Ef,{type:"quote-details",key:M,step:B,hasSeparator:k!==C.length-1,state:B.state,tooltipContainer:$})}))))))}i(ci,"Quote");import{Divider as $f,Skeleton as Mf}from"@rango-dev/ui";import at from"react";import{darkTheme as Lf,styled as Ln}from"@rango-dev/ui";var tp=Ln("div",{$$color:"$colors$neutral100",[`.${Lf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),op=Ln("div",{paddingTop:"$2"}),np=Ln("div",{paddingLeft:"$8"}),rp=Ln("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as gp,Divider as Nt,Skeleton as Re}from"@rango-dev/ui";import G from"react";import{styled as Ze}from"@rango-dev/ui";var ip=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),sp=Ze("div",{display:"flex"}),ap=Ze("div",{padding:"$15 $0 14px $0"}),lp=Ze("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),pp=Ze("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),up=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),cp=Ze("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),mp=Ze("div",{width:"65%",display:"flex",justifyContent:"start"}),dp=Ze("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),fp=Ze("div",{padding:"$15 $0 $15 $0"});function go(t){let{type:e,tag:o=!1}=t,n=G.createElement(up,null,G.createElement(mp,null,G.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{size:8,direction:"horizontal"}),G.createElement(dp,null,G.createElement(Re,{height:10,width:60,variant:"rounded"}),G.createElement(Nt,{size:4}),G.createElement(Re,{height:15,variant:"rounded"}))),G.createElement(Re,{height:12,width:64,variant:"rounded"}));return G.createElement("div",null,G.createElement(ip,null,G.createElement(sp,null,G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"})),o&&G.createElement(Re,{height:22,width:100,variant:"rounded"})),e==="basic"&&G.createElement(ap,null,G.createElement(Re,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(lp,null,G.createElement(pp,null,G.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{direction:"horizontal",size:4}),G.createElement(Re,{height:15,width:150,variant:"rounded"})),G.createElement(Nt,{size:4}),G.createElement(Re,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Nt,{size:4}),G.createElement(fp,null,n,G.createElement(cp,null),n)))}i(go,"QuoteSummarySkeleton");import{ChainToken as kp,Divider as di,NextIcon as Pf,Skeleton as Pn}from"@rango-dev/ui";import ae from"react";import{styled as ho}from"@rango-dev/ui";var hp=ho("div",{display:"flex",alignItems:"start"}),yp=ho("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),mi=ho("div",{display:"flex",alignItems:"center",flexGrow:1}),Sp=ho("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Cp=ho("div",{display:"flex",alignItems:"center"});function et(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(Cp,null,ae.createElement(Pn,{height:22,width:22,variant:"circular"}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:15,width:148,variant:"rounded"})),ae.createElement(hp,null,ae.createElement(rp,{hideSeparator:!e}),ae.createElement(yp,null,ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})),ae.createElement(Sp,null,ae.createElement(Pf,{color:"gray",size:16})),ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})))))}i(et,"StepSkeleton");function fi(t){let{type:e,expanded:o,tag:n=!1}=t;return at.createElement(tp,{rounded:e!=="basic"},at.createElement(go,{type:e,tag:n}),at.createElement(op,null,at.createElement(Mf,{height:15,variant:"rounded"})),o&&at.createElement(np,null,at.createElement($f,{size:20}),at.createElement(et,null),at.createElement(et,null),at.createElement(et,{separator:!1})))}i(fi,"QuoteSkeleton");import{i18n as tg}from"@lingui/core";import{Alert as og,Button as ng,InfoIcon as rg}from"@rango-dev/ui";import Be from"react";import{Alert as _f,Button as Df,Divider as bp,NoRouteIcon as Ff,RefreshIcon as Of,Typography as Ip}from"@rango-dev/ui";import He from"react";import{i18n as Tp}from"@lingui/core";function wp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:V().genericServerError,action:{onClick:n,title:Tp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:V().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Tp.t("Reset")}},description:V().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:V().noResultError.description}}i(wp,"makeInfo");import{styled as gi}from"@rango-dev/ui";var xp=gi("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),vp=gi("div",{width:"100%"}),Ap=gi("div",{padding:"$6 $0"});function hi(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=wp(o,n,()=>r(s,!0),e);return He.createElement(xp,null,He.createElement(Ff,{size:24,color:"gray"}),He.createElement(bp,{size:4}),He.createElement(Ip,{variant:"title",size:"small"},V().noResultError.title),!!a.description&&He.createElement(Ip,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),He.createElement(bp,{size:4}),!!a.alert&&He.createElement(vp,null,He.createElement(_f,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(Df,{size:"xsmall",type:a.alert.type,prefix:He.createElement(Ap,null,He.createElement(Of,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(hi,"NoResult");import{i18n as yo}from"@lingui/core";import{Button as qf,Divider as Pp,MessageBox as zf,Modal as Gf,Typography as Hf,WarningIcon as Qf}from"@rango-dev/ui";import tt from"react";import{Typography as Np}from"@rango-dev/ui";import Si from"react";import{darkTheme as Uf,styled as $n}from"@rango-dev/ui";var Ep=$n("div",{width:"100%",paddingTop:"$10"}),yi=$n("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Wp=$n("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Uf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Bp=$n("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Lp(t){let{title:e,value:o,valueColor:n}=t;return Si.createElement(Wp,null,Si.createElement(Np,{size:"medium",variant:"label",className:"_title"},e),Si.createElement(Np,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Lp,"QuoteErrorsModalItem");function $p(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:yo.t("Swapping"),value:E(r.inputUsdValue,4,4)},{title:yo.t("Gas cost"),value:E(r.totalFee,2,2)},{title:yo.t("Receiving"),value:E(r.outputUsdValue,4,4)},{title:yo.t("Price impact"),value:E(r.priceImpact,2,2),valueColor:`${s}500`}];return tt.createElement(Gf,{open:e,onClose:o,container:O()},tt.createElement(zf,{type:s,title:V().highValueLossError.impactTitle,description:V().highValueLossError.description}),tt.createElement(yi,null,tt.createElement(Pp,{size:20}),tt.createElement(Hf,{size:"small",variant:"title"},yo.t("Details")),tt.createElement(yi,null,a.map((l,p)=>tt.createElement(Lp,{key:p,...l})))),tt.createElement(Pp,{size:32}),tt.createElement(qf,{type:"primary",size:"large",prefix:tt.createElement(Qf,null),fullWidth:!0,onClick:n},V().highValueLossError.confirmMessage))}i($p,"HighValueLossWarningModal");import{i18n as Ci}from"@lingui/core";function Mp(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(it(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=V().highValueLossError.title),t.type===1&&(o.title=V().unknownPriceError.title),t.type===2&&(o.title=Ci.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=Ci.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=Ci.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}i(Mp,"makeAlerts");import{i18n as Vt}from"@lingui/core";import{Button as _p,Divider as Dp,MessageBox as Vf,Modal as jf,Typography as Xf}from"@rango-dev/ui";import Lt from"react";import{useNavigate as Kf}from"react-router-dom";function Fp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=Kf(),p=e??o;return Lt.createElement(jf,{anchor:"bottom",open:n,prefix:Lt.createElement(_p,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Lt.createElement(Xf,{variant:"label",size:"medium",color:"$neutral900"},Vt.t("Change settings"))),container:O(),onClose:r},Lt.createElement(Vf,{type:"warning",title:a.type===3?Vt.t("High slippage"):Vt.t("Low slippage"),description:a.type===3?Vt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Vt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Lt.createElement(Dp,{size:18}),Lt.createElement(Dp,{size:32}),Lt.createElement(_p,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Vt.t("Confirm anyway"))))}i(Fp,"SlippageWarningModal");import{Button as Yf,Divider as Jf,MessageBox as Zf,Modal as Rf,WarningIcon as eg}from"@rango-dev/ui";import So from"react";function Op(t){let{open:e,onClose:o,onConfirm:n}=t;return So.createElement(Rf,{open:e,onClose:o,container:O()},So.createElement(Zf,{type:"warning",title:V().unknownPriceError.impactTitle,description:V().unknownPriceError.description}),So.createElement(Jf,{size:32}),So.createElement(Yf,{type:"primary",size:"large",prefix:So.createElement(eg,null),fullWidth:!0,onClick:n},V().unknownPriceError.confirmMessage))}i(Op,"UnknownPriceWarningModal");function ki(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,u={open:r,onClose:a,onConfirm:l},m=o?.type===0||o?.type===1,c=Mp(e,o?.type===3||o?.type===4?o:null);return Be.createElement(Be.Fragment,null,m&&Be.createElement(hi,{error:o,fetch:n}),!!c&&Be.createElement(Ep,null,Be.createElement(og,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement(Bp,{onClick:s},Be.createElement(rg,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(ng,{size:"xxsmall",type:c.alertType,onClick:p},tg.t("Change"))}})),e&&Be.createElement(Be.Fragment,null,e.type===0&&Be.createElement($p,{...u,warning:e}),(e.type===3||e.type===2)&&Be.createElement(Fp,{...u,warning:e}),e.type===1&&Be.createElement(Op,{...u,warning:e})))}i(ki,"QuoteWarningsAndErrors");function Co(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:v,inputUsdValue:h,outputUsdValue:y,outputAmount:A}=U(),w=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,b=(s||r)&&_e.createElement(ki,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return _e.createElement(_e.Fragment,null,n&&_e.createElement(ni,null,_e.createElement(Ml,{paddingTop:f==="top"},_e.createElement(fi,{type:o,expanded:g}))),f==="top"&&_e.createElement($l,null,b),w?_e.createElement(ni,null,_e.createElement(ci,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:v,usdValue:h?.toString()??""},output:{value:A?.toString()??"",usdValue:y?.toString()??""}})):null,f==="bottom"&&_e.createElement(_e.Fragment,null,!s&&!r&&_e.createElement(ig,{size:16}),b))}i(Co,"QuoteInfo");import{calculatePendingSwap as lg}from"@rango-dev/queue-manager-rango-preset";import{useEffect as pg}from"react";import{useRef as sg,useState as ag}from"react";function Mn(){let[t,e]=ag(!1),o=sg(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Dt().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(Mn,"useFetchQuote");function _n(t){if(!t.result)throw new Error(V().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(br(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Ir(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=Wr(t);if(o){let n=tn(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(_n,"throwErrorIfResponseIsNotValid");function Up(t,e,o){let n=!1;t&&(n=Aa(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=nn(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(ga(t,e)?r.quoteUpdate={type:3,newOutputAmount:E(Ut(e)),percentageChange:E($e(Ut(t)??"",Ut(e)??""),null,2)}:Nr(t,e)?r.quoteUpdate={type:0}:Lr(t,e)?r.quoteUpdate={type:1}:Pr(t,e)&&(r.quoteUpdate={type:2}));let a=ha(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Up,"generateWarnings");function Dn(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(Dn,"handleQuoteErrors");function Ti(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=U(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:g}=d(),{connectedWallets:f}=H(),v=d().blockchains(),h=d().tokens(),{features:y}=d().config,{enableNewLiquiditySources:A}=d().config,T=p||l,{fetch:w,cancelFetch:b,loading:S}=Mn();return pg(()=>b,[]),{loading:S,fetch:i(async I=>{let C=I.selectedWallets,N=I?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let $=on({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:C,excludeLiquiditySources:A,disabledLiquiditySources:g,slippage:T,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:N});Ko("experimentalRoute",y)&&($.experimental=!0);let B;try{B=await w($).then(q=>_n(q)),n(B)}catch(q){return Dn(q)}let k={slippage:T.toString(),disabledSwappersGroups:g},M=lg(o.toString(),B,da(C),k,!1,{blockchains:v,tokens:h}),L=Up(r??void 0,B,{fromToken:t,toToken:e,meta:{blockchains:v,tokens:h},selectedWallets:C,userSlippage:T});return L.quoteUpdate&&a(!1),{quote:B,swap:M,error:null,warnings:L}},"fetch"),cancelFetch:b}}i(Ti,"useConfirmSwap");var Tg=Hp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),wg=Hp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Gp}`]:{width:"$48",height:"$48"}}),xg=wi({flexGrow:1,paddingRight:"$10"}),vg=wi({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Ag=wi({display:"flex",justifyContent:"space-between",alignItems:"center"});function Qp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=U(),l=kg(),[p,u]=On(""),{connectedWallets:m}=H(),c=!n,[g,f]=On(!1),v=Ae.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=Sg(h),{manager:A}=ug(),{fetch:T,loading:w,cancelFetch:b}=Ti(),[S,x]=On({swap:null,error:null,warnings:null}),[I,C]=On(!1),N=i(async({selectedWallets:L,customDestination:q})=>{let J=await T?.({selectedWallets:L,customDestination:q});return x(J),J},"onConfirmSwap"),$=i(async()=>{if(S.swap&&n)try{await A?.create("swap",{swapDetails:S.swap},{id:S.swap.requestId}),v(S.swap.requestId);let L=`../${_.swaps}/${S.swap.requestId}`;l(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){u("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{await $()},"onConfirm"),k=i(async()=>{S?.warnings?.quote&&!a?C(!0):await B()},"onStartConfirmSwap"),M=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(L=>{x(L)}).catch(L=>console.error(L))},"onRefresh");return ko(()=>{!!y.current.length&&!h.length&&M(),y.current=h},[h.length]),ko(()=>{c&&b()},[c]),ko(()=>{c&&f(c)},[c]),ko(()=>{c||T({selectedWallets:o,customDestination:s}).then(L=>x(L)).catch(L=>console.error(L))},[]),ko(()=>{let L=S.warnings?.quote?.type&&Object.values(dt).includes(S.warnings?.quote?.type),q=o.length<1||!o.every(Z=>m.find(Q=>Z.address===Q.address&&Z.walletType===Q.walletType&&Z.chain===Q.chain)),J=!1;if(L){let Z=Yo(t),Q=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===Q)||(Z=Z.slice(-Z.length,Z.length-1)),Z.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(q||J)&&(queueMicrotask(()=>Cg(f.bind(null,!0))),r(!1))},[S.warnings?.quote,o.length,m.length]),yg(()=>{t||l("../")},[]),te.createElement(K,{header:{title:Fn.t("Confirm Swap"),onWallet:()=>{let L=`../${_.wallets}`;l(L)},suffix:te.createElement(fg,{container:O(),side:"bottom",content:Fn.t("Settings")},te.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},te.createElement(dg,{size:18,color:"black"})))},footer:te.createElement(wg,null,te.createElement("div",{className:xg()},te.createElement(zp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!S.error,onClick:k},Fn.t("Start Swap"))),te.createElement(Gp,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},te.createElement(hg,{size:24})))},g&&te.createElement(Pl,{open:g,onClose:()=>f(!1),onCancel:b,loading:w,onCheckBalance:N}),te.createElement(Tg,null,te.createElement("div",{className:Ag()},te.createElement(gg,{variant:"title",size:"small"},Fn.t("You get")),te.createElement(zp,{style:{padding:"0"},variant:"ghost",disabled:w,onClick:M},te.createElement("div",{className:vg()},te.createElement(mg,{size:16})))),p&&te.createElement(te.Fragment,null,te.createElement(qp,{type:"error",variant:"alarm",title:p}),te.createElement(cg,{size:12})),S.warnings?.quoteUpdate&&te.createElement("div",{className:"quote-update__alert"},te.createElement(qp,{variant:"alarm",type:"warning",title:S.warnings.quoteUpdate&&dn(S.warnings.quoteUpdate)})),te.createElement(Co,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:S.error,loading:w,warning:S.warnings?.quote??null,refetchQuote:M,showWarningModal:I,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:async()=>{C(!1),await $()},onChangeSettings:()=>l("../"+_.settings)})))}i(Qp,"ConfirmSwapPage");import{i18n as zn}from"@lingui/core";import{useManager as Pg}from"@rango-dev/queue-manager-react";import{Divider as $g,NotFound as Mg,styled as eu}from"@rango-dev/ui";import kt,{useState as _g}from"react";import{useNavigate as Dg}from"react-router-dom";import{CloseIcon as Ig,IconButton as Eg,SearchIcon as Wg,TextField as Bg}from"@rango-dev/ui";import To from"react";import{styled as bg}from"@rango-dev/ui";var Vp=bg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return To.createElement(Bg,{prefix:To.createElement(Vp,null,To.createElement(Wg,{color:"black"})),suffix:!!a.length&&To.createElement(Eg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},To.createElement(Ig,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(lt,"SearchInput");import{i18n as Xp}from"@lingui/core";import{Divider as Kp,SwapListItem as Yp,Typography as Jp}from"@rango-dev/ui";import R from"react";import{css as Ng,darkTheme as Lg,styled as Un}from"@rango-dev/ui";var qn=Ng(),xi=Un("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${qn}`]:{$$color:"$colors$neutral600",[`.${Lg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vi=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Ai=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),jp=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function bi(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return R.createElement(R.Fragment,null,[{title:"Today",swaps:a},{title:"This month",swaps:a}].map(p=>R.createElement(R.Fragment,{key:p.title},R.createElement(xi,null,R.createElement(vi,null,R.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(p.title))),R.createElement(Kp,{size:4}),R.createElement(Ai,null,p.swaps.map((u,m)=>{let c=m+p.title;return R.createElement(R.Fragment,{key:c},R.createElement(Yp,{isLoading:!0}))}))))))}return R.createElement(R.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>R.createElement(R.Fragment,{key:a.title},R.createElement(xi,null,R.createElement(vi,null,R.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(a.title))),R.createElement(Kp,{size:4}),R.createElement(Ai,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return R.createElement(R.Fragment,{key:l.requestId},R.createElement(Yp,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",tooltipContainer:O(),swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:l.inputAmount},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:E(u.outputAmount||u.expectedOutputAmountHumanReadable||""),realAmount:se(u.outputAmount||u.expectedOutputAmountHumanReadable)}}}))}))))))}i(bi,"SwapsGroup");import Zp from"dayjs";var Rp=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}]]);function o(r,s){e.has(r)||e.set(r,{title:r,swaps:[]}),e.get(r)?.swaps.push(s)}i(o,"addYearsToOutput");let n=Zp();return t.forEach(r=>{let s=Number(r.creationTime),a=Zp(s);if(n.isSame(a,"day"))e.get("today")?.swaps.push(r);else if(n.isSame(a,"week"))e.get("week")?.swaps.push(r);else if(n.isSame(a,"month"))e.get("month")?.swaps.push(r);else if(n.isSame(a,"year"))e.get("year")?.swaps.push(r);else{let l=new Date(s).getFullYear().toString();o(l,r)}}),Array.from(e.values())},"groupSwapsByDate");var jt=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");var Fg=eu("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Og=eu("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Ug=i((t,e)=>t?.length?t.filter(o=>Xe(o.fromBlockchain,e)||Xe(o.toBlockchain,e)||Xe(o.toSymbol,e)||Xe(o.fromSymbol,e)).length:!1,"isStepContainsText");function tu(){let t=Ae.use.setSelectedSwap(),e=Dg(),{manager:o,state:n}=Pg(),r=jt(o).map(({swap:c})=>c),[s,a]=_g(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>Xe(c.inputAmount,s)||Xe(c.status,s)||Ug(c.steps,s)||Xe(c.requestId,s)));let m=!u?.length&&!l;return kt.createElement(K,{header:{title:zn.t("History")}},kt.createElement(Fg,null,kt.createElement(lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:zn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),kt.createElement(Og,null,m&&kt.createElement(jp,null,kt.createElement($g,{size:32}),kt.createElement(Mg,{title:zn.t("No results found"),description:s?zn.t("Try using different keywords"):""})),!m&&kt.createElement(bi,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Rp,isLoading:l}))))}i(tu,"HistoryPage");import{i18n as Wi}from"@lingui/core";import{Button as jg,styled as Bi,SwapInput as iu,WarningIcon as Xg}from"@rango-dev/ui";import De,{useEffect as Kg,useRef as Yg,useState as Jg}from"react";import{useNavigate as Zg}from"react-router-dom";import{ReverseIcon as qg,styled as ou}from"@rango-dev/ui";import Ii from"react";var zg=ou("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gg=ou("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function nu(){let t=U.use.switchFromAndTo();return Ii.createElement(zg,null,Ii.createElement(Gg,{onClick:()=>{t()}},Ii.createElement(qg,{size:12})))}i(nu,"SwitchFromAndToButton");import{useCallback as Hg,useEffect as Qg,useState as Ei}from"react";var Vg=600;function ru(){let{fetch:t,cancelFetch:e}=Mn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,quote:m,resetQuote:c,setQuote:g}=U(),{slippage:f,customSlippage:v,affiliatePercent:h,affiliateRef:y,affiliateWallets:A,disabledLiquiditySources:T}=d(),[w,b]=Ei(!1),[S,x]=Ei(null),[I,C]=Ei(null),N=v??f,B=!a||!l||Le(a,l)||!no(p),k=i(q=>{b(q),x(null),C(null)},"resetState"),M=i(q=>{let{fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:Mt,affiliatePercent:oo,affiliateWallets:mt}=q;if(w||k(!0),!B&&J&&Z){c();let vt=on({fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:Mt,affiliatePercent:oo,affiliateWallets:mt});Ko("experimentalRoute",r)&&(vt.experimental=!0),t(vt).then(F=>{b(!1),g(F),_n(F);let z=nn(F,{fromToken:J,toToken:Z,userSlippage:N,tokens:s});C(z)}).catch(F=>{let{error:z}=Dn(F);(z?.type===0||z?.type===1)&&c(),z?.type!==2&&(x(z),b(!1))})}},"fetch"),L=Hg(js(q=>{B||M(q)},Vg),[B]);return Qg(()=>{if(!no(p)||u?.eq(0)){k(!1),e();return}if(B){m&&c();return}return c(),k(!0),L({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:N,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,B,o?.length,n,T.length,N,y,h,JSON.stringify(A)]),{fetch:()=>M({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:N,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),loading:w,error:S,warning:I}}i(ru,"useSwapInput");var Rg=Bi("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),eh=Bi("div",{position:"relative"}),th=Bi("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function su(){let t=Zg(),{fetch:e,loading:o,error:n,warning:r}=ru(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:g,outputUsdValue:f,quote:v,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=U(),A=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=H(),b=Ae.use.setCurrentPage(),[S,x]=Jg(!1),I=Yg(null),C=!!a&&zs(T,a.name),N=!1,$=!Er(v,m,c),B=!Er(v,m,f),k=ua({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:v,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:N}),M=s?w(s):null,L=Ho(M)?.amount??"0",q=a&&s?E(M?.amount,M?.decimals):"0";Kg(()=>(b(_.home),h(),b.bind(null,"")),[]);let J=!c||!f||!f.gt(0)?null:$e(c.toString(),f.toString());return De.createElement(K,{ref:I,fixedHeight:!1,hasLogo:!0,footer:De.createElement(jg,{type:"primary",size:"large",disabled:k.disabled,prefix:k.action==="confirm-warning"&&De.createElement(Xg,null),fullWidth:!0,onClick:()=>{k.action==="connect-wallet"?t(_.wallets):k.action==="confirm-warning"?x(!0):t(_.confirmSwap)}},k.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Wi.t("Swap"),suffix:De.createElement(Xr,{layoutRef:I.current,onClickRefresh:v||n?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},De.createElement(Rg,null,De.createElement(th,null,De.createElement(eh,null,De.createElement(iu,{label:Wi.t("From"),mode:"From",onInputChange:u,balance:L,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:$?void 0:E(c,4,4),realUsdValue:$?void 0:se(c),error:$?V().unknownPriceError.impactTitle:void 0},disabled:A==="failed",loading:A==="loading",loadingBalance:C,tooltipContainer:O(),onSelectMaxBalance:()=>{L!=="0"&&u(q.split(",").join(""))}}),De.createElement(nu,null)),De.createElement(iu,{sharpBottomStyle:!!v?.result||o,label:Wi.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:E($e(c,f),2,2),warningLevel:it(J??0),price:{value:E(g,6,6),usdValue:B?void 0:E(f,4,4),realValue:se(g),realUsdValue:B?void 0:se(f),error:B?V().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:A==="failed",loading:A==="loading",tooltipContainer:O()})),De.createElement("div",{className:"quote__container"},De.createElement(Co,{quote:v,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:S,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),y(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(su,"Home");import{i18n as au}from"@lingui/core";import{List as oh,ListItemButton as nh,Radio as rh,RadioRoot as ih,Typography as sh}from"@rango-dev/ui";import Tt from"react";import{styled as Gn}from"@rango-dev/ui";var pt=Gn("div",{height:"100%",overflow:"hidden"}),wo=Gn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Ni=Gn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Li=Gn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Hn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:Ys,defaultLanguage:Ot,changeLanguage:r=>t(r||Ot)}}i(Hn,"useLanguage");function lu(){let{activeLanguage:t,changeLanguage:e,languages:o}=Hn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:Tt.createElement(sh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:Tt.createElement(rh,{value:s}),start:Tt.createElement(l,null)}});return Tt.createElement(K,{header:{title:au.t("Language")}},Tt.createElement(pt,null,Tt.createElement(ih,{value:t},Tt.createElement(oh,{type:Tt.createElement(nh,{title:au.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(lu,"LanguagePage");import{i18n as Xt}from"@lingui/core";import{Button as ch,Checkbox as mh,Image as dh,ListItemButton as fh,NotFound as gh,Typography as hh}from"@rango-dev/ui";import ke,{useState as yh}from"react";import{Checkbox as ph,Skeleton as uu}from"@rango-dev/ui";import xo from"react";import{ListItem as ah,styled as lh}from"@rango-dev/ui";var pu=lh(ah,{height:61});var uh=30;function Pi(){return xo.createElement(wo,null,Array.from(Array(uh),t=>xo.createElement(pu,{hasDivider:!0,key:t,start:xo.createElement(uu,{variant:"circular",width:35,height:35}),title:xo.createElement(uu,{variant:"text",size:"large",width:90}),end:xo.createElement(ph,{checked:!1})})))}i(Pi,"LoadingLiquiditySourceList");function $i({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=yh(""),a=d().toggleLiquiditySource,l=Xo(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(h=>p.includes(h.type)),m=u.length===u.filter(h=>h.selected).length,c=i(()=>{u.forEach(h=>{m?a(h.groupTitle):h.selected||a(h.groupTitle)})},"toggleAllSources"),g=u.map(h=>{let{selected:y,groupTitle:A,logo:T}=h;return{start:ke.createElement(dh,{src:T,size:22,type:"circular"}),onClick:()=>a(A),end:ke.createElement(mh,{checked:y}),title:ke.createElement(hh,{variant:"title",size:"xmedium"},Xt.t(A)),...h}}),f=i(h=>{let y=h.target.value;s(y)},"searchHandler"),v=g;return r&&(v=g.filter(h=>Xe(h.groupTitle,r))),ke.createElement(K,{header:{title:Xt.t(t),suffix:ke.createElement(Ni,null,ke.createElement(ch,{variant:"ghost",size:"xsmall",onClick:c},Xt.t(m?"Deselect all":"Select all")))}},ke.createElement(pt,null,ke.createElement(lt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ke.createElement(Pi,null),!v.length&&r?ke.createElement(Li,null,ke.createElement(gh,{title:Xt.t("No results found"),description:Xt.t("Try using different keywords")})):e==="success"&&ke.createElement(wo,null,v.map(h=>ke.createElement(ke.Fragment,{key:h.id},ke.createElement(fh,{style:{height:"61px"},...h,selected:!1,hasDivider:!0}))))))}i($i,"LiquiditySourcePage");import{i18n as Su}from"@lingui/core";import{Divider as Fi,getCountCategories as Ih,SelectableCategoryList as Eh}from"@rango-dev/ui";import ut,{useState as Cu}from"react";import{i18n as _i}from"@lingui/core";import{Divider as hu,Image as wh,ListItemButton as xh,NotFound as vh,Typography as yu}from"@rango-dev/ui";import Fe,{useEffect as Ah,useState as bh}from"react";import{BlockchainCategories as Mi}from"@rango-dev/ui";import{TransactionType as Qn}from"rango-sdk";var Sh=i((t,e)=>{switch(e){case Mi.ALL:return!0;case Mi.UTXO:return t.type===Qn.TRANSFER;case Mi.OTHER:return t.type!==Qn.TRANSFER&&t.type!==Qn.COSMOS&&t.type!==Qn.EVM;default:return t.type===e}},"filterByType"),cu=i((t,e,o)=>t.filter(n=>Sh(n,o)).filter(n=>At(n.name,e)||At(n.displayName,e)),"filterBlockchains");import{ImageContainer as Ch,styled as mu}from"@rango-dev/ui";var du=mu("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vn=mu("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${Ch}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as kh,Skeleton as fu}from"@rango-dev/ui";import jn from"react";var Th=20;function gu(){return jn.createElement(Vn,null,Array.from(Array(Th),t=>jn.createElement(kh,{key:t,hasDivider:!0,start:jn.createElement(fu,{variant:"circular",width:35,height:35}),title:jn.createElement(fu,{variant:"text",size:"large",width:90})})))}i(gu,"LoadingBlockchainList");function Di(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=bh(e),{fetchStatus:l}=d();Ah(()=>{a([...cu(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Fe.createElement(Fe.Fragment,null,Fe.createElement(hu,{size:32}),Fe.createElement(vh,{title:_i.t("No results found"),description:_i.t("Try using different keywords")})):Fe.createElement(Vn,{key:`${r}-${o}`},s.map(u=>Fe.createElement(xh,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Fe.createElement(wh,{src:u.logo,size:30}),title:Fe.createElement(yu,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Fe.createElement(du,null,Fe.createElement(yu,{variant:"label",size:"large"},_i.t("Select Blockchain")),Fe.createElement(hu,{size:4}),l==="loading"&&Fe.createElement(gu,null),l==="success"&&p())}i(Di,"BlockchainList");function Oi(t){let{type:e}=t,o=yt(),[n,r]=Cu(""),[s,a]=Cu("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),g=Ih(m)!==1;return ut.createElement(K,{header:{title:Su.t("Select Blockchain")}},ut.createElement(Fi,{size:12}),g&&ut.createElement(ut.Fragment,null,ut.createElement(Eh,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),ut.createElement(Fi,{size:24})),ut.createElement(lt,{value:n,autoFocus:!0,placeholder:Su.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),ut.createElement(Fi,{size:16}),ut.createElement(Di,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Oi,"SelectBlockchainPage");import{i18n as Ou}from"@lingui/core";import{Divider as Uu}from"@rango-dev/ui";import Jt,{useState as Vh}from"react";import{useNavigate as jh}from"react-router-dom";import{i18n as zi}from"@lingui/core";import{BlockchainsChip as Xn,Divider as xu,Image as vu,Skeleton as Ph,Tooltip as $h,Typography as Gi}from"@rango-dev/ui";import pe from"react";import{useEffect as Nh}from"react";var ku=["ETH","COSMOS","OSMOSIS"];function Ui(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Wh),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(m=>u.name!==m)}}n.sort(Bh(a)),r=n.splice(s)}return{list:n,more:r}}i(Ui,"prepare");function Wh(t,e){let o=ku,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(Wh,"sortByMostUsedBlockchains");function Bh(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Bh,"generateSortByPreferredBlockchainsFor");function Tu(t,e){return!!e.list.find(o=>o.name===t)}i(Tu,"isInVisibleList");function qi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();Nh(()=>{if(e?.selected){let s=Ui(t,o,e);Tu(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Ui(t,o,e);return{list:r.list,more:r.more,history:[]}}i(qi,"usePrepareBlockchainList");import{styled as Lh}from"@rango-dev/ui";var wu=Lh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Mh=12;function Hi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=qi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,g=!c&&m;return pe.createElement(pe.Fragment,null,pe.createElement(xu,{size:12}),pe.createElement(Gi,{variant:"label",size:"large"},zi.t("Select Blockchain")),pe.createElement(xu,{size:12}),pe.createElement(wu,null,l==="loading"&&Array.from(Array(Mh),f=>pe.createElement(Ph,{key:f,variant:"rounded",height:50})),l==="success"&&pe.createElement(pe.Fragment,null,pe.createElement(Xn,{selected:!n,onClick:()=>{o==="from"?u():p()}},pe.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi.t("All"))),a.list.map(f=>pe.createElement($h,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},pe.createElement(Xn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},pe.createElement(vu,{src:f.logo,size:30})))),c?pe.createElement(Xn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},pe.createElement(vu,{src:a.more[0].logo,size:30})):null,g?pe.createElement(Xn,{onClick:s,key:"more-blockchains"},pe.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi._("More +{count}",{count:a.more.length}))):null)))}i(Hi,"BlockchainsSection");import{i18n as es}from"@lingui/core";import{darkTheme as $u,Divider as Yt,ExternalLinkIcon as Fh,Image as Oh,ListItemButton as Uh,NotFound as qh,PinIcon as zh,Skeleton as Mu,Typography as Jn,VirtualizedList as Gh}from"@rango-dev/ui";import D,{forwardRef as Hh,useEffect as _u,useState as Du}from"react";import{Divider as Lu,ListItem as Dh,Skeleton as vo}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as Au,ImageContainer as _h,styled as Qe,Typography as bu}from"@rango-dev/ui";var Qi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vi=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ji=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Xi=Kt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ki=Kt({}),Yi=Kt(),Iu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ji=Qe("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kn=Qe("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vi}`]:{[`& .${Xi}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ki}`]:{bottom:"-15px"},[`& .${Qi}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ji}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Zi=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ri=Qe(bu,{}),Eu=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Yi}`]:{$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),CN=Qe("div",{display:"flex",alignItems:"center"}),Wu=Qe("div",{position:"relative",[`& ${_h}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bu=Qe("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Nu=Qe(bu,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Pu(t){return Ve.createElement(Kn,null,Array.from(Array(t.size),e=>Ve.createElement(Dh,{key:e,hasDivider:!0,start:Ve.createElement(vo,{variant:"circular",width:35,height:35}),end:Ve.createElement(Yn,null,Ve.createElement(vo,{variant:"text",size:"large",width:70}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:50})),title:Ve.createElement("div",null,Ve.createElement(vo,{variant:"text",size:"large",width:90}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:90}))})))}i(Pu,"LoadingTokenList");var ts=20,Qh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return D.createElement("div",{className:Vi()},o?D.createElement("div",{className:Qi()},o):D.createElement(Ji,{className:ji()},D.createElement(Jn,{variant:"title",size:"xmedium"},r.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(Zi,{css:s},D.createElement(Ri,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&D.createElement("div",{className:`${Xi()} ${!o&&Ki()}`},D.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",D.createElement(Yt,{size:4,direction:"horizontal"}),D.createElement(Fh,{color:"gray",size:12}))))},"renderDesc");function Fu(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=Du(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=Du(!0),{getBalanceFor:c,loading:g}=H(),{isTokenPinned:f}=d(),v=Hh((A,T)=>D.createElement("div",{...A,ref:T,style:{...A.style,height:`${parseFloat(A.style?.height)+8*2}px`}})),h=i(()=>{a(e.slice(0,s.length+ts))},"loadNextPage");_u(()=>{m(e.length>s.length)},[s.length]),_u(()=>{a(e.slice(0,ts))},[e]);let y=i(()=>!s.length&&o?D.createElement(D.Fragment,null,D.createElement(Yt,{size:32}),D.createElement(qh,{title:es.t("No results found"),description:es.t("Try using different keywords")})):D.createElement(Gh,{Item:({index:A,style:T})=>{let w=s[A],b=Ho(c(w)),S=w.address||"",x=p.find($=>$.name===w.blockchain),I=yn(w.symbol,x?.color||""),C={$$color:I[`${w.symbol}100`],[`.${$u} &`]:{$$color:I[`${w.symbol}900`]},backgroundColor:"$$color"},N={$$color:I[`${w.symbol}700`],[`.${$u} &`]:{$$color:I[`${w.symbol}100`]},color:"$$color"};return D.createElement("div",{style:{...T,paddingRight:5}},D.createElement(Uh,{style:{height:T?.height,width:"100%",overflow:"hidden"},"tab-index":A,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n(s[A]),start:D.createElement(Wu,null,D.createElement(Oh,{src:w.image,size:30}),f(w,t.type)&&D.createElement(Bu,null,D.createElement(zh,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||w.name||!w.name&&!S?D.createElement(Ji,null,D.createElement(Jn,{variant:"title",size:"xmedium"},w.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(Zi,{css:C},D.createElement(Ri,{variant:"body",size:"xsmall",css:N},w.blockchain))):void 0,description:x?.info&&S&&x.type!=="COSMOS"?Qh({address:S,token:s[A],customCssForTag:C,customCssForTagTitle:N,name:w.name,url:x.info.addressUrl.split("{wallet}").join(S)}):w.name||void 0,end:g?D.createElement(Yn,null,D.createElement(Mu,{variant:"text",size:"large",width:70}),D.createElement(Yt,{size:4}),D.createElement(Mu,{variant:"text",size:"medium",width:50})):b&&D.createElement(Eu,null,D.createElement(Nu,{variant:"title",size:"small"},b.amount),D.createElement("div",null),b.usdValue&&D.createElement(Jn,{variant:"body",className:Yi(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:v,size:60,key:`${r}-${o}`}),"renderList");return D.createElement(Iu,null,D.createElement(Jn,{variant:"label",size:"large"},es.t("Select Token")),D.createElement(Yt,{size:4}),l==="loading"&&D.createElement(Pu,{size:ts}),l==="success"&&D.createElement(Kn,null,y()))}i(Fu,"TokenList");function os(t){let{type:e}=t,o=jh(),n=yt(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=H.use.getBalanceFor(),[c,g]=Vh(""),{isTokenPinned:f}=d(),h=(e==="source"?r:s)?.name??"",y=d().blockchains({type:e}),A=d().tokens({type:e,blockchain:h,searchFor:c}),w=Os(A,m,i(x=>f(x,e),"checkIsTokenPinned")),b=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),S=i(x=>{e==="source"?a({token:x,meta:{blockchains:y,tokens:A}}):l({token:x,meta:{blockchains:y,tokens:A}})},"updateToken");return Jt.createElement(K,{header:{title:Ou.t("Swap {type}",{type:e})}},Jt.createElement(Hi,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:x=>{b(x)}}),Jt.createElement(Uu,{size:24}),Jt.createElement(lt,{value:c,autoFocus:!0,placeholder:Ou.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:x=>g(x.target.value)}),Jt.createElement(Uu,{size:16}),Jt.createElement(Fu,{list:w,selectedBlockchain:h,searchedFor:c,type:e,onChange:x=>{S(x);let I=y.find(C=>x.blockchain===C.name);I&&b(I),n()}}))}i(os,"SelectSwapItemsPage");import{i18n as Pt}from"@lingui/core";import{ChevronRightIcon as is,Divider as ss,InfoIcon as ty,List as oy,ListItemButton as ny,Skeleton as ry,Switch as iy,Tooltip as sy,Typography as $t}from"@rango-dev/ui";import j from"react";import{useNavigate as ay}from"react-router-dom";import{i18n as Vu}from"@lingui/core";import{Divider as Jh,InfoIcon as Zh,TextField as Rh,Tooltip as ey,Typography as ju}from"@rango-dev/ui";import Ne from"react";import{Chip as Xh,styled as Ao,TextField as Kh}from"@rango-dev/ui";var qu=Ao("div",{paddingTop:"$5",padding:"$10 $5"}),zu=Ao("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Kh}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Gu=Ao("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Zn=Ao("div",{maxWidth:"280px",padding:"$10"}),Hu=Ao(Xh,{width:"61px",flexShrink:0});import{i18n as ns}from"@lingui/core";import{Typography as Yh}from"@rango-dev/ui";import bo from"react";function Qu(){return bo.createElement(Zn,null,bo.createElement(Yh,{variant:"label",size:"medium",color:"neutral700"},ns.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),bo.createElement("br",null),bo.createElement("br",null),bo.createElement("b",null,ns.t("Warning")),":",ns.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Qu,"SlippageTooltipContent");function rs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Ne.createElement(qu,null,Ne.createElement(Gu,null,Ne.createElement(ju,{variant:"title",size:"xmedium"},Vu.t("Slippage tolerance per swap")),Ne.createElement(Jh,{direction:"horizontal",size:4}),Ne.createElement(ey,{container:O(),side:"top",sideOffset:4,content:Ne.createElement(Qu,null)},Ne.createElement(Zh,{color:"gray"}))),Ne.createElement(zu,null,Js.map((r,s)=>{let a=`slippage-${s}`;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Hu,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Ne.createElement(Rh,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=parseFloat(r.target.value);(!s||s>=ta&&s<=ea)&&n(s)},suffix:o&&Ne.createElement(ju,{variant:"body",size:"small"},"%"),placeholder:Vu.t("Custom")})))}i(rs,"Slippage");function Xu(){let t=ay(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Pe("theme",s),l=Pe("liquiditySource",s),p=Pe("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Xo(n,r),g=c.filter(C=>C.type==="BRIDGE"||C.type==="AGGREGATOR"),f=g.length,v=g.filter(C=>C.selected).length,h=c.filter(C=>C.type==="DEX"),y=h.length,A=h.filter(C=>C.selected).length,T=i((C,N)=>{switch(o){case"loading":return j.createElement(ry,{variant:"text",size:"medium",width:50});case"failed":return j.createElement($t,{variant:"body",size:"medium",color:"$error500"},Pt.t("Loading failed"));default:return j.createElement($t,{variant:"body",size:"medium"},`${C} / ${N}`)}},"handleEndItem"),w={id:"bridge-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:j.createElement(j.Fragment,null,T(v,f),j.createElement(ss,{direction:"horizontal",size:8}),j.createElement(is,{color:"black"})),onClick:()=>t(_.bridges)},b={id:"exchange-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled exchanges")),end:j.createElement(j.Fragment,null,T(A,y),j.createElement(ss,{direction:"horizontal",size:8}),j.createElement(is,{color:"gray"})),onClick:()=>t(_.exchanges)},S={id:"theme-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:j.createElement(is,{color:"gray"}),onClick:()=>t(_.themes)},x={id:"infinite-approval-item",title:j.createElement(j.Fragment,null,j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Infinite approval")),j.createElement(ss,{direction:"horizontal",size:4}),j.createElement(sy,{side:"top",sideOffset:4,container:O(),content:j.createElement(Zn,null,j.createElement($t,{variant:"label",size:"medium",color:"neutral700"},Pt.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.")))},j.createElement(ty,{color:"gray"}))),end:j.createElement(iy,{checked:u}),onClick:m},I=l?[]:[w,b];return!e?.singleTheme&&!a&&I.push(S),I.push(x),j.createElement(K,{header:{title:Pt.t("Settings")}},j.createElement(pt,null,j.createElement(rs,null),j.createElement(oy,{type:j.createElement(ny,{title:"_",id:"_",onClick:()=>console.log()}),items:I})))}i(Xu,"SettingsPage");import{cancelSwap as Yy}from"@rango-dev/queue-manager-rango-preset";import{useManager as Jy}from"@rango-dev/queue-manager-react";import Ic from"react";import{i18n as ct}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ny,getCurrentStep as Ly,getRelatedWalletOrNull as Py}from"@rango-dev/queue-manager-rango-preset";import{Button as Cc,CopyIcon as $y,Divider as My,IconButton as _y,QuoteCost as Dy,StepDetails as Fy,Typography as eo,useCopyToClipboard as Oy}from"@rango-dev/ui";import{useWallets as Uy}from"@rango-dev/wallets-react";import kc from"bignumber.js";import{PendingSwapNetworkStatus as ur}from"rango-types";import Y,{useEffect as Tc,useRef as qy,useState as wc}from"react";import{useNavigate as zy}from"react-router-dom";import{i18n as wt}from"@lingui/core";var ly=[wt.t("Sunday"),wt.t("Monday"),wt.t("Tuesday"),wt.t("Wednesday"),wt.t("Thursday"),wt.t("Friday"),wt.t("Saturday")];function Ku(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wt.t("Today"):`${ly[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ku,"timeSince");function Yu(t){return t.finishTime?Ku(parseInt(t.finishTime)):Ku(parseInt(t.creationTime))}i(Yu,"getSwapDate");import{Modal as gy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as tr}from"rango-types";import or from"react";import{i18n as Rn}from"@lingui/core";import{Button as Ju,Divider as as,MessageBox as py,Typography as Zu}from"@rango-dev/ui";import ot from"react";var Ru=i(({onCancel:t,onClose:e})=>ot.createElement(ot.Fragment,null,ot.createElement(as,{size:20}),ot.createElement(py,{type:"error",title:Rn.t("Cancel Swap"),description:Rn.t("Are you sure you want to cancel this swap?")}),ot.createElement(as,{size:32}),ot.createElement(Ju,{variant:"contained",type:"primary",size:"large",onClick:t},ot.createElement(Zu,{variant:"title",size:"medium",color:"neutral100"},Rn.t("Yes, Cancel it"))),ot.createElement(as,{size:12}),ot.createElement(Ju,{variant:"outlined",type:"primary",size:"large",onClick:e},ot.createElement(Zu,{variant:"title",size:"medium",color:"primary"},Rn.t("No, Continue")))),"CancelContent");import{i18n as er}from"@lingui/core";import{Button as ec,Divider as ls,MessageBox as uy,Typography as tc}from"@rango-dev/ui";import nt from"react";var oc=i(({onDelete:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(ls,{size:20}),nt.createElement(uy,{type:"error",title:er.t("Delete Transaction"),description:er.t("Are you sure you want to delete this swap?")}),nt.createElement(ls,{size:32}),nt.createElement(ec,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(tc,{variant:"title",size:"medium",color:"neutral100"},er.t("Yes, Delete it"))),nt.createElement(ls,{size:12}),nt.createElement(ec,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(tc,{variant:"title",size:"medium",color:"primary"},er.t("No, Cancel")))),"DeleteContent");import{i18n as ps}from"@lingui/core";import{PendingSwapNetworkStatus as us}from"rango-types";var cs={[us.WaitingForNetworkChange]:{type:"loading",title:ps.t("Change Network")},[us.WaitingForConnectingWallet]:{type:"warning",title:ps.t("Connect Wallet")},[us.NetworkChanged]:{type:"success",title:ps.t("Network Changed")}};import{MessageBox as my,Wallet as dy}from"@rango-dev/ui";import{useWallets as fy}from"@rango-dev/wallets-react";import Io from"react";import{styled as cy}from"@rango-dev/ui";var nc=cy("div",{display:"flex",justifyContent:"center"});var rc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=fy(),u=n?.walletType,m=u?yr(p(u)):null,c=u?l(u):null;return Io.createElement(Io.Fragment,null,Io.createElement(my,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&Io.createElement(nc,null,Io.createElement(dy,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function ms(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===tr.WaitingForNetworkChange||e===tr.WaitingForConnectingWallet||e===tr.NetworkChanged;return or.createElement(gy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&or.createElement(rc,{type:cs[e].type,title:cs[e].title,currentStepWallet:s,message:a,showWalletButton:e!==tr.WaitingForNetworkChange}),e==="delete"&&or.createElement(oc,{onClose:o,onDelete:n}),e==="cancel"&&or.createElement(Ru,{onClose:o,onCancel:r}))}i(ms,"SwapDetailsModal");import{i18n as Eo}from"@lingui/core";import{Button as ds,Divider as nr,MessageBox as ic,Modal as hy,TokenAmount as yy,Typography as rr}from"@rango-dev/ui";import me from"react";import{useNavigate as Sy}from"react-router-dom";function fs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,realUsdValue:a,realValue:l,token:p,chain:u,percentageChange:m,description:c,diagnosisUrl:g}=t,f=Sy();return me.createElement(hy,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(ic,{type:"success",title:Eo.t("Swap Successful")},me.createElement(yy,{direction:"vertical",tooltipContainer:O(),type:"output",centerAlign:!0,price:{value:r,usdValue:s,realUsdValue:a,realValue:l},token:p,chain:u,percentageChange:m}),me.createElement(nr,{size:12}),me.createElement(rr,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):me.createElement(ic,{type:"error",title:Eo.t("Transaction Failed"),description:c}),me.createElement(nr,{size:32}),n==="success"&&me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},me.createElement(rr,{variant:"title",size:"medium",color:"neutral100"},Eo.t("Done"))),me.createElement(nr,{size:12}),g&&me.createElement(me.Fragment,null,me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("Diagnosis"))),me.createElement(nr,{size:12})),me.createElement(ds,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("See Details"))))}i(fs,"SwapDetailsCompleteModal");import Wy from"react";import{i18n as Ay}from"@lingui/core";import{Alert as cc,IconButton as by,LinkIcon as Iy}from"@rango-dev/ui";import xt,{Fragment as Ey}from"react";import{Alert as Cy,ChevronDownIcon as ky,ChevronUpIcon as Ty,IconButton as wy}from"@rango-dev/ui";import ir,{useState as xy}from"react";function sc(t){let{message:e}=t,[o,n]=xy(!1);return ir.createElement(Cy,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&ir.createElement(wy,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?ir.createElement(Ty,{size:12,color:"gray"}):ir.createElement(ky,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(sc,"FailedAlert");import{styled as vy}from"@rango-dev/ui";var ac=vy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as lc}from"@lingui/core";import{Alert as gs,Button as pc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as hs}from"rango-types";import Wo from"react";function uc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},lc.t("Change"))}):r===hs.WaitingForConnectingWallet?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForConnectingWallet)}},lc.t("Connect"))}):Wo.createElement(gs,{type:"warning",title:n.shortMessage})}i(uc,"WarningAlert");function ys(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=io(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l;return xt.createElement(ac,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,v=c===g.length-1,h=v&&u||p,y=v&&s.status==="failed";return xt.createElement(Ey,{key:f},xt.createElement(cc,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:Ay.t("View transaction"),action:m.url&&xt.createElement(by,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},xt.createElement(Iy,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&xt.createElement(cc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&xt.createElement(uc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&xt.createElement(sc,{message:r}))}i(ys,"SwapDetailsAlerts");var mc=2e3;var dc=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Ye(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:E(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Ye(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:E(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6),realValue:r.outputAmount||r.expectedOutputAmountHumanReadable}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Wy.createElement(ys,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function fc(t){if(io(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(fc,"getStepState");import{css as sr,darkTheme as By,styled as Zt}from"@rango-dev/ui";var ar=Zt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),lr=Zt("div",{width:"100%"}),gc=Zt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),r$=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),hc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),i$=Zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Rt=sr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${By} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pr=sr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),yc=sr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Sc=sr({width:"100%",padding:"0 $20 $10"});function Ss(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Uy(),p=d().blockchains(),u=d().tokens(),m=U.use.retry(),c=zy(),[g,f]=Oy(mc),v=qy(null),[h,y]=wc(null),[A,T]=wc(null),w=i(()=>{r(),y(null)},"onCancel"),b=Me.use.getUnreadNotifications(),S=Me.use.setAsRead(),x=b(),I=Ly(e),C=I?.networkStatus;Tc(()=>{x.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),S(e.requestId))},[e.status]),Tc(()=>{q?y(ur.WaitingForNetworkChange):C===ur.WaitingForConnectingWallet||C===ur.NetworkChanged?y(C):y(null)},[C]);let N=Ca(e),$=I?Ny(e,I):null,B=I?Py(e,I):null,k=Yu(e),M=ka(e),L=i(ce=>!!l(ce)?.mobileWallet,"isMobileWallet"),q=C===ur.WaitingForNetworkChange&&!!$&&!!B?.walletType&&(L(B.walletType)||s(B.walletType,$)),J=q?a.bind(null,B.walletType,$):void 0,Z=Sa(e,I),Q=dc({swap:e,switchNetwork:J,showNetworkModal:C,setNetworkModal:y,message:Z,blockchains:p}),re=Q.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((ce,de)=>ce+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ce=>ce.diagnosisUrl)?.diagnosisUrl,mt=E(parseFloat(E(Ce,6,6))*(Se.toUsdPrice||0),4,4),vt=E(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),F=Ce?se(new kc(Ce).multipliedBy(Se.toUsdPrice||0)):"",z=se(new kc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),X=$e(vt,mt),Ee=e.status==="success"?ct.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:E(Ce,6,6),token:Q[re-1].to.token.displayName,conciseAddress:Qo(e.wallets[Q[re-1].to.chain.displayName]?.address||""),chain:Q[re-1].to.chain.displayName}}):`${ct.t("Transaction was not sent.")} ${N?ct.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}}):""}`;return Y.createElement(K,{noPadding:!0,header:{title:ct.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(Gt,null,Y.createElement(Cc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},Y.createElement(eo,{size:"medium",variant:"label",color:"error"},ct.t("Delete"))))},footer:M&&!A&&Y.createElement(Cc,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},ct.t("Try again"))},Y.createElement(ar,null,Y.createElement(lr,null,Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t("Request ID")}:`),Y.createElement("div",{className:pr()},Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(_y,{variant:"ghost",onClick:f.bind(null,o||"")},Y.createElement($y,{size:16,color:"gray"})))),Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t(e.finishTime?"Finished at":"Created at")}:`),Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},k))),Y.createElement("div",{className:yc()},Y.createElement(Dy,{fee:E(String(Mt),2,2),time:Do(Fo(e.steps)),steps:re}),Y.createElement(uo,{from:{price:{value:E(e.inputAmount,6,6),usdValue:vt,realUsdValue:z,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:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:Ce},token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image,displayName:Q[re-1].to.chain.displayName}},percentageChange:E(X,2,2),warningLevel:it(X??0)})),Y.createElement("div",{className:Sc()},Y.createElement(eo,{variant:"title",size:"small"},ct.t("Swaps steps"))),Y.createElement(My,{size:8}),Y.createElement(gc,{ref:v},Q.map((ce,de)=>{let Mo=de,rt=fc(e.steps[de]),Hc=rt==="error"||rt==="in-progress"||rt==="warning"||rt==="completed"&&de===Q.length-1;return Y.createElement(Fy,{key:Mo,step:ce,type:"swap-progress",ref:v,state:rt,hasSeparator:de!==0,tabIndex:Mo,isFocused:Hc,tooltipContainer:O()})}))),Y.createElement(ms,{state:h,onClose:()=>y(null),onCancel:w,onDelete:n,message:Z.detailedMessage.content,currentStepWallet:B}),Y.createElement(fs,{open:!!A,diagnosisUrl:oo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:se(Ce),percentageChange:E(X,2,2),token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image},description:Ee}))}i(Ss,"SwapDetails");import{i18n as No}from"@lingui/core";import{CopyIcon as jy,IconButton as Xy,NotFound as Ky,Skeleton as Ac,Typography as mr}from"@rango-dev/ui";import ue from"react";import{i18n as Gy}from"@lingui/core";import{Divider as Hy,Skeleton as Qy,Typography as Vy}from"@rango-dev/ui";import ie from"react";import{css as je,styled as Cs}from"@rango-dev/ui";var xc=Cs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Bo=Cs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),cr=Cs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),_$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),D$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),F$=je({paddingTop:"$15",display:"flex"}),O$=je({padding:"$15 $0"}),U$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),q$=je({paddingBottom:"$10"}),z$=je({display:"flex",justifyContent:"start",alignItems:"center"}),G$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),H$=je({display:"flex",alignItems:"center"}),Q$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),vc=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ks(){return ie.createElement(xc,null,ie.createElement(go,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(Vy,{variant:"title",size:"small"},Gy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Bo,null,ie.createElement(et,{separator:!1}),ie.createElement("div",{className:vc()},ie.createElement(Hy,{direction:"horizontal",size:20}),ie.createElement(Qy,{height:22,variant:"rectangular"}))),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1}))))}i(ks,"LoadingSwapDetails");function bc(t){let{requestId:e,showSkeleton:o}=t;return ue.createElement(K,{noPadding:!0,header:{title:No.t("Swap and Bridge"),suffix:ue.createElement(Gt,null)}},o&&ue.createElement(ar,null,ue.createElement(lr,null,ue.createElement("div",{className:Rt()},ue.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Request ID")}:`),ue.createElement("div",{className:pr()},ue.createElement(mr,{variant:"label",size:"small",color:"neutral700"},ue.createElement(Ac,{width:60,height:10,variant:"rounded"})),ue.createElement(Xy,{variant:"ghost"},ue.createElement(jy,{size:16,color:"gray"})))),ue.createElement("div",{className:Rt()},ue.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Created at")}:`),ue.createElement(mr,{variant:"label",size:"small",color:"neutral700"},ue.createElement(Ac,{width:60,height:10,variant:"rounded"})))),ue.createElement(ks,null)),!o&&ue.createElement(hc,null,ue.createElement(Ky,{title:No.t("Not found"),description:No.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(bc,"SwapDetailsPlaceholder");function Ec(){let{manager:t,state:e}=Jy(),o=!e.loadedFromPersistor,n=jt(t),r=Ae.use.selectedSwapRequestId(),s=yt(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Yy(g)}},"onCancel"),m=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),c=p?.swap;return!c||l?Ic.createElement(bc,{requestId:r||"",showSkeleton:l}):Ic.createElement(Ss,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Ec,"SwapDetailsPage");import{i18n as Lo}from"@lingui/core";import{AutoThemeIcon as Zy,DarkModeIcon as Ry,LightModeIcon as eS,List as tS,ListItemButton as oS,Radio as Ts,RadioRoot as nS,Typography as ws}from"@rango-dev/ui";import be from"react";function Wc(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Light")),onClick:()=>t("light"),start:be.createElement(eS,{color:"gray"}),end:be.createElement(Ts,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Dark")),onClick:()=>t("dark"),start:be.createElement(Ry,{color:"gray"}),end:be.createElement(Ts,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Auto")),onClick:()=>t("auto"),start:be.createElement(Zy,{color:"gray"}),end:be.createElement(Ts,{value:"auto"})}];return be.createElement(K,{header:{title:Lo.t("Theme")}},be.createElement(pt,null,be.createElement(nS,{onValueChange:n=>t(n),value:e},be.createElement(tS,{type:be.createElement(oS,{title:Lo.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Wc,"ThemePage");function Bc(){return rS([{path:_.home,element:Ie.createElement(su,null)},{path:_.fromSwap,children:[{index:!0,element:Ie.createElement(os,{type:"source"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ie.createElement(os,{type:"destination"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ie.createElement(Xu,null)},{path:_.themes,element:Ie.createElement(Wc,null)},{path:_.languages,element:Ie.createElement(lu,null)},{path:_.exchanges,element:Ie.createElement($i,{sourceType:"Exchanges"})},{path:_.bridges,element:Ie.createElement($i,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ie.createElement(tu,null)},{path:_.swapDetails,element:Ie.createElement(Ec,null)}]},{path:_.wallets,element:Ie.createElement(wl,null)},{path:_.confirmSwap,element:Ie.createElement(Qp,null)}])}i(Bc,"AppRoutes");import{isApprovalTX as iS,MainEvents as Lc,RouteEventType as Pc,StepEventType as to,StepExecutionEventStatus as sS,useEvents as aS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as $c}from"react";import{StepExecutionBlockedEventStatus as xs}from"@rango-dev/queue-manager-rango-preset";var Nc=[xs.WAITING_FOR_CHANGE_WALLET_ACCOUNT,xs.WAITING_FOR_NETWORK_CHANGE,xs.WAITING_FOR_WALLET_CONNECT];function Mc(){let t=d().tokens(),e=H.use.connectedWallets(),o=H.use.getWalletsDetails(),n=Me.use.setNotification(),r=Me.use.setAsRead(),s=aS();return $c(()=>(s.on(Lc.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===sS.TX_SENT&&!iS(p)||l.type===to.SUCCEEDED){let c=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);c&&o([c],t),g&&o([g],t)}l.type===to.TX_EXECUTION_BLOCKED&&Nc.includes(l.status)||l.type===to.FAILED?n(l,u):(l.type===to.TX_EXECUTION||l.type===to.CHECK_STATUS)&&r(u.requestId)}),()=>s.all.clear()),[s,e.length]),$c(()=>(s.on(Lc.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Pc.FAILED||l.type===Pc.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(Mc,"WidgetEvents");import{globalCss as lS}from"@rango-dev/ui";var _c=i(()=>lS({"@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')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{styled as pS}from"@rango-dev/ui";var Dc=pS("div",{display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function dr(){_c();let{config:t}=d(),{activeTheme:e}=Sn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Hn(),[r,s]=Oc(""),[a,l]=Oc(),p=cS(pn);return Fc(()=>{Me.persist.rehydrate(),p.onConnectWallet(s)},[]),Fc(()=>{n(t?.language)},[t?.language]),Po.createElement(uS,{language:o},Po.createElement(Dc,{id:"swap-container",className:e()},Po.createElement(Mc,null),Po.createElement(Pa,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Po.createElement(Bc,null))))}i(dr,"Main");import As,{useMemo as WS}from"react";import{checkWaitingForNetworkChange as mS,makeQueueDefinition as dS}from"@rango-dev/queue-manager-rango-preset";import{Provider as fS}from"@rango-dev/queue-manager-react";import{useWallets as gS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as hS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as yS}from"rango-types";import SS,{useMemo as CS}from"react";function kS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=gS(),l=CS(()=>dS({API_KEY:t.apiKey||_t("API_KEY"),BASE_URL:_t("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:H.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},c=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),g=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),v=p.filter(yS),h=i(T=>{let{supportedChains:w}=a(T);return qo(w)},"getSupportedChainNames"),y=e(),A={meta:{blockchains:f,evmBasedChains:v,evmNetworkChainInfo:hS(v),getSupportedChainNames:h},getSigners:o,wallets:m,providers:y,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return SS.createElement(fS,{queuesDefs:[l],context:A,onPersistedDataLoaded:T=>{mS(T)},isPaused:!1},t.children)}i(kS,"QueueManager");var Uc=kS;import{useManager as AS}from"@rango-dev/queue-manager-react";import bS,{createContext as IS,useContext as ES}from"react";import{cancelSwap as TS,getCurrentBlockchainOfOrNull as wS,getCurrentStep as xS,getRelatedWalletOrNull as vS}from"@rango-dev/queue-manager-rango-preset";var $o=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return jt(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){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&TS(o)}getCurrentStepInfo(e){let o=xS(e);return{step:o,wallet:o?vS(e,o):null,network:o?wS(e,o):null}}};i($o,"WidgetHistory");var qc=IS(void 0);function vs(t){let{manager:e}=AS(),o=U.use.retry(),n=new $o(e,{retrySwap:o}),r=H.use.connectedWallets(),s=H.use.loading(),a=Fs(r),l=H.use.getWalletsDetails(),p=d().blockchains(),u=d().tokens(),m=d().swappers(),c=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return bS.createElement(qc.Provider,{value:g},t.children)}i(vs,"WidgetInfo");function zc(){let t=ES(qc);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(zc,"useWidget");function fr(t){let{onUpdateState:e,config:o}=t;return WS(()=>{Gs({API_KEY:o?.apiKey||_o,BASE_URL:o?.apiUrl||Es})},[o]),As.createElement(un,{config:o,onUpdateState:e},As.createElement(Uc,{apiKey:o.apiKey},As.createElement(vs,null,t.children)))}i(fr,"WidgetProvider");function Gc(t){return t.config?.externalWallets?bs.createElement(dr,null):bs.createElement(fr,{config:t.config??gr},bs.createElement(dr,null))}i(Gc,"Widget");export{gD as MainEvents,AD as Networks,ED as PendingSwapNetworkStatus,hD as RouteEventType,yD as StepEventType,SD as StepExecutionBlockedEventStatus,CD as StepExecutionEventStatus,xD as WalletEvents,bD as WalletTypes,Gc as Widget,fr as WidgetProvider,un as WidgetWallets,qr as customizedThemeTokens,wD as readAccountAddress,Bl as useWallets,zc as useWidget,kD as useWidgetEvents};
1
+ var Kc=Object.defineProperty;var i=(t,e)=>Kc(t,"name",{value:e,configurable:!0});import{MainEvents as WD,RouteEventType as BD,StepEventType as LD,StepExecutionBlockedEventStatus as ND,StepExecutionEventStatus as PD,useEvents as MD}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as _D,useWallets as $l,Events as DD}from"@rango-dev/wallets-react";import{Networks as OD,WalletTypes as UD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as zD}from"rango-types";import{Events as $r,Provider as Lm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Nm}from"rango-sdk";import pn,{createContext as Pm,useEffect as _r,useRef as Mm,useState as $m}from"react";import{useEffect as sn,useLayoutEffect as Wa,useRef as an}from"react";import fm,{createContext as gm,useContext as hm,useEffect as ym,useRef as Sm}from"react";import{create as mm}from"zustand";import{persist as dm}from"zustand/middleware";var hr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},Ws=i((t,e,o)=>({config:{...hr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as am}from"rango-sdk";var Do="c6381a79-2817-4602-83bf-6a641a409e32",Bs="https://api.rango.exchange",Te="rango-swap-box";import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as Zc}from"@rango-dev/wallets-react";import{detectInstallLink as Rc,getCosmosExperimentalChainInfo as em,isEvmAddress as tm,KEPLR_COMPATIBLE_WALLETS as RS,Networks as Ms}from"@rango-dev/wallets-shared";import yr from"bignumber.js";import{isCosmosBlockchain as om}from"rango-types";import Yc from"bignumber.js";var We=new Yc(0);import{WalletTypes as Jc}from"@rango-dev/wallets-shared";var Ls=[Jc.LEAP];import{BigNumber as Ps}from"bignumber.js";var Fo=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),E=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ps(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ps(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Oo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Xe=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return E(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function Sr(t){switch(!0){case t.connected:return Ke.CONNECTED;case t.connecting:return Ke.CONNECTING;case!t.installed:return Ke.NOT_INSTALLED;default:return Ke.DISCONNECTED}}i(Sr,"mapStatusToWalletState");function $s(t,e,o,n){return o.filter(r=>!Ls.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(m=>m.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=Sr(t(r));return{title:s,image:a,link:Rc(l),state:p,type:r}})}i($s,"mapWalletTypesToWalletInfo");function zo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(zo,"walletAndSupportedChainsNames");function _s(t,e,o,n,r){let s=[];function a(p,u){if(!!!s.find(c=>c.chain===p)){let c={address:u,chain:p,walletType:t};s.push(c)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:m}=Zc(p),c=l.length>0,g=l.includes(m),f=m===Ms.Unknown;if(c&&!g&&!f)return;let h=m===Ms.Unknown&&tm(u);if(f&&!h)return;o.includes(m)||h?r?a(m,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{a(T,u.toLowerCase())}):a(m,u)}),s}i(_s,"prepareAccountsForWalletStore");function Ds(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(s=>{let a=s.from.blockchain,l=s.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(Ds,"getRequiredChains");function Go(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Go,"isAccountAndWalletMatched");function Fs(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 yr(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:rm(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Fs,"makeBalanceFor");function Os(t){return{...t,loading:!1,error:!0}}i(Os,"resetConnectedWalletState");var Us=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=E(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new yr(s?.amount||We).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),We)||We).toString();return nm(r)},"calculateWalletUsdValue");function nm(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(nm,"numberWithThousandSeparator");var rm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Ho=i((t,e)=>{let o=em(Object.entries(t).map(([,n])=>n).filter(om));return o&&o[e]?.experimental},"isExperimentalChain");function Qo(t){return t?{...t,amount:E(t.amount,8,8),usdValue:E(t.usdValue,4,4)}:null}i(Qo,"formatBalance");function im(t,e){return t?.usdValue&&e?.usdValue?parseFloat(e.usdValue)-parseFloat(t.usdValue):!t?.usdValue&&e?.usdValue?1:t?.usdValue&&!e?.usdValue?-1:!t?.usdValue&&!e?.usdValue?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(im,"sortTokensByBalance");function sm(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(sm,"sortTokensByPinnedToken");function qs(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=sm(n,r,o);return l!==0?l:im(s,a)}),t}i(qs,"sortTokens");function Ne(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Ne,"tokensAreEqual");function zs(t){return t.sort((e,o)=>+(o.state===Ke.CONNECTED)-+(e.state===Ke.CONNECTED)||+(o.state===Ke.DISCONNECTED||o.state===Ke.CONNECTING)-+(e.state===Ke.DISCONNECTED||e.state===Ke.CONNECTING))}i(zs,"sortWalletsBasedOnConnectionState");function Vo(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(Vo,"getConciseAddress");function Gs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Gs,"getAddress");function Cr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Cr,"createTokenHash");function jo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new yr(o?.usdPrice??We).multipliedBy(o?.amount).toString():""},r=o?Cr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(jo,"makeTokensBalance");var Hs=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var kr={API_KEY:Do};function _t(t){return kr[t]||""}i(_t,"getConfig");function Qs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),kr=e,kr}i(Qs,"initConfig");var Vs=20,js=25,Xs="Roboto",Tr="theme-widget",ro=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ne(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ne(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),wr=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig");var Xo,Dt=i(()=>Xo||(Xo=new am(_t("API_KEY"),_t("BASE_URL")),Xo),"httpService");function Ft(t){return Array.from(new Set(t))}i(Ft,"removeDuplicateFrom");function xr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(xr,"areEqual");function Ks(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ks,"debounce");function At(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(At,"containsText");var O=i(()=>document.getElementById(Te),"getContainer");function Ko(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Ft(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Ko,"getUniqueSwappersGroups");function Ys(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ys,"sortLiquiditySourcesByGroupTitle");function Pe(t,e){return e?.[t]==="hidden"}i(Pe,"isFeatureHidden");function Yo(t,e){return e?.[t]==="enabled"}i(Yo,"isFeatureEnabled");var Js=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??{},a=e().blockchains({type:o.type});return n.filter(p=>s&&ro(p,s)||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(At(p.symbol,o.searchFor)||At(p.address||"",o.searchFor)||At(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(u,o.type)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Ne(a,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(Ys)},fetch:async()=>{try{let o=await Dt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],s=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as lm,French as pm,Japanese as um,Spanish as cm}from"@rango-dev/ui";var Zs=[{title:"English",label:"English",local:"en",SVGFlag:lm},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:cm},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:pm},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:um}],Ot="en";var Rs=[.5,1,3],ea=1,ta=5,oa=100,na=0;var ra=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ot,preferredBlockchains:[],slippage:ea,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},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 s=Ft(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),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}=o,r=Pe("theme",n),s=Pe("language",n),a=Pe("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:Ot},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function ia(t){return mm()(dm((...e)=>({...Js(...e),...ra(...e),...Ws(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(ia,"createAppStore");var sa=gm(null);function d(){let t=hm(sa);if(ym(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function aa(t){let e=Sm();return e.current||(e.current=ia(t.config)),fm.createElement(sa.Provider,{value:e.current},t.children)}i(aa,"AppStoreProvider");import ht from"bignumber.js";import{create as Am}from"zustand";import{subscribeWithSelector as bm}from"zustand/middleware";import{getLastSuccessfulStep as xm}from"@rango-dev/queue-manager-rango-preset";import Nk from"bignumber.js";var dt=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(dt||{});function la(t,e){return e.find(o=>o.name===t)?.displayName}i(la,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function pa(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(pa,"getSwapperDisplayName");function Ar(t,e){return e.find(o=>Ne(o,t))??null}i(Ar,"findToken");function br(t,e){return e.find(o=>o.name===t)??null}i(br,"findBlockchain");import{i18n as Ue}from"@lingui/core";import ve from"bignumber.js";import{PendingSwapNetworkStatus as en}from"rango-types";function Jo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Jo,"getRequiredWallets");function Zo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Zo,"isValidAddress");import{i18n as fe}from"@lingui/core";var V=i(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.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:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function ua(t){switch(t.type){case 0:return t.diagnosisMessage??V().noResultError.title;case 1:return V().genericServerError;default:return""}}i(ua,"getQuoteErrorMessage");import{i18n as Ro}from"@lingui/core";var bt=i(()=>({connectWallet:Ro.t("Connect Wallet"),swap:Ro.t("Swap"),swapAnyway:Ro.t("Swap anyway"),ethWarning:Ro.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ca(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ve(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ve(1e3)))??!1}i(ca,"hasHighValueLoss");function Ir(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(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(Ir,"hasLimitError");function Er(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ve(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ve(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 ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=Ue.t({id:"Required: >= {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Ue.t({id:"Required: > {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Ue.t({id:"Required: <= {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Ue.t({id:"Required: < {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Er,"getLimitErrorMessage");function ma(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:bt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:bt().swap,action:"confirm-swap",disabled:!0}:a?{title:bt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:bt().ethWarning,action:"confirm-warning",disabled:!1}:{title:bt().swap,action:"confirm-swap",disabled:!1}:{title:bt().connectWallet,action:"connect-wallet",disabled:!1}}i(ma,"getSwapButtonState");function Wr(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(Wr,"canComputePriceImpact");function Cm(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Cm,"requiredWallets");var km=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function Tm(t,e){let o=We;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=km(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(Tm,"getUsdFeeOfStep");function tn(t,e){return t.reduce((o,n)=>o.plus(Tm(n,e)),We)}i(tn,"getTotalFeeInUsd");function Br(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Br,"checkSlippageErrors");function da(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(da,"checkSlippageWarnings");function on(t){return t.result?.swaps.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(on,"getMinRequiredSlippage");function fa(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(fa,"hasProperSlippage");function nn(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:f,destination:v}=t,h=s?.reduce((b,S)=>(b[S.chain]=S.address,b),{}),y=[];r?.forEach(b=>{let S=y.find(x=>x.blockchain===b.chain);S?S.addresses.push(b.address):y.push({blockchain:b.chain,addresses:[b.address]})});let A=!!f,T=Ft((f?.result?.swaps||[]).reduce((b,S)=>(b.push(S.from.blockchain,S.to.blockchain),S.internalSwaps&&Array.isArray(S.internalSwaps)&&S.internalSwaps.map(x=>{b.push(x.from.blockchain,x.to.blockchain)}),b),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:g??void 0,checkPrerequisites:A,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:h??{},slippage:u.toString(),...v&&{destination:v},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(b=>!a.includes(b)),swappersGroupsExclude:!1},...A&&{blockchains:T}}}i(nn,"createQuoteRequestBody");function ga(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(ga,"getWalletsForNewSwap");function Ut(t){return t.result?.outputAmount||null}i(Ut,"getQuoteOutputAmount");function ha(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(ha,"getPercentageChange");function ya(t,e){let o=Ut(t),n=Ut(e);if(!o||!n)return!1;let r=Me(o,n);return r?r<=-1:!0}i(ya,"isOutputAmountChangedALot");function Sa(t,e,o){let n=t.validationStatus,r=Ds(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>va(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=E(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=E(new ve(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Ue.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Ue.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Ue.t(" for input and network fee")),Ue.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Ye(a.asset.blockchain,o)}})})}i(Sa,"generateBalanceWarnings");function Ca(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(Ca,"calcOutputUsdValue");function io(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==en.NetworkChanged}i(io,"isNetworkStatusInWarningState");function ka(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),io(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case en.WaitingForConnectingWallet:n=n||Ue.t("Waiting for connecting wallet");break;case en.WaitingForQueue:n=n||Ue.t("Waiting for other running tasks to be finished");break;case en.WaitingForNetworkChange:n=n||Ue.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(ka,"getSwapMessages");function Ta(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(Ta,"getLastConvertedTokenInFailedSwap");function wa(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(wa,"shouldRetrySwap");function xa(t,e,o,n,r,s){return t||!e&&!Cm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Zo(s,o)}i(xa,"confirmSwapDisabled");function Lr(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Lr,"searchParamsToToken");function ba(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(ba,"getQuoteToTokenUsdPrice");function Nr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Nr,"isNumberOfSwapsChanged");function Pr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!xr(o,n)}i(Pr,"isQuoteSwappersUpdated");function Mr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!xr(o,n)}i(Mr,"isQuoteInternalCoinsUpdated");function Ia(t,e){return Nr(t,e)||Pr(t,e)||Mr(t,e)}i(Ia,"isQuoteChanged");function va(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(va,"getRequiredBalanceOfWallet");function it(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(it,"getPriceImpactLevel");function Ea(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=xm(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=br(s?s.toBlockchain:n.fromBlockchain,e),p=br(r.toBlockchain,e),u=Ar(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=Ar(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(Ea,"createRetryQuote");function rn(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=It(o,t.requestAmount),l=It(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=Me(a.toString(),l.toString());if(!!m&&ca(a,m)){let g=tn(t.result.swaps,r),f=it(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=on(t),u=s>ta;if(fa(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:da(t,s),minRequiredSlippage:p};return null}i(rn,"generateQuoteWarnings");function Me(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ha(t.toString(),e.toString());return n&&n<0?n:null}i(Me,"getPriceImpact");var vm=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"),gt=vm;var It=i((t,e)=>t?.usdPrice?new ht(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=gt(Am()(bm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ht(0),outputUsdValue:new ht(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=We;return no(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ht(e.result?.outputAmount):null,r=Ca(e.result?.outputAmount,ba(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new ht(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote: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:It(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote: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 ht(0),outputUsdValue:new ht(0),quote:null},...!!o.fromToken&&{inputUsdValue:It(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=Ea(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:It(a??null,u),outputUsdValue:new ht(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:It(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Ba(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=U(),u=d().config,m=d().fetchStatus,c=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:v,setAffiliateWallets:h}=d(),y=u?.from?.tokens,A=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,b=an(void 0),S=an(void 0),x=an(void 0),I=an(void 0);sn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Wa(()=>{if(m==="success"){let C=c.find(M=>M.name===u?.from?.blockchain),L=g.find(M=>Ne(M,u?.from?.token||null));(C||!C&&x.current)&&n(C??null),L?r({token:L,meta:{blockchains:c,tokens:g}}):!L&&b.current&&r({token:null}),x.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),sn(()=>{ro(s,y)&&r({token:null}),wr(l,A)&&n(null)},[y,A]),sn(()=>{ro(a,T)&&r({token:null}),wr(p,w)&&o(null)},[T,w]),Wa(()=>{if(m==="success"){let C=c.find(M=>M.name===u?.to?.blockchain),L=g.find(M=>Ne(M,u?.to?.token||null));(C||!C&&I.current)&&o(C??null),L?e({token:L,meta:{blockchains:c,tokens:g}}):!L&&S.current&&e({token:null}),I.current=u?.to?.blockchain,S.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),sn(()=>{f(u?.affiliate?.ref??null),v(u?.affiliate?.percent??null),h(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ba,"useSyncStoresWithConfig");import{useEffect as Bm}from"react";import{create as Im}from"zustand";import{subscribeWithSelector as Em}from"zustand/middleware";var H=gt(Im()(Em((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:jo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>Go(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Dt().getWalletsDetails(a)).wallets;if(p)t(u=>{let m=u.connectedWallets.map(g=>{let f=o.find(h=>Go(h,g)),v=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return v?.failed&&f&&r&&s([f],n,!1),f&&v?{...g,explorerUrl:v.explorerUrl,balances:Fs(v,n),loading:!1}:g});return{loading:!1,balances:jo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>Go(c,m))?Os(m):m);return{loading:!1,balances:jo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Cr(o);return n[r]??null}}))));import{allProviders as Wm}from"@rango-dev/provider-all";function ln(t,e){let o=Wm({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(ln,"matchAndGenerateProviders");function La(t,e){return ln(t,e).map(r=>r.config.type)}i(La,"configWalletsToWalletName");function Na(t,e){let o=H.use.clearConnectedWallet(),n=ln(void 0,e);return Bm(()=>{o(),n=ln(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Na,"useWalletProviders");var un=Pm({onConnectWallet:()=>{}});function _m(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},[l,p]=$m([]),{providers:u}=Na(t.config.wallets,a),{connectWallet:m,disconnectWallet:c}=H(),g=Mm();Ba(),_r(()=>{n().catch(console.log)},[]),_r(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let f=r.filter(Nm).map(h=>h.name),v=i((h,y,A,T,w)=>{if(y===$r.ACCOUNTS)if(A){let b=zo(w.supportedBlockchains),S=_s(h,A,f,b,w.isContractWallet);p(S)}else c(h);if(y===$r.ACCOUNTS&&T.connected){let b=`${h}-${T.network}-${A}`;T.connected&&(g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(y===$r.NETWORK&&T.network){let b=`${h}-${T.network}`;g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,y,A,T,w)},"onUpdateState");return _r(()=>{l.length&&m(l,s)},[l,s]),pn.createElement(un.Provider,{value:{onConnectWallet:h=>{g.current=h}}},pn.createElement(Lm,{allBlockChains:r,providers:u,onUpdateState:v,autoConnect:!0},t.children))}i(_m,"Main");function cn(t){let{config:e,...o}=t;return pn.createElement(aa,{config:e},pn.createElement(_m,{...o,config:e}))}i(cn,"WidgetWallets");import Es from"react";import{I18nManager as yS}from"@rango-dev/ui";import Mo,{useContext as SS,useEffect as zc,useState as Gc}from"react";import{useQueueManager as Qm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Vm}from"@rango-dev/wallets-react";import{isEvmBlockchain as jm}from"rango-types";import mn,{Fragment as Xm}from"react";import{MemoryRouter as Km,useInRouterContext as Ym}from"react-router";import{useWallets as Fm}from"@rango-dev/wallets-react";import{useEffect as Om,useRef as Um}from"react";function Pa(){let{connect:t,state:e}=Fm(),o=Um({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Om(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(Pa,"useForceAutoConnect");import{useEffect as Dr,useRef as Fr}from"react";import{createSearchParams as zm,useLocation as Gm,useSearchParams as Hm}from"react-router-dom";var _={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as qm}from"zustand";var Ae=gt(qm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function Ma(){let t=Fr(!0),[e,o]=Hm(),n=Gm(),r=Fr(n.search),s=Fr({}),a=U.use.fromBlockchain(),l=U.use.toBlockchain(),p=U.use.fromToken(),u=U.use.toToken(),m=U.use.setFromBlockchain(),c=U.use.setFromToken(),g=U.use.setToBlockchain(),f=U.use.setToToken(),v=U.use.inputAmount(),h=U.use.setInputAmount(),y=d().fetchStatus,A=d().blockchains(),T=d().tokens(),w=Ae.use.setSelectedSwap();return Dr(()=>{let b={};zm(r.current).forEach((x,I)=>{b[I]=x}),s.current=b;let S=n.pathname.split(_.swaps+"/")[1]||null;S&&w(S)},[]),Dr(()=>{if(!t.current){let b="",S="",x="",I="",C="",L=s.current["autoConnect"];y!=="success"?(b=s.current["fromBlockchain"],S=s.current["fromToken"],x=s.current["toBlockchain"],I=s.current["toToken"],C=s.current["fromAmount"]||v):(b=a?.name||"",S=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),x=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),C=v),o({...b&&{["fromBlockchain"]:b},...S&&{["fromToken"]:S},...x&&{["toBlockchain"]:x},...I&&{["toToken"]:I},...C&&{["fromAmount"]:C.toString()},...L&&{["autoConnect"]:L}},{replace:!0})}t.current=!1},[n.pathname,v,a,p,l,u]),Dr(()=>{if(y==="success"){let b=e.get("fromBlockchain"),S=e.get("fromToken"),x=e.get("toBlockchain"),I=e.get("toToken"),C=e.get("fromAmount"),L=A.find($=>$.name===b),M=Lr(T,S,L||null),B=A.find($=>$.name===x),k=Lr(T,I,B||null);L&&(m(L),M&&c({token:M,meta:{blockchains:A,tokens:T}})),B&&(g(B),k&&f({token:k,meta:{blockchains:A,tokens:T}})),C&&h(C)}},[y]),null}i(Ma,"UpdateUrl");function $a({children:t,...e}){let o=Ym(),n=o?Xm:Km,r=d().blockchains(),{canSwitchNetworkTo:s}=Vm();Pa();let a=r.filter(jm);return Qm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),mn.createElement(mn.Fragment,null,mn.createElement(n,null,t),o&&mn.createElement(Ma,null))}i($a,"AppRouter");import Ie from"react";import{useRoutes as cS}from"react-router-dom";import{i18n as On}from"@lingui/core";import{useManager as yg}from"@rango-dev/queue-manager-react";import{Alert as Vp,Button as Sg,css as vi,Divider as Cg,IconButton as jp,SettingsIcon as kg,styled as Xp,Tooltip as Tg,Typography as wg,WalletIcon as xg}from"@rango-dev/ui";import ne,{useEffect as To,useLayoutEffect as vg,useRef as Ag,useState as Un}from"react";import{flushSync as bg}from"react-dom";import{useNavigate as Ig}from"react-router-dom";import{i18n as st}from"@lingui/core";import{Alert as ri,BalanceErrors as yf,Button as _l,ChevronDownIcon as Sf,ChevronLeftIcon as Cf,Divider as Qt,MessageBox as kf,Modal as Dl,Typography as Wn,WalletIcon as Tf}from"@rango-dev/ui";import P,{useEffect as wf,useLayoutEffect as xf,useRef as vf,useState as Bt}from"react";import{useNavigate as Af}from"react-router-dom";import{i18n as dn}from"@lingui/core";function fn(t){switch(t.type){case 0:return dn.t("Route has been updated.");case 3:return dn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return dn.t("Route swappers has been updated.");case 2:return dn.t("Route internal coins has been updated.");default:return""}}i(fn,"getQuoteUpdateWarningMessage");import*as zt from"@radix-ui/react-collapsible";import{Button as Zm,css as _a,darkTheme as qt,IconButton as Rm,keyframes as Da,styled as ge,TextField as ed}from"@rango-dev/ui";var so=300,td=Da({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),od=Da({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Fa=ge("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Oa=ge("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),nd=ge("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Ua=ge(nd,{alignSelf:"stretch",minHeight:"93px"}),qa=ge(zt.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),za=ge("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Ga=ge(Rm,{position:"absolute",left:"$20"}),Ha=ge("div",{paddingTop:"$20"}),Qa=_a({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Va=ge(zt.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ja=ge(Zm,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${qt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Xa=ge("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),Ka=_a({paddingTop:"5px"}),Ya=ge("div",{transition:`all ${so}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ja=ge("div",{display:"flex"}),Za=ge(ed,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),gn=ge(zt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${td} ${so}ms ease-out`},false:{animation:`${od} ${so}ms ease-out`}}}}),Ra=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as ff,Divider as oi,Image as gf,MessageBox as En,Modal as Ll,SelectableWallet as hf,Typography as Nl,WalletState as Pl}from"@rango-dev/ui";import ee,{useEffect as Ml,useState as po}from"react";import{WalletState as Or}from"@rango-dev/ui";import{useWallets as rd}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as id,WalletTypes as hn}from"@rango-dev/wallets-shared";import{useEffect as sd,useState as ad}from"react";var ld=Object.values(hn);function yn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=rd(),{connectedWallets:u}=H(),m=d().blockchains(),c=La(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||ld,g=$s(s,l,c,o),f=zs(g),[v,h]=ad(""),y=i(S=>!u.find(x=>x.walletType===S&&x.chain===o),"isExperimentalChainNotAdded"),A=i(async S=>{let x=s(S);try{if(v&&h(""),x.connected)await a(S);else{let I=!!g.find(C=>C.state===Or.CONNECTED);if(!e?.multiWallets&&I)return;n?.(S),await p(S),r?.(S)}}catch(I){h("Error: "+I?.message)}},"handleClick"),T=i(()=>{let S=g?.filter(x=>x.state===Or.CONNECTING)||[];for(let x of S)a(x.type)},"disconnectConnectingWallets");sd(()=>()=>{T()},[]);let w=i(S=>S.filter(I=>I.state!=Or.NOT_INSTALLED&&![hn.DEFAULT,hn.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(C=>C.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),b=i((S,x,I)=>Ho(I,x)&&y(S)&&!id.includes(S)||S==hn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(S=>!b(S.type,o??"",m)),error:v,handleClick:A}}i(yn,"useWalletList");import{i18n as vl}from"@lingui/core";import{styled as bl,Typography as sf,Wallet as af,WalletState as lf}from"@rango-dev/ui";import Wt,{Fragment as pf,useState as Al}from"react";import{BottomLogo as Kd,Divider as Yd,Header as Jd}from"@rango-dev/ui";import he from"react";import{useNavigate as pd}from"react-router-dom";function yt(){let t=pd();return()=>t(-1)}i(yt,"useNavigateBack");import{createTheme as Gr,darkTheme as fd,lightTheme as gd}from"@rango-dev/ui";import{useEffect as ol,useState as hd}from"react";import{theme as md,darkColors as dd}from"@rango-dev/ui";var el=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),Sn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:el(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:el(e,-((l-5)*25))});return a},"generateRangeColors"),Ur=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=Sn(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,...Sn(s,a)}}return n?r:{}},"generateColors");var tl=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),ud=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=tl(o%52)+e;return tl(o%52)+e},"toAlphabeticName"),cd=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),qr=i(t=>ud(cd(5381,JSON.stringify(t))>>>0),"toHash");function zr(t){let e=md.colors,o=Ur({...e,...dd},!0,t?.dark),n=Ur(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${Tr}-light-${qr(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Tr}-dark-${qr(p)}`,tokens:p}}return{light:a,dark:l}}i(zr,"customizedThemeTokens");function Cn(t){let{colors:e,fontFamily:o=Xs,borderRadius:n=Vs,secondaryBorderRadius:r=js,mode:s="auto"}=t,[a,l]=hd("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=zr(e),g=Gr({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,gd.className],v=[g.className,fd.className];if(c){let y=Gr(c.id,c.tokens);f.push(y.className)}if(m){let y=Gr(m.id,m.tokens);v.push(y.className)}return ol(()=>{let y=i(A=>{A.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),ol(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let y=f.join(" "),A=v.join(" ");return u==="auto"?a==="dark"?A:y:u==="dark"?A:y},"getActiveTheme")}}i(Cn,"useTheme");import{ChevronLeftIcon as Cd}from"@rango-dev/ui";import sl from"react";import{darkTheme as yd,IconButton as Sd,styled as ao}from"@rango-dev/ui";var $e=ao(Sd,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),nl=ao("div",{position:"absolute",background:"$secondary500",[`.${yd} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=ao("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),rl=ao("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"}),il=ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}});function Hr(t){return sl.createElement($e,{variant:"ghost",size:"small",onClick:t.onClick},sl.createElement(Cd,{color:"black",size:16}))}i(Hr,"BackButton");import{i18n as kd}from"@lingui/core";import{Button as Td,Typography as wd}from"@rango-dev/ui";import Qr from"react";function Vr(t){return Qr.createElement(Gt,null,Qr.createElement(Td,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Qr.createElement(wd,{variant:"label",size:"medium",color:"error500"},kd.t("Cancel"))))}i(Vr,"CancelButton");import{i18n as xd}from"@lingui/core";import{Tooltip as vd,WalletIcon as Ad}from"@rango-dev/ui";import kn from"react";function jr(t){return kn.createElement(vd,{container:t.container,side:"top",content:xd.t("Connect Wallet")},kn.createElement($e,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(nl,null),kn.createElement(Ad,{size:18,color:"black"})))}i(jr,"WalletButton");import{i18n as vn}from"@lingui/core";import{NotificationsIcon as Hd,Popover as Qd,SettingsIcon as Vd,Tooltip as An,TransactionIcon as jd}from"@rango-dev/ui";import ce from"react";import{i18n as Pd}from"@lingui/core";import{ChainToken as ml,ChevronRightIcon as Md,ListItemButton as $d,Typography as _d}from"@rango-dev/ui";import qe from"react";import{useNavigate as Dd}from"react-router-dom";import{create as bd}from"zustand";import{persist as Id,subscribeWithSelector as Ed}from"zustand/middleware";var _e=gt(bd()(Id(Ed((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:s.toBlockchain,tokenSymbol:s.toSymbol,tokenAddress:s.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as Tn}from"@rango-dev/ui";var al=Tn("div",{padding:"$10",width:"350px",minHeight:"150px"}),ll=Tn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),pl=Tn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),ul=Tn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Wd}from"@lingui/core";import{Divider as Bd,NoNotificationIcon as Ld,Typography as Nd}from"@rango-dev/ui";import wn from"react";function cl(){return wn.createElement(ul,null,wn.createElement(Ld,{color:"secondary",size:26}),wn.createElement(Bd,{size:12}),wn.createElement(Nd,{variant:"body",size:"medium",color:"neutral700"},Wd.t("You have no notification")))}i(cl,"NotificationNotFound");var Fd=4;function Xr(){let t=Dd(),e=Ae.use.setSelectedSwap(),{getUnreadNotifications:o}=_e(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,Fd),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return qe.createElement(al,null,a.length?qe.createElement(ll,null,a.map(p=>{let u=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),m=r.find(f=>f.name===p.route.from.blockchain),c=s.find(f=>f.address===p.route.to.tokenAddress&&f.blockchain===p.route.to.blockchain&&f.symbol===p.route.to.tokenSymbol),g=r.find(f=>f.name===p.route.to.blockchain);return qe.createElement($d,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(_d,{variant:"body",size:"small",color:"$neutral700"},Pd.t(p.event.message)),id:p.requestId,start:qe.createElement(pl,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(ml,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(ml,{tokenImage:c?c.image:"",chainImage:g?g.logo:"",size:"small"}))),end:qe.createElement(Md,{size:12,color:"gray"})})})):qe.createElement(cl,null))}i(Xr,"NotificationContent");import{RefreshProgressButton as Od}from"@rango-dev/ui";import Kr,{useEffect as Ud,useState as dl}from"react";var qd=1e3,fl=60,zd=100;function xn({onClick:t}){let[e,o]=dl(0),[n,r]=dl(!1),s=i(p=>{document.hidden&&p&&a(p)},"handleVisibilityChange");Ud(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===fl&&l()},qd):a(p),document.addEventListener("visibilitychange",()=>s(p)),()=>{document.removeEventListener("visibilitychange",()=>s(p)),p&&clearInterval(p)}},[e,t]);let a=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Kr.createElement($e,{variant:"ghost",size:"small",onClick:l,disabled:!t},Kr.createElement(il,{onTransitionEnd:()=>r(!1),isRefetched:n},Kr.createElement(Od,{size:24,color:t?"black":"gray",progress:e/fl*zd})))}i(xn,"RefreshButton");import{Typography as Gd}from"@rango-dev/ui";import gl from"react";function hl(){let{getUnreadNotifications:t}=_e(),e=t().length;return e?gl.createElement(rl,null,gl.createElement(Gd,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(hl,"UnreadNotificationsBadge");function Yr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r}=t,{config:{features:s}}=d(),a=Pe("notification",s);return ce.createElement(ce.Fragment,null,ce.createElement(An,{container:O(),side:"top",content:vn.t("Refresh")},ce.createElement(xn,{onClick:o})),!a&&ce.createElement(Qd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:ce.createElement(Xr,null)},ce.createElement("div",null,ce.createElement(An,{container:O(),side:"top",content:vn.t("Notifications")},ce.createElement($e,{size:"small",variant:"ghost"},ce.createElement(Hd,{size:18,color:"black"}),ce.createElement(hl,null))))),ce.createElement(An,{container:O(),side:"top",content:vn.t("Settings")},ce.createElement($e,{size:"small",variant:"ghost",onClick:r},ce.createElement(Vd,{size:18,color:"black"}))),ce.createElement(An,{container:O(),side:"top",content:vn.t("Transactions History")},ce.createElement($e,{size:"small",variant:"ghost",onClick:n},ce.createElement(jd,{size:18,color:"black"}))))}i(Yr,"HomeButtons");import{darkTheme as Xd,styled as Jr}from"@rango-dev/ui";var yl=Jr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"100vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${Xd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),Sl=Jr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),Cl=Jr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Zd(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=H.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Cn(m||{}),g=Pe("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),v=yt(),h=i(()=>{!f&&n.onWallet&&n.onWallet()},"onConnectWallet"),y=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(yl,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(Jd,{prefix:he.createElement(he.Fragment,null,y&&he.createElement(Hr,{onClick:v})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!g&&he.createElement(jr,{container:O(),onClick:h,isConnected:!!p?.length}),n.onCancel&&he.createElement(Vr,{onClick:n.onCancel}))}),he.createElement(Sl,{noPadding:s},o),(a||r)&&he.createElement(Cl,null,he.createElement("div",{className:"footer__content"},r),a&&he.createElement("div",{className:"footer__logo"},he.createElement(Yd,{size:12}),he.createElement(Kd,null))))}i(Zd,"LayoutComponent");var K=he.forwardRef(Zd);K.displayName="Layout";import{Divider as nf,Modal as rf}from"@rango-dev/ui";import Rr from"react";import{i18n as Ht}from"@lingui/core";import{Image as tf,MessageBox as Zr,WalletState as of}from"@rango-dev/ui";import Et from"react";import{keyframes as Rd,styled as bn}from"@rango-dev/ui";var Bv=bn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),kl=bn("div",{position:"relative"}),ef=Rd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Tl=bn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ef} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),wl=bn("div",{"& img":{borderRadius:"50%"}});function xl(t){let{state:e,image:o,error:n}=t;return e===of.CONNECTED?Et.createElement(Zr,{type:"success",title:Ht.t("Wallet Connected"),description:Ht.t("Your wallet is connected, you can use it to swap.")}):n?Et.createElement(Zr,{type:"error",title:Ht.t("Failed to Connect"),description:n||Ht.t("Your wallet is not connected. Please try again.")}):Et.createElement(Zr,{type:"loading",title:Ht.t("Connecting to your wallet"),description:Ht.t("Click connect in your wallet popup."),icon:Et.createElement(kl,null,Et.createElement(wl,null,Et.createElement(tf,{src:o,size:45})),Et.createElement(Tl,null))})}i(xl,"ModalContent");function lo(t){let{open:e,onClose:o,...n}=t;return Rr.createElement(rf,{open:e,onClose:o,container:document.getElementById(Te)||document.body},Rr.createElement(xl,{...n}),Rr.createElement(nf,{direction:"vertical",size:32}))}i(lo,"WalletModal");var uf=bl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),cf=bl("div",{textAlign:"center"}),In=3e3,ei=300;function Il(){let{config:t,fetchStatus:e}=d(),[o,n]=Al(!1),[r,s]=Al(""),a=null,{list:l,handleClick:p,error:u}=yn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},ei)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},In)}}),m=l.find(f=>f.type===r),c=m?.image||"",g=m?.state||lf.NOT_INSTALLED;return Wt.createElement(K,{header:{title:vl.t("Connect Wallets")}},Wt.createElement(cf,null,Wt.createElement(sf,{variant:"title",size:"xmedium",align:"center"},vl.t("Choose a wallet to connect.")),Wt.createElement(uf,null,l.map((f,v)=>{let h=`wallet-${v}-${f.type}`;return Wt.createElement(pf,{key:h},Wt.createElement(af,{...f,container:O(),onClick:y=>{p(y)},isLoading:e==="loading"}))}),Wt.createElement(lo,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(Il,"WalletsPage");import{keyframes as mf,styled as ti}from"@rango-dev/ui";var El=ti("div",{position:"relative"}),df=mf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Wl=ti("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${df} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Bl=ti("div",{"& img":{borderRadius:"50%"}});function ni(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=H.use.connectedWallets(),{blockchains:p}=d(),[u,m]=po(""),[c,g]=po(null),[f,v]=po(!1),[h,y]=po(null),{suggestAndConnect:A}=$l(),T=null,{list:w,error:b,handleClick:S}=yn({config:a,chain:e,onBeforeConnect:k=>{T=setTimeout(()=>{m(k)},ei)},onConnect:()=>{T&&clearTimeout(T),setTimeout(()=>{m("")},In)}}),[x,I]=po(w),C=w.length,L=r&&C-r>0,M=i(async k=>{v(!1),y("in-progress");try{await A(k.walletType,k.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Ml(()=>{I(k=>{let $=w.findIndex(N=>o(N.type,e));return L&&$>1?[w[$]].concat(w.filter((N,q)=>q!==$)):k.map(N=>w.find(q=>q.type===N.type)??N)})},[JSON.stringify(w)]);let B=document.getElementById(Te);return Ml(()=>{let k=null;return(h==="completed"||h==="rejected")&&(k=setTimeout(()=>y(null),In)),()=>{k&&clearTimeout(k)}},[h]),ee.createElement(ee.Fragment,null,x.slice(0,r).map(k=>{let $=Gs({connectedWallets:l,walletType:k.type,chain:e}),N=$?Vo($):"",q=Ho(p(),e),J=!l.find(Se=>Se.walletType===k.type&&Se.chain===e),Z=q&&J&&k.state===Pl.CONNECTED,Q=Z?ze.t({id:"Add {chain} chain",values:{chain:e}}):N,re=i(()=>{k.state===Pl.DISCONNECTED?S(k.type):Z?(g({walletType:k.type,chain:e,address:$??""}),v(!0)):n({walletType:k.type,chain:e,address:$??""})},"onClick"),ye=c?.chain?la(c.chain,p()):void 0;return ee.createElement(ee.Fragment,null,ee.createElement(lo,{open:u===k.type,onClose:()=>m(""),image:k.image,state:k.state,error:b}),!!c&&ee.createElement(Ll,{open:!!c&&f,container:B,onClose:()=>{g(null)}},ee.createElement(En,{title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),type:"warning",description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}})},ee.createElement(oi,{size:18}),ee.createElement(oi,{size:32}),ee.createElement(ff,{onClick:M.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),h&&ee.createElement(Ll,{open:!!h,onClose:y.bind(null,null),container:B},h==="in-progress"&&ee.createElement(En,{type:"loading",title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}}),icon:ee.createElement(El,null,ee.createElement(Bl,null,ee.createElement(gf,{src:k.image,size:45})),ee.createElement(Wl,null))}),h==="completed"&&ee.createElement(En,{type:"success",title:ze.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ye}}),description:ze.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ye}})}),h==="rejected"&&ee.createElement(En,{type:"error",title:ze.t("Request Rejected"),description:ze.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ye}})}),ee.createElement(oi,{direction:"vertical",size:32})),ee.createElement(hf,{key:k.type,description:Q,onClick:re,selected:o(k.type,e),...k}))}),L&&ee.createElement(Ua,{selected:!1,onClick:s},ee.createElement(Nl,{variant:"label",size:"medium"},ze.t("Show more wallets"),ee.createElement(Nl,{variant:"label",size:"medium",color:"$primary"},"\xA0+",C-(r??0)))))}i(ni,"WalletList");var bf=2;function Fl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:f}=U(),{connectedWallets:v,selectWallets:h}=H(),[y,A]=Bt(""),[T,w]=Bt([]),[b,S]=Bt(""),[x,I]=Bt(null),[C,L]=Bt(g),[M,B]=Bt(!!g),k=vf(null),$=Jo(p),N=l.find(F=>F.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),q=i(F=>!!p?.result?.swaps.find(z=>z.from.blockchain===F),"isWalletRequiredFor"),[J,Z]=Bt(v.filter(F=>F.selected&&$.includes(F.chain))),Q=l.find(F=>F.name===N?.name),re=i((F,z)=>!!J.find(X=>X.walletType===F&&X.chain===z&&X.selected&&(q(z)||!q(z)&&!C)),"isSelected"),ye=!!C&&M&&Q&&!Zo(Q,C),Se=i(()=>{B(!1),L(""),Z(F=>{let z=!1;return F.map(X=>!z&&X.chain===N?.name?(z=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),Ce=i(F=>{if(y&&A(""),re(F.walletType,F.chain))return;let X=v.find(Ee=>Ee.walletType===F.walletType&&Ee.chain===F.chain);X&&(n(),F.chain===N?.name&&M&&(B(!1),L("")),Z(Ee=>Ee.filter(ue=>ue.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),$t=i(()=>{let F=J.filter(z=>z.selected);h(F),u(F),f(C),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{w([]),S(""),I(null);let F=v.filter(Ee=>J.find(ue=>ue.chain===Ee.chain&&ue.walletType===Ee.walletType)),z=await r?.({selectedWallets:F,customDestination:C}),X=z.warnings;X?.balance?.messages&&w(X.balance.messages),X?.quoteUpdate&&I(X.quoteUpdate),z.error&&S(ua(z.error)),!z.error&&(!X?.balance?.messages.length||0>0)?$t():w(X?.balance?.messages??[])},"onConfirmWallets");wf(()=>{Z(F=>F.concat(v.filter(z=>!!!F.find(Ee=>Ee.chain===z.chain)&&z.selected&&$.includes(z.chain))))},[v.length]),xf(()=>{M&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},so)},[M]);let mt=document.getElementById(Te),vt=Af();return P.createElement(Dl,{open:e,onClose:()=>{m||vt("../",{replace:!0}),o()},dismissible:!y,container:mt,...!y&&{footer:P.createElement(Ja,null,P.createElement(_l,{loading:s,disabled:xa(s,M,C,p,J,N),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:P.createElement(za,null,P.createElement(Ga,{variant:"ghost",onClick:A.bind(null,"")},P.createElement(Cf,{size:16})),P.createElement(Wn,{variant:"headline",size:"small"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(y,l)}})))},anchor:"center"},P.createElement(Dl,{open:T.length>0,onClose:w.bind(null,[]),container:mt},P.createElement(kf,{title:st.t("Insufficient account balance"),type:"error",description:P.createElement(yf,{messages:T??[]})},P.createElement(_l,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:$t},st.t("Proceed anyway")))),y&&P.createElement(Ha,null,P.createElement("div",{className:Qa()},P.createElement(ni,{chain:y,isSelected:re,selectWallet:Ce,onShowMore:A.bind(null,y)}))),!y&&P.createElement(P.Fragment,null,b&&P.createElement(P.Fragment,null,P.createElement(ri,{variant:"alarm",type:"error",title:st.t(b)}),P.createElement(Qt,{size:12})),x&&P.createElement(P.Fragment,null,P.createElement(ri,{variant:"alarm",type:"warning",title:fn(x)}),P.createElement(Qt,{size:12})),P.createElement(Ra,null,$.map((F,z)=>{let X=l.find(de=>de.name===F),Ee=`wallet-${z}`,ue=z===$.length-1;return P.createElement("div",{key:Ee},P.createElement(Fa,null,P.createElement(Wn,{variant:"title",size:"xmedium"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),P.createElement(Wn,{variant:"label",color:"$neutral700",size:"medium"},st.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),P.createElement(Qt,{size:24}),P.createElement(Oa,null,P.createElement(ni,{chain:F,isSelected:re,selectWallet:Ce,limit:bf,onShowMore:()=>A(X?.name??"")})),!ue&&P.createElement(Qt,{size:32}),ue&&a?.customDestination&&P.createElement(Xa,null,P.createElement(Va,{ref:k,selected:M,open:M,onOpenChange:de=>{de?q(N?.name??"")||Z(_o=>_o.map(rt=>rt.chain===N?.name?{...rt,selected:!1}:rt)):Se()}},P.createElement(qa,{onClick:()=>B(de=>!de)},P.createElement(ja,{fullWidth:!0,variant:"default",suffix:P.createElement(Ya,{orientation:M?"up":"down"},P.createElement(Sf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(Tf,{size:18,color:"info"}),P.createElement(Qt,{size:4,direction:"horizontal"}),P.createElement(Wn,{variant:"label",size:"medium"},st.t("Send to a different address"))))),P.createElement(gn,{open:M},P.createElement(P.Fragment,null,P.createElement(Qt,{size:4}),P.createElement(Za,{autoFocus:!0,placeholder:st.t("Your destination address"),value:C,onChange:de=>{L(de.target.value)}})))),ye&&P.createElement("div",{className:Ka()},P.createElement(ri,{variant:"alarm",type:"error",title:st.t({values:{destination:C},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Fl,"ConfirmWalletsModal");import{Divider as mg}from"@rango-dev/ui";import De from"react";import{i18n as ci}from"@lingui/core";import{Alert as Bf,ChevronDownIcon as Lf,ChevronRightIcon as Nf,Divider as mi,Image as np,InfoIcon as Pf,QuoteCost as Mf,StepDetails as $f,TokenAmount as _f,Tooltip as Nn,Typography as mo}from"@rango-dev/ui";import rp from"bignumber.js";import W,{useLayoutEffect as Df,useRef as ip,useState as Ff}from"react";import{styled as uo}from"@rango-dev/ui";var Ol=uo("div",{paddingBottom:"$10"}),ii=uo("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ul=uo("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),ql=uo("div",{paddingBottom:"$15"}),zl=uo("div",{width:"100%",display:"flex"});import*as Bn from"@radix-ui/react-collapsible";import{css as si,darkTheme as Je,Image as Gl,styled as Ge,Typography as If}from"@rango-dev/ui";var ai=300,Hl=Ge(Bn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Ql=si({padding:"$10 $15"}),Vl=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Je} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Je} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Je} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}]}),jl=si({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),Xl=si({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Je} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Kl=Ge(Bn.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:{[`& ${Gl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Gl}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),li=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Yl=Ge(gn,{width:"100%",background:"inherit"}),pi=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ai}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),qA=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Jl=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Zl=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ui=Ge(If,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Rl=Ge("div",{display:"flex",flexWrap:"wrap"});import{TokenAmount as op}from"@rango-dev/ui";import Ln from"react";import{css as Ef,styled as Wf}from"@rango-dev/ui";var ep=Wf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),tp=Ef({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function co(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ln.createElement(ep,null,Ln.createElement(op,{direction:"horizontal",label:"Swap input",type:"input",tooltipContainer:O(),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}}),Ln.createElement("div",{className:tp()}),Ln.createElement(op,{direction:"horizontal",label:"Estimated output",tooltipContainer:O(),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(co,"QuoteSummary");function di(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),u=d().blockchains(),m=d().swappers(),[c,g]=Ff(t.expanded),f=ip(null),v=ip(c),h=E(tn(e.result?.swaps??[],p),2,2),y=Fo(Oo(e.result?.swaps)),A=E(o.value,6,6),T=E(n.value,6,6),w=n.usdValue?E(n.usdValue,4,4):"",b=Me(o.usdValue,n.usdValue??null),S=E(b,2,2),x=it(b??0),C=i(B=>B.map((k,$)=>{let N,q=r?.type===3&&r.swap.swapperId===k.swapperId||r?.type===4&&r.recommendedSlippages?.has($),J=s?.type===2&&s.recommendedSlippages?.has($);return q?N="error":J&&(N="warning"),{swapper:{displayName:pa(k.swapperId,m),image:k.swapperLogo},from:{token:{displayName:k.from.symbol,image:k.from.logo},chain:{displayName:Ye(k.from.blockchain,u),image:k.from.blockchainLogo},price:{value:$===0?E(o.value,6,6):E(k.fromAmount,6,6),usdValue:E((k.from.usdPrice??0)*parseFloat(k.fromAmount),4,4),realValue:se($===0?o.value:k.fromAmount),realUsdValue:se(new rp(k.from.usdPrice??0).multipliedBy(k.fromAmount))}},to:{token:{displayName:k.to.symbol,image:k.to.logo},chain:{displayName:Ye(k.to.blockchain,u),image:k.to.blockchainLogo},price:{value:E(k.toAmount,6,6),usdValue:E((k.to.usdPrice??0)*parseFloat(k.toAmount),4,4),realValue:se(k.toAmount),realUsdValue:se(new rp(k.to.usdPrice??0).multipliedBy(k.toAmount))}},state:N,alerts:q||J?W.createElement(ql,null,W.createElement(Bf,{type:q?"error":"warning",title:r?.type===3?r?.recommendation:ci.t("Slippage Error:"),footer:W.createElement(zl,null,r?.type===3&&W.createElement(W.Fragment,null,W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),W.createElement(mi,{direction:"horizontal",size:8}),W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},"|"),W.createElement(mi,{direction:"horizontal",size:8}),W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},ci.t({id:"Yours: {amount} {symbol}",values:{amount:E(k.fromAmount,6,6),symbol:k?.from.symbol}}))),(r?.type===4||s?.type===2)&&W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},ci.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get($)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get($)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),L=C.length,M=O();return Df(()=>{c&&!v.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},ai),v.current=c},[c,v]),W.createElement(W.Fragment,null,W.createElement(Vl,{recommended:l,listItem:a==="list-item",basic:a==="basic"},W.createElement("div",{className:jl()},W.createElement(Mf,{fee:h,time:y,steps:L}),a==="basic"&&W.createElement("div",{className:Xl()},W.createElement(Zl,null,W.createElement(Pf,{size:12,color:"gray"})),W.createElement(Rl,null,W.createElement(ui,{size:"small",variant:"body"},`${A} ${C[0].from.token.displayName} = `),W.createElement(Nn,{content:se(n.value),container:M,open:n.value?void 0:!1},W.createElement(ui,{size:"small",variant:"body"},"\xA0",`${T} ${C[C.length-1].to.token.displayName}`))),W.createElement(Nn,{content:se(n.usdValue),container:M,style:{display:"flex"}},W.createElement(mo,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`))),a==="list-item"&&W.createElement(_f,{type:"output",direction:"vertical",tooltipContainer:M,price:{value:T,usdValue:w,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:C[L-1].to.token.displayName,image:C[L-1].to.token.image},chain:{image:C[L-1].to.chain.image},percentageChange:S,warningLevel:x}),a==="swap-preview"&&W.createElement(W.Fragment,null,W.createElement(co,{from:C[0].from,to:C[L-1].to,percentageChange:S,warningLevel:x}),W.createElement(mi,{size:4}))),W.createElement(Hl,{recommended:l,open:c,onOpenChange:g},W.createElement(Kl,{ref:B=>f.current=B,recommended:l,onClick:()=>g(B=>!B)},W.createElement("div",null,C.map((B,k)=>{let $=`item-${k}`,N=W.createElement(pi,null,W.createElement(Nf,{size:12,color:"black",...B.state&&{color:B.state==="error"?"error":"warning"}}));return W.createElement(W.Fragment,{key:$},W.createElement(Nn,{container:M,side:"bottom",sideOffset:4,content:B.from.chain.displayName},W.createElement(li,{state:B.state||C[k-1]?.state},W.createElement(np,{src:B.from.chain.image,size:16}))),k===L-1&&W.createElement(W.Fragment,null,N,W.createElement(Nn,{container:M,side:"bottom",sideOffset:4,content:B.to.chain.displayName},W.createElement(li,{state:B.state},W.createElement(np,{src:B.to.chain.image,size:16})))),k!==L-1&&W.createElement(W.Fragment,null,N))})),W.createElement(pi,{orientation:c?"up":"down"},W.createElement(Lf,{size:12,color:"black"}))),W.createElement(Yl,{open:c},W.createElement(Jl,null),W.createElement("div",{className:Ql()},C.map((B,k)=>{let $=`item-${k}`;return W.createElement($f,{type:"quote-details",key:$,step:B,hasSeparator:k!==C.length-1,state:B.state,tooltipContainer:M})}))))))}i(di,"Quote");import{Divider as qf,Skeleton as zf}from"@rango-dev/ui";import at from"react";import{darkTheme as Of,styled as Pn}from"@rango-dev/ui";var sp=Pn("div",{$$color:"$colors$neutral100",[`.${Of} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),ap=Pn("div",{paddingTop:"$2"}),lp=Pn("div",{paddingLeft:"$8"}),pp=Pn("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as kp,Divider as Lt,Skeleton as Re}from"@rango-dev/ui";import G from"react";import{styled as Ze}from"@rango-dev/ui";var up=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),cp=Ze("div",{display:"flex"}),mp=Ze("div",{padding:"$15 $0 14px $0"}),dp=Ze("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),fp=Ze("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),gp=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),hp=Ze("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),yp=Ze("div",{width:"65%",display:"flex",justifyContent:"start"}),Sp=Ze("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Cp=Ze("div",{padding:"$15 $0 $15 $0"});function ho(t){let{type:e,tag:o=!1}=t,n=G.createElement(gp,null,G.createElement(yp,null,G.createElement(kp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Lt,{size:8,direction:"horizontal"}),G.createElement(Sp,null,G.createElement(Re,{height:10,width:60,variant:"rounded"}),G.createElement(Lt,{size:4}),G.createElement(Re,{height:15,variant:"rounded"}))),G.createElement(Re,{height:12,width:64,variant:"rounded"}));return G.createElement("div",null,G.createElement(up,null,G.createElement(cp,null,G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Lt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Lt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"})),o&&G.createElement(Re,{height:22,width:100,variant:"rounded"})),e==="basic"&&G.createElement(mp,null,G.createElement(Re,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(dp,null,G.createElement(fp,null,G.createElement(kp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Lt,{direction:"horizontal",size:4}),G.createElement(Re,{height:15,width:150,variant:"rounded"})),G.createElement(Lt,{size:4}),G.createElement(Re,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Lt,{size:4}),G.createElement(Cp,null,n,G.createElement(hp,null),n)))}i(ho,"QuoteSummarySkeleton");import{ChainToken as Ap,Divider as gi,NextIcon as Uf,Skeleton as Mn}from"@rango-dev/ui";import ae from"react";import{styled as yo}from"@rango-dev/ui";var Tp=yo("div",{display:"flex",alignItems:"start"}),wp=yo("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),fi=yo("div",{display:"flex",alignItems:"center",flexGrow:1}),xp=yo("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),vp=yo("div",{display:"flex",alignItems:"center"});function et(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(vp,null,ae.createElement(Mn,{height:22,width:22,variant:"circular"}),ae.createElement(gi,{direction:"horizontal",size:8}),ae.createElement(Mn,{height:15,width:148,variant:"rounded"})),ae.createElement(Tp,null,ae.createElement(pp,{hideSeparator:!e}),ae.createElement(wp,null,ae.createElement(fi,null,ae.createElement(Ap,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(gi,{direction:"horizontal",size:8}),ae.createElement(Mn,{height:12,variant:"rounded"})),ae.createElement(xp,null,ae.createElement(Uf,{color:"gray",size:16})),ae.createElement(fi,null,ae.createElement(Ap,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(gi,{direction:"horizontal",size:8}),ae.createElement(Mn,{height:12,variant:"rounded"})))))}i(et,"StepSkeleton");function hi(t){let{type:e,expanded:o,tag:n=!1}=t;return at.createElement(sp,{rounded:e!=="basic"},at.createElement(ho,{type:e,tag:n}),at.createElement(ap,null,at.createElement(zf,{height:15,variant:"rounded"})),o&&at.createElement(lp,null,at.createElement(qf,{size:20}),at.createElement(et,null),at.createElement(et,null),at.createElement(et,{separator:!1})))}i(hi,"QuoteSkeleton");import{i18n as lg}from"@lingui/core";import{Alert as pg,Button as ug,InfoIcon as cg}from"@rango-dev/ui";import Be from"react";import{Alert as Gf,Button as Hf,Divider as Lp,NoRouteIcon as Qf,RefreshIcon as Vf,Typography as Np}from"@rango-dev/ui";import He from"react";import{i18n as bp}from"@lingui/core";function Ip(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:V().genericServerError,action:{onClick:n,title:bp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:V().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:bp.t("Reset")}},description:V().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:V().noResultError.description}}i(Ip,"makeInfo");import{styled as yi}from"@rango-dev/ui";var Ep=yi("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),Wp=yi("div",{width:"100%"}),Bp=yi("div",{padding:"$6 $0"});function Si(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=Ip(o,n,()=>r(s,!0),e);return He.createElement(Ep,null,He.createElement(Qf,{size:24,color:"gray"}),He.createElement(Lp,{size:4}),He.createElement(Np,{variant:"title",size:"small"},V().noResultError.title),!!a.description&&He.createElement(Np,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),He.createElement(Lp,{size:4}),!!a.alert&&He.createElement(Wp,null,He.createElement(Gf,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(Hf,{size:"xsmall",type:a.alert.type,prefix:He.createElement(Bp,null,He.createElement(Vf,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(Si,"NoResult");import{i18n as So}from"@lingui/core";import{Button as Xf,Divider as Fp,MessageBox as Kf,Modal as Yf,Typography as Jf,WarningIcon as Zf}from"@rango-dev/ui";import tt from"react";import{Typography as _p}from"@rango-dev/ui";import ki from"react";import{darkTheme as jf,styled as $n}from"@rango-dev/ui";var Pp=$n("div",{width:"100%",paddingTop:"$10"}),Ci=$n("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Mp=$n("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${jf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),$p=$n("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Dp(t){let{title:e,value:o,valueColor:n}=t;return ki.createElement(Mp,null,ki.createElement(_p,{size:"medium",variant:"label",className:"_title"},e),ki.createElement(_p,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Dp,"QuoteErrorsModalItem");function Op(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:So.t("Swapping"),value:E(r.inputUsdValue,4,4)},{title:So.t("Gas cost"),value:E(r.totalFee,2,2)},{title:So.t("Receiving"),value:E(r.outputUsdValue,4,4)},{title:So.t("Price impact"),value:E(r.priceImpact,2,2),valueColor:`${s}500`}];return tt.createElement(Yf,{open:e,onClose:o,container:O()},tt.createElement(Kf,{type:s,title:V().highValueLossError.impactTitle,description:V().highValueLossError.description}),tt.createElement(Ci,null,tt.createElement(Fp,{size:20}),tt.createElement(Jf,{size:"small",variant:"title"},So.t("Details")),tt.createElement(Ci,null,a.map((l,p)=>tt.createElement(Dp,{key:p,...l})))),tt.createElement(Fp,{size:32}),tt.createElement(Xf,{type:"primary",size:"large",prefix:tt.createElement(Zf,null),fullWidth:!0,onClick:n},V().highValueLossError.confirmMessage))}i(Op,"HighValueLossWarningModal");import{i18n as Ti}from"@lingui/core";function Up(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(it(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=V().highValueLossError.title),t.type===1&&(o.title=V().unknownPriceError.title),t.type===2&&(o.title=Ti.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=Ti.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=Ti.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}i(Up,"makeAlerts");import{i18n as Vt}from"@lingui/core";import{Button as qp,Divider as zp,MessageBox as Rf,Modal as eg,Typography as tg}from"@rango-dev/ui";import Nt from"react";import{useNavigate as og}from"react-router-dom";function Gp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=og(),p=e??o;return Nt.createElement(eg,{anchor:"bottom",open:n,prefix:Nt.createElement(qp,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Nt.createElement(tg,{variant:"label",size:"medium",color:"$neutral900"},Vt.t("Change settings"))),container:O(),onClose:r},Nt.createElement(Rf,{type:"warning",title:a.type===3?Vt.t("High slippage"):Vt.t("Low slippage"),description:a.type===3?Vt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Vt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Nt.createElement(zp,{size:18}),Nt.createElement(zp,{size:32}),Nt.createElement(qp,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Vt.t("Confirm anyway"))))}i(Gp,"SlippageWarningModal");import{Button as ng,Divider as rg,MessageBox as ig,Modal as sg,WarningIcon as ag}from"@rango-dev/ui";import Co from"react";function Hp(t){let{open:e,onClose:o,onConfirm:n}=t;return Co.createElement(sg,{open:e,onClose:o,container:O()},Co.createElement(ig,{type:"warning",title:V().unknownPriceError.impactTitle,description:V().unknownPriceError.description}),Co.createElement(rg,{size:32}),Co.createElement(ng,{type:"primary",size:"large",prefix:Co.createElement(ag,null),fullWidth:!0,onClick:n},V().unknownPriceError.confirmMessage))}i(Hp,"UnknownPriceWarningModal");function wi(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,u={open:r,onClose:a,onConfirm:l},m=o?.type===0||o?.type===1,c=Up(e,o?.type===3||o?.type===4?o:null);return Be.createElement(Be.Fragment,null,m&&Be.createElement(Si,{error:o,fetch:n}),!!c&&Be.createElement(Pp,null,Be.createElement(pg,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement($p,{onClick:s},Be.createElement(cg,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(ug,{size:"xxsmall",type:c.alertType,onClick:p},lg.t("Change"))}})),e&&Be.createElement(Be.Fragment,null,e.type===0&&Be.createElement(Op,{...u,warning:e}),(e.type===3||e.type===2)&&Be.createElement(Gp,{...u,warning:e}),e.type===1&&Be.createElement(Hp,{...u,warning:e})))}i(wi,"QuoteWarningsAndErrors");function ko(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:v,inputUsdValue:h,outputUsdValue:y,outputAmount:A}=U(),w=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,b=(s||r)&&De.createElement(wi,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return De.createElement(De.Fragment,null,n&&De.createElement(ii,null,De.createElement(Ul,{paddingTop:f==="top"},De.createElement(hi,{type:o,expanded:g}))),f==="top"&&De.createElement(Ol,null,b),w?De.createElement(ii,null,De.createElement(di,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:v,usdValue:h?.toString()??""},output:{value:A?.toString()??"",usdValue:y?.toString()??""}})):null,f==="bottom"&&De.createElement(De.Fragment,null,!s&&!r&&De.createElement(mg,{size:16}),b))}i(ko,"QuoteInfo");import{calculatePendingSwap as gg}from"@rango-dev/queue-manager-rango-preset";import{useEffect as hg}from"react";import{useRef as dg,useState as fg}from"react";function _n(){let[t,e]=fg(!1),o=dg(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Dt().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(_n,"useFetchQuote");function Dn(t){if(!t.result)throw new Error(V().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(Ir(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Er(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=Br(t);if(o){let n=on(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(Dn,"throwErrorIfResponseIsNotValid");function Qp(t,e,o){let n=!1;t&&(n=Ia(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=rn(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(ya(t,e)?r.quoteUpdate={type:3,newOutputAmount:E(Ut(e)),percentageChange:E(Me(Ut(t)??"",Ut(e)??""),null,2)}:Nr(t,e)?r.quoteUpdate={type:0}:Pr(t,e)?r.quoteUpdate={type:1}:Mr(t,e)&&(r.quoteUpdate={type:2}));let a=Sa(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Qp,"generateWarnings");function Fn(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(Fn,"handleQuoteErrors");function xi(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=U(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:g}=d(),{connectedWallets:f}=H(),v=d().blockchains(),h=d().tokens(),{features:y}=d().config,{enableNewLiquiditySources:A}=d().config,T=p||l,{fetch:w,cancelFetch:b,loading:S}=_n();return hg(()=>b,[]),{loading:S,fetch:i(async I=>{let C=I.selectedWallets,L=I?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let M=nn({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:C,excludeLiquiditySources:A,disabledLiquiditySources:g,slippage:T,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:L});Yo("experimentalRoute",y)&&(M.experimental=!0);let B;try{B=await w(M).then(q=>Dn(q)),n(B)}catch(q){return Fn(q)}let k={slippage:T.toString(),disabledSwappersGroups:g},$=gg(o.toString(),B,ga(C),k,!1,{blockchains:v,tokens:h}),N=Qp(r??void 0,B,{fromToken:t,toToken:e,meta:{blockchains:v,tokens:h},selectedWallets:C,userSlippage:T});return N.quoteUpdate&&a(!1),{quote:B,swap:$,error:null,warnings:N}},"fetch"),cancelFetch:b}}i(xi,"useConfirmSwap");var Eg=Xp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),Wg=Xp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${jp}`]:{width:"$48",height:"$48"}}),Bg=vi({flexGrow:1,paddingRight:"$10"}),Lg=vi({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Ng=vi({display:"flex",justifyContent:"space-between",alignItems:"center"});function Kp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=U(),l=Ig(),[p,u]=Un(""),{connectedWallets:m}=H(),c=!n,[g,f]=Un(!1),v=Ae.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=Ag(h),{manager:A}=yg(),{fetch:T,loading:w,cancelFetch:b}=xi(),[S,x]=Un({swap:null,error:null,warnings:null}),[I,C]=Un(!1),L=i(async({selectedWallets:N,customDestination:q})=>{let J=await T?.({selectedWallets:N,customDestination:q});return x(J),J},"onConfirmSwap"),M=i(async()=>{if(S.swap&&n)try{await A?.create("swap",{swapDetails:S.swap},{id:S.swap.requestId}),v(S.swap.requestId);let N=`../${_.swaps}/${S.swap.requestId}`;l(N,{replace:!0}),setTimeout(()=>{e("")},0)}catch(N){u("Error: "+N?.message)}},"addNewSwap"),B=i(async()=>{await M()},"onConfirm"),k=i(async()=>{S?.warnings?.quote&&!a?C(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(N=>{x(N)}).catch(N=>console.error(N))},"onRefresh");return To(()=>{!!y.current.length&&!h.length&&$(),y.current=h},[h.length]),To(()=>{c&&b()},[c]),To(()=>{c&&f(c)},[c]),To(()=>{c||T({selectedWallets:o,customDestination:s}).then(N=>x(N)).catch(N=>console.error(N))},[]),To(()=>{let N=S.warnings?.quote?.type&&Object.values(dt).includes(S.warnings?.quote?.type),q=o.length<1||!o.every(Z=>m.find(Q=>Z.address===Q.address&&Z.walletType===Q.walletType&&Z.chain===Q.chain)),J=!1;if(N){let Z=Jo(t),Q=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===Q)||(Z=Z.slice(-Z.length,Z.length-1)),Z.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(q||J)&&(queueMicrotask(()=>bg(f.bind(null,!0))),r(!1))},[S.warnings?.quote,o.length,m.length]),vg(()=>{t||l("../")},[]),ne.createElement(K,{header:{title:On.t("Confirm Swap"),onWallet:()=>{let N=`../${_.wallets}`;l(N)},suffix:ne.createElement(Tg,{container:O(),side:"bottom",content:On.t("Settings")},ne.createElement($e,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},ne.createElement(kg,{size:18,color:"black"})))},footer:ne.createElement(Wg,null,ne.createElement("div",{className:Bg()},ne.createElement(Sg,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!S.error,onClick:k},On.t("Start Swap"))),ne.createElement(jp,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},ne.createElement(xg,{size:24})))},g&&ne.createElement(Fl,{open:g,onClose:()=>f(!1),onCancel:b,loading:w,onCheckBalance:L}),ne.createElement(Eg,null,ne.createElement("div",{className:Ng()},ne.createElement(wg,{variant:"title",size:"small"},On.t("You get")),ne.createElement("div",{className:Lg()},ne.createElement(xn,{onClick:!w&&!g&&!I?$:void 0}))),p&&ne.createElement(ne.Fragment,null,ne.createElement(Vp,{type:"error",variant:"alarm",title:p}),ne.createElement(Cg,{size:12})),S.warnings?.quoteUpdate&&ne.createElement("div",{className:"quote-update__alert"},ne.createElement(Vp,{variant:"alarm",type:"warning",title:S.warnings.quoteUpdate&&fn(S.warnings.quoteUpdate)})),ne.createElement(ko,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:S.error,loading:w,warning:S.warnings?.quote??null,refetchQuote:$,showWarningModal:I,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:async()=>{C(!1),await M()},onChangeSettings:()=>l("../"+_.settings)})))}i(Kp,"ConfirmSwapPage");import{i18n as Gn}from"@lingui/core";import{useManager as Ug}from"@rango-dev/queue-manager-react";import{Divider as qg,NotFound as zg,styled as ru}from"@rango-dev/ui";import kt,{useState as Gg}from"react";import{useNavigate as Hg}from"react-router-dom";import{CloseIcon as Mg,IconButton as $g,SearchIcon as _g,TextField as Dg}from"@rango-dev/ui";import wo from"react";import{styled as Pg}from"@rango-dev/ui";var Yp=Pg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return wo.createElement(Dg,{prefix:wo.createElement(Yp,null,wo.createElement(_g,{color:"black"})),suffix:!!a.length&&wo.createElement($g,{variant:"ghost",onClick:()=>l?.(""),size:"small"},wo.createElement(Mg,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(lt,"SearchInput");import{i18n as Zp}from"@lingui/core";import{Divider as Rp,SwapListItem as eu,Typography as tu}from"@rango-dev/ui";import R from"react";import{css as Fg,darkTheme as Og,styled as qn}from"@rango-dev/ui";var zn=Fg(),Ai=qn("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${zn}`]:{$$color:"$colors$neutral600",[`.${Og} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),bi=qn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Ii=qn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Jp=qn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function Ei(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return R.createElement(R.Fragment,null,[{title:"Today",swaps:a},{title:"This month",swaps:a}].map(p=>R.createElement(R.Fragment,{key:p.title},R.createElement(Ai,null,R.createElement(bi,null,R.createElement(tu,{variant:"label",size:"medium",className:zn()},Zp.t(p.title))),R.createElement(Rp,{size:4}),R.createElement(Ii,null,p.swaps.map((u,m)=>{let c=m+p.title;return R.createElement(R.Fragment,{key:c},R.createElement(eu,{isLoading:!0}))}))))))}return R.createElement(R.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>R.createElement(R.Fragment,{key:a.title},R.createElement(Ai,null,R.createElement(bi,null,R.createElement(tu,{variant:"label",size:"medium",className:zn()},Zp.t(a.title))),R.createElement(Rp,{size:4}),R.createElement(Ii,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return R.createElement(R.Fragment,{key:l.requestId},R.createElement(eu,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",tooltipContainer:O(),swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:l.inputAmount},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:E(u.outputAmount||u.expectedOutputAmountHumanReadable||""),realAmount:se(u.outputAmount||u.expectedOutputAmountHumanReadable)}}}))}))))))}i(Ei,"SwapsGroup");import ou from"dayjs";var nu=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}]]);function o(r,s){e.has(r)||e.set(r,{title:r,swaps:[]}),e.get(r)?.swaps.push(s)}i(o,"addYearsToOutput");let n=ou();return t.forEach(r=>{let s=Number(r.creationTime),a=ou(s);if(n.isSame(a,"day"))e.get("today")?.swaps.push(r);else if(n.isSame(a,"week"))e.get("week")?.swaps.push(r);else if(n.isSame(a,"month"))e.get("month")?.swaps.push(r);else if(n.isSame(a,"year"))e.get("year")?.swaps.push(r);else{let l=new Date(s).getFullYear().toString();o(l,r)}}),Array.from(e.values())},"groupSwapsByDate");var jt=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");var Qg=ru("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Vg=ru("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),jg=i((t,e)=>t?.length?t.filter(o=>Xe(o.fromBlockchain,e)||Xe(o.toBlockchain,e)||Xe(o.toSymbol,e)||Xe(o.fromSymbol,e)).length:!1,"isStepContainsText");function iu(){let t=Ae.use.setSelectedSwap(),e=Hg(),{manager:o,state:n}=Ug(),r=jt(o).map(({swap:c})=>c),[s,a]=Gg(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>Xe(c.inputAmount,s)||Xe(c.status,s)||jg(c.steps,s)||Xe(c.requestId,s)));let m=!u?.length&&!l;return kt.createElement(K,{header:{title:Gn.t("History")}},kt.createElement(Qg,null,kt.createElement(lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Gn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),kt.createElement(Vg,null,m&&kt.createElement(Jp,null,kt.createElement(qg,{size:32}),kt.createElement(zg,{title:Gn.t("No results found"),description:s?Gn.t("Try using different keywords"):""})),!m&&kt.createElement(Ei,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:nu,isLoading:l}))))}i(iu,"HistoryPage");import{i18n as Li}from"@lingui/core";import{Button as eh,styled as Ni,SwapInput as pu,WarningIcon as th}from"@rango-dev/ui";import Fe,{useEffect as oh,useRef as nh,useState as rh}from"react";import{useNavigate as ih}from"react-router-dom";import{ReverseIcon as Xg,styled as su}from"@rango-dev/ui";import Wi from"react";var Kg=su("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Yg=su("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function au(){let t=U.use.switchFromAndTo();return Wi.createElement(Kg,null,Wi.createElement(Yg,{onClick:()=>{t()}},Wi.createElement(Xg,{size:12})))}i(au,"SwitchFromAndToButton");import{useCallback as Jg,useEffect as Zg,useState as Bi}from"react";var Rg=600;function lu(){let{fetch:t,cancelFetch:e}=_n(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,quote:m,resetQuote:c,setQuote:g}=U(),{slippage:f,customSlippage:v,affiliatePercent:h,affiliateRef:y,affiliateWallets:A,disabledLiquiditySources:T}=d(),[w,b]=Bi(!1),[S,x]=Bi(null),[I,C]=Bi(null),L=v??f,B=!a||!l||Ne(a,l)||!no(p),k=i(q=>{b(q),x(null),C(null)},"resetState"),$=i(q=>{let{fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:$t,affiliatePercent:oo,affiliateWallets:mt}=q;if(w||k(!0),!B&&J&&Z){c();let vt=nn({fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:$t,affiliatePercent:oo,affiliateWallets:mt});Yo("experimentalRoute",r)&&(vt.experimental=!0),t(vt).then(F=>{b(!1),g(F),Dn(F);let z=rn(F,{fromToken:J,toToken:Z,userSlippage:L,tokens:s});C(z)}).catch(F=>{let{error:z}=Fn(F);(z?.type===0||z?.type===1)&&c(),z?.type!==2&&(x(z),b(!1))})}},"fetch"),N=Jg(Ks(q=>{B||$(q)},Rg),[B]);return Zg(()=>{if(!no(p)||u?.eq(0)){k(!1),e();return}if(B){m&&c();return}return c(),k(!0),N({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:L,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,B,o?.length,n,T.length,L,y,h,JSON.stringify(A)]),{fetch:()=>$({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:L,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),loading:w,error:S,warning:I}}i(lu,"useSwapInput");var sh=Ni("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),ah=Ni("div",{position:"relative"}),lh=Ni("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function uu(){let t=ih(),{fetch:e,loading:o,error:n,warning:r}=lu(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:g,outputUsdValue:f,quote:v,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=U(),A=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=H(),b=Ae.use.setCurrentPage(),[S,x]=rh(!1),I=nh(null),C=!!a&&Hs(T,a.name),L=!1,M=!Wr(v,m,c),B=!Wr(v,m,f),k=ma({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:v,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:L}),$=s?w(s):null,N=Qo($)?.amount??"0",q=a&&s?E($?.amount,$?.decimals):"0";oh(()=>(b(_.home),h(),b.bind(null,"")),[]);let J=!c||!f||!f.gt(0)?null:Me(c.toString(),f.toString());return Fe.createElement(K,{ref:I,fixedHeight:!1,hasLogo:!0,footer:Fe.createElement(eh,{type:"primary",size:"large",disabled:k.disabled,prefix:k.action==="confirm-warning"&&Fe.createElement(th,null),fullWidth:!0,onClick:()=>{k.action==="connect-wallet"?t(_.wallets):k.action==="confirm-warning"?x(!0):t(_.confirmSwap)}},k.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Li.t("Swap"),suffix:Fe.createElement(Yr,{layoutRef:I.current,onClickRefresh:(v||n)&&!S?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},Fe.createElement(sh,null,Fe.createElement(lh,null,Fe.createElement(ah,null,Fe.createElement(pu,{label:Li.t("From"),mode:"From",onInputChange:u,balance:N,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:M?void 0:E(c,4,4),realUsdValue:M?void 0:se(c),error:M?V().unknownPriceError.impactTitle:void 0},disabled:A==="failed",loading:A==="loading",loadingBalance:C,tooltipContainer:O(),onSelectMaxBalance:()=>{N!=="0"&&u(q.split(",").join(""))}}),Fe.createElement(au,null)),Fe.createElement(pu,{sharpBottomStyle:!!v?.result||o,label:Li.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:E(Me(c,f),2,2),warningLevel:it(J??0),price:{value:E(g,6,6),usdValue:B?void 0:E(f,4,4),realValue:se(g),realUsdValue:B?void 0:se(f),error:B?V().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:A==="failed",loading:A==="loading",tooltipContainer:O()})),Fe.createElement("div",{className:"quote__container"},Fe.createElement(ko,{quote:v,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:S,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),y(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(uu,"Home");import{i18n as cu}from"@lingui/core";import{List as ph,ListItemButton as uh,Radio as ch,RadioRoot as mh,Typography as dh}from"@rango-dev/ui";import Tt from"react";import{styled as Hn}from"@rango-dev/ui";var pt=Hn("div",{height:"100%",overflow:"hidden"}),xo=Hn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Pi=Hn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Mi=Hn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Qn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:Zs,defaultLanguage:Ot,changeLanguage:r=>t(r||Ot)}}i(Qn,"useLanguage");function mu(){let{activeLanguage:t,changeLanguage:e,languages:o}=Qn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:Tt.createElement(dh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:Tt.createElement(ch,{value:s}),start:Tt.createElement(l,null)}});return Tt.createElement(K,{header:{title:cu.t("Language")}},Tt.createElement(pt,null,Tt.createElement(mh,{value:t},Tt.createElement(ph,{type:Tt.createElement(uh,{title:cu.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(mu,"LanguagePage");import{i18n as Xt}from"@lingui/core";import{Button as Sh,Checkbox as Ch,Image as kh,ListItemButton as Th,NotFound as wh,Typography as xh}from"@rango-dev/ui";import ke,{useState as vh}from"react";import{Checkbox as hh,Skeleton as fu}from"@rango-dev/ui";import vo from"react";import{ListItem as fh,styled as gh}from"@rango-dev/ui";var du=gh(fh,{height:61});var yh=30;function $i(){return vo.createElement(xo,null,Array.from(Array(yh),t=>vo.createElement(du,{hasDivider:!0,key:t,start:vo.createElement(fu,{variant:"circular",width:35,height:35}),title:vo.createElement(fu,{variant:"text",size:"large",width:90}),end:vo.createElement(hh,{checked:!1})})))}i($i,"LoadingLiquiditySourceList");function _i({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=vh(""),a=d().toggleLiquiditySource,l=Ko(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(h=>p.includes(h.type)),m=u.length===u.filter(h=>h.selected).length,c=i(()=>{u.forEach(h=>{m?a(h.groupTitle):h.selected||a(h.groupTitle)})},"toggleAllSources"),g=u.map(h=>{let{selected:y,groupTitle:A,logo:T}=h;return{start:ke.createElement(kh,{src:T,size:22,type:"circular"}),onClick:()=>a(A),end:ke.createElement(Ch,{checked:y}),title:ke.createElement(xh,{variant:"title",size:"xmedium"},Xt.t(A)),...h}}),f=i(h=>{let y=h.target.value;s(y)},"searchHandler"),v=g;return r&&(v=g.filter(h=>Xe(h.groupTitle,r))),ke.createElement(K,{header:{title:Xt.t(t),suffix:ke.createElement(Pi,null,ke.createElement(Sh,{variant:"ghost",size:"xsmall",onClick:c},Xt.t(m?"Deselect all":"Select all")))}},ke.createElement(pt,null,ke.createElement(lt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ke.createElement($i,null),!v.length&&r?ke.createElement(Mi,null,ke.createElement(wh,{title:Xt.t("No results found"),description:Xt.t("Try using different keywords")})):e==="success"&&ke.createElement(xo,null,v.map(h=>ke.createElement(ke.Fragment,{key:h.id},ke.createElement(Th,{style:{height:"61px"},...h,selected:!1,hasDivider:!0}))))))}i(_i,"LiquiditySourcePage");import{i18n as wu}from"@lingui/core";import{Divider as Ui,getCountCategories as Mh,SelectableCategoryList as $h}from"@rango-dev/ui";import ut,{useState as xu}from"react";import{i18n as Fi}from"@lingui/core";import{Divider as ku,Image as Wh,ListItemButton as Bh,NotFound as Lh,Typography as Tu}from"@rango-dev/ui";import Oe,{useEffect as Nh,useState as Ph}from"react";import{BlockchainCategories as Di}from"@rango-dev/ui";import{TransactionType as Vn}from"rango-sdk";var Ah=i((t,e)=>{switch(e){case Di.ALL:return!0;case Di.UTXO:return t.type===Vn.TRANSFER;case Di.OTHER:return t.type!==Vn.TRANSFER&&t.type!==Vn.COSMOS&&t.type!==Vn.EVM;default:return t.type===e}},"filterByType"),gu=i((t,e,o)=>t.filter(n=>Ah(n,o)).filter(n=>At(n.name,e)||At(n.displayName,e)),"filterBlockchains");import{ImageContainer as bh,styled as hu}from"@rango-dev/ui";var yu=hu("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),jn=hu("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${bh}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Ih,Skeleton as Su}from"@rango-dev/ui";import Xn from"react";var Eh=20;function Cu(){return Xn.createElement(jn,null,Array.from(Array(Eh),t=>Xn.createElement(Ih,{key:t,hasDivider:!0,start:Xn.createElement(Su,{variant:"circular",width:35,height:35}),title:Xn.createElement(Su,{variant:"text",size:"large",width:90})})))}i(Cu,"LoadingBlockchainList");function Oi(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=Ph(e),{fetchStatus:l}=d();Nh(()=>{a([...gu(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Oe.createElement(Oe.Fragment,null,Oe.createElement(ku,{size:32}),Oe.createElement(Lh,{title:Fi.t("No results found"),description:Fi.t("Try using different keywords")})):Oe.createElement(jn,{key:`${r}-${o}`},s.map(u=>Oe.createElement(Bh,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Oe.createElement(Wh,{src:u.logo,size:30}),title:Oe.createElement(Tu,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Oe.createElement(yu,null,Oe.createElement(Tu,{variant:"label",size:"large"},Fi.t("Select Blockchain")),Oe.createElement(ku,{size:4}),l==="loading"&&Oe.createElement(Cu,null),l==="success"&&p())}i(Oi,"BlockchainList");function qi(t){let{type:e}=t,o=yt(),[n,r]=xu(""),[s,a]=xu("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),g=Mh(m)!==1;return ut.createElement(K,{header:{title:wu.t("Select Blockchain")}},ut.createElement(Ui,{size:12}),g&&ut.createElement(ut.Fragment,null,ut.createElement($h,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),ut.createElement(Ui,{size:24})),ut.createElement(lt,{value:n,autoFocus:!0,placeholder:wu.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),ut.createElement(Ui,{size:16}),ut.createElement(Oi,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(qi,"SelectBlockchainPage");import{i18n as Gu}from"@lingui/core";import{Divider as Hu}from"@rango-dev/ui";import Jt,{useState as Rh}from"react";import{useNavigate as ey}from"react-router-dom";import{i18n as Hi}from"@lingui/core";import{BlockchainsChip as Kn,Divider as Iu,Image as Eu,Skeleton as Uh,Tooltip as qh,Typography as Qi}from"@rango-dev/ui";import le from"react";import{useEffect as Fh}from"react";var vu=["ETH","COSMOS","OSMOSIS"];function zi(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(_h),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(m=>u.name!==m)}}n.sort(Dh(a)),r=n.splice(s)}return{list:n,more:r}}i(zi,"prepare");function _h(t,e){let o=vu,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(_h,"sortByMostUsedBlockchains");function Dh(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Dh,"generateSortByPreferredBlockchainsFor");function Au(t,e){return!!e.list.find(o=>o.name===t)}i(Au,"isInVisibleList");function Gi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();Fh(()=>{if(e?.selected){let s=zi(t,o,e);Au(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=zi(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Gi,"usePrepareBlockchainList");import{styled as Oh}from"@rango-dev/ui";var bu=Oh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var zh=12;function Vi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=Gi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,g=!c&&m;return le.createElement(le.Fragment,null,le.createElement(Iu,{size:12}),le.createElement(Qi,{variant:"label",size:"large"},Hi.t("Select Blockchain")),le.createElement(Iu,{size:12}),le.createElement(bu,null,l==="loading"&&Array.from(Array(zh),f=>le.createElement(Uh,{key:f,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(Kn,{selected:!n,onClick:()=>{o==="from"?u():p()}},le.createElement(Qi,{variant:"body",size:"xsmall",color:"secondary500"},Hi.t("All"))),a.list.map(f=>le.createElement(qh,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},le.createElement(Kn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},le.createElement(Eu,{src:f.logo,size:30})))),c?le.createElement(Kn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},le.createElement(Eu,{src:a.more[0].logo,size:30})):null,g?le.createElement(Kn,{onClick:s,key:"more-blockchains"},le.createElement(Qi,{variant:"body",size:"xsmall",color:"secondary500"},Hi._("More +{count}",{count:a.more.length}))):null)))}i(Vi,"BlockchainsSection");import{i18n as os}from"@lingui/core";import{darkTheme as Fu,Divider as Yt,ExternalLinkIcon as Qh,Image as Vh,ListItemButton as jh,NotFound as Xh,PinIcon as Kh,Skeleton as Ou,Typography as Zn,VirtualizedList as Yh}from"@rango-dev/ui";import D,{forwardRef as Jh,useEffect as Uu,useState as qu}from"react";import{Divider as _u,ListItem as Hh,Skeleton as Ao}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as Wu,ImageContainer as Gh,styled as Qe,Typography as Bu}from"@rango-dev/ui";var ji=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Xi=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ki=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Yi=Kt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Wu} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ji=Kt({}),Zi=Kt(),Lu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ri=Qe("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Yn=Qe("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Xi}`]:{[`& .${Yi}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ji}`]:{bottom:"-15px"},[`& .${ji}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ki}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),es=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ts=Qe(Bu,{}),Nu=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Zi}`]:{$$color:"$colors$neutral600",[`.${Wu} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),PL=Qe("div",{display:"flex",alignItems:"center"}),Pu=Qe("div",{position:"relative",[`& ${Gh}`]:{borderRadius:"$xm",overflow:"hidden"}}),Mu=Qe("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),$u=Qe(Bu,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Du(t){return Ve.createElement(Yn,null,Array.from(Array(t.size),e=>Ve.createElement(Hh,{key:e,hasDivider:!0,start:Ve.createElement(Ao,{variant:"circular",width:35,height:35}),end:Ve.createElement(Jn,null,Ve.createElement(Ao,{variant:"text",size:"large",width:70}),Ve.createElement(_u,{size:4}),Ve.createElement(Ao,{variant:"text",size:"medium",width:50})),title:Ve.createElement("div",null,Ve.createElement(Ao,{variant:"text",size:"large",width:90}),Ve.createElement(_u,{size:4}),Ve.createElement(Ao,{variant:"text",size:"medium",width:90}))})))}i(Du,"LoadingTokenList");var ns=20,Zh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return D.createElement("div",{className:Xi()},o?D.createElement("div",{className:ji()},o):D.createElement(Ri,{className:Ki()},D.createElement(Zn,{variant:"title",size:"xmedium"},r.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(es,{css:s},D.createElement(ts,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&D.createElement("div",{className:`${Yi()} ${!o&&Ji()}`},D.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",D.createElement(Yt,{size:4,direction:"horizontal"}),D.createElement(Qh,{color:"gray",size:12}))))},"renderDesc");function zu(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=qu(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=qu(!0),{getBalanceFor:c,loading:g}=H(),{isTokenPinned:f}=d(),v=Jh((A,T)=>D.createElement("div",{...A,ref:T,style:{...A.style,height:`${parseFloat(A.style?.height)+8*2}px`}})),h=i(()=>{a(e.slice(0,s.length+ns))},"loadNextPage");Uu(()=>{m(e.length>s.length)},[s.length]),Uu(()=>{a(e.slice(0,ns))},[e]);let y=i(()=>!s.length&&o?D.createElement(D.Fragment,null,D.createElement(Yt,{size:32}),D.createElement(Xh,{title:os.t("No results found"),description:os.t("Try using different keywords")})):D.createElement(Yh,{Item:({index:A,style:T})=>{let w=s[A],b=Qo(c(w)),S=w.address||"",x=p.find(M=>M.name===w.blockchain),I=Sn(w.symbol,x?.color||""),C={$$color:I[`${w.symbol}100`],[`.${Fu} &`]:{$$color:I[`${w.symbol}900`]},backgroundColor:"$$color"},L={$$color:I[`${w.symbol}700`],[`.${Fu} &`]:{$$color:I[`${w.symbol}100`]},color:"$$color"};return D.createElement("div",{style:{...T,paddingRight:5}},D.createElement(jh,{style:{height:T?.height,width:"100%",overflow:"hidden"},"tab-index":A,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n(s[A]),start:D.createElement(Pu,null,D.createElement(Vh,{src:w.image,size:30}),f(w,t.type)&&D.createElement(Mu,null,D.createElement(Kh,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||w.name||!w.name&&!S?D.createElement(Ri,null,D.createElement(Zn,{variant:"title",size:"xmedium"},w.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(es,{css:C},D.createElement(ts,{variant:"body",size:"xsmall",css:L},w.blockchain))):void 0,description:x?.info&&S&&x.type!=="COSMOS"?Zh({address:S,token:s[A],customCssForTag:C,customCssForTagTitle:L,name:w.name,url:x.info.addressUrl.split("{wallet}").join(S)}):w.name||void 0,end:g?D.createElement(Jn,null,D.createElement(Ou,{variant:"text",size:"large",width:70}),D.createElement(Yt,{size:4}),D.createElement(Ou,{variant:"text",size:"medium",width:50})):b&&D.createElement(Nu,null,D.createElement($u,{variant:"title",size:"small"},b.amount),D.createElement("div",null),b.usdValue&&D.createElement(Zn,{variant:"body",className:Zi(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:v,size:60,key:`${r}-${o}`}),"renderList");return D.createElement(Lu,null,D.createElement(Zn,{variant:"label",size:"large"},os.t("Select Token")),D.createElement(Yt,{size:4}),l==="loading"&&D.createElement(Du,{size:ns}),l==="success"&&D.createElement(Yn,null,y()))}i(zu,"TokenList");function rs(t){let{type:e}=t,o=ey(),n=yt(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=H.use.getBalanceFor(),[c,g]=Rh(""),{isTokenPinned:f}=d(),h=(e==="source"?r:s)?.name??"",y=d().blockchains({type:e}),A=d().tokens({type:e,blockchain:h,searchFor:c}),w=qs(A,m,i(x=>f(x,e),"checkIsTokenPinned")),b=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),S=i(x=>{e==="source"?a({token:x,meta:{blockchains:y,tokens:A}}):l({token:x,meta:{blockchains:y,tokens:A}})},"updateToken");return Jt.createElement(K,{header:{title:Gu.t("Swap {type}",{type:e})}},Jt.createElement(Vi,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:x=>{b(x)}}),Jt.createElement(Hu,{size:24}),Jt.createElement(lt,{value:c,autoFocus:!0,placeholder:Gu.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:x=>g(x.target.value)}),Jt.createElement(Hu,{size:16}),Jt.createElement(zu,{list:w,selectedBlockchain:h,searchedFor:c,type:e,onChange:x=>{S(x);let I=y.find(C=>x.blockchain===C.name);I&&b(I),n()}}))}i(rs,"SelectSwapItemsPage");import{i18n as Pt}from"@lingui/core";import{ChevronRightIcon as as,Divider as ls,InfoIcon as ly,List as py,ListItemButton as uy,Skeleton as cy,Switch as my,Tooltip as dy,Typography as Mt}from"@rango-dev/ui";import j from"react";import{useNavigate as fy}from"react-router-dom";import{i18n as Yu}from"@lingui/core";import{Divider as ry,InfoIcon as iy,TextField as sy,Tooltip as ay,Typography as Ju}from"@rango-dev/ui";import Le from"react";import{Chip as ty,styled as bo,TextField as oy}from"@rango-dev/ui";var Qu=bo("div",{paddingTop:"$5",padding:"$10 $5"}),Vu=bo("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${oy}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),ju=bo("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Rn=bo("div",{maxWidth:"280px",padding:"$10"}),Xu=bo(ty,{width:"61px",flexShrink:0});import{i18n as is}from"@lingui/core";import{Typography as ny}from"@rango-dev/ui";import Io from"react";function Ku(){return Io.createElement(Rn,null,Io.createElement(ny,{variant:"label",size:"medium",color:"neutral700"},is.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),Io.createElement("br",null),Io.createElement("br",null),Io.createElement("b",null,is.t("Warning")),":",is.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Ku,"SlippageTooltipContent");function ss(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Le.createElement(Qu,null,Le.createElement(ju,null,Le.createElement(Ju,{variant:"title",size:"xmedium"},Yu.t("Slippage tolerance per swap")),Le.createElement(ry,{direction:"horizontal",size:4}),Le.createElement(ay,{container:O(),side:"top",sideOffset:4,content:Le.createElement(Ku,null)},Le.createElement(iy,{color:"gray"}))),Le.createElement(Vu,null,Rs.map((r,s)=>{let a=`slippage-${s}`;return Le.createElement(Le.Fragment,null,Le.createElement(Xu,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Le.createElement(sy,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=parseFloat(r.target.value);(!s||s>=na&&s<=oa)&&n(s)},suffix:o&&Le.createElement(Ju,{variant:"body",size:"small"},"%"),placeholder:Yu.t("Custom")})))}i(ss,"Slippage");function Zu(){let t=fy(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Pe("theme",s),l=Pe("liquiditySource",s),p=Pe("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Ko(n,r),g=c.filter(C=>C.type==="BRIDGE"||C.type==="AGGREGATOR"),f=g.length,v=g.filter(C=>C.selected).length,h=c.filter(C=>C.type==="DEX"),y=h.length,A=h.filter(C=>C.selected).length,T=i((C,L)=>{switch(o){case"loading":return j.createElement(cy,{variant:"text",size:"medium",width:50});case"failed":return j.createElement(Mt,{variant:"body",size:"medium",color:"$error500"},Pt.t("Loading failed"));default:return j.createElement(Mt,{variant:"body",size:"medium"},`${C} / ${L}`)}},"handleEndItem"),w={id:"bridge-item",title:j.createElement(Mt,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:j.createElement(j.Fragment,null,T(v,f),j.createElement(ls,{direction:"horizontal",size:8}),j.createElement(as,{color:"black"})),onClick:()=>t(_.bridges)},b={id:"exchange-item",title:j.createElement(Mt,{variant:"title",size:"xmedium"},Pt.t("Enabled exchanges")),end:j.createElement(j.Fragment,null,T(A,y),j.createElement(ls,{direction:"horizontal",size:8}),j.createElement(as,{color:"gray"})),onClick:()=>t(_.exchanges)},S={id:"theme-item",title:j.createElement(Mt,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:j.createElement(as,{color:"gray"}),onClick:()=>t(_.themes)},x={id:"infinite-approval-item",title:j.createElement(j.Fragment,null,j.createElement(Mt,{variant:"title",size:"xmedium"},Pt.t("Infinite approval")),j.createElement(ls,{direction:"horizontal",size:4}),j.createElement(dy,{side:"top",sideOffset:4,container:O(),content:j.createElement(Rn,null,j.createElement(Mt,{variant:"label",size:"medium",color:"neutral700"},Pt.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.")))},j.createElement(ly,{color:"gray"}))),end:j.createElement(my,{checked:u}),onClick:m},I=l?[]:[w,b];return!e?.singleTheme&&!a&&I.push(S),I.push(x),j.createElement(K,{header:{title:Pt.t("Settings")}},j.createElement(pt,null,j.createElement(ss,null),j.createElement(py,{type:j.createElement(uy,{title:"_",id:"_",onClick:()=>console.log()}),items:I})))}i(Zu,"SettingsPage");import{cancelSwap as nS}from"@rango-dev/queue-manager-rango-preset";import{useManager as rS}from"@rango-dev/queue-manager-react";import Lc from"react";import{i18n as ct}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Fy,getCurrentStep as Oy,getRelatedWalletOrNull as Uy}from"@rango-dev/queue-manager-rango-preset";import{Button as xc,CopyIcon as qy,Divider as zy,IconButton as Gy,QuoteCost as Hy,StepDetails as Qy,Typography as eo,useCopyToClipboard as Vy}from"@rango-dev/ui";import{useWallets as jy}from"@rango-dev/wallets-react";import vc from"bignumber.js";import{PendingSwapNetworkStatus as cr}from"rango-types";import Y,{useEffect as Ac,useRef as Xy,useState as bc}from"react";import{useNavigate as Ky}from"react-router-dom";import{i18n as wt}from"@lingui/core";var gy=[wt.t("Sunday"),wt.t("Monday"),wt.t("Tuesday"),wt.t("Wednesday"),wt.t("Thursday"),wt.t("Friday"),wt.t("Saturday")];function Ru(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wt.t("Today"):`${gy[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ru,"timeSince");function ec(t){return t.finishTime?Ru(parseInt(t.finishTime)):Ru(parseInt(t.creationTime))}i(ec,"getSwapDate");import{Modal as wy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as or}from"rango-types";import nr from"react";import{i18n as er}from"@lingui/core";import{Button as tc,Divider as ps,MessageBox as hy,Typography as oc}from"@rango-dev/ui";import ot from"react";var nc=i(({onCancel:t,onClose:e})=>ot.createElement(ot.Fragment,null,ot.createElement(ps,{size:20}),ot.createElement(hy,{type:"error",title:er.t("Cancel Swap"),description:er.t("Are you sure you want to cancel this swap?")}),ot.createElement(ps,{size:32}),ot.createElement(tc,{variant:"contained",type:"primary",size:"large",onClick:t},ot.createElement(oc,{variant:"title",size:"medium",color:"neutral100"},er.t("Yes, Cancel it"))),ot.createElement(ps,{size:12}),ot.createElement(tc,{variant:"outlined",type:"primary",size:"large",onClick:e},ot.createElement(oc,{variant:"title",size:"medium",color:"primary"},er.t("No, Continue")))),"CancelContent");import{i18n as tr}from"@lingui/core";import{Button as rc,Divider as us,MessageBox as yy,Typography as ic}from"@rango-dev/ui";import nt from"react";var sc=i(({onDelete:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(us,{size:20}),nt.createElement(yy,{type:"error",title:tr.t("Delete Transaction"),description:tr.t("Are you sure you want to delete this swap?")}),nt.createElement(us,{size:32}),nt.createElement(rc,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(ic,{variant:"title",size:"medium",color:"neutral100"},tr.t("Yes, Delete it"))),nt.createElement(us,{size:12}),nt.createElement(rc,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(ic,{variant:"title",size:"medium",color:"primary"},tr.t("No, Cancel")))),"DeleteContent");import{i18n as cs}from"@lingui/core";import{PendingSwapNetworkStatus as ms}from"rango-types";var ds={[ms.WaitingForNetworkChange]:{type:"loading",title:cs.t("Change Network")},[ms.WaitingForConnectingWallet]:{type:"warning",title:cs.t("Connect Wallet")},[ms.NetworkChanged]:{type:"success",title:cs.t("Network Changed")}};import{MessageBox as Cy,Wallet as ky}from"@rango-dev/ui";import{useWallets as Ty}from"@rango-dev/wallets-react";import Eo from"react";import{styled as Sy}from"@rango-dev/ui";var ac=Sy("div",{display:"flex",justifyContent:"center"});var lc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=Ty(),u=n?.walletType,m=u?Sr(p(u)):null,c=u?l(u):null;return Eo.createElement(Eo.Fragment,null,Eo.createElement(Cy,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&Eo.createElement(ac,null,Eo.createElement(ky,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function fs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===or.WaitingForNetworkChange||e===or.WaitingForConnectingWallet||e===or.NetworkChanged;return nr.createElement(wy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&nr.createElement(lc,{type:ds[e].type,title:ds[e].title,currentStepWallet:s,message:a,showWalletButton:e!==or.WaitingForNetworkChange}),e==="delete"&&nr.createElement(sc,{onClose:o,onDelete:n}),e==="cancel"&&nr.createElement(nc,{onClose:o,onCancel:r}))}i(fs,"SwapDetailsModal");import{i18n as Wo}from"@lingui/core";import{Button as gs,Divider as rr,MessageBox as pc,Modal as xy,TokenAmount as vy,Typography as ir}from"@rango-dev/ui";import me from"react";import{useNavigate as Ay}from"react-router-dom";function hs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,realUsdValue:a,realValue:l,token:p,chain:u,percentageChange:m,description:c,diagnosisUrl:g}=t,f=Ay();return me.createElement(xy,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(pc,{type:"success",title:Wo.t("Swap Successful")},me.createElement(vy,{direction:"vertical",tooltipContainer:O(),type:"output",centerAlign:!0,price:{value:r,usdValue:s,realUsdValue:a,realValue:l},token:p,chain:u,percentageChange:m}),me.createElement(rr,{size:12}),me.createElement(ir,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):me.createElement(pc,{type:"error",title:Wo.t("Transaction Failed"),description:c}),me.createElement(rr,{size:32}),n==="success"&&me.createElement(gs,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},me.createElement(ir,{variant:"title",size:"medium",color:"neutral100"},Wo.t("Done"))),me.createElement(rr,{size:12}),g&&me.createElement(me.Fragment,null,me.createElement(gs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},me.createElement(ir,{variant:"title",size:"medium",color:"primary"},Wo.t("Diagnosis"))),me.createElement(rr,{size:12})),me.createElement(gs,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(ir,{variant:"title",size:"medium",color:"primary"},Wo.t("See Details"))))}i(hs,"SwapDetailsCompleteModal");import _y from"react";import{i18n as Ny}from"@lingui/core";import{Alert as gc,IconButton as Py,LinkIcon as My}from"@rango-dev/ui";import xt,{Fragment as $y}from"react";import{Alert as by,ChevronDownIcon as Iy,ChevronUpIcon as Ey,IconButton as Wy}from"@rango-dev/ui";import sr,{useState as By}from"react";function uc(t){let{message:e}=t,[o,n]=By(!1);return sr.createElement(by,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&sr.createElement(Wy,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?sr.createElement(Ey,{size:12,color:"gray"}):sr.createElement(Iy,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(uc,"FailedAlert");import{styled as Ly}from"@rango-dev/ui";var cc=Ly("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as mc}from"@lingui/core";import{Alert as ys,Button as dc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ss}from"rango-types";import Bo from"react";function fc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Bo.createElement(ys,{type:"warning",title:n.shortMessage,action:Bo.createElement(dc,{size:"xxsmall",type:"warning",onClick:()=>{o(Ss.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},mc.t("Change"))}):r===Ss.WaitingForConnectingWallet?Bo.createElement(ys,{type:"warning",title:n.shortMessage,action:Bo.createElement(dc,{size:"xxsmall",type:"warning",onClick:()=>{o(Ss.WaitingForConnectingWallet)}},mc.t("Connect"))}):Bo.createElement(ys,{type:"warning",title:n.shortMessage})}i(fc,"WarningAlert");function Cs(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=io(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l;return xt.createElement(cc,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,v=c===g.length-1,h=v&&u||p,y=v&&s.status==="failed";return xt.createElement($y,{key:f},xt.createElement(gc,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:Ny.t("View transaction"),action:m.url&&xt.createElement(Py,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},xt.createElement(My,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&xt.createElement(gc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&xt.createElement(fc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&xt.createElement(uc,{message:r}))}i(Cs,"SwapDetailsAlerts");var hc=2e3;var yc=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Ye(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:E(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Ye(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:E(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6),realValue:r.outputAmount||r.expectedOutputAmountHumanReadable}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:_y.createElement(Cs,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function Sc(t){if(io(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(Sc,"getStepState");import{css as ar,darkTheme as Dy,styled as Zt}from"@rango-dev/ui";var lr=Zt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),pr=Zt("div",{width:"100%"}),Cc=Zt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),SM=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),kc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),CM=Zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Rt=ar({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Dy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),ur=ar({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Tc=ar({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),wc=ar({width:"100%",padding:"0 $20 $10"});function ks(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=jy(),p=d().blockchains(),u=d().tokens(),m=U.use.retry(),c=Ky(),[g,f]=Vy(hc),v=Xy(null),[h,y]=bc(null),[A,T]=bc(null),w=i(()=>{r(),y(null)},"onCancel"),b=_e.use.getUnreadNotifications(),S=_e.use.setAsRead(),x=b(),I=Oy(e),C=I?.networkStatus;Ac(()=>{x.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),S(e.requestId))},[e.status]),Ac(()=>{q?y(cr.WaitingForNetworkChange):C===cr.WaitingForConnectingWallet||C===cr.NetworkChanged?y(C):y(null)},[C]);let L=Ta(e),M=I?Fy(e,I):null,B=I?Uy(e,I):null,k=ec(e),$=wa(e),N=i(ue=>!!l(ue)?.mobileWallet,"isMobileWallet"),q=C===cr.WaitingForNetworkChange&&!!M&&!!B?.walletType&&(N(B.walletType)||s(B.walletType,M)),J=q?a.bind(null,B.walletType,M):void 0,Z=ka(e,I),Q=yc({swap:e,switchNetwork:J,showNetworkModal:C,setNetworkModal:y,message:Z,blockchains:p}),re=Q.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,$t=e.steps.reduce((ue,de)=>ue+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ue=>ue.diagnosisUrl)?.diagnosisUrl,mt=E(parseFloat(E(Ce,6,6))*(Se.toUsdPrice||0),4,4),vt=E(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),F=Ce?se(new vc(Ce).multipliedBy(Se.toUsdPrice||0)):"",z=se(new vc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),X=Me(vt,mt),Ee=e.status==="success"?ct.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:E(Ce,6,6),token:Q[re-1].to.token.displayName,conciseAddress:Vo(e.wallets[Q[re-1].to.chain.displayName]?.address||""),chain:Q[re-1].to.chain.displayName}}):`${ct.t("Transaction was not sent.")} ${L?ct.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}}):""}`;return Y.createElement(K,{noPadding:!0,header:{title:ct.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(Gt,null,Y.createElement(xc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},Y.createElement(eo,{size:"medium",variant:"label",color:"error"},ct.t("Delete"))))},footer:$&&!A&&Y.createElement(xc,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},ct.t("Try again"))},Y.createElement(lr,null,Y.createElement(pr,null,Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t("Request ID")}:`),Y.createElement("div",{className:ur()},Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(Gy,{variant:"ghost",onClick:f.bind(null,o||"")},Y.createElement(qy,{size:16,color:"gray"})))),Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t(e.finishTime?"Finished at":"Created at")}:`),Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},k))),Y.createElement("div",{className:Tc()},Y.createElement(Hy,{fee:E(String($t),2,2),time:Fo(Oo(e.steps)),steps:re}),Y.createElement(co,{from:{price:{value:E(e.inputAmount,6,6),usdValue:vt,realUsdValue:z,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:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:Ce},token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image,displayName:Q[re-1].to.chain.displayName}},percentageChange:E(X,2,2),warningLevel:it(X??0)})),Y.createElement("div",{className:wc()},Y.createElement(eo,{variant:"title",size:"small"},ct.t("Swaps steps"))),Y.createElement(zy,{size:8}),Y.createElement(Cc,{ref:v},Q.map((ue,de)=>{let _o=de,rt=Sc(e.steps[de]),Xc=rt==="error"||rt==="in-progress"||rt==="warning"||rt==="completed"&&de===Q.length-1;return Y.createElement(Qy,{key:_o,step:ue,type:"swap-progress",ref:v,state:rt,hasSeparator:de!==0,tabIndex:_o,isFocused:Xc,tooltipContainer:O()})}))),Y.createElement(fs,{state:h,onClose:()=>y(null),onCancel:w,onDelete:n,message:Z.detailedMessage.content,currentStepWallet:B}),Y.createElement(hs,{open:!!A,diagnosisUrl:oo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:se(Ce),percentageChange:E(X,2,2),token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image},description:Ee}))}i(ks,"SwapDetails");import{i18n as No}from"@lingui/core";import{CopyIcon as eS,IconButton as tS,NotFound as oS,Skeleton as Wc,Typography as dr}from"@rango-dev/ui";import pe from"react";import{i18n as Yy}from"@lingui/core";import{Divider as Jy,Skeleton as Zy,Typography as Ry}from"@rango-dev/ui";import ie from"react";import{css as je,styled as Ts}from"@rango-dev/ui";var Ic=Ts("div",{width:"100%",height:"100%",padding:"$10 $20"}),Lo=Ts("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),mr=Ts("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),YM=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),JM=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),ZM=je({paddingTop:"$15",display:"flex"}),RM=je({padding:"$15 $0"}),e$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),t$=je({paddingBottom:"$10"}),o$=je({display:"flex",justifyContent:"start",alignItems:"center"}),n$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),r$=je({display:"flex",alignItems:"center"}),i$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Ec=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ws(){return ie.createElement(Ic,null,ie.createElement(ho,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(Ry,{variant:"title",size:"small"},Yy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Lo,null,ie.createElement(et,{separator:!1}),ie.createElement("div",{className:Ec()},ie.createElement(Jy,{direction:"horizontal",size:20}),ie.createElement(Zy,{height:22,variant:"rectangular"}))),ie.createElement(mr,null),ie.createElement(Lo,null,ie.createElement(et,{separator:!1})),ie.createElement(mr,null),ie.createElement(Lo,null,ie.createElement(et,{separator:!1})),ie.createElement(mr,null),ie.createElement(Lo,null,ie.createElement(et,{separator:!1}))))}i(ws,"LoadingSwapDetails");function Bc(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(K,{noPadding:!0,header:{title:No.t("Swap and Bridge"),suffix:pe.createElement(Gt,null)}},o&&pe.createElement(lr,null,pe.createElement(pr,null,pe.createElement("div",{className:Rt()},pe.createElement(dr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Request ID")}:`),pe.createElement("div",{className:ur()},pe.createElement(dr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Wc,{width:60,height:10,variant:"rounded"})),pe.createElement(tS,{variant:"ghost"},pe.createElement(eS,{size:16,color:"gray"})))),pe.createElement("div",{className:Rt()},pe.createElement(dr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Created at")}:`),pe.createElement(dr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Wc,{width:60,height:10,variant:"rounded"})))),pe.createElement(ws,null)),!o&&pe.createElement(kc,null,pe.createElement(oS,{title:No.t("Not found"),description:No.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Bc,"SwapDetailsPlaceholder");function Nc(){let{manager:t,state:e}=rS(),o=!e.loadedFromPersistor,n=jt(t),r=Ae.use.selectedSwapRequestId(),s=yt(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&nS(g)}},"onCancel"),m=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),c=p?.swap;return!c||l?Lc.createElement(Bc,{requestId:r||"",showSkeleton:l}):Lc.createElement(ks,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Nc,"SwapDetailsPage");import{i18n as Po}from"@lingui/core";import{AutoThemeIcon as iS,DarkModeIcon as sS,LightModeIcon as aS,List as lS,ListItemButton as pS,Radio as xs,RadioRoot as uS,Typography as vs}from"@rango-dev/ui";import be from"react";function Pc(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(vs,{variant:"title",size:"xmedium"},Po.t("Light")),onClick:()=>t("light"),start:be.createElement(aS,{color:"gray"}),end:be.createElement(xs,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(vs,{variant:"title",size:"xmedium"},Po.t("Dark")),onClick:()=>t("dark"),start:be.createElement(sS,{color:"gray"}),end:be.createElement(xs,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(vs,{variant:"title",size:"xmedium"},Po.t("Auto")),onClick:()=>t("auto"),start:be.createElement(iS,{color:"gray"}),end:be.createElement(xs,{value:"auto"})}];return be.createElement(K,{header:{title:Po.t("Theme")}},be.createElement(pt,null,be.createElement(uS,{onValueChange:n=>t(n),value:e},be.createElement(lS,{type:be.createElement(pS,{title:Po.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Pc,"ThemePage");function Mc(){return cS([{path:_.home,element:Ie.createElement(uu,null)},{path:_.fromSwap,children:[{index:!0,element:Ie.createElement(rs,{type:"source"})},{path:_.blockchains,element:Ie.createElement(qi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ie.createElement(rs,{type:"destination"})},{path:_.blockchains,element:Ie.createElement(qi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ie.createElement(Zu,null)},{path:_.themes,element:Ie.createElement(Pc,null)},{path:_.languages,element:Ie.createElement(mu,null)},{path:_.exchanges,element:Ie.createElement(_i,{sourceType:"Exchanges"})},{path:_.bridges,element:Ie.createElement(_i,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ie.createElement(iu,null)},{path:_.swapDetails,element:Ie.createElement(Nc,null)}]},{path:_.wallets,element:Ie.createElement(Il,null)},{path:_.confirmSwap,element:Ie.createElement(Kp,null)}])}i(Mc,"AppRoutes");import{isApprovalTX as mS,MainEvents as _c,RouteEventType as Dc,StepEventType as to,StepExecutionEventStatus as dS,useEvents as fS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Fc}from"react";import{StepExecutionBlockedEventStatus as As}from"@rango-dev/queue-manager-rango-preset";var $c=[As.WAITING_FOR_CHANGE_WALLET_ACCOUNT,As.WAITING_FOR_NETWORK_CHANGE,As.WAITING_FOR_WALLET_CONNECT];function Oc(){let t=d().tokens(),e=H.use.connectedWallets(),o=H.use.getWalletsDetails(),n=_e.use.setNotification(),r=_e.use.setAsRead(),s=fS();return Fc(()=>(s.on(_c.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===dS.TX_SENT&&!mS(p)||l.type===to.SUCCEEDED){let c=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);c&&o([c],t),g&&o([g],t)}l.type===to.TX_EXECUTION_BLOCKED&&$c.includes(l.status)||l.type===to.FAILED?n(l,u):(l.type===to.TX_EXECUTION||l.type===to.CHECK_STATUS)&&r(u.requestId)}),()=>s.all.clear()),[s,e.length]),Fc(()=>(s.on(_c.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Dc.FAILED||l.type===Dc.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(Oc,"WidgetEvents");import{globalCss as gS}from"@rango-dev/ui";var Uc=i(()=>gS({"@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')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{styled as hS}from"@rango-dev/ui";var qc=hS("div",{display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function fr(){Uc();let{config:t}=d(),{activeTheme:e}=Cn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Qn(),[r,s]=Gc(""),[a,l]=Gc(),p=SS(un);return zc(()=>{_e.persist.rehydrate(),p.onConnectWallet(s)},[]),zc(()=>{n(t?.language)},[t?.language]),Mo.createElement(yS,{language:o},Mo.createElement(qc,{id:"swap-container",className:e()},Mo.createElement(Oc,null),Mo.createElement($a,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Mo.createElement(Mc,null))))}i(fr,"Main");import Is,{useMemo as _S}from"react";import{checkWaitingForNetworkChange as CS,makeQueueDefinition as kS}from"@rango-dev/queue-manager-rango-preset";import{Provider as TS}from"@rango-dev/queue-manager-react";import{useWallets as wS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as xS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as vS}from"rango-types";import AS,{useMemo as bS}from"react";function IS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=wS(),l=bS(()=>kS({API_KEY:t.apiKey||_t("API_KEY"),BASE_URL:_t("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:H.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},c=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),g=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),v=p.filter(vS),h=i(T=>{let{supportedChains:w}=a(T);return zo(w)},"getSupportedChainNames"),y=e(),A={meta:{blockchains:f,evmBasedChains:v,evmNetworkChainInfo:xS(v),getSupportedChainNames:h},getSigners:o,wallets:m,providers:y,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return AS.createElement(TS,{queuesDefs:[l],context:A,onPersistedDataLoaded:T=>{CS(T)},isPaused:!1},t.children)}i(IS,"QueueManager");var Hc=IS;import{useManager as NS}from"@rango-dev/queue-manager-react";import PS,{createContext as MS,useContext as $S}from"react";import{cancelSwap as ES,getCurrentBlockchainOfOrNull as WS,getCurrentStep as BS,getRelatedWalletOrNull as LS}from"@rango-dev/queue-manager-rango-preset";var $o=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return jt(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){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&ES(o)}getCurrentStepInfo(e){let o=BS(e);return{step:o,wallet:o?LS(e,o):null,network:o?WS(e,o):null}}};i($o,"WidgetHistory");var Qc=MS(void 0);function bs(t){let{manager:e}=NS(),o=U.use.retry(),n=new $o(e,{retrySwap:o}),r=H.use.connectedWallets(),s=H.use.loading(),a=Us(r),l=H.use.getWalletsDetails(),p=d().blockchains(),u=d().tokens(),m=d().swappers(),c=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return PS.createElement(Qc.Provider,{value:g},t.children)}i(bs,"WidgetInfo");function Vc(){let t=$S(Qc);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Vc,"useWidget");function gr(t){let{onUpdateState:e,config:o}=t;return _S(()=>{Qs({API_KEY:o?.apiKey||Do,BASE_URL:o?.apiUrl||Bs})},[o]),Is.createElement(cn,{config:o,onUpdateState:e},Is.createElement(Hc,{apiKey:o.apiKey},Is.createElement(bs,null,t.children)))}i(gr,"WidgetProvider");function jc(t){return t.config?.externalWallets?Es.createElement(fr,null):Es.createElement(gr,{config:t.config??hr},Es.createElement(fr,null))}i(jc,"Widget");export{WD as MainEvents,OD as Networks,zD as PendingSwapNetworkStatus,BD as RouteEventType,LD as StepEventType,ND as StepExecutionBlockedEventStatus,PD as StepExecutionEventStatus,DD as WalletEvents,UD as WalletTypes,jc as Widget,gr as WidgetProvider,cn as WidgetWallets,zr as customizedThemeTokens,_D as readAccountAddress,$l as useWallets,Vc as useWidget,MD as useWidgetEvents};
2
2
  //# sourceMappingURL=index.js.map