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

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 Ye}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"),W=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 Ke=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return W(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function yr(t){switch(!0){case t.connected:return Ye.CONNECTED;case t.connecting:return Ye.CONNECTING;case!t.installed:return Ye.NOT_INSTALLED;default:return Ye.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=W(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:W(t.amount,8,8),usdValue:W(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===Ye.CONNECTED)-+(e.state===Ye.CONNECTED)||+(o.state===Ye.DISCONNECTED||o.state===Ye.CONNECTING)-+(e.state===Ye.DISCONNECTED||e.state===Ye.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 yt 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 ft=(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))(ft||{});function sa(t,e){return e.find(o=>o.name===t)?.displayName}i(sa,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"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 Q=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??Q().noResultError.title;case 1:return Q().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:W(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Oe.t({id:"Required: > {min} {symbol}",values:{min:W(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Oe.t({id:"Required: <= {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Oe.t({id:"Required: < {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=Q().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:x}=t,h=s?.reduce((b,S)=>(b[S.chain]=S.address,b),{}),y=[];r?.forEach(b=>{let S=y.find(v=>v.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(v=>{b.push(v.from.blockchain,v.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(),...x&&{destination:x},...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=W(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=W(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:Je(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 at(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(at,"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=at(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"),ht=km;var It=i((t,e)=>t?.usdPrice?new yt(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=ht(Tm()(wm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new yt(0),outputUsdValue:new yt(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 yt(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 yt(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 yt(0),outputUsdValue:new yt(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 yt(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:x,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),v=sn(void 0),I=sn(void 0);rn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Ia(()=>{if(m==="success"){let C=c.find(N=>N.name===u?.from?.blockchain),$=g.find(N=>Le(N,u?.from?.token||null));(C||!C&&v.current)&&n(C??null),$?r({token:$,meta:{blockchains:c,tokens:g}}):!$&&b.current&&r({token:null}),v.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(N=>N.name===u?.to?.blockchain),$=g.find(N=>Le(N,u?.to?.token||null));(C||!C&&I.current)&&o(C??null),$?e({token:$,meta:{blockchains:c,tokens:g}}):!$&&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),x(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 z=ht(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)),x=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return x?.failed&&f&&r&&s([f],n,!1),f&&x?{...g,explorerUrl:x.explorerUrl,balances:_s(x,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=z.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}=z(),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),x=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:x,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=ht(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(),x=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((v,I)=>{b[I]=v}),s.current=b;let S=n.pathname.split(_.swaps+"/")[1]||null;S&&w(S)},[]),_r(()=>{if(!t.current){let b="",S="",v="",I="",C="",$=s.current["autoConnect"];y!=="success"?(b=s.current["fromBlockchain"],S=s.current["fromToken"],v=s.current["toBlockchain"],I=s.current["toToken"],C=s.current["fromAmount"]||x):(b=a?.name||"",S=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),v=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),C=x),o({...b&&{["fromBlockchain"]:b},...S&&{["fromToken"]:S},...v&&{["toBlockchain"]:v},...I&&{["toToken"]:I},...C&&{["fromAmount"]:C.toString()},...$&&{["autoConnect"]:$}},{replace:!0})}t.current=!1},[n.pathname,x,a,p,l,u]),_r(()=>{if(y==="success"){let b=e.get("fromBlockchain"),S=e.get("fromToken"),v=e.get("toBlockchain"),I=e.get("toToken"),C=e.get("fromAmount"),$=A.find(M=>M.name===b),N=Br(T,S,$||null),L=A.find(M=>M.name===v),k=Br(T,I,L||null);$&&(m($),N&&c({token:N,meta:{blockchains:A,tokens:T}})),L&&(g(L),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 ee,{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 lt}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 R,{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}=z(),m=d().blockchains(),c=Wa(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||rd,g=Ps(s,l,c,o),f=Us(g),[x,h]=nd(""),y=i(S=>!u.find(v=>v.walletType===S&&v.chain===o),"isExperimentalChainNotAdded"),A=i(async S=>{let v=s(S);try{if(x&&h(""),v.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(v=>v.state===Fr.CONNECTING)||[];for(let v of S)a(v.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,v,I)=>Go(I,v)&&y(S)&&!td.includes(S)||S==gn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(S=>!b(S.type,o??"",m)),error:x,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 St(){let t=id();return()=>t(-1)}i(St,"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],x=[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);x.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=x.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 ce 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=ht(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,onClickNotifications:s}=t,{config:{features:a}}=d(),l=Pe("notification",a);return ce.createElement(ce.Fragment,null,ce.createElement(vn,{container:O(),side:"top",content:xn.t("Refresh")},ce.createElement(Ue,{variant:"ghost",size:"small",onClick:o,disabled:!o},ce.createElement(Fd,{size:16,color:o?"black":"gray"}))),!l&&ce.createElement(vn,{container:O(),side:"top",content:xn.t("Notifications")},ce.createElement(Dd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:ce.createElement(jr,null)},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:s},ce.createElement(_d,{size:18,color:"black"}),ce.createElement(cl,null)))),ce.createElement(vn,{container:O(),side:"top",content:xn.t("Settings")},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:r},ce.createElement(Od,{size:18,color:"black"}))),ce.createElement(vn,{container:O(),side:"top",content:xn.t("Transactions History")},ce.createElement(Ue,{size:"small",variant:"ghost",onClick:n},ce.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=z.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Sn(m||{}),g=Pe("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),x=St(),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:x})),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 X=he.forwardRef(Qd);X.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(X,{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,x)=>{let h=`wallet-${x}-${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=z.use.connectedWallets(),{blockchains:p}=d(),[u,m]=lo(""),[c,g]=lo(null),[f,x]=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)}}),[v,I]=lo(w),C=w.length,$=r&&C-r>0,N=i(async k=>{x(!1),y("in-progress");try{await A(k.walletType,k.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Wl(()=>{I(k=>{let M=w.findIndex(E=>o(E.type,e));return $&&M>1?[w[M]].concat(w.filter((E,G)=>G!==M)):k.map(E=>w.find(G=>G.type===E.type)??E)})},[JSON.stringify(w)]);let L=document.getElementById(Te);return Wl(()=>{let k=null;return(h==="completed"||h==="rejected")&&(k=setTimeout(()=>y(null),bn)),()=>{k&&clearTimeout(k)}},[h]),R.createElement(R.Fragment,null,v.slice(0,r).map(k=>{let M=qs({connectedWallets:l,walletType:k.type,chain:e}),E=M?Qo(M):"",G=Go(p(),e),J=!l.find(Se=>Se.walletType===k.type&&Se.chain===e),te=G&&J&&k.state===El.CONNECTED,H=te?ze.t({id:"Add {chain} chain",values:{chain:e}}):E,re=i(()=>{k.state===El.DISCONNECTED?S(k.type):te?(g({walletType:k.type,chain:e,address:M??""}),x(!0)):n({walletType:k.type,chain:e,address:M??""})},"onClick"),ye=c?.chain?sa(c.chain,p()):void 0;return R.createElement(R.Fragment,null,R.createElement(ao,{open:u===k.type,onClose:()=>m(""),image:k.image,state:k.state,error:b}),!!c&&R.createElement(bl,{open:!!c&&f,container:L,onClose:()=>{g(null)}},R.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}})},R.createElement(ei,{size:18}),R.createElement(ei,{size:32}),R.createElement(af,{onClick:N.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),h&&R.createElement(bl,{open:!!h,onClose:y.bind(null,null),container:L},h==="in-progress"&&R.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:R.createElement(xl,null,R.createElement(Al,null,R.createElement(lf,{src:k.image,size:45})),R.createElement(vl,null))}),h==="completed"&&R.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"&&R.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}})}),R.createElement(ei,{direction:"vertical",size:32})),R.createElement(pf,{key:k.type,description:H,onClick:re,selected:o(k.type,e),...k}))}),$&&R.createElement(Fa,{selected:!1,onClick:s},R.createElement(Il,{variant:"label",size:"medium"},ze.t("Show more wallets"),R.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:x,selectWallets:h}=z(),[y,A]=Bt(""),[T,w]=Bt([]),[b,S]=Bt(""),[v,I]=Bt(null),[C,$]=Bt(g),[N,L]=Bt(!!g),k=yf(null),M=Yo(p),E=l.find(D=>D.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),G=i(D=>!!p?.result?.swaps.find(Y=>Y.from.blockchain===D),"isWalletRequiredFor"),[J,te]=Bt(x.filter(D=>D.selected&&M.includes(D.chain))),H=l.find(D=>D.name===E?.name),re=i((D,Y)=>!!J.find(j=>j.walletType===D&&j.chain===Y&&j.selected&&(G(Y)||!G(Y)&&!C)),"isSelected"),ye=!!C&&N&&H&&!Jo(H,C),Se=i(()=>{L(!1),$(""),te(D=>{let Y=!1;return D.map(j=>!Y&&j.chain===E?.name?(Y=!0,{...j,selected:!0}):j)})},"resetCustomDestination"),Ce=i(D=>{if(y&&A(""),re(D.walletType,D.chain))return;let j=x.find(Ee=>Ee.walletType===D.walletType&&Ee.chain===D.chain);j&&(n(),D.chain===E?.name&&N&&(L(!1),$("")),te(Ee=>Ee.filter(ue=>ue.chain!==D.chain).concat({...j,selected:!0})))},"onChange"),Mt=i(()=>{let D=J.filter(Y=>Y.selected);h(D),u(D),f(C),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{w([]),S(""),I(null);let D=x.filter(Ee=>J.find(ue=>ue.chain===Ee.chain&&ue.walletType===Ee.walletType)),Y=await r?.({selectedWallets:D,customDestination:C}),j=Y.warnings;j?.balance?.messages&&w(j.balance.messages),j?.quoteUpdate&&I(j.quoteUpdate),Y.error&&S(la(Y.error)),!Y.error&&(!j?.balance?.messages.length||0>0)?Mt():w(j?.balance?.messages??[])},"onConfirmWallets");gf(()=>{te(D=>D.concat(x.filter(Y=>!!!D.find(Ee=>Ee.chain===Y.chain)&&Y.selected&&M.includes(Y.chain))))},[x.length]),hf(()=>{N&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},so)},[N]);let it=document.getElementById(Te),Xe=Sf();return P.createElement(Ll,{open:e,onClose:()=>{m||Xe("../",{replace:!0}),o()},dismissible:!y,container:it,...!y&&{footer:P.createElement(Ka,null,P.createElement(Nl,{loading:s,disabled:Ta(s,N,C,p,J,E),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"},lt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(y,l)}})))},anchor:"center"},P.createElement(Ll,{open:T.length>0,onClose:w.bind(null,[]),container:it},P.createElement(df,{title:lt.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},lt.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:lt.t(b)}),P.createElement(Qt,{size:12})),v&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"warning",title:dn(v)}),P.createElement(Qt,{size:12})),P.createElement(Ja,null,M.map((D,Y)=>{let j=l.find(de=>de.name===D),Ee=`wallet-${Y}`,ue=Y===M.length-1;return P.createElement("div",{key:Ee},P.createElement(_a,null,P.createElement(En,{variant:"title",size:"xmedium"},lt.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),P.createElement(En,{variant:"label",color:"$neutral700",size:"medium"},lt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),P.createElement(Qt,{size:24}),P.createElement(Da,null,P.createElement(ti,{chain:D,isSelected:re,selectWallet:Ce,limit:Cf,onShowMore:()=>A(j?.name??"")})),!ue&&P.createElement(Qt,{size:32}),ue&&a?.customDestination&&P.createElement(Va,null,P.createElement(Ha,{ref:k,selected:N,open:N,onOpenChange:de=>{de?G(E?.name??"")||te(Mo=>Mo.map(st=>st.chain===E?.name?{...st,selected:!1}:st)):Se()}},P.createElement(Oa,{onClick:()=>L(de=>!de)},P.createElement(Qa,{fullWidth:!0,variant:"default",suffix:P.createElement(Xa,{orientation:N?"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"},lt.t("Send to a different address"))))),P.createElement(fn,{open:N},P.createElement(P.Fragment,null,P.createElement(Qt,{size:4}),P.createElement(Ya,{autoFocus:!0,placeholder:lt.t("Your destination address"),value:C,onChange:de=>{$(de.target.value)}})))),ye&&P.createElement("div",{className:ja()},P.createElement(oi,{variant:"alarm",type:"error",title:lt.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 B,{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 Ze,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",[`.${Ze} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ze} &`]:{$$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",[`.${Ze} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Ze} &`]:{$$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",[`.${Ze} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Ze} &`]:{$$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",[`.${Ze} &`]:{$$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",[`.${Ze} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ze} &`]:{$$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",[`.${Ze} &`]:{$$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),x=ep(c),h=W(en(e.result?.swaps??[],p),2,2),y=Do(Fo(e.result?.swaps)),A=W(o.value,6,6),T=W(n.value,6,6),w=n.usdValue?W(n.usdValue,4,4):"",b=$e(o.usdValue,n.usdValue??null),S=W(b,2,2),v=at(b??0),C=i(L=>L.map((k,M)=>{let E,G=r?.type===3&&r.swap.swapperId===k.swapperId||r?.type===4&&r.recommendedSlippages?.has(M),J=s?.type===2&&s.recommendedSlippages?.has(M);return G?E="error":J&&(E="warning"),{swapper:{displayName:aa(k.swapperId,m),image:k.swapperLogo},from:{token:{displayName:k.from.symbol,image:k.from.logo},chain:{displayName:Je(k.from.blockchain,u),image:k.from.blockchainLogo},price:{value:M===0?W(o.value,6,6):W(k.fromAmount,6,6),usdValue:W((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:Je(k.to.blockchain,u),image:k.to.blockchainLogo},price:{value:W(k.toAmount,6,6),usdValue:W((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:E,alerts:G||J?B.createElement(_l,null,B.createElement(xf,{type:G?"error":"warning",title:r?.type===3?r?.recommendation:pi.t("Slippage Error:"),footer:B.createElement(Dl,null,r?.type===3&&B.createElement(B.Fragment,null,B.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(ui,{direction:"horizontal",size:8}),B.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(ui,{direction:"horizontal",size:8}),B.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Yours: {amount} {symbol}",values:{amount:W(k.fromAmount,6,6),symbol:k?.from.symbol}}))),(r?.type===4||s?.type===2)&&B.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??[]),$=C.length,N=O();return Bf(()=>{c&&!x.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},ii),x.current=c},[c,x]),B.createElement(B.Fragment,null,B.createElement(ql,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:zl()},B.createElement(If,{fee:h,time:y,steps:$}),a==="basic"&&B.createElement("div",{className:Gl()},B.createElement(jl,null,B.createElement(bf,{size:12,color:"gray"})),B.createElement(Xl,null,B.createElement(li,{size:"small",variant:"body"},`${A} ${C[0].from.token.displayName} = `),B.createElement(Nn,{content:se(n.value),container:N,open:n.value?void 0:!1},B.createElement(li,{size:"small",variant:"body"},"\xA0",`${T} ${C[C.length-1].to.token.displayName}`))),B.createElement(Nn,{content:se(n.usdValue),container:N,style:{display:"flex"}},B.createElement(co,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`))),a==="list-item"&&B.createElement(Wf,{type:"output",direction:"vertical",tooltipContainer:N,price:{value:T,usdValue:w,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:C[$-1].to.token.displayName,image:C[$-1].to.token.image},chain:{image:C[$-1].to.chain.image},percentageChange:S,warningLevel:v}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(uo,{from:C[0].from,to:C[$-1].to,percentageChange:S,warningLevel:v}),B.createElement(ui,{size:4}))),B.createElement(Ol,{recommended:l,open:c,onOpenChange:g},B.createElement(Hl,{ref:L=>f.current=L,recommended:l,onClick:()=>g(L=>!L)},B.createElement("div",null,C.map((L,k)=>{let M=`item-${k}`,E=B.createElement(ai,null,B.createElement(Af,{size:12,color:"black",...L.state&&{color:L.state==="error"?"error":"warning"}}));return B.createElement(B.Fragment,{key:M},B.createElement(Nn,{container:N,side:"bottom",sideOffset:4,content:L.from.chain.displayName},B.createElement(si,{state:L.state||C[k-1]?.state},B.createElement(Zl,{src:L.from.chain.image,size:16}))),k===$-1&&B.createElement(B.Fragment,null,E,B.createElement(Nn,{container:N,side:"bottom",sideOffset:4,content:L.to.chain.displayName},B.createElement(si,{state:L.state},B.createElement(Zl,{src:L.to.chain.image,size:16})))),k!==$-1&&B.createElement(B.Fragment,null,E))})),B.createElement(ai,{orientation:c?"up":"down"},B.createElement(vf,{size:12,color:"black"}))),B.createElement(Ql,{open:c},B.createElement(Vl,null),B.createElement("div",{className:Ul()},C.map((L,k)=>{let M=`item-${k}`;return B.createElement(Ef,{type:"quote-details",key:M,step:L,hasSeparator:k!==C.length-1,state:L.state,tooltipContainer:N})}))))))}i(ci,"Quote");import{Divider as $f,Skeleton as Mf}from"@rango-dev/ui";import pt 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 et}from"@rango-dev/ui";import q from"react";import{styled as Re}from"@rango-dev/ui";var ip=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),sp=Re("div",{display:"flex"}),ap=Re("div",{padding:"$15 $0 14px $0"}),lp=Re("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),pp=Re("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),up=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),cp=Re("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),mp=Re("div",{width:"65%",display:"flex",justifyContent:"start"}),dp=Re("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),fp=Re("div",{padding:"$15 $0 $15 $0"});function go(t){let{type:e,tag:o=!1}=t,n=q.createElement(up,null,q.createElement(mp,null,q.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(Nt,{size:8,direction:"horizontal"}),q.createElement(dp,null,q.createElement(et,{height:10,width:60,variant:"rounded"}),q.createElement(Nt,{size:4}),q.createElement(et,{height:15,variant:"rounded"}))),q.createElement(et,{height:12,width:64,variant:"rounded"}));return q.createElement("div",null,q.createElement(ip,null,q.createElement(sp,null,q.createElement(et,{width:60,height:10,variant:"rounded"}),q.createElement(Nt,{size:4,direction:"horizontal"}),q.createElement(et,{width:60,height:10,variant:"rounded"}),q.createElement(Nt,{size:4,direction:"horizontal"}),q.createElement(et,{width:60,height:10,variant:"rounded"})),o&&q.createElement(et,{height:22,width:100,variant:"rounded"})),e==="basic"&&q.createElement(ap,null,q.createElement(et,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(lp,null,q.createElement(pp,null,q.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(Nt,{direction:"horizontal",size:4}),q.createElement(et,{height:15,width:150,variant:"rounded"})),q.createElement(Nt,{size:4}),q.createElement(et,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(Nt,{size:4}),q.createElement(fp,null,n,q.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 tt(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(tt,"StepSkeleton");function fi(t){let{type:e,expanded:o,tag:n=!1}=t;return pt.createElement(tp,{rounded:e!=="basic"},pt.createElement(go,{type:e,tag:n}),pt.createElement(op,null,pt.createElement(Mf,{height:15,variant:"rounded"})),o&&pt.createElement(np,null,pt.createElement($f,{size:20}),pt.createElement(tt,null),pt.createElement(tt,null),pt.createElement(tt,{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:Q().genericServerError,action:{onClick:n,title:Tp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:Q().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Tp.t("Reset")}},description:Q().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:Q().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"},Q().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 ot 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:W(r.inputUsdValue,4,4)},{title:yo.t("Gas cost"),value:W(r.totalFee,2,2)},{title:yo.t("Receiving"),value:W(r.outputUsdValue,4,4)},{title:yo.t("Price impact"),value:W(r.priceImpact,2,2),valueColor:`${s}500`}];return ot.createElement(Gf,{open:e,onClose:o,container:O()},ot.createElement(zf,{type:s,title:Q().highValueLossError.impactTitle,description:Q().highValueLossError.description}),ot.createElement(yi,null,ot.createElement(Pp,{size:20}),ot.createElement(Hf,{size:"small",variant:"title"},yo.t("Details")),ot.createElement(yi,null,a.map((l,p)=>ot.createElement(Lp,{key:p,...l})))),ot.createElement(Pp,{size:32}),ot.createElement(qf,{type:"primary",size:"large",prefix:ot.createElement(Qf,null),fullWidth:!0,onClick:n},Q().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&&(at(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=Q().highValueLossError.title),t.type===1&&(o.title=Q().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:Q().unknownPriceError.impactTitle,description:Q().unknownPriceError.description}),So.createElement(Jf,{size:32}),So.createElement(Yf,{type:"primary",size:"large",prefix:So.createElement(eg,null),fullWidth:!0,onClick:n},Q().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:x,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:x,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(Q().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:W(Ut(e)),percentageChange:W($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}=z(),x=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,$=I?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=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:$});Ko("experimentalRoute",y)&&(N.experimental=!0);let L;try{L=await w(N).then(G=>_n(G)),n(L)}catch(G){return Dn(G)}let k={slippage:T.toString(),disabledSwappersGroups:g},M=lg(o.toString(),L,da(C),k,!1,{blockchains:x,tokens:h}),E=Up(r??void 0,L,{fromToken:t,toToken:e,meta:{blockchains:x,tokens:h},selectedWallets:C,userSlippage:T});return E.quoteUpdate&&a(!1),{quote:L,swap:M,error:null,warnings:E}},"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}=z(),c=!n,[g,f]=On(!1),x=Ae.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=Sg(h),{manager:A}=ug(),{fetch:T,loading:w,cancelFetch:b}=Ti(),[S,v]=On({swap:null,error:null,warnings:null}),[I,C]=On(!1),$=i(async({selectedWallets:E,customDestination:G})=>{let J=await T?.({selectedWallets:E,customDestination:G});return v(J),J},"onConfirmSwap"),N=i(async()=>{if(S.swap&&n)try{await A?.create("swap",{swapDetails:S.swap},{id:S.swap.requestId}),x(S.swap.requestId);let E=`../${_.swaps}/${S.swap.requestId}`;l(E,{replace:!0}),setTimeout(()=>{e("")},0)}catch(E){u("Error: "+E?.message)}},"addNewSwap"),L=i(async()=>{await N()},"onConfirm"),k=i(async()=>{S?.warnings?.quote&&!a?C(!0):await L()},"onStartConfirmSwap"),M=i(async()=>{v({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(E=>{v(E)}).catch(E=>console.error(E))},"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(E=>v(E)).catch(E=>console.error(E))},[]),ko(()=>{let E=S.warnings?.quote?.type&&Object.values(ft).includes(S.warnings?.quote?.type),G=o.length<1||!o.every(te=>m.find(H=>te.address===H.address&&te.walletType===H.walletType&&te.chain===H.chain)),J=!1;if(E){let te=Yo(t),H=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===H)||(te=te.slice(-te.length,te.length-1)),te.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(G||J)&&(queueMicrotask(()=>Cg(f.bind(null,!0))),r(!1))},[S.warnings?.quote,o.length,m.length]),yg(()=>{t||l("../")},[]),ee.createElement(X,{header:{title:Fn.t("Confirm Swap"),onWallet:()=>{let E=`../${_.wallets}`;l(E)},suffix:ee.createElement(fg,{container:O(),side:"bottom",content:Fn.t("Settings")},ee.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},ee.createElement(dg,{size:18,color:"black"})))},footer:ee.createElement(wg,null,ee.createElement("div",{className:xg()},ee.createElement(zp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!S.error,onClick:k},Fn.t("Start Swap"))),ee.createElement(Gp,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},ee.createElement(hg,{size:24})))},g&&ee.createElement(Pl,{open:g,onClose:()=>f(!1),onCancel:b,loading:w,onCheckBalance:$}),ee.createElement(Tg,null,ee.createElement("div",{className:Ag()},ee.createElement(gg,{variant:"title",size:"small"},Fn.t("You get")),ee.createElement(zp,{style:{padding:"0"},variant:"ghost",disabled:w,onClick:M},ee.createElement("div",{className:vg()},ee.createElement(mg,{size:16})))),p&&ee.createElement(ee.Fragment,null,ee.createElement(qp,{type:"error",variant:"alarm",title:p}),ee.createElement(cg,{size:12})),S.warnings?.quoteUpdate&&ee.createElement("div",{className:"quote-update__alert"},ee.createElement(qp,{variant:"alarm",type:"warning",title:S.warnings.quoteUpdate&&dn(S.warnings.quoteUpdate)})),ee.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 N()},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 Tt,{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 ut(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(ut,"SearchInput");import{i18n as Xp}from"@lingui/core";import{Divider as Kp,SwapListItem as Yp,Typography as Jp}from"@rango-dev/ui";import Z 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 Z.createElement(Z.Fragment,null,[{title:"Today",swaps:a},{title:"This month",swaps:a}].map(p=>Z.createElement(Z.Fragment,{key:p.title},Z.createElement(xi,null,Z.createElement(vi,null,Z.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(p.title))),Z.createElement(Kp,{size:4}),Z.createElement(Ai,null,p.swaps.map((u,m)=>{let c=m+p.title;return Z.createElement(Z.Fragment,{key:c},Z.createElement(Yp,{isLoading:!0}))}))))))}return Z.createElement(Z.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>Z.createElement(Z.Fragment,{key:a.title},Z.createElement(xi,null,Z.createElement(vi,null,Z.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(a.title))),Z.createElement(Kp,{size:4}),Z.createElement(Ai,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return Z.createElement(Z.Fragment,{key:l.requestId},Z.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:W(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=>Ke(o.fromBlockchain,e)||Ke(o.toBlockchain,e)||Ke(o.toSymbol,e)||Ke(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=>Ke(c.inputAmount,s)||Ke(c.status,s)||Ug(c.steps,s)||Ke(c.requestId,s)));let m=!u?.length&&!l;return Tt.createElement(X,{header:{title:zn.t("History")}},Tt.createElement(Fg,null,Tt.createElement(ut,{setValue:a,fullWidth:!0,variant:"contained",placeholder:zn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),Tt.createElement(Og,null,m&&Tt.createElement(jp,null,Tt.createElement($g,{size:32}),Tt.createElement(Mg,{title:zn.t("No results found"),description:s?zn.t("Try using different keywords"):""})),!m&&Tt.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,resetQuote:m,setQuote:c}=U(),{slippage:g,customSlippage:f,affiliatePercent:x,affiliateRef:h,affiliateWallets:y,disabledLiquiditySources:A}=d(),[T,w]=Ei(!1),[b,S]=Ei(null),[v,I]=Ei(null),C=f??g,N=!a||!l||Le(a,l)||!no(p),L=i(E=>{w(E),S(null),I(null)},"resetState"),k=i(E=>{let{fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:ye,slippage:Se,affiliateRef:Ce,affiliatePercent:Mt,affiliateWallets:oo}=E;if(T||L(!0),!N&&G&&J){m();let it=on({fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:ye,slippage:Se,affiliateRef:Ce,affiliatePercent:Mt,affiliateWallets:oo});Ko("experimentalRoute",r)&&(it.experimental=!0),t(it).then(Xe=>{w(!1),c(Xe),_n(Xe);let D=nn(Xe,{fromToken:G,toToken:J,userSlippage:C,tokens:s});I(D)}).catch(Xe=>{let{error:D}=Dn(Xe);(D?.type===0||D?.type===1)&&m(),D?.type!==2&&(S(D),w(!1))})}},"fetch"),M=Hg(js(E=>{N||k(E)},Vg),[N]);return Qg(()=>{if(!no(p)||u?.eq(0)){L(!1),e();return}if(!N)return m(),L(!0),M({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:A,slippage:C,affiliateRef:h,affiliatePercent:x,affiliateWallets:y}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,N,o?.length,n,A.length,C,h,x,JSON.stringify(y)]),{fetch:()=>k({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:A,slippage:C,affiliateRef:h,affiliatePercent:x,affiliateWallets:y}),loading:T,error:b,warning:v}}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:x,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=U(),A=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=z(),b=Ae.use.setCurrentPage(),[S,v]=Jg(!1),I=Yg(null),C=!!a&&zs(T,a.name),$=!1,N=!Er(x,m,c),L=!Er(x,m,f),k=ua({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:x,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:$}),M=s?w(s):null,E=Ho(M)?.amount??"0",G=a&&s?W(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(X,{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"?v(!0):t(_.confirmSwap)}},k.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Wi.t("Swap"),suffix:De.createElement(Xr,{layoutRef:I.current,onClickRefresh:x||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:E,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:N?void 0:W(c,4,4),realUsdValue:N?void 0:se(c),error:N?Q().unknownPriceError.impactTitle:void 0},disabled:A==="failed",loading:A==="loading",loadingBalance:C,tooltipContainer:O(),onSelectMaxBalance:()=>{E!=="0"&&u(G.split(",").join(""))}}),De.createElement(nu,null)),De.createElement(iu,{sharpBottomStyle:!!x?.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:W($e(c,f),2,2),warningLevel:at(J??0),price:{value:W(g,6,6),usdValue:L?void 0:W(f,4,4),realValue:se(g),realUsdValue:L?void 0:se(f),error:L?Q().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:x,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:S,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!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 wt from"react";import{styled as Gn}from"@rango-dev/ui";var ct=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:wt.createElement(sh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:wt.createElement(rh,{value:s}),start:wt.createElement(l,null)}});return wt.createElement(X,{header:{title:au.t("Language")}},wt.createElement(ct,null,wt.createElement(ih,{value:t},wt.createElement(oh,{type:wt.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"),x=g;return r&&(x=g.filter(h=>Ke(h.groupTitle,r))),ke.createElement(X,{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(ct,null,ke.createElement(ut,{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),!x.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,x.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 mt,{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=St(),[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 mt.createElement(X,{header:{title:Su.t("Select Blockchain")}},mt.createElement(Fi,{size:12}),g&&mt.createElement(mt.Fragment,null,mt.createElement(Eh,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),mt.createElement(Fi,{size:24})),mt.createElement(ut,{value:n,autoFocus:!0,placeholder:Su.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),mt.createElement(Fi,{size:16}),mt.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 le 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 le.createElement(le.Fragment,null,le.createElement(xu,{size:12}),le.createElement(Gi,{variant:"label",size:"large"},zi.t("Select Blockchain")),le.createElement(xu,{size:12}),le.createElement(wu,null,l==="loading"&&Array.from(Array(Mh),f=>le.createElement(Ph,{key:f,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(Xn,{selected:!n,onClick:()=>{o==="from"?u():p()}},le.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi.t("All"))),a.list.map(f=>le.createElement($h,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},le.createElement(Xn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},le.createElement(vu,{src:f.logo,size:30})))),c?le.createElement(Xn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},le.createElement(vu,{src:a.more[0].logo,size:30})):null,g?le.createElement(Xn,{onClick:s,key:"more-blockchains"},le.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 F,{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 F.createElement("div",{className:Vi()},o?F.createElement("div",{className:Qi()},o):F.createElement(Ji,{className:ji()},F.createElement(Jn,{variant:"title",size:"xmedium"},r.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Zi,{css:s},F.createElement(Ri,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&F.createElement("div",{className:`${Xi()} ${!o&&Ki()}`},F.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," ",F.createElement(Yt,{size:4,direction:"horizontal"}),F.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}=z(),{isTokenPinned:f}=d(),x=Hh((A,T)=>F.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?F.createElement(F.Fragment,null,F.createElement(Yt,{size:32}),F.createElement(qh,{title:es.t("No results found"),description:es.t("Try using different keywords")})):F.createElement(Gh,{Item:({index:A,style:T})=>{let w=s[A],b=Ho(c(w)),S=w.address||"",v=p.find(N=>N.name===w.blockchain),I=yn(w.symbol,v?.color||""),C={$$color:I[`${w.symbol}100`],[`.${$u} &`]:{$$color:I[`${w.symbol}900`]},backgroundColor:"$$color"},$={$$color:I[`${w.symbol}700`],[`.${$u} &`]:{$$color:I[`${w.symbol}100`]},color:"$$color"};return F.createElement("div",{style:{...T,paddingRight:5}},F.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:F.createElement(Wu,null,F.createElement(Oh,{src:w.image,size:30}),f(w,t.type)&&F.createElement(Bu,null,F.createElement(zh,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||w.name||!w.name&&!S?F.createElement(Ji,null,F.createElement(Jn,{variant:"title",size:"xmedium"},w.symbol),F.createElement(Yt,{direction:"horizontal",size:4}),F.createElement(Zi,{css:C},F.createElement(Ri,{variant:"body",size:"xsmall",css:$},w.blockchain))):void 0,description:v?.info&&S&&v.type!=="COSMOS"?Qh({address:S,token:s[A],customCssForTag:C,customCssForTagTitle:$,name:w.name,url:v.info.addressUrl.split("{wallet}").join(S)}):w.name||void 0,end:g?F.createElement(Yn,null,F.createElement(Mu,{variant:"text",size:"large",width:70}),F.createElement(Yt,{size:4}),F.createElement(Mu,{variant:"text",size:"medium",width:50})):b&&F.createElement(Eu,null,F.createElement(Nu,{variant:"title",size:"small"},b.amount),F.createElement("div",null),b.usdValue&&F.createElement(Jn,{variant:"body",className:Yi(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:x,size:60,key:`${r}-${o}`}),"renderList");return F.createElement(Iu,null,F.createElement(Jn,{variant:"label",size:"large"},es.t("Select Token")),F.createElement(Yt,{size:4}),l==="loading"&&F.createElement(Pu,{size:ts}),l==="success"&&F.createElement(Kn,null,y()))}i(Fu,"TokenList");function os(t){let{type:e}=t,o=jh(),n=St(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=z.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(v=>f(v,e),"checkIsTokenPinned")),b=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),S=i(v=>{e==="source"?a({token:v,meta:{blockchains:y,tokens:A}}):l({token:v,meta:{blockchains:y,tokens:A}})},"updateToken");return Jt.createElement(X,{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:v=>{b(v)}}),Jt.createElement(Uu,{size:24}),Jt.createElement(ut,{value:c,autoFocus:!0,placeholder:Ou.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:v=>g(v.target.value)}),Jt.createElement(Uu,{size:16}),Jt.createElement(Fu,{list:w,selectedBlockchain:h,searchedFor:c,type:e,onChange:v=>{S(v);let I=y.find(C=>v.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 V 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,x=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,$)=>{switch(o){case"loading":return V.createElement(ry,{variant:"text",size:"medium",width:50});case"failed":return V.createElement($t,{variant:"body",size:"medium",color:"$error500"},Pt.t("Loading failed"));default:return V.createElement($t,{variant:"body",size:"medium"},`${C} / ${$}`)}},"handleEndItem"),w={id:"bridge-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:V.createElement(V.Fragment,null,T(x,f),V.createElement(ss,{direction:"horizontal",size:8}),V.createElement(is,{color:"black"})),onClick:()=>t(_.bridges)},b={id:"exchange-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled exchanges")),end:V.createElement(V.Fragment,null,T(A,y),V.createElement(ss,{direction:"horizontal",size:8}),V.createElement(is,{color:"gray"})),onClick:()=>t(_.exchanges)},S={id:"theme-item",title:V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:V.createElement(is,{color:"gray"}),onClick:()=>t(_.themes)},v={id:"infinite-approval-item",title:V.createElement(V.Fragment,null,V.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Infinite approval")),V.createElement(ss,{direction:"horizontal",size:4}),V.createElement(sy,{side:"top",sideOffset:4,container:O(),content:V.createElement(Zn,null,V.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.")))},V.createElement(ty,{color:"gray"}))),end:V.createElement(iy,{checked:u}),onClick:m},I=l?[]:[w,b];return!e?.singleTheme&&!a&&I.push(S),I.push(v),V.createElement(X,{header:{title:Pt.t("Settings")}},V.createElement(ct,null,V.createElement(rs,null),V.createElement(oy,{type:V.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 dt}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 K,{useEffect as Tc,useRef as qy,useState as wc}from"react";import{useNavigate as zy}from"react-router-dom";import{i18n as xt}from"@lingui/core";var ly=[xt.t("Sunday"),xt.t("Monday"),xt.t("Tuesday"),xt.t("Wednesday"),xt.t("Thursday"),xt.t("Friday"),xt.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()?xt.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 nt from"react";var Ru=i(({onCancel:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(as,{size:20}),nt.createElement(py,{type:"error",title:Rn.t("Cancel Swap"),description:Rn.t("Are you sure you want to cancel this swap?")}),nt.createElement(as,{size:32}),nt.createElement(Ju,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(Zu,{variant:"title",size:"medium",color:"neutral100"},Rn.t("Yes, Cancel it"))),nt.createElement(as,{size:12}),nt.createElement(Ju,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.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 rt from"react";var oc=i(({onDelete:t,onClose:e})=>rt.createElement(rt.Fragment,null,rt.createElement(ls,{size:20}),rt.createElement(uy,{type:"error",title:er.t("Delete Transaction"),description:er.t("Are you sure you want to delete this swap?")}),rt.createElement(ls,{size:32}),rt.createElement(ec,{variant:"contained",type:"primary",size:"large",onClick:t},rt.createElement(tc,{variant:"title",size:"medium",color:"neutral100"},er.t("Yes, Delete it"))),rt.createElement(ls,{size:12}),rt.createElement(ec,{variant:"outlined",type:"primary",size:"large",onClick:e},rt.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 vt,{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 vt.createElement(ac,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,x=c===g.length-1,h=x&&u||p,y=x&&s.status==="failed";return vt.createElement(Ey,{key:f},vt.createElement(cc,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:Ay.t("View transaction"),action:m.url&&vt.createElement(by,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},vt.createElement(Iy,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&vt.createElement(cc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&vt.createElement(uc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&vt.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:Je(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:W(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Je(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:W(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),x=qy(null),[h,y]=wc(null),[A,T]=wc(null),w=i(()=>{r(),y(null)},"onCancel"),b=Me.use.getUnreadNotifications(),S=Me.use.setAsRead(),v=b(),I=Ly(e),C=I?.networkStatus;Tc(()=>{v.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),S(e.requestId))},[e.status]),Tc(()=>{G?y(ur.WaitingForNetworkChange):C===ur.WaitingForConnectingWallet||C===ur.NetworkChanged?y(C):y(null)},[C]);let $=Ca(e),N=I?Ny(e,I):null,L=I?Py(e,I):null,k=Yu(e),M=ka(e),E=i(ue=>!!l(ue)?.mobileWallet,"isMobileWallet"),G=C===ur.WaitingForNetworkChange&&!!N&&!!L?.walletType&&(E(L.walletType)||s(L.walletType,N)),J=G?a.bind(null,L.walletType,N):void 0,te=Sa(e,I),H=dc({swap:e,switchNetwork:J,showNetworkModal:C,setNetworkModal:y,message:te,blockchains:p}),re=H.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((ue,de)=>ue+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ue=>ue.diagnosisUrl)?.diagnosisUrl,it=W(parseFloat(W(Ce,6,6))*(Se.toUsdPrice||0),4,4),Xe=W(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),D=Ce?se(new kc(Ce).multipliedBy(Se.toUsdPrice||0)):"",Y=se(new kc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),j=$e(Xe,it),Ee=e.status==="success"?dt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:W(Ce,6,6),token:H[re-1].to.token.displayName,conciseAddress:Qo(e.wallets[H[re-1].to.chain.displayName]?.address||""),chain:H[re-1].to.chain.displayName}}):`${dt.t("Transaction was not sent.")} ${$?dt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:$.outputAmount,symbol:$.symbol,blockchain:$.blockchain}}):""}`;return K.createElement(X,{noPadding:!0,header:{title:dt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Gt,null,K.createElement(Cc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},K.createElement(eo,{size:"medium",variant:"label",color:"error"},dt.t("Delete"))))},footer:M&&!A&&K.createElement(Cc,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},dt.t("Try again"))},K.createElement(ar,null,K.createElement(lr,null,K.createElement("div",{className:Rt()},K.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${dt.t("Request ID")}:`),K.createElement("div",{className:pr()},K.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(_y,{variant:"ghost",onClick:f.bind(null,o||"")},K.createElement($y,{size:16,color:"gray"})))),K.createElement("div",{className:Rt()},K.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${dt.t(e.finishTime?"Finished at":"Created at")}:`),K.createElement(eo,{variant:"label",size:"small",color:"neutral700"},k))),K.createElement("div",{className:yc()},K.createElement(Dy,{fee:W(String(Mt),2,2),time:Do(Fo(e.steps)),steps:re}),K.createElement(uo,{from:{price:{value:W(e.inputAmount,6,6),usdValue:Xe,realUsdValue:Y,realValue:e.inputAmount},token:{displayName:H[0].from.token.displayName,image:H[0].from.token.image},chain:{image:H[0].from.chain.image,displayName:H[0].from.chain.displayName}},to:{price:{value:W(Ce,6,6),usdValue:it,realUsdValue:D,realValue:Ce},token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[re-1].to.chain.image,displayName:H[re-1].to.chain.displayName}},percentageChange:W(j,2,2),warningLevel:at(j??0)})),K.createElement("div",{className:Sc()},K.createElement(eo,{variant:"title",size:"small"},dt.t("Swaps steps"))),K.createElement(My,{size:8}),K.createElement(gc,{ref:x},H.map((ue,de)=>{let Mo=de,st=fc(e.steps[de]),Hc=st==="error"||st==="in-progress"||st==="warning"||st==="completed"&&de===H.length-1;return K.createElement(Fy,{key:Mo,step:ue,type:"swap-progress",ref:x,state:st,hasSeparator:de!==0,tabIndex:Mo,isFocused:Hc,tooltipContainer:O()})}))),K.createElement(ms,{state:h,onClose:()=>y(null),onCancel:w,onDelete:n,message:te.detailedMessage.content,currentStepWallet:L}),K.createElement(fs,{open:!!A,diagnosisUrl:oo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:W(Ce,6,6),usdValue:it,realUsdValue:D,realValue:se(Ce),percentageChange:W(j,2,2),token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[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 pe 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(tt,{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(tt,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(tt,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(tt,{separator:!1}))))}i(ks,"LoadingSwapDetails");function bc(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(X,{noPadding:!0,header:{title:No.t("Swap and Bridge"),suffix:pe.createElement(Gt,null)}},o&&pe.createElement(ar,null,pe.createElement(lr,null,pe.createElement("div",{className:Rt()},pe.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Request ID")}:`),pe.createElement("div",{className:pr()},pe.createElement(mr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Ac,{width:60,height:10,variant:"rounded"})),pe.createElement(Xy,{variant:"ghost"},pe.createElement(jy,{size:16,color:"gray"})))),pe.createElement("div",{className:Rt()},pe.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Created at")}:`),pe.createElement(mr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Ac,{width:60,height:10,variant:"rounded"})))),pe.createElement(ks,null)),!o&&pe.createElement(hc,null,pe.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=St(),{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(X,{header:{title:Lo.t("Theme")}},be.createElement(ct,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=z.use.connectedWallets(),o=z.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:z.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),{}),x=p.filter(yS),h=i(T=>{let{supportedChains:w}=a(T);return qo(w)},"getSupportedChainNames"),y=e(),A={meta:{blockchains:f,evmBasedChains:x,evmNetworkChainInfo:hS(x),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=z.use.connectedWallets(),s=z.use.loading(),a=Fs(r),l=z.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 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};
2
2
  //# sourceMappingURL=index.js.map