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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var Qc=Object.defineProperty;var i=(t,e)=>Qc(t,"name",{value:e,configurable:!0});import{MainEvents as gD,RouteEventType as hD,StepEventType as yD,StepExecutionBlockedEventStatus as SD,StepExecutionEventStatus as CD,useEvents as kD}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as wD,useWallets as Bl,Events as xD}from"@rango-dev/wallets-react";import{Networks as AD,WalletTypes as bD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as ED}from"rango-types";import{Events as $r,Provider as Im}from"@rango-dev/wallets-react";import{isEvmBlockchain as Em}from"rango-sdk";import ln,{createContext as Wm,useEffect as Mr,useRef as Bm,useState as Nm}from"react";import{useEffect as rn,useLayoutEffect as Ia,useRef as sn}from"react";import um,{createContext as cm,useContext as mm,useEffect as dm,useRef as fm}from"react";import{create as lm}from"zustand";import{persist as pm}from"zustand/middleware";var gr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},Is=i((t,e,o)=>({config:{...gr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as nm}from"rango-sdk";var _o="c6381a79-2817-4602-83bf-6a641a409e32",Es="https://api.rango.exchange",Te="rango-swap-box";import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as Xc}from"@rango-dev/wallets-react";import{detectInstallLink as Kc,getCosmosExperimentalChainInfo as Yc,isEvmAddress as Jc,KEPLR_COMPATIBLE_WALLETS as VS,Networks as Ls}from"@rango-dev/wallets-shared";import hr from"bignumber.js";import{isCosmosBlockchain as Zc}from"rango-types";import Vc from"bignumber.js";var We=new Vc(0);import{WalletTypes as jc}from"@rango-dev/wallets-shared";var Ws=[jc.LEAP];import{BigNumber as Ns}from"bignumber.js";var Do=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),E=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ns(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Ns(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Fo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Xe=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return E(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function yr(t){switch(!0){case t.connected:return Ke.CONNECTED;case t.connecting:return Ke.CONNECTING;case!t.installed:return Ke.NOT_INSTALLED;default:return Ke.DISCONNECTED}}i(yr,"mapStatusToWalletState");function Ps(t,e,o,n){return o.filter(r=>!Ws.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(m=>m.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=yr(t(r));return{title:s,image:a,link:Kc(l),state:p,type:r}})}i(Ps,"mapWalletTypesToWalletInfo");function qo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(qo,"walletAndSupportedChainsNames");function $s(t,e,o,n,r){let s=[];function a(p,u){if(!!!s.find(c=>c.chain===p)){let c={address:u,chain:p,walletType:t};s.push(c)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:m}=Xc(p),c=l.length>0,g=l.includes(m),f=m===Ls.Unknown;if(c&&!g&&!f)return;let h=m===Ls.Unknown&&Jc(u);if(f&&!h)return;o.includes(m)||h?r?a(m,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{a(T,u.toLowerCase())}):a(m,u)}),s}i($s,"prepareAccountsForWalletStore");function Ms(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(s=>{let a=s.from.blockchain,l=s.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(Ms,"getRequiredChains");function zo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(zo,"isAccountAndWalletMatched");function _s(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new hr(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:em(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(_s,"makeBalanceFor");function Ds(t){return{...t,loading:!1,error:!0}}i(Ds,"resetConnectedWalletState");var Fs=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=E(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new hr(s?.amount||We).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),We)||We).toString();return Rc(r)},"calculateWalletUsdValue");function Rc(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Rc,"numberWithThousandSeparator");var em=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Go=i((t,e)=>{let o=Yc(Object.entries(t).map(([,n])=>n).filter(Zc));return o&&o[e]?.experimental},"isExperimentalChain");function Ho(t){return t?{...t,amount:E(t.amount,8,8),usdValue:E(t.usdValue,4,4)}:null}i(Ho,"formatBalance");function tm(t,e){return t?.usdValue&&e?.usdValue?parseFloat(e.usdValue)-parseFloat(t.usdValue):!t?.usdValue&&e?.usdValue?1:t?.usdValue&&!e?.usdValue?-1:!t?.usdValue&&!e?.usdValue?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(tm,"sortTokensByBalance");function om(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(om,"sortTokensByPinnedToken");function Os(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=om(n,r,o);return l!==0?l:tm(s,a)}),t}i(Os,"sortTokens");function Le(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Le,"tokensAreEqual");function Us(t){return t.sort((e,o)=>+(o.state===Ke.CONNECTED)-+(e.state===Ke.CONNECTED)||+(o.state===Ke.DISCONNECTED||o.state===Ke.CONNECTING)-+(e.state===Ke.DISCONNECTED||e.state===Ke.CONNECTING))}i(Us,"sortWalletsBasedOnConnectionState");function Qo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Qo,"getConciseAddress");function qs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(qs,"getAddress");function Sr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Sr,"createTokenHash");function Vo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new hr(o?.usdPrice??We).multipliedBy(o?.amount).toString():""},r=o?Sr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(Vo,"makeTokensBalance");var zs=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var Cr={API_KEY:_o};function _t(t){return Cr[t]||""}i(_t,"getConfig");function Gs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Cr=e,Cr}i(Gs,"initConfig");var Hs=20,Qs=25,Vs="Roboto",kr="theme-widget",ro=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Le(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Le(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Tr=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig");var jo,Dt=i(()=>jo||(jo=new nm(_t("API_KEY"),_t("BASE_URL")),jo),"httpService");function Ft(t){return Array.from(new Set(t))}i(Ft,"removeDuplicateFrom");function wr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wr,"areEqual");function js(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(js,"debounce");function At(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(At,"containsText");var O=i(()=>document.getElementById(Te),"getContainer");function Xo(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Ft(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Xo,"getUniqueSwappersGroups");function Xs(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Xs,"sortLiquiditySourcesByGroupTitle");function Pe(t,e){return e?.[t]==="hidden"}i(Pe,"isFeatureHidden");function Ko(t,e){return e?.[t]==="enabled"}i(Ko,"isFeatureEnabled");var Ks=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??{},a=e().blockchains({type:o.type});return n.filter(p=>s&&ro(p,s)||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(At(p.symbol,o.searchFor)||At(p.address||"",o.searchFor)||At(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(u,o.type)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Le(a,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(Xs)},fetch:async()=>{try{let o=await Dt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],s=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as rm,French as im,Japanese as sm,Spanish as am}from"@rango-dev/ui";var Ys=[{title:"English",label:"English",local:"en",SVGFlag:rm},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:am},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:im},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:sm}],Ot="en";var Js=[.5,1,3],Zs=1,Rs=5,ea=100,ta=0;var oa=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ot,preferredBlockchains:[],slippage:Zs,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let s=Ft(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n}=o,r=Pe("theme",n),s=Pe("language",n),a=Pe("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:Ot},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function na(t){return lm()(pm((...e)=>({...Ks(...e),...oa(...e),...Is(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(na,"createAppStore");var ra=cm(null);function d(){let t=mm(ra);if(dm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function ia(t){let e=fm();return e.current||(e.current=na(t.config)),um.createElement(ra.Provider,{value:e.current},t.children)}i(ia,"AppStoreProvider");import ht from"bignumber.js";import{create as Tm}from"zustand";import{subscribeWithSelector as wm}from"zustand/middleware";import{getLastSuccessfulStep as Cm}from"@rango-dev/queue-manager-rango-preset";import Ak from"bignumber.js";var dt=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(dt||{});function sa(t,e){return e.find(o=>o.name===t)?.displayName}i(sa,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function aa(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(aa,"getSwapperDisplayName");function vr(t,e){return e.find(o=>Le(o,t))??null}i(vr,"findToken");function Ar(t,e){return e.find(o=>o.name===t)??null}i(Ar,"findBlockchain");import{i18n as Oe}from"@lingui/core";import ve from"bignumber.js";import{PendingSwapNetworkStatus as Ro}from"rango-types";function Yo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Yo,"getRequiredWallets");function Jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Jo,"isValidAddress");import{i18n as fe}from"@lingui/core";var V=i(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function la(t){switch(t.type){case 0:return t.diagnosisMessage??V().noResultError.title;case 1:return V().genericServerError;default:return""}}i(la,"getQuoteErrorMessage");import{i18n as Zo}from"@lingui/core";var bt=i(()=>({connectWallet:Zo.t("Connect Wallet"),swap:Zo.t("Swap"),swapAnyway:Zo.t("Swap anyway"),ethWarning:Zo.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function pa(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ve(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ve(1e3)))??!1}i(pa,"hasHighValueLoss");function br(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(br,"hasLimitError");function Ir(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ve(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ve(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=Oe.t({id:"Required: >= {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Oe.t({id:"Required: > {min} {symbol}",values:{min:E(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Oe.t({id:"Required: <= {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Oe.t({id:"Required: < {max} {symbol}",values:{max:E(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Ir,"getLimitErrorMessage");function ua(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:bt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:bt().swap,action:"confirm-swap",disabled:!0}:a?{title:bt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:bt().ethWarning,action:"confirm-warning",disabled:!1}:{title:bt().swap,action:"confirm-swap",disabled:!1}:{title:bt().connectWallet,action:"connect-wallet",disabled:!1}}i(ua,"getSwapButtonState");function Er(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(Er,"canComputePriceImpact");function gm(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(gm,"requiredWallets");var hm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function ym(t,e){let o=We;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=hm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(ym,"getUsdFeeOfStep");function en(t,e){return t.reduce((o,n)=>o.plus(ym(n,e)),We)}i(en,"getTotalFeeInUsd");function Wr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(Wr,"checkSlippageErrors");function ca(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(ca,"checkSlippageWarnings");function tn(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(tn,"getMinRequiredSlippage");function ma(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ma,"hasProperSlippage");function on(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:f,destination:v}=t,h=s?.reduce((b,S)=>(b[S.chain]=S.address,b),{}),y=[];r?.forEach(b=>{let S=y.find(x=>x.blockchain===b.chain);S?S.addresses.push(b.address):y.push({blockchain:b.chain,addresses:[b.address]})});let A=!!f,T=Ft((f?.result?.swaps||[]).reduce((b,S)=>(b.push(S.from.blockchain,S.to.blockchain),S.internalSwaps&&Array.isArray(S.internalSwaps)&&S.internalSwaps.map(x=>{b.push(x.from.blockchain,x.to.blockchain)}),b),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:g??void 0,checkPrerequisites:A,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:h??{},slippage:u.toString(),...v&&{destination:v},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(b=>!a.includes(b)),swappersGroupsExclude:!1},...A&&{blockchains:T}}}i(on,"createQuoteRequestBody");function da(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(da,"getWalletsForNewSwap");function Ut(t){return t.result?.outputAmount||null}i(Ut,"getQuoteOutputAmount");function fa(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(fa,"getPercentageChange");function ga(t,e){let o=Ut(t),n=Ut(e);if(!o||!n)return!1;let r=$e(o,n);return r?r<=-1:!0}i(ga,"isOutputAmountChangedALot");function ha(t,e,o){let n=t.validationStatus,r=Ms(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>wa(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=E(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=E(new ve(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Oe.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Oe.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Oe.t(" for input and network fee")),Oe.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Ye(a.asset.blockchain,o)}})})}i(ha,"generateBalanceWarnings");function ya(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(ya,"calcOutputUsdValue");function io(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ro.NetworkChanged}i(io,"isNetworkStatusInWarningState");function Sa(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),io(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Ro.WaitingForConnectingWallet:n=n||Oe.t("Waiting for connecting wallet");break;case Ro.WaitingForQueue:n=n||Oe.t("Waiting for other running tasks to be finished");break;case Ro.WaitingForNetworkChange:n=n||Oe.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(Sa,"getSwapMessages");function Ca(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(Ca,"getLastConvertedTokenInFailedSwap");function ka(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(ka,"shouldRetrySwap");function Ta(t,e,o,n,r,s){return t||!e&&!gm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Jo(s,o)}i(Ta,"confirmSwapDisabled");function Br(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(Br,"searchParamsToToken");function va(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(va,"getQuoteToTokenUsdPrice");function Nr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Nr,"isNumberOfSwapsChanged");function Lr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!wr(o,n)}i(Lr,"isQuoteSwappersUpdated");function Pr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!wr(o,n)}i(Pr,"isQuoteInternalCoinsUpdated");function Aa(t,e){return Nr(t,e)||Lr(t,e)||Pr(t,e)}i(Aa,"isQuoteChanged");function wa(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(wa,"getRequiredBalanceOfWallet");function it(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(it,"getPriceImpactLevel");function ba(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Cm(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ar(s?s.toBlockchain:n.fromBlockchain,e),p=Ar(r.toBlockchain,e),u=vr(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=vr(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(ba,"createRetryQuote");function nn(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=It(o,t.requestAmount),l=It(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=$e(a.toString(),l.toString());if(!!m&&pa(a,m)){let g=en(t.result.swaps,r),f=it(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=tn(t),u=s>Rs;if(ma(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:ca(t,s),minRequiredSlippage:p};return null}i(nn,"generateQuoteWarnings");function $e(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:fa(t.toString(),e.toString());return n&&n<0?n:null}i($e,"getPriceImpact");var km=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),gt=km;var It=i((t,e)=>t?.usdPrice?new ht(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=gt(Tm()(wm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ht(0),outputUsdValue:new ht(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=We;return no(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ht(e.result?.outputAmount):null,r=ya(e.result?.outputAmount,va(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new ht(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:It(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new ht(0),outputUsdValue:new ht(0),quote:null},...!!o.fromToken&&{inputUsdValue:It(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=ba(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:It(a??null,u),outputUsdValue:new ht(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:It(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Ea(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=U(),u=d().config,m=d().fetchStatus,c=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:v,setAffiliateWallets:h}=d(),y=u?.from?.tokens,A=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,b=sn(void 0),S=sn(void 0),x=sn(void 0),I=sn(void 0);rn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Ia(()=>{if(m==="success"){let C=c.find($=>$.name===u?.from?.blockchain),N=g.find($=>Le($,u?.from?.token||null));(C||!C&&x.current)&&n(C??null),N?r({token:N,meta:{blockchains:c,tokens:g}}):!N&&b.current&&r({token:null}),x.current=u?.from?.blockchain,b.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),rn(()=>{ro(s,y)&&r({token:null}),Tr(l,A)&&n(null)},[y,A]),rn(()=>{ro(a,T)&&r({token:null}),Tr(p,w)&&o(null)},[T,w]),Ia(()=>{if(m==="success"){let C=c.find($=>$.name===u?.to?.blockchain),N=g.find($=>Le($,u?.to?.token||null));(C||!C&&I.current)&&o(C??null),N?e({token:N,meta:{blockchains:c,tokens:g}}):!N&&S.current&&e({token:null}),I.current=u?.to?.blockchain,S.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),rn(()=>{f(u?.affiliate?.ref??null),v(u?.affiliate?.percent??null),h(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ea,"useSyncStoresWithConfig");import{useEffect as bm}from"react";import{create as xm}from"zustand";import{subscribeWithSelector as vm}from"zustand/middleware";var H=gt(xm()(vm((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Vo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>zo(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Dt().getWalletsDetails(a)).wallets;if(p)t(u=>{let m=u.connectedWallets.map(g=>{let f=o.find(h=>zo(h,g)),v=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return v?.failed&&f&&r&&s([f],n,!1),f&&v?{...g,explorerUrl:v.explorerUrl,balances:_s(v,n),loading:!1}:g});return{loading:!1,balances:Vo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>zo(c,m))?Ds(m):m);return{loading:!1,balances:Vo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Sr(o);return n[r]??null}}))));import{allProviders as Am}from"@rango-dev/provider-all";function an(t,e){let o=Am({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(an,"matchAndGenerateProviders");function Wa(t,e){return an(t,e).map(r=>r.config.type)}i(Wa,"configWalletsToWalletName");function Ba(t,e){let o=H.use.clearConnectedWallet(),n=an(void 0,e);return bm(()=>{o(),n=an(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Ba,"useWalletProviders");var pn=Wm({onConnectWallet:()=>{}});function Lm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},[l,p]=Nm([]),{providers:u}=Ba(t.config.wallets,a),{connectWallet:m,disconnectWallet:c}=H(),g=Bm();Ea(),Mr(()=>{n().catch(console.log)},[]),Mr(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let f=r.filter(Em).map(h=>h.name),v=i((h,y,A,T,w)=>{if(y===$r.ACCOUNTS)if(A){let b=qo(w.supportedBlockchains),S=$s(h,A,f,b,w.isContractWallet);p(S)}else c(h);if(y===$r.ACCOUNTS&&T.connected){let b=`${h}-${T.network}-${A}`;T.connected&&(g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(y===$r.NETWORK&&T.network){let b=`${h}-${T.network}`;g.current?g.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(h,y,A,T,w)},"onUpdateState");return Mr(()=>{l.length&&m(l,s)},[l,s]),ln.createElement(pn.Provider,{value:{onConnectWallet:h=>{g.current=h}}},ln.createElement(Im,{allBlockChains:r,providers:u,onUpdateState:v,autoConnect:!0},t.children))}i(Lm,"Main");function un(t){let{config:e,...o}=t;return ln.createElement(ia,{config:e},ln.createElement(Lm,{...o,config:e}))}i(un,"WidgetWallets");import bs from"react";import{I18nManager as uS}from"@rango-dev/ui";import Po,{useContext as cS,useEffect as Fc,useState as Oc}from"react";import{useQueueManager as qm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as zm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Gm}from"rango-types";import cn,{Fragment as Hm}from"react";import{MemoryRouter as Qm,useInRouterContext as Vm}from"react-router";import{useWallets as $m}from"@rango-dev/wallets-react";import{useEffect as Mm,useRef as _m}from"react";function Na(){let{connect:t,state:e}=$m(),o=_m({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Mm(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(Na,"useForceAutoConnect");import{useEffect as _r,useRef as Dr}from"react";import{createSearchParams as Fm,useLocation as Om,useSearchParams as Um}from"react-router-dom";var _={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as Dm}from"zustand";var Ae=gt(Dm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function La(){let t=Dr(!0),[e,o]=Um(),n=Om(),r=Dr(n.search),s=Dr({}),a=U.use.fromBlockchain(),l=U.use.toBlockchain(),p=U.use.fromToken(),u=U.use.toToken(),m=U.use.setFromBlockchain(),c=U.use.setFromToken(),g=U.use.setToBlockchain(),f=U.use.setToToken(),v=U.use.inputAmount(),h=U.use.setInputAmount(),y=d().fetchStatus,A=d().blockchains(),T=d().tokens(),w=Ae.use.setSelectedSwap();return _r(()=>{let b={};Fm(r.current).forEach((x,I)=>{b[I]=x}),s.current=b;let S=n.pathname.split(_.swaps+"/")[1]||null;S&&w(S)},[]),_r(()=>{if(!t.current){let b="",S="",x="",I="",C="",N=s.current["autoConnect"];y!=="success"?(b=s.current["fromBlockchain"],S=s.current["fromToken"],x=s.current["toBlockchain"],I=s.current["toToken"],C=s.current["fromAmount"]||v):(b=a?.name||"",S=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),x=l?.name||"",I=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),C=v),o({...b&&{["fromBlockchain"]:b},...S&&{["fromToken"]:S},...x&&{["toBlockchain"]:x},...I&&{["toToken"]:I},...C&&{["fromAmount"]:C.toString()},...N&&{["autoConnect"]:N}},{replace:!0})}t.current=!1},[n.pathname,v,a,p,l,u]),_r(()=>{if(y==="success"){let b=e.get("fromBlockchain"),S=e.get("fromToken"),x=e.get("toBlockchain"),I=e.get("toToken"),C=e.get("fromAmount"),N=A.find(M=>M.name===b),$=Br(T,S,N||null),B=A.find(M=>M.name===x),k=Br(T,I,B||null);N&&(m(N),$&&c({token:$,meta:{blockchains:A,tokens:T}})),B&&(g(B),k&&f({token:k,meta:{blockchains:A,tokens:T}})),C&&h(C)}},[y]),null}i(La,"UpdateUrl");function Pa({children:t,...e}){let o=Vm(),n=o?Hm:Qm,r=d().blockchains(),{canSwitchNetworkTo:s}=zm();Na();let a=r.filter(Gm);return qm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),cn.createElement(cn.Fragment,null,cn.createElement(n,null,t),o&&cn.createElement(La,null))}i(Pa,"AppRouter");import Ie from"react";import{useRoutes as rS}from"react-router-dom";import{i18n as Fn}from"@lingui/core";import{useManager as ug}from"@rango-dev/queue-manager-react";import{Alert as qp,Button as zp,css as wi,Divider as cg,IconButton as Gp,RefreshIcon as mg,SettingsIcon as dg,styled as Hp,Tooltip as fg,Typography as gg,WalletIcon as hg}from"@rango-dev/ui";import te,{useEffect as ko,useLayoutEffect as yg,useRef as Sg,useState as On}from"react";import{flushSync as Cg}from"react-dom";import{useNavigate as kg}from"react-router-dom";import{i18n as st}from"@lingui/core";import{Alert as oi,BalanceErrors as uf,Button as Nl,ChevronDownIcon as cf,ChevronLeftIcon as mf,Divider as Qt,MessageBox as df,Modal as Ll,Typography as En,WalletIcon as ff}from"@rango-dev/ui";import P,{useEffect as gf,useLayoutEffect as hf,useRef as yf,useState as Bt}from"react";import{useNavigate as Sf}from"react-router-dom";import{i18n as mn}from"@lingui/core";function dn(t){switch(t.type){case 0:return mn.t("Route has been updated.");case 3:return mn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return mn.t("Route swappers has been updated.");case 2:return mn.t("Route internal coins has been updated.");default:return""}}i(dn,"getQuoteUpdateWarningMessage");import*as zt from"@radix-ui/react-collapsible";import{Button as Xm,css as $a,darkTheme as qt,IconButton as Km,keyframes as Ma,styled as ge,TextField as Ym}from"@rango-dev/ui";var so=300,Jm=Ma({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Zm=Ma({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_a=ge("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Da=ge("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Rm=ge("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Fa=ge(Rm,{alignSelf:"stretch",minHeight:"93px"}),Oa=ge(zt.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Ua=ge("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),qa=ge(Km,{position:"absolute",left:"$20"}),za=ge("div",{paddingTop:"$20"}),Ga=$a({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ha=ge(zt.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Qa=ge(Xm,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${qt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${qt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${qt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Va=ge("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),ja=$a({paddingTop:"5px"}),Xa=ge("div",{transition:`all ${so}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ka=ge("div",{display:"flex"}),Ya=ge(Ym,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),fn=ge(zt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${Jm} ${so}ms ease-out`},false:{animation:`${Zm} ${so}ms ease-out`}}}}),Ja=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as af,Divider as ei,Image as lf,MessageBox as In,Modal as bl,SelectableWallet as pf,Typography as Il,WalletState as El}from"@rango-dev/ui";import ee,{useEffect as Wl,useState as lo}from"react";import{WalletState as Fr}from"@rango-dev/ui";import{useWallets as ed}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as td,WalletTypes as gn}from"@rango-dev/wallets-shared";import{useEffect as od,useState as nd}from"react";var rd=Object.values(gn);function hn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=ed(),{connectedWallets:u}=H(),m=d().blockchains(),c=Wa(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||rd,g=Ps(s,l,c,o),f=Us(g),[v,h]=nd(""),y=i(S=>!u.find(x=>x.walletType===S&&x.chain===o),"isExperimentalChainNotAdded"),A=i(async S=>{let x=s(S);try{if(v&&h(""),x.connected)await a(S);else{let I=!!g.find(C=>C.state===Fr.CONNECTED);if(!e?.multiWallets&&I)return;n?.(S),await p(S),r?.(S)}}catch(I){h("Error: "+I?.message)}},"handleClick"),T=i(()=>{let S=g?.filter(x=>x.state===Fr.CONNECTING)||[];for(let x of S)a(x.type)},"disconnectConnectingWallets");od(()=>()=>{T()},[]);let w=i(S=>S.filter(I=>I.state!=Fr.NOT_INSTALLED&&![gn.DEFAULT,gn.WALLET_CONNECT_2].includes(I.type)&&l(I.type).supportedChains.filter(C=>C.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),b=i((S,x,I)=>Go(I,x)&&y(S)&&!td.includes(S)||S==gn.DEFAULT&&!w(g),"shouldExcludeWallet");return{list:f.filter(S=>!b(S.type,o??"",m)),error:v,handleClick:A}}i(hn,"useWalletList");import{i18n as Cl}from"@lingui/core";import{styled as Tl,Typography as Zd,Wallet as Rd,WalletState as ef}from"@rango-dev/ui";import Wt,{Fragment as tf,useState as kl}from"react";import{BottomLogo as zd,Divider as Gd,Header as Hd}from"@rango-dev/ui";import he from"react";import{useNavigate as id}from"react-router-dom";function yt(){let t=id();return()=>t(-1)}i(yt,"useNavigateBack");import{createTheme as zr,darkTheme as ud,lightTheme as cd}from"@rango-dev/ui";import{useEffect as el,useState as md}from"react";import{theme as ld,darkColors as pd}from"@rango-dev/ui";var Za=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),yn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:Za(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:Za(e,-((l-5)*25))});return a},"generateRangeColors"),Or=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=yn(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,...yn(s,a)}}return n?r:{}},"generateColors");var Ra=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),sd=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Ra(o%52)+e;return Ra(o%52)+e},"toAlphabeticName"),ad=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ur=i(t=>sd(ad(5381,JSON.stringify(t))>>>0),"toHash");function qr(t){let e=ld.colors,o=Or({...e,...pd},!0,t?.dark),n=Or(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${kr}-light-${Ur(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${kr}-dark-${Ur(p)}`,tokens:p}}return{light:a,dark:l}}i(qr,"customizedThemeTokens");function Sn(t){let{colors:e,fontFamily:o=Vs,borderRadius:n=Hs,secondaryBorderRadius:r=Qs,mode:s="auto"}=t,[a,l]=md("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=qr(e),g=zr({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,cd.className],v=[g.className,ud.className];if(c){let y=zr(c.id,c.tokens);f.push(y.className)}if(m){let y=zr(m.id,m.tokens);v.push(y.className)}return el(()=>{let y=i(A=>{A.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),el(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let y=f.join(" "),A=v.join(" ");return u==="auto"?a==="dark"?A:y:u==="dark"?A:y},"getActiveTheme")}}i(Sn,"useTheme");import{ChevronLeftIcon as gd}from"@rango-dev/ui";import nl from"react";import{darkTheme as dd,IconButton as fd,styled as Cn}from"@rango-dev/ui";var Ue=Cn(fd,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),tl=Cn("div",{position:"absolute",background:"$secondary500",[`.${dd} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=Cn("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),ol=Cn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function Gr(t){return nl.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},nl.createElement(gd,{color:"black",size:16}))}i(Gr,"BackButton");import{i18n as hd}from"@lingui/core";import{Button as yd,Typography as Sd}from"@rango-dev/ui";import Hr from"react";function Qr(t){return Hr.createElement(Gt,null,Hr.createElement(yd,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Hr.createElement(Sd,{variant:"label",size:"medium",color:"error500"},hd.t("Cancel"))))}i(Qr,"CancelButton");import{i18n as Cd}from"@lingui/core";import{Tooltip as kd,WalletIcon as Td}from"@rango-dev/ui";import kn from"react";function Vr(t){return kn.createElement(kd,{container:t.container,side:"top",content:Cd.t("Connect Wallet")},kn.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(tl,null),kn.createElement(Td,{size:18,color:"black"})))}i(Vr,"WalletButton");import{i18n as xn}from"@lingui/core";import{NotificationsIcon as _d,Popover as Dd,RefreshIcon as Fd,SettingsIcon as Od,Tooltip as vn,TransactionIcon as Ud}from"@rango-dev/ui";import le from"react";import{i18n as Wd}from"@lingui/core";import{ChainToken as pl,ChevronRightIcon as Bd,ListItemButton as Nd,Typography as Ld}from"@rango-dev/ui";import qe from"react";import{useNavigate as Pd}from"react-router-dom";import{create as wd}from"zustand";import{persist as xd,subscribeWithSelector as vd}from"zustand/middleware";var Me=gt(wd()(xd(vd((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:s.toBlockchain,tokenSymbol:s.toSymbol,tokenAddress:s.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as Tn}from"@rango-dev/ui";var rl=Tn("div",{padding:"$10",width:"350px",minHeight:"150px"}),il=Tn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),sl=Tn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),al=Tn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Ad}from"@lingui/core";import{Divider as bd,NoNotificationIcon as Id,Typography as Ed}from"@rango-dev/ui";import wn from"react";function ll(){return wn.createElement(al,null,wn.createElement(Id,{color:"secondary",size:26}),wn.createElement(bd,{size:12}),wn.createElement(Ed,{variant:"body",size:"medium",color:"neutral700"},Ad.t("You have no notification")))}i(ll,"NotificationNotFound");var $d=4;function jr(){let t=Pd(),e=Ae.use.setSelectedSwap(),{getUnreadNotifications:o}=Me(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,$d),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return qe.createElement(rl,null,a.length?qe.createElement(il,null,a.map(p=>{let u=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),m=r.find(f=>f.name===p.route.from.blockchain),c=s.find(f=>f.address===p.route.to.tokenAddress&&f.blockchain===p.route.to.blockchain&&f.symbol===p.route.to.tokenSymbol),g=r.find(f=>f.name===p.route.to.blockchain);return qe.createElement(Nd,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(Ld,{variant:"body",size:"small",color:"$neutral700"},Wd.t(p.event.message)),id:p.requestId,start:qe.createElement(sl,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(pl,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(pl,{tokenImage:c?c.image:"",chainImage:g?g.logo:"",size:"small"}))),end:qe.createElement(Bd,{size:12,color:"gray"})})})):qe.createElement(ll,null))}i(jr,"NotificationContent");import{Typography as Md}from"@rango-dev/ui";import ul from"react";function cl(){let{getUnreadNotifications:t}=Me(),e=t().length;return e?ul.createElement(ol,null,ul.createElement(Md,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(cl,"UnreadNotificationsBadge");function Xr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r}=t,{config:{features:s}}=d(),a=Pe("notification",s);return le.createElement(le.Fragment,null,le.createElement(vn,{container:O(),side:"top",content:xn.t("Refresh")},le.createElement(Ue,{variant:"ghost",size:"small",onClick:o,disabled:!o},le.createElement(Fd,{size:16,color:o?"black":"gray"}))),!a&&le.createElement(Dd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:le.createElement(jr,null)},le.createElement("div",null,le.createElement(vn,{container:O(),side:"top",content:xn.t("Notifications")},le.createElement(Ue,{size:"small",variant:"ghost"},le.createElement(_d,{size:18,color:"black"}),le.createElement(cl,null))))),le.createElement(vn,{container:O(),side:"top",content:xn.t("Settings")},le.createElement(Ue,{size:"small",variant:"ghost",onClick:r},le.createElement(Od,{size:18,color:"black"}))),le.createElement(vn,{container:O(),side:"top",content:xn.t("Transactions History")},le.createElement(Ue,{size:"small",variant:"ghost",onClick:n},le.createElement(Ud,{size:18,color:"black"}))))}i(Xr,"HomeButtons");import{darkTheme as qd,styled as Kr}from"@rango-dev/ui";var ml=Kr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"100vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${qd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),dl=Kr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),fl=Kr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Qd(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=H.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Sn(m||{}),g=Pe("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),v=yt(),h=i(()=>{!f&&n.onWallet&&n.onWallet()},"onConnectWallet"),y=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(ml,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(Hd,{prefix:he.createElement(he.Fragment,null,y&&he.createElement(Gr,{onClick:v})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!g&&he.createElement(Vr,{container:O(),onClick:h,isConnected:!!p?.length}),n.onCancel&&he.createElement(Qr,{onClick:n.onCancel}))}),he.createElement(dl,{noPadding:s},o),(a||r)&&he.createElement(fl,null,he.createElement("div",{className:"footer__content"},r),a&&he.createElement("div",{className:"footer__logo"},he.createElement(Gd,{size:12}),he.createElement(zd,null))))}i(Qd,"LayoutComponent");var K=he.forwardRef(Qd);K.displayName="Layout";import{Divider as Yd,Modal as Jd}from"@rango-dev/ui";import Jr from"react";import{i18n as Ht}from"@lingui/core";import{Image as Xd,MessageBox as Yr,WalletState as Kd}from"@rango-dev/ui";import Et from"react";import{keyframes as Vd,styled as An}from"@rango-dev/ui";var yv=An("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),gl=An("div",{position:"relative"}),jd=Vd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),hl=An("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${jd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yl=An("div",{"& img":{borderRadius:"50%"}});function Sl(t){let{state:e,image:o,error:n}=t;return e===Kd.CONNECTED?Et.createElement(Yr,{type:"success",title:Ht.t("Wallet Connected"),description:Ht.t("Your wallet is connected, you can use it to swap.")}):n?Et.createElement(Yr,{type:"error",title:Ht.t("Failed to Connect"),description:n||Ht.t("Your wallet is not connected. Please try again.")}):Et.createElement(Yr,{type:"loading",title:Ht.t("Connecting to your wallet"),description:Ht.t("Click connect in your wallet popup."),icon:Et.createElement(gl,null,Et.createElement(yl,null,Et.createElement(Xd,{src:o,size:45})),Et.createElement(hl,null))})}i(Sl,"ModalContent");function ao(t){let{open:e,onClose:o,...n}=t;return Jr.createElement(Jd,{open:e,onClose:o,container:document.getElementById(Te)||document.body},Jr.createElement(Sl,{...n}),Jr.createElement(Yd,{direction:"vertical",size:32}))}i(ao,"WalletModal");var of=Tl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),nf=Tl("div",{textAlign:"center"}),bn=3e3,Zr=300;function wl(){let{config:t,fetchStatus:e}=d(),[o,n]=kl(!1),[r,s]=kl(""),a=null,{list:l,handleClick:p,error:u}=hn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},Zr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},bn)}}),m=l.find(f=>f.type===r),c=m?.image||"",g=m?.state||ef.NOT_INSTALLED;return Wt.createElement(K,{header:{title:Cl.t("Connect Wallets")}},Wt.createElement(nf,null,Wt.createElement(Zd,{variant:"title",size:"xmedium",align:"center"},Cl.t("Choose a wallet to connect.")),Wt.createElement(of,null,l.map((f,v)=>{let h=`wallet-${v}-${f.type}`;return Wt.createElement(tf,{key:h},Wt.createElement(Rd,{...f,container:O(),onClick:y=>{p(y)},isLoading:e==="loading"}))}),Wt.createElement(ao,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(wl,"WalletsPage");import{keyframes as rf,styled as Rr}from"@rango-dev/ui";var xl=Rr("div",{position:"relative"}),sf=rf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),vl=Rr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${sf} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Al=Rr("div",{"& img":{borderRadius:"50%"}});function ti(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=H.use.connectedWallets(),{blockchains:p}=d(),[u,m]=lo(""),[c,g]=lo(null),[f,v]=lo(!1),[h,y]=lo(null),{suggestAndConnect:A}=Bl(),T=null,{list:w,error:b,handleClick:S}=hn({config:a,chain:e,onBeforeConnect:k=>{T=setTimeout(()=>{m(k)},Zr)},onConnect:()=>{T&&clearTimeout(T),setTimeout(()=>{m("")},bn)}}),[x,I]=lo(w),C=w.length,N=r&&C-r>0,$=i(async k=>{v(!1),y("in-progress");try{await A(k.walletType,k.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Wl(()=>{I(k=>{let M=w.findIndex(L=>o(L.type,e));return N&&M>1?[w[M]].concat(w.filter((L,q)=>q!==M)):k.map(L=>w.find(q=>q.type===L.type)??L)})},[JSON.stringify(w)]);let B=document.getElementById(Te);return Wl(()=>{let k=null;return(h==="completed"||h==="rejected")&&(k=setTimeout(()=>y(null),bn)),()=>{k&&clearTimeout(k)}},[h]),ee.createElement(ee.Fragment,null,x.slice(0,r).map(k=>{let M=qs({connectedWallets:l,walletType:k.type,chain:e}),L=M?Qo(M):"",q=Go(p(),e),J=!l.find(Se=>Se.walletType===k.type&&Se.chain===e),Z=q&&J&&k.state===El.CONNECTED,Q=Z?ze.t({id:"Add {chain} chain",values:{chain:e}}):L,re=i(()=>{k.state===El.DISCONNECTED?S(k.type):Z?(g({walletType:k.type,chain:e,address:M??""}),v(!0)):n({walletType:k.type,chain:e,address:M??""})},"onClick"),ye=c?.chain?sa(c.chain,p()):void 0;return ee.createElement(ee.Fragment,null,ee.createElement(ao,{open:u===k.type,onClose:()=>m(""),image:k.image,state:k.state,error:b}),!!c&&ee.createElement(bl,{open:!!c&&f,container:B,onClose:()=>{g(null)}},ee.createElement(In,{title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),type:"warning",description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}})},ee.createElement(ei,{size:18}),ee.createElement(ei,{size:32}),ee.createElement(af,{onClick:$.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),h&&ee.createElement(bl,{open:!!h,onClose:y.bind(null,null),container:B},h==="in-progress"&&ee.createElement(In,{type:"loading",title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ye}}),description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ye}}),icon:ee.createElement(xl,null,ee.createElement(Al,null,ee.createElement(lf,{src:k.image,size:45})),ee.createElement(vl,null))}),h==="completed"&&ee.createElement(In,{type:"success",title:ze.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ye}}),description:ze.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ye}})}),h==="rejected"&&ee.createElement(In,{type:"error",title:ze.t("Request Rejected"),description:ze.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ye}})}),ee.createElement(ei,{direction:"vertical",size:32})),ee.createElement(pf,{key:k.type,description:Q,onClick:re,selected:o(k.type,e),...k}))}),N&&ee.createElement(Fa,{selected:!1,onClick:s},ee.createElement(Il,{variant:"label",size:"medium"},ze.t("Show more wallets"),ee.createElement(Il,{variant:"label",size:"medium",color:"$primary"},"\xA0+",C-(r??0)))))}i(ti,"WalletList");var Cf=2;function Pl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:f}=U(),{connectedWallets:v,selectWallets:h}=H(),[y,A]=Bt(""),[T,w]=Bt([]),[b,S]=Bt(""),[x,I]=Bt(null),[C,N]=Bt(g),[$,B]=Bt(!!g),k=yf(null),M=Yo(p),L=l.find(F=>F.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),q=i(F=>!!p?.result?.swaps.find(z=>z.from.blockchain===F),"isWalletRequiredFor"),[J,Z]=Bt(v.filter(F=>F.selected&&M.includes(F.chain))),Q=l.find(F=>F.name===L?.name),re=i((F,z)=>!!J.find(X=>X.walletType===F&&X.chain===z&&X.selected&&(q(z)||!q(z)&&!C)),"isSelected"),ye=!!C&&$&&Q&&!Jo(Q,C),Se=i(()=>{B(!1),N(""),Z(F=>{let z=!1;return F.map(X=>!z&&X.chain===L?.name?(z=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),Ce=i(F=>{if(y&&A(""),re(F.walletType,F.chain))return;let X=v.find(Ee=>Ee.walletType===F.walletType&&Ee.chain===F.chain);X&&(n(),F.chain===L?.name&&$&&(B(!1),N("")),Z(Ee=>Ee.filter(ce=>ce.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),Mt=i(()=>{let F=J.filter(z=>z.selected);h(F),u(F),f(C),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{w([]),S(""),I(null);let F=v.filter(Ee=>J.find(ce=>ce.chain===Ee.chain&&ce.walletType===Ee.walletType)),z=await r?.({selectedWallets:F,customDestination:C}),X=z.warnings;X?.balance?.messages&&w(X.balance.messages),X?.quoteUpdate&&I(X.quoteUpdate),z.error&&S(la(z.error)),!z.error&&(!X?.balance?.messages.length||0>0)?Mt():w(X?.balance?.messages??[])},"onConfirmWallets");gf(()=>{Z(F=>F.concat(v.filter(z=>!!!F.find(Ee=>Ee.chain===z.chain)&&z.selected&&M.includes(z.chain))))},[v.length]),hf(()=>{$&&k.current&&setTimeout(()=>{k?.current?.scrollIntoView({behavior:"smooth"})},so)},[$]);let mt=document.getElementById(Te),vt=Sf();return P.createElement(Ll,{open:e,onClose:()=>{m||vt("../",{replace:!0}),o()},dismissible:!y,container:mt,...!y&&{footer:P.createElement(Ka,null,P.createElement(Nl,{loading:s,disabled:Ta(s,$,C,p,J,L),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:P.createElement(Ua,null,P.createElement(qa,{variant:"ghost",onClick:A.bind(null,"")},P.createElement(mf,{size:16})),P.createElement(En,{variant:"headline",size:"small"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(y,l)}})))},anchor:"center"},P.createElement(Ll,{open:T.length>0,onClose:w.bind(null,[]),container:mt},P.createElement(df,{title:st.t("Insufficient account balance"),type:"error",description:P.createElement(uf,{messages:T??[]})},P.createElement(Nl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Mt},st.t("Proceed anyway")))),y&&P.createElement(za,null,P.createElement("div",{className:Ga()},P.createElement(ti,{chain:y,isSelected:re,selectWallet:Ce,onShowMore:A.bind(null,y)}))),!y&&P.createElement(P.Fragment,null,b&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"error",title:st.t(b)}),P.createElement(Qt,{size:12})),x&&P.createElement(P.Fragment,null,P.createElement(oi,{variant:"alarm",type:"warning",title:dn(x)}),P.createElement(Qt,{size:12})),P.createElement(Ja,null,M.map((F,z)=>{let X=l.find(de=>de.name===F),Ee=`wallet-${z}`,ce=z===M.length-1;return P.createElement("div",{key:Ee},P.createElement(_a,null,P.createElement(En,{variant:"title",size:"xmedium"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),P.createElement(En,{variant:"label",color:"$neutral700",size:"medium"},st.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),P.createElement(Qt,{size:24}),P.createElement(Da,null,P.createElement(ti,{chain:F,isSelected:re,selectWallet:Ce,limit:Cf,onShowMore:()=>A(X?.name??"")})),!ce&&P.createElement(Qt,{size:32}),ce&&a?.customDestination&&P.createElement(Va,null,P.createElement(Ha,{ref:k,selected:$,open:$,onOpenChange:de=>{de?q(L?.name??"")||Z(Mo=>Mo.map(rt=>rt.chain===L?.name?{...rt,selected:!1}:rt)):Se()}},P.createElement(Oa,{onClick:()=>B(de=>!de)},P.createElement(Qa,{fullWidth:!0,variant:"default",suffix:P.createElement(Xa,{orientation:$?"up":"down"},P.createElement(cf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(ff,{size:18,color:"info"}),P.createElement(Qt,{size:4,direction:"horizontal"}),P.createElement(En,{variant:"label",size:"medium"},st.t("Send to a different address"))))),P.createElement(fn,{open:$},P.createElement(P.Fragment,null,P.createElement(Qt,{size:4}),P.createElement(Ya,{autoFocus:!0,placeholder:st.t("Your destination address"),value:C,onChange:de=>{N(de.target.value)}})))),ye&&P.createElement("div",{className:ja()},P.createElement(oi,{variant:"alarm",type:"error",title:st.t({values:{destination:C},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Pl,"ConfirmWalletsModal");import{Divider as ig}from"@rango-dev/ui";import _e from"react";import{i18n as pi}from"@lingui/core";import{Alert as xf,ChevronDownIcon as vf,ChevronRightIcon as Af,Divider as ui,Image as Zl,InfoIcon as bf,QuoteCost as If,StepDetails as Ef,TokenAmount as Wf,Tooltip as Nn,Typography as co}from"@rango-dev/ui";import Rl from"bignumber.js";import W,{useLayoutEffect as Bf,useRef as ep,useState as Nf}from"react";import{styled as po}from"@rango-dev/ui";var $l=po("div",{paddingBottom:"$10"}),ni=po("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ml=po("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),_l=po("div",{paddingBottom:"$15"}),Dl=po("div",{width:"100%",display:"flex"});import*as Wn from"@radix-ui/react-collapsible";import{css as ri,darkTheme as Je,Image as Fl,styled as Ge,Typography as kf}from"@rango-dev/ui";var ii=300,Ol=Ge(Wn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Ul=ri({padding:"$10 $15"}),ql=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Je} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Je} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Je} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}]}),zl=ri({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),Gl=ri({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Je} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hl=Ge(Wn.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Fl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Fl}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),si=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Ql=Ge(fn,{width:"100%",background:"inherit"}),ai=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ii}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),EA=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Vl=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),jl=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),li=Ge(kf,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Xl=Ge("div",{display:"flex",flexWrap:"wrap"});import{TokenAmount as Jl}from"@rango-dev/ui";import Bn from"react";import{css as Tf,styled as wf}from"@rango-dev/ui";var Kl=wf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Yl=Tf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function uo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Bn.createElement(Kl,null,Bn.createElement(Jl,{direction:"horizontal",label:"Swap input",type:"input",tooltipContainer:O(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Bn.createElement("div",{className:Yl()}),Bn.createElement(Jl,{direction:"horizontal",label:"Estimated output",tooltipContainer:O(),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(uo,"QuoteSummary");function ci(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),u=d().blockchains(),m=d().swappers(),[c,g]=Nf(t.expanded),f=ep(null),v=ep(c),h=E(en(e.result?.swaps??[],p),2,2),y=Do(Fo(e.result?.swaps)),A=E(o.value,6,6),T=E(n.value,6,6),w=n.usdValue?E(n.usdValue,4,4):"",b=$e(o.usdValue,n.usdValue??null),S=E(b,2,2),x=it(b??0),C=i(B=>B.map((k,M)=>{let L,q=r?.type===3&&r.swap.swapperId===k.swapperId||r?.type===4&&r.recommendedSlippages?.has(M),J=s?.type===2&&s.recommendedSlippages?.has(M);return q?L="error":J&&(L="warning"),{swapper:{displayName:aa(k.swapperId,m),image:k.swapperLogo},from:{token:{displayName:k.from.symbol,image:k.from.logo},chain:{displayName:Ye(k.from.blockchain,u),image:k.from.blockchainLogo},price:{value:M===0?E(o.value,6,6):E(k.fromAmount,6,6),usdValue:E((k.from.usdPrice??0)*parseFloat(k.fromAmount),4,4),realValue:se(M===0?o.value:k.fromAmount),realUsdValue:se(new Rl(k.from.usdPrice??0).multipliedBy(k.fromAmount))}},to:{token:{displayName:k.to.symbol,image:k.to.logo},chain:{displayName:Ye(k.to.blockchain,u),image:k.to.blockchainLogo},price:{value:E(k.toAmount,6,6),usdValue:E((k.to.usdPrice??0)*parseFloat(k.toAmount),4,4),realValue:se(k.toAmount),realUsdValue:se(new Rl(k.to.usdPrice??0).multipliedBy(k.toAmount))}},state:L,alerts:q||J?W.createElement(_l,null,W.createElement(xf,{type:q?"error":"warning",title:r?.type===3?r?.recommendation:pi.t("Slippage Error:"),footer:W.createElement(Dl,null,r?.type===3&&W.createElement(W.Fragment,null,W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),W.createElement(ui,{direction:"horizontal",size:8}),W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},"|"),W.createElement(ui,{direction:"horizontal",size:8}),W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Yours: {amount} {symbol}",values:{amount:E(k.fromAmount,6,6),symbol:k?.from.symbol}}))),(r?.type===4||s?.type===2)&&W.createElement(co,{size:"xsmall",variant:"body",color:"neutral900"},pi.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(M)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(M)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),N=C.length,$=O();return Bf(()=>{c&&!v.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},ii),v.current=c},[c,v]),W.createElement(W.Fragment,null,W.createElement(ql,{recommended:l,listItem:a==="list-item",basic:a==="basic"},W.createElement("div",{className:zl()},W.createElement(If,{fee:h,time:y,steps:N}),a==="basic"&&W.createElement("div",{className:Gl()},W.createElement(jl,null,W.createElement(bf,{size:12,color:"gray"})),W.createElement(Xl,null,W.createElement(li,{size:"small",variant:"body"},`${A} ${C[0].from.token.displayName} = `),W.createElement(Nn,{content:se(n.value),container:$,open:n.value?void 0:!1},W.createElement(li,{size:"small",variant:"body"},"\xA0",`${T} ${C[C.length-1].to.token.displayName}`))),W.createElement(Nn,{content:se(n.usdValue),container:$,style:{display:"flex"}},W.createElement(co,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${w})`))),a==="list-item"&&W.createElement(Wf,{type:"output",direction:"vertical",tooltipContainer:$,price:{value:T,usdValue:w,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:C[N-1].to.token.displayName,image:C[N-1].to.token.image},chain:{image:C[N-1].to.chain.image},percentageChange:S,warningLevel:x}),a==="swap-preview"&&W.createElement(W.Fragment,null,W.createElement(uo,{from:C[0].from,to:C[N-1].to,percentageChange:S,warningLevel:x}),W.createElement(ui,{size:4}))),W.createElement(Ol,{recommended:l,open:c,onOpenChange:g},W.createElement(Hl,{ref:B=>f.current=B,recommended:l,onClick:()=>g(B=>!B)},W.createElement("div",null,C.map((B,k)=>{let M=`item-${k}`,L=W.createElement(ai,null,W.createElement(Af,{size:12,color:"black",...B.state&&{color:B.state==="error"?"error":"warning"}}));return W.createElement(W.Fragment,{key:M},W.createElement(Nn,{container:$,side:"bottom",sideOffset:4,content:B.from.chain.displayName},W.createElement(si,{state:B.state||C[k-1]?.state},W.createElement(Zl,{src:B.from.chain.image,size:16}))),k===N-1&&W.createElement(W.Fragment,null,L,W.createElement(Nn,{container:$,side:"bottom",sideOffset:4,content:B.to.chain.displayName},W.createElement(si,{state:B.state},W.createElement(Zl,{src:B.to.chain.image,size:16})))),k!==N-1&&W.createElement(W.Fragment,null,L))})),W.createElement(ai,{orientation:c?"up":"down"},W.createElement(vf,{size:12,color:"black"}))),W.createElement(Ql,{open:c},W.createElement(Vl,null),W.createElement("div",{className:Ul()},C.map((B,k)=>{let M=`item-${k}`;return W.createElement(Ef,{type:"quote-details",key:M,step:B,hasSeparator:k!==C.length-1,state:B.state,tooltipContainer:$})}))))))}i(ci,"Quote");import{Divider as $f,Skeleton as Mf}from"@rango-dev/ui";import at from"react";import{darkTheme as Lf,styled as Ln}from"@rango-dev/ui";var tp=Ln("div",{$$color:"$colors$neutral100",[`.${Lf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),op=Ln("div",{paddingTop:"$2"}),np=Ln("div",{paddingLeft:"$8"}),rp=Ln("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as gp,Divider as Nt,Skeleton as Re}from"@rango-dev/ui";import G from"react";import{styled as Ze}from"@rango-dev/ui";var ip=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),sp=Ze("div",{display:"flex"}),ap=Ze("div",{padding:"$15 $0 14px $0"}),lp=Ze("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),pp=Ze("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),up=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),cp=Ze("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),mp=Ze("div",{width:"65%",display:"flex",justifyContent:"start"}),dp=Ze("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),fp=Ze("div",{padding:"$15 $0 $15 $0"});function go(t){let{type:e,tag:o=!1}=t,n=G.createElement(up,null,G.createElement(mp,null,G.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{size:8,direction:"horizontal"}),G.createElement(dp,null,G.createElement(Re,{height:10,width:60,variant:"rounded"}),G.createElement(Nt,{size:4}),G.createElement(Re,{height:15,variant:"rounded"}))),G.createElement(Re,{height:12,width:64,variant:"rounded"}));return G.createElement("div",null,G.createElement(ip,null,G.createElement(sp,null,G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(Re,{width:60,height:10,variant:"rounded"})),o&&G.createElement(Re,{height:22,width:100,variant:"rounded"})),e==="basic"&&G.createElement(ap,null,G.createElement(Re,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(lp,null,G.createElement(pp,null,G.createElement(gp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{direction:"horizontal",size:4}),G.createElement(Re,{height:15,width:150,variant:"rounded"})),G.createElement(Nt,{size:4}),G.createElement(Re,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Nt,{size:4}),G.createElement(fp,null,n,G.createElement(cp,null),n)))}i(go,"QuoteSummarySkeleton");import{ChainToken as kp,Divider as di,NextIcon as Pf,Skeleton as Pn}from"@rango-dev/ui";import ae from"react";import{styled as ho}from"@rango-dev/ui";var hp=ho("div",{display:"flex",alignItems:"start"}),yp=ho("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),mi=ho("div",{display:"flex",alignItems:"center",flexGrow:1}),Sp=ho("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Cp=ho("div",{display:"flex",alignItems:"center"});function et(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(Cp,null,ae.createElement(Pn,{height:22,width:22,variant:"circular"}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:15,width:148,variant:"rounded"})),ae.createElement(hp,null,ae.createElement(rp,{hideSeparator:!e}),ae.createElement(yp,null,ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})),ae.createElement(Sp,null,ae.createElement(Pf,{color:"gray",size:16})),ae.createElement(mi,null,ae.createElement(kp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(di,{direction:"horizontal",size:8}),ae.createElement(Pn,{height:12,variant:"rounded"})))))}i(et,"StepSkeleton");function fi(t){let{type:e,expanded:o,tag:n=!1}=t;return at.createElement(tp,{rounded:e!=="basic"},at.createElement(go,{type:e,tag:n}),at.createElement(op,null,at.createElement(Mf,{height:15,variant:"rounded"})),o&&at.createElement(np,null,at.createElement($f,{size:20}),at.createElement(et,null),at.createElement(et,null),at.createElement(et,{separator:!1})))}i(fi,"QuoteSkeleton");import{i18n as tg}from"@lingui/core";import{Alert as og,Button as ng,InfoIcon as rg}from"@rango-dev/ui";import Be from"react";import{Alert as _f,Button as Df,Divider as bp,NoRouteIcon as Ff,RefreshIcon as Of,Typography as Ip}from"@rango-dev/ui";import He from"react";import{i18n as Tp}from"@lingui/core";function wp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:V().genericServerError,action:{onClick:n,title:Tp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:V().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Tp.t("Reset")}},description:V().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:V().noResultError.description}}i(wp,"makeInfo");import{styled as gi}from"@rango-dev/ui";var xp=gi("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),vp=gi("div",{width:"100%"}),Ap=gi("div",{padding:"$6 $0"});function hi(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=wp(o,n,()=>r(s,!0),e);return He.createElement(xp,null,He.createElement(Ff,{size:24,color:"gray"}),He.createElement(bp,{size:4}),He.createElement(Ip,{variant:"title",size:"small"},V().noResultError.title),!!a.description&&He.createElement(Ip,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),He.createElement(bp,{size:4}),!!a.alert&&He.createElement(vp,null,He.createElement(_f,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(Df,{size:"xsmall",type:a.alert.type,prefix:He.createElement(Ap,null,He.createElement(Of,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(hi,"NoResult");import{i18n as yo}from"@lingui/core";import{Button as qf,Divider as Pp,MessageBox as zf,Modal as Gf,Typography as Hf,WarningIcon as Qf}from"@rango-dev/ui";import tt from"react";import{Typography as Np}from"@rango-dev/ui";import Si from"react";import{darkTheme as Uf,styled as $n}from"@rango-dev/ui";var Ep=$n("div",{width:"100%",paddingTop:"$10"}),yi=$n("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Wp=$n("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Uf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Bp=$n("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Lp(t){let{title:e,value:o,valueColor:n}=t;return Si.createElement(Wp,null,Si.createElement(Np,{size:"medium",variant:"label",className:"_title"},e),Si.createElement(Np,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Lp,"QuoteErrorsModalItem");function $p(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:yo.t("Swapping"),value:E(r.inputUsdValue,4,4)},{title:yo.t("Gas cost"),value:E(r.totalFee,2,2)},{title:yo.t("Receiving"),value:E(r.outputUsdValue,4,4)},{title:yo.t("Price impact"),value:E(r.priceImpact,2,2),valueColor:`${s}500`}];return tt.createElement(Gf,{open:e,onClose:o,container:O()},tt.createElement(zf,{type:s,title:V().highValueLossError.impactTitle,description:V().highValueLossError.description}),tt.createElement(yi,null,tt.createElement(Pp,{size:20}),tt.createElement(Hf,{size:"small",variant:"title"},yo.t("Details")),tt.createElement(yi,null,a.map((l,p)=>tt.createElement(Lp,{key:p,...l})))),tt.createElement(Pp,{size:32}),tt.createElement(qf,{type:"primary",size:"large",prefix:tt.createElement(Qf,null),fullWidth:!0,onClick:n},V().highValueLossError.confirmMessage))}i($p,"HighValueLossWarningModal");import{i18n as Ci}from"@lingui/core";function Mp(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(it(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=V().highValueLossError.title),t.type===1&&(o.title=V().unknownPriceError.title),t.type===2&&(o.title=Ci.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Ci.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=Ci.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}i(Mp,"makeAlerts");import{i18n as Vt}from"@lingui/core";import{Button as _p,Divider as Dp,MessageBox as Vf,Modal as jf,Typography as Xf}from"@rango-dev/ui";import Lt from"react";import{useNavigate as Kf}from"react-router-dom";function Fp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=Kf(),p=e??o;return Lt.createElement(jf,{anchor:"bottom",open:n,prefix:Lt.createElement(_p,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Lt.createElement(Xf,{variant:"label",size:"medium",color:"$neutral900"},Vt.t("Change settings"))),container:O(),onClose:r},Lt.createElement(Vf,{type:"warning",title:a.type===3?Vt.t("High slippage"):Vt.t("Low slippage"),description:a.type===3?Vt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Vt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Lt.createElement(Dp,{size:18}),Lt.createElement(Dp,{size:32}),Lt.createElement(_p,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Vt.t("Confirm anyway"))))}i(Fp,"SlippageWarningModal");import{Button as Yf,Divider as Jf,MessageBox as Zf,Modal as Rf,WarningIcon as eg}from"@rango-dev/ui";import So from"react";function Op(t){let{open:e,onClose:o,onConfirm:n}=t;return So.createElement(Rf,{open:e,onClose:o,container:O()},So.createElement(Zf,{type:"warning",title:V().unknownPriceError.impactTitle,description:V().unknownPriceError.description}),So.createElement(Jf,{size:32}),So.createElement(Yf,{type:"primary",size:"large",prefix:So.createElement(eg,null),fullWidth:!0,onClick:n},V().unknownPriceError.confirmMessage))}i(Op,"UnknownPriceWarningModal");function ki(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,u={open:r,onClose:a,onConfirm:l},m=o?.type===0||o?.type===1,c=Mp(e,o?.type===3||o?.type===4?o:null);return Be.createElement(Be.Fragment,null,m&&Be.createElement(hi,{error:o,fetch:n}),!!c&&Be.createElement(Ep,null,Be.createElement(og,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement(Bp,{onClick:s},Be.createElement(rg,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(ng,{size:"xxsmall",type:c.alertType,onClick:p},tg.t("Change"))}})),e&&Be.createElement(Be.Fragment,null,e.type===0&&Be.createElement($p,{...u,warning:e}),(e.type===3||e.type===2)&&Be.createElement(Fp,{...u,warning:e}),e.type===1&&Be.createElement(Op,{...u,warning:e})))}i(ki,"QuoteWarningsAndErrors");function Co(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:v,inputUsdValue:h,outputUsdValue:y,outputAmount:A}=U(),w=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,b=(s||r)&&_e.createElement(ki,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return _e.createElement(_e.Fragment,null,n&&_e.createElement(ni,null,_e.createElement(Ml,{paddingTop:f==="top"},_e.createElement(fi,{type:o,expanded:g}))),f==="top"&&_e.createElement($l,null,b),w?_e.createElement(ni,null,_e.createElement(ci,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:v,usdValue:h?.toString()??""},output:{value:A?.toString()??"",usdValue:y?.toString()??""}})):null,f==="bottom"&&_e.createElement(_e.Fragment,null,!s&&!r&&_e.createElement(ig,{size:16}),b))}i(Co,"QuoteInfo");import{calculatePendingSwap as lg}from"@rango-dev/queue-manager-rango-preset";import{useEffect as pg}from"react";import{useRef as sg,useState as ag}from"react";function Mn(){let[t,e]=ag(!1),o=sg(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Dt().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(Mn,"useFetchQuote");function _n(t){if(!t.result)throw new Error(V().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(br(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Ir(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=Wr(t);if(o){let n=tn(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(_n,"throwErrorIfResponseIsNotValid");function Up(t,e,o){let n=!1;t&&(n=Aa(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=nn(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(ga(t,e)?r.quoteUpdate={type:3,newOutputAmount:E(Ut(e)),percentageChange:E($e(Ut(t)??"",Ut(e)??""),null,2)}:Nr(t,e)?r.quoteUpdate={type:0}:Lr(t,e)?r.quoteUpdate={type:1}:Pr(t,e)&&(r.quoteUpdate={type:2}));let a=ha(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Up,"generateWarnings");function Dn(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Dn,"handleQuoteErrors");function Ti(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=U(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:g}=d(),{connectedWallets:f}=H(),v=d().blockchains(),h=d().tokens(),{features:y}=d().config,{enableNewLiquiditySources:A}=d().config,T=p||l,{fetch:w,cancelFetch:b,loading:S}=Mn();return pg(()=>b,[]),{loading:S,fetch:i(async I=>{let C=I.selectedWallets,N=I?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let $=on({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:C,excludeLiquiditySources:A,disabledLiquiditySources:g,slippage:T,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:N});Ko("experimentalRoute",y)&&($.experimental=!0);let B;try{B=await w($).then(q=>_n(q)),n(B)}catch(q){return Dn(q)}let k={slippage:T.toString(),disabledSwappersGroups:g},M=lg(o.toString(),B,da(C),k,!1,{blockchains:v,tokens:h}),L=Up(r??void 0,B,{fromToken:t,toToken:e,meta:{blockchains:v,tokens:h},selectedWallets:C,userSlippage:T});return L.quoteUpdate&&a(!1),{quote:B,swap:M,error:null,warnings:L}},"fetch"),cancelFetch:b}}i(Ti,"useConfirmSwap");var Tg=Hp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),wg=Hp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Gp}`]:{width:"$48",height:"$48"}}),xg=wi({flexGrow:1,paddingRight:"$10"}),vg=wi({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Ag=wi({display:"flex",justifyContent:"space-between",alignItems:"center"});function Qp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=U(),l=kg(),[p,u]=On(""),{connectedWallets:m}=H(),c=!n,[g,f]=On(!1),v=Ae.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=Sg(h),{manager:A}=ug(),{fetch:T,loading:w,cancelFetch:b}=Ti(),[S,x]=On({swap:null,error:null,warnings:null}),[I,C]=On(!1),N=i(async({selectedWallets:L,customDestination:q})=>{let J=await T?.({selectedWallets:L,customDestination:q});return x(J),J},"onConfirmSwap"),$=i(async()=>{if(S.swap&&n)try{await A?.create("swap",{swapDetails:S.swap},{id:S.swap.requestId}),v(S.swap.requestId);let L=`../${_.swaps}/${S.swap.requestId}`;l(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){u("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{await $()},"onConfirm"),k=i(async()=>{S?.warnings?.quote&&!a?C(!0):await B()},"onStartConfirmSwap"),M=i(async()=>{x({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:s}).then(L=>{x(L)}).catch(L=>console.error(L))},"onRefresh");return ko(()=>{!!y.current.length&&!h.length&&M(),y.current=h},[h.length]),ko(()=>{c&&b()},[c]),ko(()=>{c&&f(c)},[c]),ko(()=>{c||T({selectedWallets:o,customDestination:s}).then(L=>x(L)).catch(L=>console.error(L))},[]),ko(()=>{let L=S.warnings?.quote?.type&&Object.values(dt).includes(S.warnings?.quote?.type),q=o.length<1||!o.every(Z=>m.find(Q=>Z.address===Q.address&&Z.walletType===Q.walletType&&Z.chain===Q.chain)),J=!1;if(L){let Z=Yo(t),Q=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===Q)||(Z=Z.slice(-Z.length,Z.length-1)),Z.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(q||J)&&(queueMicrotask(()=>Cg(f.bind(null,!0))),r(!1))},[S.warnings?.quote,o.length,m.length]),yg(()=>{t||l("../")},[]),te.createElement(K,{header:{title:Fn.t("Confirm Swap"),onWallet:()=>{let L=`../${_.wallets}`;l(L)},suffix:te.createElement(fg,{container:O(),side:"bottom",content:Fn.t("Settings")},te.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},te.createElement(dg,{size:18,color:"black"})))},footer:te.createElement(wg,null,te.createElement("div",{className:xg()},te.createElement(zp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:w,disabled:!!S.error,onClick:k},Fn.t("Start Swap"))),te.createElement(Gp,{variant:"contained",type:"primary",size:"large",loading:w,onClick:f.bind(null,!0)},te.createElement(hg,{size:24})))},g&&te.createElement(Pl,{open:g,onClose:()=>f(!1),onCancel:b,loading:w,onCheckBalance:N}),te.createElement(Tg,null,te.createElement("div",{className:Ag()},te.createElement(gg,{variant:"title",size:"small"},Fn.t("You get")),te.createElement(zp,{style:{padding:"0"},variant:"ghost",disabled:w,onClick:M},te.createElement("div",{className:vg()},te.createElement(mg,{size:16})))),p&&te.createElement(te.Fragment,null,te.createElement(qp,{type:"error",variant:"alarm",title:p}),te.createElement(cg,{size:12})),S.warnings?.quoteUpdate&&te.createElement("div",{className:"quote-update__alert"},te.createElement(qp,{variant:"alarm",type:"warning",title:S.warnings.quoteUpdate&&dn(S.warnings.quoteUpdate)})),te.createElement(Co,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:S.error,loading:w,warning:S.warnings?.quote??null,refetchQuote:M,showWarningModal:I,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:async()=>{C(!1),await $()},onChangeSettings:()=>l("../"+_.settings)})))}i(Qp,"ConfirmSwapPage");import{i18n as zn}from"@lingui/core";import{useManager as Pg}from"@rango-dev/queue-manager-react";import{Divider as $g,NotFound as Mg,styled as eu}from"@rango-dev/ui";import kt,{useState as _g}from"react";import{useNavigate as Dg}from"react-router-dom";import{CloseIcon as Ig,IconButton as Eg,SearchIcon as Wg,TextField as Bg}from"@rango-dev/ui";import To from"react";import{styled as bg}from"@rango-dev/ui";var Vp=bg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return To.createElement(Bg,{prefix:To.createElement(Vp,null,To.createElement(Wg,{color:"black"})),suffix:!!a.length&&To.createElement(Eg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},To.createElement(Ig,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(lt,"SearchInput");import{i18n as Xp}from"@lingui/core";import{Divider as Kp,SwapListItem as Yp,Typography as Jp}from"@rango-dev/ui";import R from"react";import{css as Ng,darkTheme as Lg,styled as Un}from"@rango-dev/ui";var qn=Ng(),xi=Un("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${qn}`]:{$$color:"$colors$neutral600",[`.${Lg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vi=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Ai=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),jp=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function bi(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return R.createElement(R.Fragment,null,[{title:"Today",swaps:a},{title:"This month",swaps:a}].map(p=>R.createElement(R.Fragment,{key:p.title},R.createElement(xi,null,R.createElement(vi,null,R.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(p.title))),R.createElement(Kp,{size:4}),R.createElement(Ai,null,p.swaps.map((u,m)=>{let c=m+p.title;return R.createElement(R.Fragment,{key:c},R.createElement(Yp,{isLoading:!0}))}))))))}return R.createElement(R.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>R.createElement(R.Fragment,{key:a.title},R.createElement(xi,null,R.createElement(vi,null,R.createElement(Jp,{variant:"label",size:"medium",className:qn()},Xp.t(a.title))),R.createElement(Kp,{size:4}),R.createElement(Ai,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return R.createElement(R.Fragment,{key:l.requestId},R.createElement(Yp,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",tooltipContainer:O(),swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:l.inputAmount},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:E(u.outputAmount||u.expectedOutputAmountHumanReadable||""),realAmount:se(u.outputAmount||u.expectedOutputAmountHumanReadable)}}}))}))))))}i(bi,"SwapsGroup");import Zp from"dayjs";var Rp=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}]]);function o(r,s){e.has(r)||e.set(r,{title:r,swaps:[]}),e.get(r)?.swaps.push(s)}i(o,"addYearsToOutput");let n=Zp();return t.forEach(r=>{let s=Number(r.creationTime),a=Zp(s);if(n.isSame(a,"day"))e.get("today")?.swaps.push(r);else if(n.isSame(a,"week"))e.get("week")?.swaps.push(r);else if(n.isSame(a,"month"))e.get("month")?.swaps.push(r);else if(n.isSame(a,"year"))e.get("year")?.swaps.push(r);else{let l=new Date(s).getFullYear().toString();o(l,r)}}),Array.from(e.values())},"groupSwapsByDate");var jt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");var Fg=eu("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Og=eu("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Ug=i((t,e)=>t?.length?t.filter(o=>Xe(o.fromBlockchain,e)||Xe(o.toBlockchain,e)||Xe(o.toSymbol,e)||Xe(o.fromSymbol,e)).length:!1,"isStepContainsText");function tu(){let t=Ae.use.setSelectedSwap(),e=Dg(),{manager:o,state:n}=Pg(),r=jt(o).map(({swap:c})=>c),[s,a]=_g(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>Xe(c.inputAmount,s)||Xe(c.status,s)||Ug(c.steps,s)||Xe(c.requestId,s)));let m=!u?.length&&!l;return kt.createElement(K,{header:{title:zn.t("History")}},kt.createElement(Fg,null,kt.createElement(lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:zn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),kt.createElement(Og,null,m&&kt.createElement(jp,null,kt.createElement($g,{size:32}),kt.createElement(Mg,{title:zn.t("No results found"),description:s?zn.t("Try using different keywords"):""})),!m&&kt.createElement(bi,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Rp,isLoading:l}))))}i(tu,"HistoryPage");import{i18n as Wi}from"@lingui/core";import{Button as jg,styled as Bi,SwapInput as iu,WarningIcon as Xg}from"@rango-dev/ui";import De,{useEffect as Kg,useRef as Yg,useState as Jg}from"react";import{useNavigate as Zg}from"react-router-dom";import{ReverseIcon as qg,styled as ou}from"@rango-dev/ui";import Ii from"react";var zg=ou("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gg=ou("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function nu(){let t=U.use.switchFromAndTo();return Ii.createElement(zg,null,Ii.createElement(Gg,{onClick:()=>{t()}},Ii.createElement(qg,{size:12})))}i(nu,"SwitchFromAndToButton");import{useCallback as Hg,useEffect as Qg,useState as Ei}from"react";var Vg=600;function ru(){let{fetch:t,cancelFetch:e}=Mn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,quote:m,resetQuote:c,setQuote:g}=U(),{slippage:f,customSlippage:v,affiliatePercent:h,affiliateRef:y,affiliateWallets:A,disabledLiquiditySources:T}=d(),[w,b]=Ei(!1),[S,x]=Ei(null),[I,C]=Ei(null),N=v??f,B=!a||!l||Le(a,l)||!no(p),k=i(q=>{b(q),x(null),C(null)},"resetState"),M=i(q=>{let{fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:Mt,affiliatePercent:oo,affiliateWallets:mt}=q;if(w||k(!0),!B&&J&&Z){c();let vt=on({fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:Mt,affiliatePercent:oo,affiliateWallets:mt});Ko("experimentalRoute",r)&&(vt.experimental=!0),t(vt).then(F=>{b(!1),g(F),_n(F);let z=nn(F,{fromToken:J,toToken:Z,userSlippage:N,tokens:s});C(z)}).catch(F=>{let{error:z}=Dn(F);(z?.type===0||z?.type===1)&&c(),z?.type!==2&&(x(z),b(!1))})}},"fetch"),L=Hg(js(q=>{B||M(q)},Vg),[B]);return Qg(()=>{if(!no(p)||u?.eq(0)){k(!1),e();return}if(B){m&&c();return}return c(),k(!0),L({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:N,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,B,o?.length,n,T.length,N,y,h,JSON.stringify(A)]),{fetch:()=>M({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:T,slippage:N,affiliateRef:y,affiliatePercent:h,affiliateWallets:A}),loading:w,error:S,warning:I}}i(ru,"useSwapInput");var Rg=Bi("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),eh=Bi("div",{position:"relative"}),th=Bi("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function su(){let t=Zg(),{fetch:e,loading:o,error:n,warning:r}=ru(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:g,outputUsdValue:f,quote:v,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=U(),A=d().fetchStatus,{connectedWallets:T,getBalanceFor:w}=H(),b=Ae.use.setCurrentPage(),[S,x]=Jg(!1),I=Yg(null),C=!!a&&zs(T,a.name),N=!1,$=!Er(v,m,c),B=!Er(v,m,f),k=ua({fetchMetaStatus:A,fetchingQuote:o,inputAmount:m,quote:v,anyWalletConnected:T.length>0,error:n,warning:r,needsToWarnEthOnPath:N}),M=s?w(s):null,L=Ho(M)?.amount??"0",q=a&&s?E(M?.amount,M?.decimals):"0";Kg(()=>(b(_.home),h(),b.bind(null,"")),[]);let J=!c||!f||!f.gt(0)?null:$e(c.toString(),f.toString());return De.createElement(K,{ref:I,fixedHeight:!1,hasLogo:!0,footer:De.createElement(jg,{type:"primary",size:"large",disabled:k.disabled,prefix:k.action==="confirm-warning"&&De.createElement(Xg,null),fullWidth:!0,onClick:()=>{k.action==="connect-wallet"?t(_.wallets):k.action==="confirm-warning"?x(!0):t(_.confirmSwap)}},k.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Wi.t("Swap"),suffix:De.createElement(Xr,{layoutRef:I.current,onClickRefresh:v||n?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},De.createElement(Rg,null,De.createElement(th,null,De.createElement(eh,null,De.createElement(iu,{label:Wi.t("From"),mode:"From",onInputChange:u,balance:L,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:$?void 0:E(c,4,4),realUsdValue:$?void 0:se(c),error:$?V().unknownPriceError.impactTitle:void 0},disabled:A==="failed",loading:A==="loading",loadingBalance:C,tooltipContainer:O(),onSelectMaxBalance:()=>{L!=="0"&&u(q.split(",").join(""))}}),De.createElement(nu,null)),De.createElement(iu,{sharpBottomStyle:!!v?.result||o,label:Wi.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:E($e(c,f),2,2),warningLevel:it(J??0),price:{value:E(g,6,6),usdValue:B?void 0:E(f,4,4),realValue:se(g),realUsdValue:B?void 0:se(f),error:B?V().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:A==="failed",loading:A==="loading",tooltipContainer:O()})),De.createElement("div",{className:"quote__container"},De.createElement(Co,{quote:v,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:S,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),y(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(su,"Home");import{i18n as au}from"@lingui/core";import{List as oh,ListItemButton as nh,Radio as rh,RadioRoot as ih,Typography as sh}from"@rango-dev/ui";import Tt from"react";import{styled as Gn}from"@rango-dev/ui";var pt=Gn("div",{height:"100%",overflow:"hidden"}),wo=Gn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Ni=Gn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Li=Gn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Hn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:Ys,defaultLanguage:Ot,changeLanguage:r=>t(r||Ot)}}i(Hn,"useLanguage");function lu(){let{activeLanguage:t,changeLanguage:e,languages:o}=Hn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:Tt.createElement(sh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:Tt.createElement(rh,{value:s}),start:Tt.createElement(l,null)}});return Tt.createElement(K,{header:{title:au.t("Language")}},Tt.createElement(pt,null,Tt.createElement(ih,{value:t},Tt.createElement(oh,{type:Tt.createElement(nh,{title:au.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(lu,"LanguagePage");import{i18n as Xt}from"@lingui/core";import{Button as ch,Checkbox as mh,Image as dh,ListItemButton as fh,NotFound as gh,Typography as hh}from"@rango-dev/ui";import ke,{useState as yh}from"react";import{Checkbox as ph,Skeleton as uu}from"@rango-dev/ui";import xo from"react";import{ListItem as ah,styled as lh}from"@rango-dev/ui";var pu=lh(ah,{height:61});var uh=30;function Pi(){return xo.createElement(wo,null,Array.from(Array(uh),t=>xo.createElement(pu,{hasDivider:!0,key:t,start:xo.createElement(uu,{variant:"circular",width:35,height:35}),title:xo.createElement(uu,{variant:"text",size:"large",width:90}),end:xo.createElement(ph,{checked:!1})})))}i(Pi,"LoadingLiquiditySourceList");function $i({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=yh(""),a=d().toggleLiquiditySource,l=Xo(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(h=>p.includes(h.type)),m=u.length===u.filter(h=>h.selected).length,c=i(()=>{u.forEach(h=>{m?a(h.groupTitle):h.selected||a(h.groupTitle)})},"toggleAllSources"),g=u.map(h=>{let{selected:y,groupTitle:A,logo:T}=h;return{start:ke.createElement(dh,{src:T,size:22,type:"circular"}),onClick:()=>a(A),end:ke.createElement(mh,{checked:y}),title:ke.createElement(hh,{variant:"title",size:"xmedium"},Xt.t(A)),...h}}),f=i(h=>{let y=h.target.value;s(y)},"searchHandler"),v=g;return r&&(v=g.filter(h=>Xe(h.groupTitle,r))),ke.createElement(K,{header:{title:Xt.t(t),suffix:ke.createElement(Ni,null,ke.createElement(ch,{variant:"ghost",size:"xsmall",onClick:c},Xt.t(m?"Deselect all":"Select all")))}},ke.createElement(pt,null,ke.createElement(lt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ke.createElement(Pi,null),!v.length&&r?ke.createElement(Li,null,ke.createElement(gh,{title:Xt.t("No results found"),description:Xt.t("Try using different keywords")})):e==="success"&&ke.createElement(wo,null,v.map(h=>ke.createElement(ke.Fragment,{key:h.id},ke.createElement(fh,{style:{height:"61px"},...h,selected:!1,hasDivider:!0}))))))}i($i,"LiquiditySourcePage");import{i18n as Su}from"@lingui/core";import{Divider as Fi,getCountCategories as Ih,SelectableCategoryList as Eh}from"@rango-dev/ui";import ut,{useState as Cu}from"react";import{i18n as _i}from"@lingui/core";import{Divider as hu,Image as wh,ListItemButton as xh,NotFound as vh,Typography as yu}from"@rango-dev/ui";import Fe,{useEffect as Ah,useState as bh}from"react";import{BlockchainCategories as Mi}from"@rango-dev/ui";import{TransactionType as Qn}from"rango-sdk";var Sh=i((t,e)=>{switch(e){case Mi.ALL:return!0;case Mi.UTXO:return t.type===Qn.TRANSFER;case Mi.OTHER:return t.type!==Qn.TRANSFER&&t.type!==Qn.COSMOS&&t.type!==Qn.EVM;default:return t.type===e}},"filterByType"),cu=i((t,e,o)=>t.filter(n=>Sh(n,o)).filter(n=>At(n.name,e)||At(n.displayName,e)),"filterBlockchains");import{ImageContainer as Ch,styled as mu}from"@rango-dev/ui";var du=mu("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Vn=mu("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${Ch}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as kh,Skeleton as fu}from"@rango-dev/ui";import jn from"react";var Th=20;function gu(){return jn.createElement(Vn,null,Array.from(Array(Th),t=>jn.createElement(kh,{key:t,hasDivider:!0,start:jn.createElement(fu,{variant:"circular",width:35,height:35}),title:jn.createElement(fu,{variant:"text",size:"large",width:90})})))}i(gu,"LoadingBlockchainList");function Di(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=bh(e),{fetchStatus:l}=d();Ah(()=>{a([...cu(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Fe.createElement(Fe.Fragment,null,Fe.createElement(hu,{size:32}),Fe.createElement(vh,{title:_i.t("No results found"),description:_i.t("Try using different keywords")})):Fe.createElement(Vn,{key:`${r}-${o}`},s.map(u=>Fe.createElement(xh,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Fe.createElement(wh,{src:u.logo,size:30}),title:Fe.createElement(yu,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Fe.createElement(du,null,Fe.createElement(yu,{variant:"label",size:"large"},_i.t("Select Blockchain")),Fe.createElement(hu,{size:4}),l==="loading"&&Fe.createElement(gu,null),l==="success"&&p())}i(Di,"BlockchainList");function Oi(t){let{type:e}=t,o=yt(),[n,r]=Cu(""),[s,a]=Cu("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),g=Ih(m)!==1;return ut.createElement(K,{header:{title:Su.t("Select Blockchain")}},ut.createElement(Fi,{size:12}),g&&ut.createElement(ut.Fragment,null,ut.createElement(Eh,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),ut.createElement(Fi,{size:24})),ut.createElement(lt,{value:n,autoFocus:!0,placeholder:Su.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),ut.createElement(Fi,{size:16}),ut.createElement(Di,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Oi,"SelectBlockchainPage");import{i18n as Ou}from"@lingui/core";import{Divider as Uu}from"@rango-dev/ui";import Jt,{useState as Vh}from"react";import{useNavigate as jh}from"react-router-dom";import{i18n as zi}from"@lingui/core";import{BlockchainsChip as Xn,Divider as xu,Image as vu,Skeleton as Ph,Tooltip as $h,Typography as Gi}from"@rango-dev/ui";import pe from"react";import{useEffect as Nh}from"react";var ku=["ETH","COSMOS","OSMOSIS"];function Ui(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Wh),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(m=>u.name!==m)}}n.sort(Bh(a)),r=n.splice(s)}return{list:n,more:r}}i(Ui,"prepare");function Wh(t,e){let o=ku,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(Wh,"sortByMostUsedBlockchains");function Bh(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Bh,"generateSortByPreferredBlockchainsFor");function Tu(t,e){return!!e.list.find(o=>o.name===t)}i(Tu,"isInVisibleList");function qi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();Nh(()=>{if(e?.selected){let s=Ui(t,o,e);Tu(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Ui(t,o,e);return{list:r.list,more:r.more,history:[]}}i(qi,"usePrepareBlockchainList");import{styled as Lh}from"@rango-dev/ui";var wu=Lh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Mh=12;function Hi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=qi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,g=!c&&m;return pe.createElement(pe.Fragment,null,pe.createElement(xu,{size:12}),pe.createElement(Gi,{variant:"label",size:"large"},zi.t("Select Blockchain")),pe.createElement(xu,{size:12}),pe.createElement(wu,null,l==="loading"&&Array.from(Array(Mh),f=>pe.createElement(Ph,{key:f,variant:"rounded",height:50})),l==="success"&&pe.createElement(pe.Fragment,null,pe.createElement(Xn,{selected:!n,onClick:()=>{o==="from"?u():p()}},pe.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi.t("All"))),a.list.map(f=>pe.createElement($h,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},pe.createElement(Xn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},pe.createElement(vu,{src:f.logo,size:30})))),c?pe.createElement(Xn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},pe.createElement(vu,{src:a.more[0].logo,size:30})):null,g?pe.createElement(Xn,{onClick:s,key:"more-blockchains"},pe.createElement(Gi,{variant:"body",size:"xsmall",color:"secondary500"},zi._("More +{count}",{count:a.more.length}))):null)))}i(Hi,"BlockchainsSection");import{i18n as es}from"@lingui/core";import{darkTheme as $u,Divider as Yt,ExternalLinkIcon as Fh,Image as Oh,ListItemButton as Uh,NotFound as qh,PinIcon as zh,Skeleton as Mu,Typography as Jn,VirtualizedList as Gh}from"@rango-dev/ui";import D,{forwardRef as Hh,useEffect as _u,useState as Du}from"react";import{Divider as Lu,ListItem as Dh,Skeleton as vo}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as Au,ImageContainer as _h,styled as Qe,Typography as bu}from"@rango-dev/ui";var Qi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vi=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ji=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Xi=Kt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ki=Kt({}),Yi=Kt(),Iu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ji=Qe("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Kn=Qe("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vi}`]:{[`& .${Xi}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ki}`]:{bottom:"-15px"},[`& .${Qi}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ji}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Zi=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ri=Qe(bu,{}),Eu=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Yi}`]:{$$color:"$colors$neutral600",[`.${Au} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Yn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),CN=Qe("div",{display:"flex",alignItems:"center"}),Wu=Qe("div",{position:"relative",[`& ${_h}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bu=Qe("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Nu=Qe(bu,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Pu(t){return Ve.createElement(Kn,null,Array.from(Array(t.size),e=>Ve.createElement(Dh,{key:e,hasDivider:!0,start:Ve.createElement(vo,{variant:"circular",width:35,height:35}),end:Ve.createElement(Yn,null,Ve.createElement(vo,{variant:"text",size:"large",width:70}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:50})),title:Ve.createElement("div",null,Ve.createElement(vo,{variant:"text",size:"large",width:90}),Ve.createElement(Lu,{size:4}),Ve.createElement(vo,{variant:"text",size:"medium",width:90}))})))}i(Pu,"LoadingTokenList");var ts=20,Qh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return D.createElement("div",{className:Vi()},o?D.createElement("div",{className:Qi()},o):D.createElement(Ji,{className:ji()},D.createElement(Jn,{variant:"title",size:"xmedium"},r.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(Zi,{css:s},D.createElement(Ri,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&D.createElement("div",{className:`${Xi()} ${!o&&Ki()}`},D.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",D.createElement(Yt,{size:4,direction:"horizontal"}),D.createElement(Fh,{color:"gray",size:12}))))},"renderDesc");function Fu(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=Du(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=Du(!0),{getBalanceFor:c,loading:g}=H(),{isTokenPinned:f}=d(),v=Hh((A,T)=>D.createElement("div",{...A,ref:T,style:{...A.style,height:`${parseFloat(A.style?.height)+8*2}px`}})),h=i(()=>{a(e.slice(0,s.length+ts))},"loadNextPage");_u(()=>{m(e.length>s.length)},[s.length]),_u(()=>{a(e.slice(0,ts))},[e]);let y=i(()=>!s.length&&o?D.createElement(D.Fragment,null,D.createElement(Yt,{size:32}),D.createElement(qh,{title:es.t("No results found"),description:es.t("Try using different keywords")})):D.createElement(Gh,{Item:({index:A,style:T})=>{let w=s[A],b=Ho(c(w)),S=w.address||"",x=p.find($=>$.name===w.blockchain),I=yn(w.symbol,x?.color||""),C={$$color:I[`${w.symbol}100`],[`.${$u} &`]:{$$color:I[`${w.symbol}900`]},backgroundColor:"$$color"},N={$$color:I[`${w.symbol}700`],[`.${$u} &`]:{$$color:I[`${w.symbol}100`]},color:"$$color"};return D.createElement("div",{style:{...T,paddingRight:5}},D.createElement(Uh,{style:{height:T?.height,width:"100%",overflow:"hidden"},"tab-index":A,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,hasDivider:!0,onClick:()=>n(s[A]),start:D.createElement(Wu,null,D.createElement(Oh,{src:w.image,size:30}),f(w,t.type)&&D.createElement(Bu,null,D.createElement(zh,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||w.name||!w.name&&!S?D.createElement(Ji,null,D.createElement(Jn,{variant:"title",size:"xmedium"},w.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(Zi,{css:C},D.createElement(Ri,{variant:"body",size:"xsmall",css:N},w.blockchain))):void 0,description:x?.info&&S&&x.type!=="COSMOS"?Qh({address:S,token:s[A],customCssForTag:C,customCssForTagTitle:N,name:w.name,url:x.info.addressUrl.split("{wallet}").join(S)}):w.name||void 0,end:g?D.createElement(Yn,null,D.createElement(Mu,{variant:"text",size:"large",width:70}),D.createElement(Yt,{size:4}),D.createElement(Mu,{variant:"text",size:"medium",width:50})):b&&D.createElement(Eu,null,D.createElement(Nu,{variant:"title",size:"small"},b.amount),D.createElement("div",null),b.usdValue&&D.createElement(Jn,{variant:"body",className:Yi(),size:"xsmall"},`$${b.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:v,size:60,key:`${r}-${o}`}),"renderList");return D.createElement(Iu,null,D.createElement(Jn,{variant:"label",size:"large"},es.t("Select Token")),D.createElement(Yt,{size:4}),l==="loading"&&D.createElement(Pu,{size:ts}),l==="success"&&D.createElement(Kn,null,y()))}i(Fu,"TokenList");function os(t){let{type:e}=t,o=jh(),n=yt(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=H.use.getBalanceFor(),[c,g]=Vh(""),{isTokenPinned:f}=d(),h=(e==="source"?r:s)?.name??"",y=d().blockchains({type:e}),A=d().tokens({type:e,blockchain:h,searchFor:c}),w=Os(A,m,i(x=>f(x,e),"checkIsTokenPinned")),b=i(x=>{e==="source"?p(x):u(x)},"updateBlockchain"),S=i(x=>{e==="source"?a({token:x,meta:{blockchains:y,tokens:A}}):l({token:x,meta:{blockchains:y,tokens:A}})},"updateToken");return Jt.createElement(K,{header:{title:Ou.t("Swap {type}",{type:e})}},Jt.createElement(Hi,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:x=>{b(x)}}),Jt.createElement(Uu,{size:24}),Jt.createElement(lt,{value:c,autoFocus:!0,placeholder:Ou.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:x=>g(x.target.value)}),Jt.createElement(Uu,{size:16}),Jt.createElement(Fu,{list:w,selectedBlockchain:h,searchedFor:c,type:e,onChange:x=>{S(x);let I=y.find(C=>x.blockchain===C.name);I&&b(I),n()}}))}i(os,"SelectSwapItemsPage");import{i18n as Pt}from"@lingui/core";import{ChevronRightIcon as is,Divider as ss,InfoIcon as ty,List as oy,ListItemButton as ny,Skeleton as ry,Switch as iy,Tooltip as sy,Typography as $t}from"@rango-dev/ui";import j from"react";import{useNavigate as ay}from"react-router-dom";import{i18n as Vu}from"@lingui/core";import{Divider as Jh,InfoIcon as Zh,TextField as Rh,Tooltip as ey,Typography as ju}from"@rango-dev/ui";import Ne from"react";import{Chip as Xh,styled as Ao,TextField as Kh}from"@rango-dev/ui";var qu=Ao("div",{paddingTop:"$5",padding:"$10 $5"}),zu=Ao("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Kh}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Gu=Ao("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Zn=Ao("div",{maxWidth:"280px",padding:"$10"}),Hu=Ao(Xh,{width:"61px",flexShrink:0});import{i18n as ns}from"@lingui/core";import{Typography as Yh}from"@rango-dev/ui";import bo from"react";function Qu(){return bo.createElement(Zn,null,bo.createElement(Yh,{variant:"label",size:"medium",color:"neutral700"},ns.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),bo.createElement("br",null),bo.createElement("br",null),bo.createElement("b",null,ns.t("Warning")),":",ns.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Qu,"SlippageTooltipContent");function rs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Ne.createElement(qu,null,Ne.createElement(Gu,null,Ne.createElement(ju,{variant:"title",size:"xmedium"},Vu.t("Slippage tolerance per swap")),Ne.createElement(Jh,{direction:"horizontal",size:4}),Ne.createElement(ey,{container:O(),side:"top",sideOffset:4,content:Ne.createElement(Qu,null)},Ne.createElement(Zh,{color:"gray"}))),Ne.createElement(zu,null,Js.map((r,s)=>{let a=`slippage-${s}`;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Hu,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Ne.createElement(Rh,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=parseFloat(r.target.value);(!s||s>=ta&&s<=ea)&&n(s)},suffix:o&&Ne.createElement(ju,{variant:"body",size:"small"},"%"),placeholder:Vu.t("Custom")})))}i(rs,"Slippage");function Xu(){let t=ay(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Pe("theme",s),l=Pe("liquiditySource",s),p=Pe("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Xo(n,r),g=c.filter(C=>C.type==="BRIDGE"||C.type==="AGGREGATOR"),f=g.length,v=g.filter(C=>C.selected).length,h=c.filter(C=>C.type==="DEX"),y=h.length,A=h.filter(C=>C.selected).length,T=i((C,N)=>{switch(o){case"loading":return j.createElement(ry,{variant:"text",size:"medium",width:50});case"failed":return j.createElement($t,{variant:"body",size:"medium",color:"$error500"},Pt.t("Loading failed"));default:return j.createElement($t,{variant:"body",size:"medium"},`${C} / ${N}`)}},"handleEndItem"),w={id:"bridge-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled bridges")),end:j.createElement(j.Fragment,null,T(v,f),j.createElement(ss,{direction:"horizontal",size:8}),j.createElement(is,{color:"black"})),onClick:()=>t(_.bridges)},b={id:"exchange-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Enabled exchanges")),end:j.createElement(j.Fragment,null,T(A,y),j.createElement(ss,{direction:"horizontal",size:8}),j.createElement(is,{color:"gray"})),onClick:()=>t(_.exchanges)},S={id:"theme-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Theme")),end:j.createElement(is,{color:"gray"}),onClick:()=>t(_.themes)},x={id:"infinite-approval-item",title:j.createElement(j.Fragment,null,j.createElement($t,{variant:"title",size:"xmedium"},Pt.t("Infinite approval")),j.createElement(ss,{direction:"horizontal",size:4}),j.createElement(sy,{side:"top",sideOffset:4,container:O(),content:j.createElement(Zn,null,j.createElement($t,{variant:"label",size:"medium",color:"neutral700"},Pt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},j.createElement(ty,{color:"gray"}))),end:j.createElement(iy,{checked:u}),onClick:m},I=l?[]:[w,b];return!e?.singleTheme&&!a&&I.push(S),I.push(x),j.createElement(K,{header:{title:Pt.t("Settings")}},j.createElement(pt,null,j.createElement(rs,null),j.createElement(oy,{type:j.createElement(ny,{title:"_",id:"_",onClick:()=>console.log()}),items:I})))}i(Xu,"SettingsPage");import{cancelSwap as Yy}from"@rango-dev/queue-manager-rango-preset";import{useManager as Jy}from"@rango-dev/queue-manager-react";import Ic from"react";import{i18n as ct}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ny,getCurrentStep as Ly,getRelatedWalletOrNull as Py}from"@rango-dev/queue-manager-rango-preset";import{Button as Cc,CopyIcon as $y,Divider as My,IconButton as _y,QuoteCost as Dy,StepDetails as Fy,Typography as eo,useCopyToClipboard as Oy}from"@rango-dev/ui";import{useWallets as Uy}from"@rango-dev/wallets-react";import kc from"bignumber.js";import{PendingSwapNetworkStatus as ur}from"rango-types";import Y,{useEffect as Tc,useRef as qy,useState as wc}from"react";import{useNavigate as zy}from"react-router-dom";import{i18n as wt}from"@lingui/core";var ly=[wt.t("Sunday"),wt.t("Monday"),wt.t("Tuesday"),wt.t("Wednesday"),wt.t("Thursday"),wt.t("Friday"),wt.t("Saturday")];function Ku(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?wt.t("Today"):`${ly[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ku,"timeSince");function Yu(t){return t.finishTime?Ku(parseInt(t.finishTime)):Ku(parseInt(t.creationTime))}i(Yu,"getSwapDate");import{Modal as gy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as tr}from"rango-types";import or from"react";import{i18n as Rn}from"@lingui/core";import{Button as Ju,Divider as as,MessageBox as py,Typography as Zu}from"@rango-dev/ui";import ot from"react";var Ru=i(({onCancel:t,onClose:e})=>ot.createElement(ot.Fragment,null,ot.createElement(as,{size:20}),ot.createElement(py,{type:"error",title:Rn.t("Cancel Swap"),description:Rn.t("Are you sure you want to cancel this swap?")}),ot.createElement(as,{size:32}),ot.createElement(Ju,{variant:"contained",type:"primary",size:"large",onClick:t},ot.createElement(Zu,{variant:"title",size:"medium",color:"neutral100"},Rn.t("Yes, Cancel it"))),ot.createElement(as,{size:12}),ot.createElement(Ju,{variant:"outlined",type:"primary",size:"large",onClick:e},ot.createElement(Zu,{variant:"title",size:"medium",color:"primary"},Rn.t("No, Continue")))),"CancelContent");import{i18n as er}from"@lingui/core";import{Button as ec,Divider as ls,MessageBox as uy,Typography as tc}from"@rango-dev/ui";import nt from"react";var oc=i(({onDelete:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(ls,{size:20}),nt.createElement(uy,{type:"error",title:er.t("Delete Transaction"),description:er.t("Are you sure you want to delete this swap?")}),nt.createElement(ls,{size:32}),nt.createElement(ec,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(tc,{variant:"title",size:"medium",color:"neutral100"},er.t("Yes, Delete it"))),nt.createElement(ls,{size:12}),nt.createElement(ec,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(tc,{variant:"title",size:"medium",color:"primary"},er.t("No, Cancel")))),"DeleteContent");import{i18n as ps}from"@lingui/core";import{PendingSwapNetworkStatus as us}from"rango-types";var cs={[us.WaitingForNetworkChange]:{type:"loading",title:ps.t("Change Network")},[us.WaitingForConnectingWallet]:{type:"warning",title:ps.t("Connect Wallet")},[us.NetworkChanged]:{type:"success",title:ps.t("Network Changed")}};import{MessageBox as my,Wallet as dy}from"@rango-dev/ui";import{useWallets as fy}from"@rango-dev/wallets-react";import Io from"react";import{styled as cy}from"@rango-dev/ui";var nc=cy("div",{display:"flex",justifyContent:"center"});var rc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=fy(),u=n?.walletType,m=u?yr(p(u)):null,c=u?l(u):null;return Io.createElement(Io.Fragment,null,Io.createElement(my,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&Io.createElement(nc,null,Io.createElement(dy,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function ms(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===tr.WaitingForNetworkChange||e===tr.WaitingForConnectingWallet||e===tr.NetworkChanged;return or.createElement(gy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&or.createElement(rc,{type:cs[e].type,title:cs[e].title,currentStepWallet:s,message:a,showWalletButton:e!==tr.WaitingForNetworkChange}),e==="delete"&&or.createElement(oc,{onClose:o,onDelete:n}),e==="cancel"&&or.createElement(Ru,{onClose:o,onCancel:r}))}i(ms,"SwapDetailsModal");import{i18n as Eo}from"@lingui/core";import{Button as ds,Divider as nr,MessageBox as ic,Modal as hy,TokenAmount as yy,Typography as rr}from"@rango-dev/ui";import me from"react";import{useNavigate as Sy}from"react-router-dom";function fs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,realUsdValue:a,realValue:l,token:p,chain:u,percentageChange:m,description:c,diagnosisUrl:g}=t,f=Sy();return me.createElement(hy,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(ic,{type:"success",title:Eo.t("Swap Successful")},me.createElement(yy,{direction:"vertical",tooltipContainer:O(),type:"output",centerAlign:!0,price:{value:r,usdValue:s,realUsdValue:a,realValue:l},token:p,chain:u,percentageChange:m}),me.createElement(nr,{size:12}),me.createElement(rr,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):me.createElement(ic,{type:"error",title:Eo.t("Transaction Failed"),description:c}),me.createElement(nr,{size:32}),n==="success"&&me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},me.createElement(rr,{variant:"title",size:"medium",color:"neutral100"},Eo.t("Done"))),me.createElement(nr,{size:12}),g&&me.createElement(me.Fragment,null,me.createElement(ds,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("Diagnosis"))),me.createElement(nr,{size:12})),me.createElement(ds,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(rr,{variant:"title",size:"medium",color:"primary"},Eo.t("See Details"))))}i(fs,"SwapDetailsCompleteModal");import Wy from"react";import{i18n as Ay}from"@lingui/core";import{Alert as cc,IconButton as by,LinkIcon as Iy}from"@rango-dev/ui";import xt,{Fragment as Ey}from"react";import{Alert as Cy,ChevronDownIcon as ky,ChevronUpIcon as Ty,IconButton as wy}from"@rango-dev/ui";import ir,{useState as xy}from"react";function sc(t){let{message:e}=t,[o,n]=xy(!1);return ir.createElement(Cy,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&ir.createElement(wy,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?ir.createElement(Ty,{size:12,color:"gray"}):ir.createElement(ky,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(sc,"FailedAlert");import{styled as vy}from"@rango-dev/ui";var ac=vy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as lc}from"@lingui/core";import{Alert as gs,Button as pc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as hs}from"rango-types";import Wo from"react";function uc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},lc.t("Change"))}):r===hs.WaitingForConnectingWallet?Wo.createElement(gs,{type:"warning",title:n.shortMessage,action:Wo.createElement(pc,{size:"xxsmall",type:"warning",onClick:()=>{o(hs.WaitingForConnectingWallet)}},lc.t("Connect"))}):Wo.createElement(gs,{type:"warning",title:n.shortMessage})}i(uc,"WarningAlert");function ys(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=io(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l;return xt.createElement(ac,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,v=c===g.length-1,h=v&&u||p,y=v&&s.status==="failed";return xt.createElement(Ey,{key:f},xt.createElement(cc,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:Ay.t("View transaction"),action:m.url&&xt.createElement(by,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},xt.createElement(Iy,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&xt.createElement(cc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&xt.createElement(uc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&xt.createElement(sc,{message:r}))}i(ys,"SwapDetailsAlerts");var mc=2e3;var dc=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Ye(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:E(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Ye(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:E(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6),realValue:r.outputAmount||r.expectedOutputAmountHumanReadable}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Wy.createElement(ys,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function fc(t){if(io(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(fc,"getStepState");import{css as sr,darkTheme as By,styled as Zt}from"@rango-dev/ui";var ar=Zt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),lr=Zt("div",{width:"100%"}),gc=Zt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),r$=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),hc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),i$=Zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Rt=sr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${By} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),pr=sr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),yc=sr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Sc=sr({width:"100%",padding:"0 $20 $10"});function Ss(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Uy(),p=d().blockchains(),u=d().tokens(),m=U.use.retry(),c=zy(),[g,f]=Oy(mc),v=qy(null),[h,y]=wc(null),[A,T]=wc(null),w=i(()=>{r(),y(null)},"onCancel"),b=Me.use.getUnreadNotifications(),S=Me.use.setAsRead(),x=b(),I=Ly(e),C=I?.networkStatus;Tc(()=>{x.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),S(e.requestId))},[e.status]),Tc(()=>{q?y(ur.WaitingForNetworkChange):C===ur.WaitingForConnectingWallet||C===ur.NetworkChanged?y(C):y(null)},[C]);let N=Ca(e),$=I?Ny(e,I):null,B=I?Py(e,I):null,k=Yu(e),M=ka(e),L=i(ce=>!!l(ce)?.mobileWallet,"isMobileWallet"),q=C===ur.WaitingForNetworkChange&&!!$&&!!B?.walletType&&(L(B.walletType)||s(B.walletType,$)),J=q?a.bind(null,B.walletType,$):void 0,Z=Sa(e,I),Q=dc({swap:e,switchNetwork:J,showNetworkModal:C,setNetworkModal:y,message:Z,blockchains:p}),re=Q.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,Mt=e.steps.reduce((ce,de)=>ce+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ce=>ce.diagnosisUrl)?.diagnosisUrl,mt=E(parseFloat(E(Ce,6,6))*(Se.toUsdPrice||0),4,4),vt=E(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),F=Ce?se(new kc(Ce).multipliedBy(Se.toUsdPrice||0)):"",z=se(new kc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),X=$e(vt,mt),Ee=e.status==="success"?ct.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:E(Ce,6,6),token:Q[re-1].to.token.displayName,conciseAddress:Qo(e.wallets[Q[re-1].to.chain.displayName]?.address||""),chain:Q[re-1].to.chain.displayName}}):`${ct.t("Transaction was not sent.")} ${N?ct.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}}):""}`;return Y.createElement(K,{noPadding:!0,header:{title:ct.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(Gt,null,Y.createElement(Cc,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},Y.createElement(eo,{size:"medium",variant:"label",color:"error"},ct.t("Delete"))))},footer:M&&!A&&Y.createElement(Cc,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},ct.t("Try again"))},Y.createElement(ar,null,Y.createElement(lr,null,Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t("Request ID")}:`),Y.createElement("div",{className:pr()},Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(_y,{variant:"ghost",onClick:f.bind(null,o||"")},Y.createElement($y,{size:16,color:"gray"})))),Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${ct.t(e.finishTime?"Finished at":"Created at")}:`),Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},k))),Y.createElement("div",{className:yc()},Y.createElement(Dy,{fee:E(String(Mt),2,2),time:Do(Fo(e.steps)),steps:re}),Y.createElement(uo,{from:{price:{value:E(e.inputAmount,6,6),usdValue:vt,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:Ce},token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image,displayName:Q[re-1].to.chain.displayName}},percentageChange:E(X,2,2),warningLevel:it(X??0)})),Y.createElement("div",{className:Sc()},Y.createElement(eo,{variant:"title",size:"small"},ct.t("Swaps steps"))),Y.createElement(My,{size:8}),Y.createElement(gc,{ref:v},Q.map((ce,de)=>{let Mo=de,rt=fc(e.steps[de]),Hc=rt==="error"||rt==="in-progress"||rt==="warning"||rt==="completed"&&de===Q.length-1;return Y.createElement(Fy,{key:Mo,step:ce,type:"swap-progress",ref:v,state:rt,hasSeparator:de!==0,tabIndex:Mo,isFocused:Hc,tooltipContainer:O()})}))),Y.createElement(ms,{state:h,onClose:()=>y(null),onCancel:w,onDelete:n,message:Z.detailedMessage.content,currentStepWallet:B}),Y.createElement(fs,{open:!!A,diagnosisUrl:oo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:E(Ce,6,6),usdValue:mt,realUsdValue:F,realValue:se(Ce),percentageChange:E(X,2,2),token:{displayName:Q[re-1].to.token.displayName,image:Q[re-1].to.token.image},chain:{image:Q[re-1].to.chain.image},description:Ee}))}i(Ss,"SwapDetails");import{i18n as No}from"@lingui/core";import{CopyIcon as jy,IconButton as Xy,NotFound as Ky,Skeleton as Ac,Typography as mr}from"@rango-dev/ui";import ue from"react";import{i18n as Gy}from"@lingui/core";import{Divider as Hy,Skeleton as Qy,Typography as Vy}from"@rango-dev/ui";import ie from"react";import{css as je,styled as Cs}from"@rango-dev/ui";var xc=Cs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Bo=Cs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),cr=Cs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),_$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),D$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),F$=je({paddingTop:"$15",display:"flex"}),O$=je({padding:"$15 $0"}),U$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),q$=je({paddingBottom:"$10"}),z$=je({display:"flex",justifyContent:"start",alignItems:"center"}),G$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),H$=je({display:"flex",alignItems:"center"}),Q$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),vc=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ks(){return ie.createElement(xc,null,ie.createElement(go,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(Vy,{variant:"title",size:"small"},Gy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Bo,null,ie.createElement(et,{separator:!1}),ie.createElement("div",{className:vc()},ie.createElement(Hy,{direction:"horizontal",size:20}),ie.createElement(Qy,{height:22,variant:"rectangular"}))),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1})),ie.createElement(cr,null),ie.createElement(Bo,null,ie.createElement(et,{separator:!1}))))}i(ks,"LoadingSwapDetails");function bc(t){let{requestId:e,showSkeleton:o}=t;return ue.createElement(K,{noPadding:!0,header:{title:No.t("Swap and Bridge"),suffix:ue.createElement(Gt,null)}},o&&ue.createElement(ar,null,ue.createElement(lr,null,ue.createElement("div",{className:Rt()},ue.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Request ID")}:`),ue.createElement("div",{className:pr()},ue.createElement(mr,{variant:"label",size:"small",color:"neutral700"},ue.createElement(Ac,{width:60,height:10,variant:"rounded"})),ue.createElement(Xy,{variant:"ghost"},ue.createElement(jy,{size:16,color:"gray"})))),ue.createElement("div",{className:Rt()},ue.createElement(mr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Created at")}:`),ue.createElement(mr,{variant:"label",size:"small",color:"neutral700"},ue.createElement(Ac,{width:60,height:10,variant:"rounded"})))),ue.createElement(ks,null)),!o&&ue.createElement(hc,null,ue.createElement(Ky,{title:No.t("Not found"),description:No.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(bc,"SwapDetailsPlaceholder");function Ec(){let{manager:t,state:e}=Jy(),o=!e.loadedFromPersistor,n=jt(t),r=Ae.use.selectedSwapRequestId(),s=yt(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Yy(g)}},"onCancel"),m=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),c=p?.swap;return!c||l?Ic.createElement(bc,{requestId:r||"",showSkeleton:l}):Ic.createElement(Ss,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Ec,"SwapDetailsPage");import{i18n as Lo}from"@lingui/core";import{AutoThemeIcon as Zy,DarkModeIcon as Ry,LightModeIcon as eS,List as tS,ListItemButton as oS,Radio as Ts,RadioRoot as nS,Typography as ws}from"@rango-dev/ui";import be from"react";function Wc(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Light")),onClick:()=>t("light"),start:be.createElement(eS,{color:"gray"}),end:be.createElement(Ts,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Dark")),onClick:()=>t("dark"),start:be.createElement(Ry,{color:"gray"}),end:be.createElement(Ts,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(ws,{variant:"title",size:"xmedium"},Lo.t("Auto")),onClick:()=>t("auto"),start:be.createElement(Zy,{color:"gray"}),end:be.createElement(Ts,{value:"auto"})}];return be.createElement(K,{header:{title:Lo.t("Theme")}},be.createElement(pt,null,be.createElement(nS,{onValueChange:n=>t(n),value:e},be.createElement(tS,{type:be.createElement(oS,{title:Lo.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Wc,"ThemePage");function Bc(){return rS([{path:_.home,element:Ie.createElement(su,null)},{path:_.fromSwap,children:[{index:!0,element:Ie.createElement(os,{type:"source"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ie.createElement(os,{type:"destination"})},{path:_.blockchains,element:Ie.createElement(Oi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ie.createElement(Xu,null)},{path:_.themes,element:Ie.createElement(Wc,null)},{path:_.languages,element:Ie.createElement(lu,null)},{path:_.exchanges,element:Ie.createElement($i,{sourceType:"Exchanges"})},{path:_.bridges,element:Ie.createElement($i,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ie.createElement(tu,null)},{path:_.swapDetails,element:Ie.createElement(Ec,null)}]},{path:_.wallets,element:Ie.createElement(wl,null)},{path:_.confirmSwap,element:Ie.createElement(Qp,null)}])}i(Bc,"AppRoutes");import{isApprovalTX as iS,MainEvents as Lc,RouteEventType as Pc,StepEventType as to,StepExecutionEventStatus as sS,useEvents as aS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as $c}from"react";import{StepExecutionBlockedEventStatus as xs}from"@rango-dev/queue-manager-rango-preset";var Nc=[xs.WAITING_FOR_CHANGE_WALLET_ACCOUNT,xs.WAITING_FOR_NETWORK_CHANGE,xs.WAITING_FOR_WALLET_CONNECT];function Mc(){let t=d().tokens(),e=H.use.connectedWallets(),o=H.use.getWalletsDetails(),n=Me.use.setNotification(),r=Me.use.setAsRead(),s=aS();return $c(()=>(s.on(Lc.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===sS.TX_SENT&&!iS(p)||l.type===to.SUCCEEDED){let c=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);c&&o([c],t),g&&o([g],t)}l.type===to.TX_EXECUTION_BLOCKED&&Nc.includes(l.status)||l.type===to.FAILED?n(l,u):(l.type===to.TX_EXECUTION||l.type===to.CHECK_STATUS)&&r(u.requestId)}),()=>s.all.clear()),[s,e.length]),$c(()=>(s.on(Lc.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Pc.FAILED||l.type===Pc.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(Mc,"WidgetEvents");import{globalCss as lS}from"@rango-dev/ui";var _c=i(()=>lS({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{styled as pS}from"@rango-dev/ui";var Dc=pS("div",{display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function dr(){_c();let{config:t}=d(),{activeTheme:e}=Sn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Hn(),[r,s]=Oc(""),[a,l]=Oc(),p=cS(pn);return Fc(()=>{Me.persist.rehydrate(),p.onConnectWallet(s)},[]),Fc(()=>{n(t?.language)},[t?.language]),Po.createElement(uS,{language:o},Po.createElement(Dc,{id:"swap-container",className:e()},Po.createElement(Mc,null),Po.createElement(Pa,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Po.createElement(Bc,null))))}i(dr,"Main");import As,{useMemo as WS}from"react";import{checkWaitingForNetworkChange as mS,makeQueueDefinition as dS}from"@rango-dev/queue-manager-rango-preset";import{Provider as fS}from"@rango-dev/queue-manager-react";import{useWallets as gS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as hS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as yS}from"rango-types";import SS,{useMemo as CS}from"react";function kS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=gS(),l=CS(()=>dS({API_KEY:t.apiKey||_t("API_KEY"),BASE_URL:_t("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:H.use.connectedWallets().map(T=>({accounts:[T],name:T.chain}))},c=i(async(T,w)=>{if(s(T,w))return r(T,w)},"switchNetwork"),g=i(T=>!!a(T).mobileWallet,"isMobileWallet"),f=p.filter(T=>T.enabled).reduce((T,w)=>(T[w.name]=w,T),{}),v=p.filter(yS),h=i(T=>{let{supportedChains:w}=a(T);return qo(w)},"getSupportedChainNames"),y=e(),A={meta:{blockchains:f,evmBasedChains:v,evmNetworkChainInfo:hS(v),getSupportedChainNames:h},getSigners:o,wallets:m,providers:y,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return SS.createElement(fS,{queuesDefs:[l],context:A,onPersistedDataLoaded:T=>{mS(T)},isPaused:!1},t.children)}i(kS,"QueueManager");var Uc=kS;import{useManager as AS}from"@rango-dev/queue-manager-react";import bS,{createContext as IS,useContext as ES}from"react";import{cancelSwap as TS,getCurrentBlockchainOfOrNull as wS,getCurrentStep as xS,getRelatedWalletOrNull as vS}from"@rango-dev/queue-manager-rango-preset";var $o=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return jt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&TS(o)}getCurrentStepInfo(e){let o=xS(e);return{step:o,wallet:o?vS(e,o):null,network:o?wS(e,o):null}}};i($o,"WidgetHistory");var qc=IS(void 0);function vs(t){let{manager:e}=AS(),o=U.use.retry(),n=new $o(e,{retrySwap:o}),r=H.use.connectedWallets(),s=H.use.loading(),a=Fs(r),l=H.use.getWalletsDetails(),p=d().blockchains(),u=d().tokens(),m=d().swappers(),c=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return bS.createElement(qc.Provider,{value:g},t.children)}i(vs,"WidgetInfo");function zc(){let t=ES(qc);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(zc,"useWidget");function fr(t){let{onUpdateState:e,config:o}=t;return WS(()=>{Gs({API_KEY:o?.apiKey||_o,BASE_URL:o?.apiUrl||Es})},[o]),As.createElement(un,{config:o,onUpdateState:e},As.createElement(Uc,{apiKey:o.apiKey},As.createElement(vs,null,t.children)))}i(fr,"WidgetProvider");function Gc(t){return t.config?.externalWallets?bs.createElement(dr,null):bs.createElement(fr,{config:t.config??gr},bs.createElement(dr,null))}i(Gc,"Widget");export{gD as MainEvents,AD as Networks,ED as PendingSwapNetworkStatus,hD as RouteEventType,yD as StepEventType,SD as StepExecutionBlockedEventStatus,CD as StepExecutionEventStatus,xD as WalletEvents,bD as WalletTypes,Gc as Widget,fr as WidgetProvider,un as WidgetWallets,qr as customizedThemeTokens,wD as readAccountAddress,Bl as useWallets,zc as useWidget,kD as useWidgetEvents};
1
+ var Jc=Object.defineProperty;var i=(t,e)=>Jc(t,"name",{value:e,configurable:!0});import{MainEvents as PD,RouteEventType as MD,StepEventType as $D,StepExecutionBlockedEventStatus as _D,StepExecutionEventStatus as DD,useEvents as FD}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as UD,useWallets as Fl,Events as qD}from"@rango-dev/wallets-react";import{Networks as GD,WalletTypes as HD}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as VD}from"rango-types";import{Events as Dr,Provider as Pm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Mm}from"rango-sdk";import pn,{createContext as $m,useEffect as Fr,useRef as _m,useState as Dm}from"react";import{useEffect as sn,useLayoutEffect as Na,useRef as an}from"react";import hm,{createContext as ym,useContext as Sm,useEffect as Cm,useRef as km}from"react";import{create as fm}from"zustand";import{persist as gm}from"zustand/middleware";var Sr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},Ns=i((t,e,o)=>({config:{...Sr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as pm}from"rango-sdk";var Do="c6381a79-2817-4602-83bf-6a641a409e32",Ps="https://api.rango.exchange",Te="rango-swap-box";import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as em}from"@rango-dev/wallets-react";import{detectInstallLink as tm,getCosmosExperimentalChainInfo as om,isEvmAddress as nm,KEPLR_COMPATIBLE_WALLETS as tC,Networks as Ds}from"@rango-dev/wallets-shared";import Cr from"bignumber.js";import{isCosmosBlockchain as rm}from"rango-types";import Zc from"bignumber.js";var We=new Zc(0);import{WalletTypes as Rc}from"@rango-dev/wallets-shared";var Ms=[Rc.LEAP];import{BigNumber as _s}from"bignumber.js";var Fo=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),I=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new _s(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new _s(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Oo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Xe=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),no=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function se(t){return I(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(se,"formatTooltipNumbers");function kr(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(kr,"mapStatusToWalletState");function Fs(t,e,o,n){return o.filter(r=>!Ms.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=kr(t(r));return{title:s,image:a,link:tm(l),state:p,type:r}})}i(Fs,"mapWalletTypesToWalletInfo");function zo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(zo,"walletAndSupportedChainsNames");function Os(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}=em(p),c=l.length>0,h=l.includes(m),f=m===Ds.Unknown;if(c&&!h&&!f)return;let w=m===Ds.Unknown&&nm(u);if(f&&!w)return;o.includes(m)||w?r?a(m,u.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{a(k,u.toLowerCase())}):a(m,u)}),s}i(Os,"prepareAccountsForWalletStore");function Us(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(Us,"getRequiredChains");function Go(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Go,"isAccountAndWalletMatched");function qs(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 Cr(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:sm(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(qs,"makeBalanceFor");function zs(t){return{...t,loading:!1,error:!0}}i(zs,"resetConnectedWalletState");var Gs=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=I(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new Cr(s?.amount||We).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),We)||We).toString();return im(r)},"calculateWalletUsdValue");function im(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(im,"numberWithThousandSeparator");var sm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Ho=i((t,e)=>{let o=om(Object.entries(t).map(([,n])=>n).filter(rm));return o&&o[e]?.experimental},"isExperimentalChain");function Qo(t){return t?{...t,amount:I(t.amount,8,8),usdValue:I(t.usdValue,4,4)}:null}i(Qo,"formatBalance");function am(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(am,"sortTokensByBalance");function lm(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(lm,"sortTokensByPinnedToken");function Hs(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=lm(n,r,o);return l!==0?l:am(s,a)}),t}i(Hs,"sortTokens");function Ne(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Ne,"tokensAreEqual");function Qs(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(Qs,"sortWalletsBasedOnConnectionState");function Vo(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Vo,"getConciseAddress");function Vs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Vs,"getAddress");function Tr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Tr,"createTokenHash");function jo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Cr(o?.usdPrice??We).multipliedBy(o?.amount).toString():""},r=o?Tr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(jo,"makeTokensBalance");var js=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var wr={API_KEY:Do};function Dt(t){return wr[t]||""}i(Dt,"getConfig");function Xs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),wr=e,wr}i(Xs,"initConfig");var Ks=20,Ys=25,Js="Roboto",xr="theme-widget",ro=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ne(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ne(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),vr=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig");var Xo,Ft=i(()=>Xo||(Xo=new pm(Dt("API_KEY"),Dt("BASE_URL")),Xo),"httpService");function Ot(t){return Array.from(new Set(t))}i(Ot,"removeDuplicateFrom");function Ar(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ar,"areEqual");function Zs(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Zs,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");var O=i(()=>document.getElementById(Te),"getContainer");function Ko(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Ot(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Ko,"getUniqueSwappersGroups");function Rs(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Rs,"sortLiquiditySourcesByGroupTitle");function Pe(t,e){return e?.[t]==="hidden"}i(Pe,"isFeatureHidden");function Yo(t,e){return e?.[t]==="enabled"}i(Yo,"isFeatureEnabled");var ea=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?!!(bt(p.symbol,o.searchFor)||bt(p.address||"",o.searchFor)||bt(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(u,o.type)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Ne(a,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(Rs)},fetch:async()=>{try{let o=await Ft().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 um,French as cm,Japanese as mm,Spanish as dm}from"@rango-dev/ui";var ta=[{title:"English",label:"English",local:"en",SVGFlag:um},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:dm},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:cm},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:mm}],Ut="en";var oa=[.5,1,3],na=1,ra=5,ia=100,sa=0;var aa=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Ut,preferredBlockchains:[],slippage:na,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=Ot(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:Ut},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function la(t){return fm()(gm((...e)=>({...ea(...e),...aa(...e),...Ns(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(la,"createAppStore");var pa=ym(null);function d(){let t=Sm(pa);if(Cm(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function ua(t){let e=km();return e.current||(e.current=la(t.config)),hm.createElement(pa.Provider,{value:e.current},t.children)}i(ua,"AppStoreProvider");import yt from"bignumber.js";import{create as Em}from"zustand";import{subscribeWithSelector as Im}from"zustand/middleware";import{getLastSuccessfulStep as Am}from"@rango-dev/queue-manager-rango-preset";import Mk 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 ca(t,e){return e.find(o=>o.name===t)?.displayName}i(ca,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}i(Ye,"getBlockchainShortNameFor");function ma(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(ma,"getSwapperDisplayName");function Er(t,e){return e.find(o=>Ne(o,t))??null}i(Er,"findToken");function Ir(t,e){return e.find(o=>o.name===t)??null}i(Ir,"findBlockchain");import{i18n as Ue}from"@lingui/core";import ve from"bignumber.js";import{PendingSwapNetworkStatus as en}from"rango-types";function Jo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Jo,"getRequiredWallets");function Zo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Zo,"isValidAddress");import{i18n as fe}from"@lingui/core";var V=i(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function da(t){switch(t.type){case 0:return t.diagnosisMessage??V().noResultError.title;case 1:return V().genericServerError;default:return""}}i(da,"getQuoteErrorMessage");import{i18n as Ro}from"@lingui/core";var Et=i(()=>({connectWallet:Ro.t("Connect Wallet"),swap:Ro.t("Swap"),swapAnyway:Ro.t("Swap anyway"),ethWarning:Ro.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function fa(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(fa,"hasHighValueLoss");function Wr(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(Wr,"hasLimitError");function Br(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ve(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ve(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=Ue.t({id:"Required: >= {min} {symbol}",values:{min:I(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Ue.t({id:"Required: > {min} {symbol}",values:{min:I(o,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Ue.t({id:"Required: <= {max} {symbol}",values:{max:I(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Ue.t({id:"Required: < {max} {symbol}",values:{max:I(n,6,6),symbol:e.from.symbol}}),a=V().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(Br,"getLimitErrorMessage");function ga(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Et().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:Et().swap,action:"confirm-swap",disabled:!0}:a?{title:Et().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Et().ethWarning,action:"confirm-warning",disabled:!1}:{title:Et().swap,action:"confirm-swap",disabled:!1}:{title:Et().connectWallet,action:"connect-wallet",disabled:!1}}i(ga,"getSwapButtonState");function Lr(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(Lr,"canComputePriceImpact");function Tm(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(Tm,"requiredWallets");var wm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function xm(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=wm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(xm,"getUsdFeeOfStep");function tn(t,e){return t.reduce((o,n)=>o.plus(xm(n,e)),We)}i(tn,"getTotalFeeInUsd");function Nr(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(Nr,"checkSlippageErrors");function ha(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(ha,"checkSlippageWarnings");function on(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(on,"getMinRequiredSlippage");function ya(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ya,"hasProperSlippage");function nn(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:h,initialQuote:f,destination:x}=t,w=s?.reduce((A,y)=>(A[y.chain]=y.address,A),{}),g=[];r?.forEach(A=>{let y=g.find(E=>E.blockchain===A.chain);y?y.addresses.push(A.address):g.push({blockchain:A.chain,addresses:[A.address]})});let v=!!f,k=Ot((f?.result?.swaps||[]).reduce((A,y)=>(A.push(y.from.blockchain,y.to.blockchain),y.internalSwaps&&Array.isArray(y.internalSwaps)&&y.internalSwaps.map(E=>{A.push(E.from.blockchain,E.to.blockchain)}),A),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:h??void 0,checkPrerequisites:v,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:g,selectedWallets:w??{},slippage:u.toString(),...x&&{destination:x},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(A=>!a.includes(A)),swappersGroupsExclude:!1},...v&&{blockchains:k}}}i(nn,"createQuoteRequestBody");function Sa(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Sa,"getWalletsForNewSwap");function qt(t){return t.result?.outputAmount||null}i(qt,"getQuoteOutputAmount");function Ca(t,e){return new ve(e).div(new ve(t)).minus(1).multipliedBy(100).toNumber()}i(Ca,"getPercentageChange");function ka(t,e){let o=qt(t),n=qt(e);if(!o||!n)return!1;let r=Me(o,n);return r?r<=-1:!0}i(ka,"isOutputAmountChangedALot");function Ta(t,e,o){let n=t.validationStatus,r=Us(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>Ea(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=I(new ve(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=I(new ve(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Ue.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Ue.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Ue.t(" for input and network fee")),Ue.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Ye(a.asset.blockchain,o)}})})}i(Ta,"generateBalanceWarnings");function wa(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(wa,"calcOutputUsdValue");function io(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==en.NetworkChanged}i(io,"isNetworkStatusInWarningState");function xa(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),io(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case en.WaitingForConnectingWallet:n=n||Ue.t("Waiting for connecting wallet");break;case en.WaitingForQueue:n=n||Ue.t("Waiting for other running tasks to be finished");break;case en.WaitingForNetworkChange:n=n||Ue.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(xa,"getSwapMessages");function va(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(va,"getLastConvertedTokenInFailedSwap");function Aa(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(Aa,"shouldRetrySwap");function ba(t,e,o,n,r,s){return t||!e&&!Tm(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Zo(s,o)}i(ba,"confirmSwapDisabled");function Pr(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(Pr,"searchParamsToToken");function Wa(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Wa,"getQuoteToTokenUsdPrice");function Mr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Mr,"isNumberOfSwapsChanged");function $r(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!Ar(o,n)}i($r,"isQuoteSwappersUpdated");function _r(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!Ar(o,n)}i(_r,"isQuoteInternalCoinsUpdated");function Ba(t,e){return Mr(t,e)||$r(t,e)||_r(t,e)}i(Ba,"isQuoteChanged");function Ea(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(Ea,"getRequiredBalanceOfWallet");function st(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(st,"getPriceImpactLevel");function La(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=Am(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ir(s?s.toBlockchain:n.fromBlockchain,e),p=Ir(r.toBlockchain,e),u=Er(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=Er(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(La,"createRetryQuote");function rn(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=It(o,t.requestAmount),l=It(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=Me(a.toString(),l.toString());if(!!m&&fa(a,m)){let h=tn(t.result.swaps,r),f=st(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:h,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=on(t),u=s>ra;if(ya(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:ha(t,s),minRequiredSlippage:p};return null}i(rn,"generateQuoteWarnings");function Me(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ca(t.toString(),e.toString());return n&&n<0?n:null}i(Me,"getPriceImpact");var bm=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=bm;var It=i((t,e)=>t?.usdPrice?new yt(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=ht(Em()(Im(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=wa(e.result?.outputAmount,Wa(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}=La(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 Pa(){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(),h=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:x,setAffiliateWallets:w}=d(),g=u?.from?.tokens,v=u?.from?.blockchains,k=u?.to?.tokens,T=u?.to?.blockchains,A=an(void 0),y=an(void 0),E=an(void 0),b=an(void 0);sn(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Na(()=>{if(m==="success"){let S=c.find(M=>M.name===u?.from?.blockchain),B=h.find(M=>Ne(M,u?.from?.token||null));(S||!S&&E.current)&&n(S??null),B?r({token:B,meta:{blockchains:c,tokens:h}}):!B&&A.current&&r({token:null}),E.current=u?.from?.blockchain,A.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),sn(()=>{ro(s,g)&&r({token:null}),vr(l,v)&&n(null)},[g,v]),sn(()=>{ro(a,k)&&r({token:null}),vr(p,T)&&o(null)},[k,T]),Na(()=>{if(m==="success"){let S=c.find(M=>M.name===u?.to?.blockchain),B=h.find(M=>Ne(M,u?.to?.token||null));(S||!S&&b.current)&&o(S??null),B?e({token:B,meta:{blockchains:c,tokens:h}}):!B&&y.current&&e({token:null}),b.current=u?.to?.blockchain,y.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),sn(()=>{f(u?.affiliate?.ref??null),x(u?.affiliate?.percent??null),w(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Pa,"useSyncStoresWithConfig");import{useEffect as Nm}from"react";import{create as Wm}from"zustand";import{subscribeWithSelector as Bm}from"zustand/middleware";var H=ht(Wm()(Bm((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:jo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>Go(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Ft().getWalletsDetails(a)).wallets;if(p)t(u=>{let m=u.connectedWallets.map(h=>{let f=o.find(w=>Go(w,h)),x=p.find(w=>w.address===h.address&&w.blockChain===h.chain);return x?.failed&&f&&r&&s([f],n,!1),f&&x?{...h,explorerUrl:x.explorerUrl,balances:qs(x,n),loading:!1}:h});return{loading:!1,balances:jo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>Go(c,m))?zs(m):m);return{loading:!1,balances:jo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Tr(o);return n[r]??null}}))));import{allProviders as Lm}from"@rango-dev/provider-all";function ln(t,e){let o=Lm({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(ln,"matchAndGenerateProviders");function Ma(t,e){return ln(t,e).map(r=>r.config.type)}i(Ma,"configWalletsToWalletName");function $a(t,e){let o=H.use.clearConnectedWallet(),n=ln(void 0,e);return Nm(()=>{o(),n=ln(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i($a,"useWalletProviders");var un=$m({onConnectWallet:()=>{}});function Fm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},[l,p]=Dm([]),{providers:u}=$a(t.config.wallets,a),{connectWallet:m,disconnectWallet:c}=H(),h=_m();Pa(),Fr(()=>{n().catch(console.log)},[]),Fr(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let f=r.filter(Mm).map(w=>w.name),x=i((w,g,v,k,T)=>{if(g===Dr.ACCOUNTS)if(v){let A=zo(T.supportedBlockchains),y=Os(w,v,f,A,T.isContractWallet);p(y)}else c(w);if(g===Dr.ACCOUNTS&&k.connected){let A=`${w}-${k.network}-${v}`;k.connected&&(h.current?h.current(A):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(g===Dr.NETWORK&&k.network){let A=`${w}-${k.network}`;h.current?h.current(A):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(w,g,v,k,T)},"onUpdateState");return Fr(()=>{l.length&&m(l,s)},[l,s]),pn.createElement(un.Provider,{value:{onConnectWallet:w=>{h.current=w}}},pn.createElement(Pm,{allBlockChains:r,providers:u,onUpdateState:x,autoConnect:!0},t.children))}i(Fm,"Main");function cn(t){let{config:e,...o}=t;return pn.createElement(ua,{config:e},pn.createElement(Fm,{...o,config:e}))}i(cn,"WidgetWallets");import Ls from"react";import{I18nManager as CS}from"@rango-dev/ui";import Mo,{useContext as kS,useEffect as Hc,useState as Qc}from"react";import{useQueueManager as jm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Xm}from"@rango-dev/wallets-react";import{isEvmBlockchain as Km}from"rango-types";import mn,{Fragment as Ym}from"react";import{MemoryRouter as Jm,useInRouterContext as Zm}from"react-router";import{useWallets as Um}from"@rango-dev/wallets-react";import{useEffect as qm,useRef as zm}from"react";function _a(){let{connect:t,state:e}=Um(),o=zm({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);qm(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(_a,"useForceAutoConnect");import{useEffect as Or,useRef as Ur}from"react";import{createSearchParams as Hm,useLocation as Qm,useSearchParams as Vm}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 Gm}from"zustand";var Ae=ht(Gm()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function Da(){let t=Ur(!0),[e,o]=Vm(),n=Qm(),r=Ur(n.search),s=Ur({}),a=U.use.fromBlockchain(),l=U.use.toBlockchain(),p=U.use.fromToken(),u=U.use.toToken(),m=U.use.setFromBlockchain(),c=U.use.setFromToken(),h=U.use.setToBlockchain(),f=U.use.setToToken(),x=U.use.inputAmount(),w=U.use.setInputAmount(),g=d().fetchStatus,v=d().blockchains(),k=d().tokens(),T=Ae.use.setSelectedSwap();return Or(()=>{let A={};Hm(r.current).forEach((E,b)=>{A[b]=E}),s.current=A;let y=n.pathname.split(_.swaps+"/")[1]||null;y&&T(y)},[]),Or(()=>{if(!t.current){let A="",y="",E="",b="",S="",B=s.current["autoConnect"];g!=="success"?(A=s.current["fromBlockchain"],y=s.current["fromToken"],E=s.current["toBlockchain"],b=s.current["toToken"],S=s.current["fromAmount"]||x):(A=a?.name||"",y=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),E=l?.name||"",b=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),S=x),o({...A&&{["fromBlockchain"]:A},...y&&{["fromToken"]:y},...E&&{["toBlockchain"]:E},...b&&{["toToken"]:b},...S&&{["fromAmount"]:S.toString()},...B&&{["autoConnect"]:B}},{replace:!0})}t.current=!1},[n.pathname,x,a,p,l,u]),Or(()=>{if(g==="success"){let A=e.get("fromBlockchain"),y=e.get("fromToken"),E=e.get("toBlockchain"),b=e.get("toToken"),S=e.get("fromAmount"),B=v.find($=>$.name===A),M=Pr(k,y,B||null),L=v.find($=>$.name===E),C=Pr(k,b,L||null);B&&(m(B),M&&c({token:M,meta:{blockchains:v,tokens:k}})),L&&(h(L),C&&f({token:C,meta:{blockchains:v,tokens:k}})),S&&w(S)}},[g]),null}i(Da,"UpdateUrl");function Fa({children:t,...e}){let o=Zm(),n=o?Ym:Jm,r=d().blockchains(),{canSwitchNetworkTo:s}=Xm();_a();let a=r.filter(Km);return jm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),mn.createElement(mn.Fragment,null,mn.createElement(n,null,t),o&&mn.createElement(Da,null))}i(Fa,"AppRouter");import Ee from"react";import{useRoutes as dS}from"react-router-dom";import{i18n as On}from"@lingui/core";import{useManager as Cg}from"@rango-dev/queue-manager-react";import{Alert as Yp,Button as kg,css as bi,Divider as Tg,IconButton as Jp,SettingsIcon as wg,styled as Zp,Tooltip as xg,Typography as vg,WalletIcon as Ag}from"@rango-dev/ui";import ne,{useEffect as To,useLayoutEffect as bg,useRef as Eg,useState as Un}from"react";import{flushSync as Ig}from"react-dom";import{useNavigate as Wg}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{Alert as si,BalanceErrors as Cf,Button as Ol,ChevronDownIcon as kf,ChevronLeftIcon as Tf,Divider as Vt,MessageBox as wf,Modal as Ul,Typography as Wn,WalletIcon as xf}from"@rango-dev/ui";import P,{useEffect as vf,useLayoutEffect as Af,useRef as bf,useState as Lt}from"react";import{useNavigate as Ef}from"react-router-dom";import{i18n as dn}from"@lingui/core";function fn(t){switch(t.type){case 0:return dn.t("Route has been updated.");case 3:return dn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return dn.t("Route swappers has been updated.");case 2:return dn.t("Route internal coins has been updated.");default:return""}}i(fn,"getQuoteUpdateWarningMessage");import*as Gt from"@radix-ui/react-collapsible";import{Button as ed,css as Oa,darkTheme as zt,IconButton as td,keyframes as Ua,styled as ge,TextField as od}from"@rango-dev/ui";var so=300,nd=Ua({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),rd=Ua({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),qa=ge("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),za=ge("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),id=ge("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${zt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${zt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${zt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Ga=ge(id,{alignSelf:"stretch",minHeight:"93px"}),Ha=ge(Gt.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Qa=ge("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Va=ge(td,{position:"absolute",left:"$20"}),ja=ge("div",{paddingTop:"$20"}),Xa=Oa({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Ka=ge(Gt.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ya=ge(ed,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${zt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${zt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${zt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Ja=ge("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),Za=Oa({paddingTop:"5px"}),Ra=ge("div",{transition:`all ${so}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),el=ge("div",{display:"flex"}),tl=ge(od,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),gn=ge(Gt.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${nd} ${so}ms ease-out`},false:{animation:`${rd} ${so}ms ease-out`}}}}),ol=ge("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as hf,Divider as ri,Image as yf,MessageBox as In,Modal as Ml,SelectableWallet as Sf,Typography as $l,WalletState as _l}from"@rango-dev/ui";import ee,{useEffect as Dl,useState as po}from"react";import{WalletState as qr}from"@rango-dev/ui";import{useWallets as sd}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as ad,WalletTypes as hn}from"@rango-dev/wallets-shared";import{useEffect as ld,useState as pd}from"react";var ud=Object.values(hn);function yn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=sd(),{connectedWallets:u}=H(),m=d().blockchains(),c=Ma(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||ud,h=Fs(s,l,c,o),f=Qs(h),[x,w]=pd(""),g=i(y=>!u.find(E=>E.walletType===y&&E.chain===o),"isExperimentalChainNotAdded"),v=i(async y=>{let E=s(y);try{if(x&&w(""),E.connected)await a(y);else{let b=!!h.find(S=>S.state===qr.CONNECTED);if(!e?.multiWallets&&b)return;n?.(y),await p(y),r?.(y)}}catch(b){w("Error: "+b?.message)}},"handleClick"),k=i(()=>{let y=h?.filter(E=>E.state===qr.CONNECTING)||[];for(let E of y)a(E.type)},"disconnectConnectingWallets");ld(()=>()=>{k()},[]);let T=i(y=>y.filter(b=>b.state!=qr.NOT_INSTALLED&&![hn.DEFAULT,hn.WALLET_CONNECT_2].includes(b.type)&&l(b.type).supportedChains.filter(S=>S.type=="EVM").length>0).length==0,"shouldShowDefaultInjectedWallet"),A=i((y,E,b)=>Ho(b,E)&&g(y)&&!ad.includes(y)||y==hn.DEFAULT&&!T(h),"shouldExcludeWallet");return{list:f.filter(y=>!A(y.type,o??"",m)),error:x,handleClick:v}}i(yn,"useWalletList");import{i18n as El}from"@lingui/core";import{styled as Wl,Typography as lf,Wallet as pf,WalletState as uf}from"@rango-dev/ui";import Bt,{Fragment as cf,useState as Il}from"react";import{BottomLogo as Jd,Divider as Zd,Header as Rd}from"@rango-dev/ui";import he from"react";import{useNavigate as cd}from"react-router-dom";function St(){let t=cd();return()=>t(-1)}i(St,"useNavigateBack");import{createTheme as Qr,darkTheme as hd,lightTheme as yd}from"@rango-dev/ui";import{useEffect as il,useState as Sd}from"react";import{theme as fd,darkColors as gd}from"@rango-dev/ui";var nl=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),Sn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:nl(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:nl(e,-((l-5)*25))});return a},"generateRangeColors"),zr=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=Sn(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,...Sn(s,a)}}return n?r:{}},"generateColors");var rl=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),md=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=rl(o%52)+e;return rl(o%52)+e},"toAlphabeticName"),dd=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Gr=i(t=>md(dd(5381,JSON.stringify(t))>>>0),"toHash");function Hr(t){let e=fd.colors,o=zr({...e,...gd},!0,t?.dark),n=zr(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:`${xr}-light-${Gr(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${xr}-dark-${Gr(p)}`,tokens:p}}return{light:a,dark:l}}i(Hr,"customizedThemeTokens");function Cn(t){let{colors:e,fontFamily:o=Js,borderRadius:n=Ks,secondaryBorderRadius:r=Ys,mode:s="auto"}=t,[a,l]=Sd("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=Hr(e),h=Qr({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[h.className,yd.className],x=[h.className,hd.className];if(c){let g=Qr(c.id,c.tokens);f.push(g.className)}if(m){let g=Qr(m.id,m.tokens);x.push(g.className)}return il(()=>{let g=i(v=>{v.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",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),il(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let g=f.join(" "),v=x.join(" ");return u==="auto"?a==="dark"?v:g:u==="dark"?v:g},"getActiveTheme")}}i(Cn,"useTheme");import{ChevronLeftIcon as Td}from"@rango-dev/ui";import pl from"react";import{darkTheme as Cd,IconButton as kd,styled as ao}from"@rango-dev/ui";var $e=ao(kd,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),sl=ao("div",{position:"absolute",background:"$secondary500",[`.${Cd} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ht=ao("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),al=ao("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"}),ll=ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}});function Vr(t){return pl.createElement($e,{variant:"ghost",size:"small",onClick:t.onClick},pl.createElement(Td,{color:"black",size:16}))}i(Vr,"BackButton");import{i18n as wd}from"@lingui/core";import{Button as xd,Typography as vd}from"@rango-dev/ui";import jr from"react";function Xr(t){return jr.createElement(Ht,null,jr.createElement(xd,{variant:"ghost",onClick:t.onClick,size:"xsmall"},jr.createElement(vd,{variant:"label",size:"medium",color:"error500"},wd.t("Cancel"))))}i(Xr,"CancelButton");import{i18n as Ad}from"@lingui/core";import{Tooltip as bd,WalletIcon as Ed}from"@rango-dev/ui";import kn from"react";function Kr(t){return kn.createElement(bd,{container:t.container,side:"top",content:Ad.t("Connect Wallet")},kn.createElement($e,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&kn.createElement(sl,null),kn.createElement(Ed,{size:18,color:"black"})))}i(Kr,"WalletButton");import{i18n as vn}from"@lingui/core";import{NotificationsIcon as Vd,Popover as jd,SettingsIcon as Xd,Tooltip as An,TransactionIcon as Kd}from"@rango-dev/ui";import ce from"react";import{i18n as $d}from"@lingui/core";import{ChainToken as gl,ChevronRightIcon as _d,ListItemButton as Dd,Typography as Fd}from"@rango-dev/ui";import qe from"react";import{useNavigate as Od}from"react-router-dom";import{create as Id}from"zustand";import{persist as Wd,subscribeWithSelector as Bd}from"zustand/middleware";var _e=ht(Id()(Wd(Bd((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 ul=Tn("div",{padding:"$10",width:"350px",minHeight:"150px"}),cl=Tn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),ml=Tn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),dl=Tn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Ld}from"@lingui/core";import{Divider as Nd,NoNotificationIcon as Pd,Typography as Md}from"@rango-dev/ui";import wn from"react";function fl(){return wn.createElement(dl,null,wn.createElement(Pd,{color:"secondary",size:26}),wn.createElement(Nd,{size:12}),wn.createElement(Md,{variant:"body",size:"medium",color:"neutral700"},Ld.t("You have no notification")))}i(fl,"NotificationNotFound");var Ud=4;function Yr(){let t=Od(),e=Ae.use.setSelectedSwap(),{getUnreadNotifications:o}=_e(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,Ud),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return qe.createElement(ul,null,a.length?qe.createElement(cl,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),h=r.find(f=>f.name===p.route.to.blockchain);return qe.createElement(Dd,{key:p.requestId,onClick:()=>l(p.requestId),title:qe.createElement(Fd,{variant:"body",size:"small",color:"$neutral700"},$d.t(p.event.message)),id:p.requestId,start:qe.createElement(ml,null,qe.createElement("div",{className:"from-chain-token"},qe.createElement(gl,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),qe.createElement("div",{className:"to-chain-token"},qe.createElement(gl,{tokenImage:c?c.image:"",chainImage:h?h.logo:"",size:"small"}))),end:qe.createElement(_d,{size:12,color:"gray"})})})):qe.createElement(fl,null))}i(Yr,"NotificationContent");import{RefreshProgressButton as qd}from"@rango-dev/ui";import Jr,{useEffect as zd,useState as hl}from"react";var Gd=1e3,yl=60,Hd=100;function xn({onClick:t}){let[e,o]=hl(0),[n,r]=hl(!1),s=i(p=>{document.hidden&&p&&a(p)},"handleVisibilityChange");zd(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===yl&&l()},Gd):a(p),document.addEventListener("visibilitychange",()=>s(p)),()=>{document.removeEventListener("visibilitychange",()=>s(p)),p&&clearInterval(p)}},[e,t]);let a=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Jr.createElement($e,{variant:"ghost",size:"small",onClick:l,disabled:!t},Jr.createElement(ll,{onTransitionEnd:()=>r(!1),isRefetched:n},Jr.createElement(qd,{size:24,color:t?"black":"gray",progress:e/yl*Hd})))}i(xn,"RefreshButton");import{Typography as Qd}from"@rango-dev/ui";import Sl from"react";function Cl(){let{getUnreadNotifications:t}=_e(),e=t().length;return e?Sl.createElement(al,null,Sl.createElement(Qd,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(Cl,"UnreadNotificationsBadge");function Zr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r}=t,{config:{features:s}}=d(),a=Pe("notification",s);return ce.createElement(ce.Fragment,null,ce.createElement(An,{container:O(),side:"top",content:vn.t("Refresh")},ce.createElement(xn,{onClick:o})),!a&&ce.createElement(jd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:O(),content:ce.createElement(Yr,null)},ce.createElement("div",null,ce.createElement(An,{container:O(),side:"top",content:vn.t("Notifications")},ce.createElement($e,{size:"small",variant:"ghost"},ce.createElement(Vd,{size:18,color:"black"}),ce.createElement(Cl,null))))),ce.createElement(An,{container:O(),side:"top",content:vn.t("Settings")},ce.createElement($e,{size:"small",variant:"ghost",onClick:r},ce.createElement(Xd,{size:18,color:"black"}))),ce.createElement(An,{container:O(),side:"top",content:vn.t("Transactions History")},ce.createElement($e,{size:"small",variant:"ghost",onClick:n},ce.createElement(Kd,{size:18,color:"black"}))))}i(Zr,"HomeButtons");import{darkTheme as Yd,styled as Rr}from"@rango-dev/ui";var kl=Rr("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",[`.${Yd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"100vh"},false:{height:"auto !important"}}}}),Tl=Rr("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"}}}}),wl=Rr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function ef(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=H.use.connectedWallets(),{config:{features:u,theme:m}}=d(),{activeTheme:c}=Cn(m||{}),h=Pe("connectWalletButton",u),f=Ae.use.connectWalletsButtonDisabled(),x=St(),w=i(()=>{!f&&n.onWallet&&n.onWallet()},"onConnectWallet"),g=typeof n.hasBackButton>"u"||n.hasBackButton;return he.createElement(kl,{ref:e,fixedHeight:l,id:Te,className:c()},he.createElement(Rd,{prefix:he.createElement(he.Fragment,null,g&&he.createElement(Vr,{onClick:x})),title:n.title,suffix:he.createElement(he.Fragment,null,n.suffix,n.onWallet&&!h&&he.createElement(Kr,{container:O(),onClick:w,isConnected:!!p?.length}),n.onCancel&&he.createElement(Xr,{onClick:n.onCancel}))}),he.createElement(Tl,{noPadding:s},o),(a||r)&&he.createElement(wl,null,he.createElement("div",{className:"footer__content"},r),a&&he.createElement("div",{className:"footer__logo"},he.createElement(Zd,{size:12}),he.createElement(Jd,null))))}i(ef,"LayoutComponent");var K=he.forwardRef(ef);K.displayName="Layout";import{Divider as sf,Modal as af}from"@rango-dev/ui";import ti from"react";import{i18n as Qt}from"@lingui/core";import{Image as nf,MessageBox as ei,WalletState as rf}from"@rango-dev/ui";import Wt from"react";import{keyframes as tf,styled as bn}from"@rango-dev/ui";var Nv=bn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),xl=bn("div",{position:"relative"}),of=tf({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),vl=bn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${of} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Al=bn("div",{"& img":{borderRadius:"50%"}});function bl(t){let{state:e,image:o,error:n}=t;return e===rf.CONNECTED?Wt.createElement(ei,{type:"success",title:Qt.t("Wallet Connected"),description:Qt.t("Your wallet is connected, you can use it to swap.")}):n?Wt.createElement(ei,{type:"error",title:Qt.t("Failed to Connect"),description:n||Qt.t("Your wallet is not connected. Please try again.")}):Wt.createElement(ei,{type:"loading",title:Qt.t("Connecting to your wallet"),description:Qt.t("Click connect in your wallet popup."),icon:Wt.createElement(xl,null,Wt.createElement(Al,null,Wt.createElement(nf,{src:o,size:45})),Wt.createElement(vl,null))})}i(bl,"ModalContent");function lo(t){let{open:e,onClose:o,...n}=t;return ti.createElement(af,{open:e,onClose:o,container:document.getElementById(Te)||document.body},ti.createElement(bl,{...n}),ti.createElement(sf,{direction:"vertical",size:32}))}i(lo,"WalletModal");var mf=Wl("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),df=Wl("div",{textAlign:"center"}),En=3e3,oi=300;function Bl(){let{config:t,fetchStatus:e}=d(),[o,n]=Il(!1),[r,s]=Il(""),a=null,{list:l,handleClick:p,error:u}=yn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},oi)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},En)}}),m=l.find(f=>f.type===r),c=m?.image||"",h=m?.state||uf.NOT_INSTALLED;return Bt.createElement(K,{header:{title:El.t("Connect Wallets")}},Bt.createElement(df,null,Bt.createElement(lf,{variant:"title",size:"xmedium",align:"center"},El.t("Choose a wallet to connect.")),Bt.createElement(mf,null,l.map((f,x)=>{let w=`wallet-${x}-${f.type}`;return Bt.createElement(cf,{key:w},Bt.createElement(pf,{...f,container:O(),onClick:g=>{p(g)},isLoading:e==="loading"}))}),Bt.createElement(lo,{open:!!o,onClose:()=>n(!1),image:c,state:h,error:u}))))}i(Bl,"WalletsPage");import{keyframes as ff,styled as ni}from"@rango-dev/ui";var Ll=ni("div",{position:"relative"}),gf=ff({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Nl=ni("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${gf} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Pl=ni("div",{"& img":{borderRadius:"50%"}});function ii(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=H.use.connectedWallets(),{blockchains:p}=d(),[u,m]=po(""),[c,h]=po(null),[f,x]=po(!1),[w,g]=po(null),{suggestAndConnect:v}=Fl(),k=null,{list:T,error:A,handleClick:y}=yn({config:a,chain:e,onBeforeConnect:C=>{k=setTimeout(()=>{m(C)},oi)},onConnect:()=>{k&&clearTimeout(k),setTimeout(()=>{m("")},En)}}),[E,b]=po(T),S=T.length,B=r&&S-r>0,M=i(async C=>{x(!1),g("in-progress");try{await v(C.walletType,C.chain),g("completed")}catch{g("rejected")}},"addExperimentalChain");Dl(()=>{b(C=>{let $=T.findIndex(N=>o(N.type,e));return B&&$>1?[T[$]].concat(T.filter((N,q)=>q!==$)):C.map(N=>T.find(q=>q.type===N.type)??N)})},[JSON.stringify(T)]);let L=document.getElementById(Te);return Dl(()=>{let C=null;return(w==="completed"||w==="rejected")&&(C=setTimeout(()=>g(null),En)),()=>{C&&clearTimeout(C)}},[w]),ee.createElement(ee.Fragment,null,E.slice(0,r).map(C=>{let $=Vs({connectedWallets:l,walletType:C.type,chain:e}),N=$?Vo($):"",q=Ho(p(),e),J=!l.find(Se=>Se.walletType===C.type&&Se.chain===e),Z=q&&J&&C.state===_l.CONNECTED,Q=Z?ze.t({id:"Add {chain} chain",values:{chain:e}}):N,re=i(()=>{C.state===_l.DISCONNECTED?y(C.type):Z?(h({walletType:C.type,chain:e,address:$??""}),x(!0)):n({walletType:C.type,chain:e,address:$??""})},"onClick"),ye=c?.chain?ca(c.chain,p()):void 0;return ee.createElement(ee.Fragment,null,ee.createElement(lo,{open:u===C.type,onClose:()=>m(""),image:C.image,state:C.state,error:A}),!!c&&ee.createElement(Ml,{open:!!c&&f,container:L,onClose:()=>{h(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(ri,{size:18}),ee.createElement(ri,{size:32}),ee.createElement(hf,{onClick:M.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),w&&ee.createElement(Ml,{open:!!w,onClose:g.bind(null,null),container:L},w==="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(Ll,null,ee.createElement(Pl,null,ee.createElement(yf,{src:C.image,size:45})),ee.createElement(Nl,null))}),w==="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}})}),w==="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(ri,{direction:"vertical",size:32})),ee.createElement(Sf,{key:C.type,description:Q,onClick:re,selected:o(C.type,e),...C}))}),B&&ee.createElement(Ga,{selected:!1,onClick:s},ee.createElement($l,{variant:"label",size:"medium"},ze.t("Show more wallets"),ee.createElement($l,{variant:"label",size:"medium",color:"$primary"},"\xA0+",S-(r??0)))))}i(ii,"WalletList");var If=2;function ql(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:h,setCustomDestination:f}=U(),{connectedWallets:x,selectWallets:w}=H(),[g,v]=Lt(""),[k,T]=Lt([]),[A,y]=Lt(""),[E,b]=Lt(null),[S,B]=Lt(h),[M,L]=Lt(!!h),C=bf(null),$=Jo(p),N=l.find(F=>F.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),q=i(F=>!!p?.result?.swaps.find(z=>z.from.blockchain===F),"isWalletRequiredFor"),[J,Z]=Lt(x.filter(F=>F.selected&&$.includes(F.chain))),Q=l.find(F=>F.name===N?.name),re=i((F,z)=>!!J.find(X=>X.walletType===F&&X.chain===z&&X.selected&&(q(z)||!q(z)&&!S)),"isSelected"),ye=!!S&&M&&Q&&!Zo(Q,S),Se=i(()=>{L(!1),B(""),Z(F=>{let z=!1;return F.map(X=>!z&&X.chain===N?.name?(z=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),Ce=i(F=>{if(g&&v(""),re(F.walletType,F.chain))return;let X=x.find(Ie=>Ie.walletType===F.walletType&&Ie.chain===F.chain);X&&(n(),F.chain===N?.name&&M&&(L(!1),B("")),Z(Ie=>Ie.filter(ue=>ue.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),_t=i(()=>{let F=J.filter(z=>z.selected);w(F),u(F),f(S),c(!0),o()},"onConfirmBalance"),oo=i(async()=>{T([]),y(""),b(null);let F=x.filter(Ie=>J.find(ue=>ue.chain===Ie.chain&&ue.walletType===Ie.walletType)),z=await r?.({selectedWallets:F,customDestination:S}),X=z.warnings;X?.balance?.messages&&T(X.balance.messages),X?.quoteUpdate&&b(X.quoteUpdate),z.error&&y(da(z.error)),!z.error&&(!X?.balance?.messages.length||0>0)?_t():T(X?.balance?.messages??[])},"onConfirmWallets");vf(()=>{Z(F=>F.concat(x.filter(z=>!!!F.find(Ie=>Ie.chain===z.chain)&&z.selected&&$.includes(z.chain))))},[x.length]),Af(()=>{M&&C.current&&setTimeout(()=>{C?.current?.scrollIntoView({behavior:"smooth"})},so)},[M]);let dt=document.getElementById(Te),At=Ef();return P.createElement(Ul,{open:e,onClose:()=>{m||At("../",{replace:!0}),o()},dismissible:!g,container:dt,...!g&&{footer:P.createElement(el,null,P.createElement(Ol,{loading:s,disabled:ba(s,M,S,p,J,N),onClick:oo,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Je.t("Confirm")))},...g&&{containerStyle:{padding:"$0"},header:P.createElement(Qa,null,P.createElement(Va,{variant:"ghost",onClick:v.bind(null,"")},P.createElement(Tf,{size:16})),P.createElement(Wn,{variant:"headline",size:"small"},Je.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(g,l)}})))},anchor:"center"},P.createElement(Ul,{open:k.length>0,onClose:T.bind(null,[]),container:dt},P.createElement(wf,{title:Je.t("Insufficient account balance"),type:"error",description:P.createElement(Cf,{messages:k??[]})},P.createElement(Ol,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:_t},Je.t("Proceed anyway")))),g&&P.createElement(ja,null,P.createElement("div",{className:Xa()},P.createElement(ii,{chain:g,isSelected:re,selectWallet:Ce,onShowMore:v.bind(null,g)}))),!g&&P.createElement(P.Fragment,null,A&&P.createElement(P.Fragment,null,P.createElement(si,{variant:"alarm",type:"error",title:Je.t(A)}),P.createElement(Vt,{size:12})),E&&P.createElement(P.Fragment,null,P.createElement(si,{variant:"alarm",type:"warning",title:fn(E)}),P.createElement(Vt,{size:12})),P.createElement(ol,null,$.map((F,z)=>{let X=l.find(de=>de.name===F),Ie=`wallet-${z}`,ue=z===$.length-1;return P.createElement("div",{key:Ie},P.createElement(qa,null,P.createElement(Wn,{variant:"title",size:"xmedium"},Je.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),P.createElement(Wn,{variant:"label",color:"$neutral700",size:"medium"},Je.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),P.createElement(Vt,{size:24}),P.createElement(za,null,P.createElement(ii,{chain:F,isSelected:re,selectWallet:Ce,limit:If,onShowMore:()=>v(X?.name??"")})),!ue&&P.createElement(Vt,{size:32}),ue&&a?.customDestination&&P.createElement(Ja,null,P.createElement(Ka,{ref:C,selected:M,open:M,onOpenChange:de=>{de?q(N?.name??"")||Z(_o=>_o.map(it=>it.chain===N?.name?{...it,selected:!1}:it)):Se()}},P.createElement(Ha,{onClick:()=>L(de=>!de)},P.createElement(Ya,{fullWidth:!0,variant:"default",suffix:P.createElement(Ra,{orientation:M?"up":"down"},P.createElement(kf,{size:10,color:"gray"}))},P.createElement("div",{className:"button__content"},P.createElement(xf,{size:18,color:"info"}),P.createElement(Vt,{size:4,direction:"horizontal"}),P.createElement(Wn,{variant:"label",size:"medium"},Je.t("Send to a different address"))))),P.createElement(gn,{open:M},P.createElement(P.Fragment,null,P.createElement(Vt,{size:4}),P.createElement(tl,{autoFocus:!0,placeholder:Je.t("Your destination address"),value:S,onChange:de=>{B(de.target.value)}})))),ye&&P.createElement("div",{className:Za()},P.createElement(si,{variant:"alarm",type:"error",title:Je.t({values:{destination:S},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(ql,"ConfirmWalletsModal");import{Divider as fg}from"@rango-dev/ui";import De from"react";import{i18n as di}from"@lingui/core";import{Alert as Nf,ChevronDownIcon as Pf,ChevronRightIcon as Mf,Divider as fi,Image as ap,InfoIcon as $f,QuoteCost as _f,StepDetails as Df,TokenAmount as Ff,Tooltip as Nn,Typography as mo}from"@rango-dev/ui";import lp from"bignumber.js";import W,{useLayoutEffect as Of,useRef as pp,useState as Uf}from"react";import{styled as uo}from"@rango-dev/ui";var zl=uo("div",{paddingBottom:"$10"}),ai=uo("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Gl=uo("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),Hl=uo("div",{paddingBottom:"$15"}),Ql=uo("div",{width:"100%",display:"flex"});import*as Bn from"@radix-ui/react-collapsible";import{css as li,darkTheme as Ze,Image as Vl,styled as Ge,Typography as Wf}from"@rango-dev/ui";var pi=300,jl=Ge(Bn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Ze} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ze} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Xl=li({padding:"$10 $15"}),Kl=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"}}}]}),Yl=li({width:"100%",padding:"$15 $15 $10 $15",cursor:"default"}),Jl=li({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ze} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zl=Ge(Bn.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Vl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Vl}`]:{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"}}),ui=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"}}}}),Rl=Ge(gn,{width:"100%",background:"inherit"}),ci=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${pi}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),GA=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ep=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ze} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),tp=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),mi=Ge(Wf,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),op=Ge("div",{display:"flex",flexWrap:"wrap"});import{i18n as ip}from"@lingui/core";import{TokenAmount as sp}from"@rango-dev/ui";import Ln from"react";import{css as Bf,styled as Lf}from"@rango-dev/ui";var np=Lf("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),rp=Bf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function co(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ln.createElement(np,null,Ln.createElement(sp,{direction:"horizontal",label:ip.t("Swap input"),type:"input",tooltipContainer:O(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Ln.createElement("div",{className:rp()}),Ln.createElement(sp,{direction:"horizontal",tooltipContainer:O(),label:ip.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(co,"QuoteSummary");function gi(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,h]=Uf(t.expanded),f=pp(null),x=pp(c),w=I(tn(e.result?.swaps??[],p),2,2),g=Fo(Oo(e.result?.swaps)),v=I(o.value,6,6),k=I(n.value,6,6),T=n.usdValue?I(n.usdValue,4,4):"",A=Me(o.usdValue,n.usdValue??null),y=I(A,2,2),E=st(A??0),S=i(L=>L.map((C,$)=>{let N,q=r?.type===3&&r.swap.swapperId===C.swapperId||r?.type===4&&r.recommendedSlippages?.has($),J=s?.type===2&&s.recommendedSlippages?.has($);return q?N="error":J&&(N="warning"),{swapper:{displayName:ma(C.swapperId,m),image:C.swapperLogo},from:{token:{displayName:C.from.symbol,image:C.from.logo},chain:{displayName:Ye(C.from.blockchain,u),image:C.from.blockchainLogo},price:{value:$===0?I(o.value,6,6):I(C.fromAmount,6,6),usdValue:I((C.from.usdPrice??0)*parseFloat(C.fromAmount),4,4),realValue:se($===0?o.value:C.fromAmount),realUsdValue:se(new lp(C.from.usdPrice??0).multipliedBy(C.fromAmount))}},to:{token:{displayName:C.to.symbol,image:C.to.logo},chain:{displayName:Ye(C.to.blockchain,u),image:C.to.blockchainLogo},price:{value:I(C.toAmount,6,6),usdValue:I((C.to.usdPrice??0)*parseFloat(C.toAmount),4,4),realValue:se(C.toAmount),realUsdValue:se(new lp(C.to.usdPrice??0).multipliedBy(C.toAmount))}},state:N,alerts:q||J?W.createElement(Hl,null,W.createElement(Nf,{type:q?"error":"warning",title:r?.type===3?r?.recommendation:di.t("Slippage Error:"),footer:W.createElement(Ql,null,r?.type===3&&W.createElement(W.Fragment,null,W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),W.createElement(fi,{direction:"horizontal",size:8}),W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},"|"),W.createElement(fi,{direction:"horizontal",size:8}),W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},di.t({id:"Yours: {amount} {symbol}",values:{amount:I(C.fromAmount,6,6),symbol:C?.from.symbol}}))),(r?.type===4||s?.type===2)&&W.createElement(mo,{size:"xsmall",variant:"body",color:"neutral900"},di.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get($)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get($)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),B=S.length,M=O();return Of(()=>{c&&!x.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},pi),x.current=c},[c,x]),W.createElement(W.Fragment,null,W.createElement(Kl,{recommended:l,listItem:a==="list-item",basic:a==="basic"},W.createElement("div",{className:Yl()},W.createElement(_f,{fee:w,time:g,steps:B}),a==="basic"&&W.createElement("div",{className:Jl()},W.createElement(tp,null,W.createElement($f,{size:12,color:"gray"})),W.createElement(op,null,W.createElement(mi,{size:"small",variant:"body"},`${v} ${S[0].from.token.displayName} = `),W.createElement(Nn,{content:se(n.value),container:M,open:n.value?void 0:!1},W.createElement(mi,{size:"small",variant:"body"},"\xA0",`${k} ${S[S.length-1].to.token.displayName}`))),W.createElement(Nn,{content:se(n.usdValue),container:M,style:{display:"flex"}},W.createElement(mo,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${T})`))),a==="list-item"&&W.createElement(Ff,{type:"output",direction:"vertical",tooltipContainer:M,price:{value:k,usdValue:T,realValue:se(n.value),realUsdValue:se(n.usdValue)},token:{displayName:S[B-1].to.token.displayName,image:S[B-1].to.token.image},chain:{image:S[B-1].to.chain.image},percentageChange:y,warningLevel:E}),a==="swap-preview"&&W.createElement(W.Fragment,null,W.createElement(co,{from:S[0].from,to:S[B-1].to,percentageChange:y,warningLevel:E}),W.createElement(fi,{size:4}))),W.createElement(jl,{recommended:l,open:c,onOpenChange:h},W.createElement(Zl,{ref:L=>f.current=L,recommended:l,onClick:()=>h(L=>!L)},W.createElement("div",null,S.map((L,C)=>{let $=`item-${C}`,N=W.createElement(ci,null,W.createElement(Mf,{size:12,color:"black",...L.state&&{color:L.state==="error"?"error":"warning"}}));return W.createElement(W.Fragment,{key:$},W.createElement(Nn,{container:M,side:"bottom",sideOffset:4,content:L.from.chain.displayName},W.createElement(ui,{state:L.state||S[C-1]?.state},W.createElement(ap,{src:L.from.chain.image,size:16}))),C===B-1&&W.createElement(W.Fragment,null,N,W.createElement(Nn,{container:M,side:"bottom",sideOffset:4,content:L.to.chain.displayName},W.createElement(ui,{state:L.state},W.createElement(ap,{src:L.to.chain.image,size:16})))),C!==B-1&&W.createElement(W.Fragment,null,N))})),W.createElement(ci,{orientation:c?"up":"down"},W.createElement(Pf,{size:12,color:"black"}))),W.createElement(Rl,{open:c},W.createElement(ep,null),W.createElement("div",{className:Xl()},S.map((L,C)=>{let $=`item-${C}`;return W.createElement(Df,{type:"quote-details",key:$,step:L,hasSeparator:C!==S.length-1,state:L.state,tooltipContainer:M})}))))))}i(gi,"Quote");import{Divider as Gf,Skeleton as Hf}from"@rango-dev/ui";import at from"react";import{darkTheme as qf,styled as Pn}from"@rango-dev/ui";var up=Pn("div",{$$color:"$colors$neutral100",[`.${qf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),cp=Pn("div",{paddingTop:"$2"}),mp=Pn("div",{paddingLeft:"$8"}),dp=Pn("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as vp,Divider as Nt,Skeleton as et}from"@rango-dev/ui";import G from"react";import{styled as Re}from"@rango-dev/ui";var fp=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),gp=Re("div",{display:"flex"}),hp=Re("div",{padding:"$15 $0 14px $0"}),yp=Re("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),Sp=Re("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),Cp=Re("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),kp=Re("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Tp=Re("div",{width:"65%",display:"flex",justifyContent:"start"}),wp=Re("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),xp=Re("div",{padding:"$15 $0 $15 $0"});function ho(t){let{type:e,tag:o=!1}=t,n=G.createElement(Cp,null,G.createElement(Tp,null,G.createElement(vp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{size:8,direction:"horizontal"}),G.createElement(wp,null,G.createElement(et,{height:10,width:60,variant:"rounded"}),G.createElement(Nt,{size:4}),G.createElement(et,{height:15,variant:"rounded"}))),G.createElement(et,{height:12,width:64,variant:"rounded"}));return G.createElement("div",null,G.createElement(fp,null,G.createElement(gp,null,G.createElement(et,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(et,{width:60,height:10,variant:"rounded"}),G.createElement(Nt,{size:4,direction:"horizontal"}),G.createElement(et,{width:60,height:10,variant:"rounded"})),o&&G.createElement(et,{height:22,width:100,variant:"rounded"})),e==="basic"&&G.createElement(hp,null,G.createElement(et,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(yp,null,G.createElement(Sp,null,G.createElement(vp,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),G.createElement(Nt,{direction:"horizontal",size:4}),G.createElement(et,{height:15,width:150,variant:"rounded"})),G.createElement(Nt,{size:4}),G.createElement(et,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Nt,{size:4}),G.createElement(xp,null,n,G.createElement(kp,null),n)))}i(ho,"QuoteSummarySkeleton");import{ChainToken as Wp,Divider as yi,NextIcon as zf,Skeleton as Mn}from"@rango-dev/ui";import ae from"react";import{styled as yo}from"@rango-dev/ui";var Ap=yo("div",{display:"flex",alignItems:"start"}),bp=yo("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),hi=yo("div",{display:"flex",alignItems:"center",flexGrow:1}),Ep=yo("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Ip=yo("div",{display:"flex",alignItems:"center"});function tt(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(Ip,null,ae.createElement(Mn,{height:22,width:22,variant:"circular"}),ae.createElement(yi,{direction:"horizontal",size:8}),ae.createElement(Mn,{height:15,width:148,variant:"rounded"})),ae.createElement(Ap,null,ae.createElement(dp,{hideSeparator:!e}),ae.createElement(bp,null,ae.createElement(hi,null,ae.createElement(Wp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(yi,{direction:"horizontal",size:8}),ae.createElement(Mn,{height:12,variant:"rounded"})),ae.createElement(Ep,null,ae.createElement(zf,{color:"gray",size:16})),ae.createElement(hi,null,ae.createElement(Wp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(yi,{direction:"horizontal",size:8}),ae.createElement(Mn,{height:12,variant:"rounded"})))))}i(tt,"StepSkeleton");function Si(t){let{type:e,expanded:o,tag:n=!1}=t;return at.createElement(up,{rounded:e!=="basic"},at.createElement(ho,{type:e,tag:n}),at.createElement(cp,null,at.createElement(Hf,{height:15,variant:"rounded"})),o&&at.createElement(mp,null,at.createElement(Gf,{size:20}),at.createElement(tt,null),at.createElement(tt,null),at.createElement(tt,{separator:!1})))}i(Si,"QuoteSkeleton");import{i18n as ug}from"@lingui/core";import{Alert as cg,Button as mg,InfoIcon as dg}from"@rango-dev/ui";import Be from"react";import{Alert as Qf,Button as Vf,Divider as $p,NoRouteIcon as jf,RefreshIcon as Xf,Typography as _p}from"@rango-dev/ui";import He from"react";import{i18n as Bp}from"@lingui/core";function Lp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:V().genericServerError,action:{onClick:n,title:Bp.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:V().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Bp.t("Reset")}},description:V().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:V().noResultError.description}}i(Lp,"makeInfo");import{styled as Ci}from"@rango-dev/ui";var Np=Ci("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),Pp=Ci("div",{width:"100%"}),Mp=Ci("div",{padding:"$6 $0"});function ki(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=Lp(o,n,()=>r(s,!0),e);return He.createElement(Np,null,He.createElement(jf,{size:24,color:"gray"}),He.createElement($p,{size:4}),He.createElement(_p,{variant:"title",size:"small"},V().noResultError.title),!!a.description&&He.createElement(_p,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),He.createElement($p,{size:4}),!!a.alert&&He.createElement(Pp,null,He.createElement(Qf,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&He.createElement(Vf,{size:"xsmall",type:a.alert.type,prefix:He.createElement(Mp,null,He.createElement(Xf,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(ki,"NoResult");import{i18n as So}from"@lingui/core";import{Button as Yf,Divider as zp,MessageBox as Jf,Modal as Zf,Typography as Rf,WarningIcon as eg}from"@rango-dev/ui";import ot from"react";import{Typography as Up}from"@rango-dev/ui";import wi from"react";import{darkTheme as Kf,styled as $n}from"@rango-dev/ui";var Dp=$n("div",{width:"100%",paddingTop:"$10"}),Ti=$n("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Fp=$n("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Kf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Op=$n("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function qp(t){let{title:e,value:o,valueColor:n}=t;return wi.createElement(Fp,null,wi.createElement(Up,{size:"medium",variant:"label",className:"_title"},e),wi.createElement(Up,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(qp,"QuoteErrorsModalItem");function Gp(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:So.t("Swapping"),value:I(r.inputUsdValue,4,4)},{title:So.t("Gas cost"),value:I(r.totalFee,2,2)},{title:So.t("Receiving"),value:I(r.outputUsdValue,4,4)},{title:So.t("Price impact"),value:I(r.priceImpact,2,2),valueColor:`${s}500`}];return ot.createElement(Zf,{open:e,onClose:o,container:O()},ot.createElement(Jf,{type:s,title:V().highValueLossError.impactTitle,description:V().highValueLossError.description}),ot.createElement(Ti,null,ot.createElement(zp,{size:20}),ot.createElement(Rf,{size:"small",variant:"title"},So.t("Details")),ot.createElement(Ti,null,a.map((l,p)=>ot.createElement(qp,{key:p,...l})))),ot.createElement(zp,{size:32}),ot.createElement(Yf,{type:"primary",size:"large",prefix:ot.createElement(eg,null),fullWidth:!0,onClick:n},V().highValueLossError.confirmMessage))}i(Gp,"HighValueLossWarningModal");import{i18n as xi}from"@lingui/core";function Hp(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(st(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=xi.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=xi.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=xi.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(Hp,"makeAlerts");import{i18n as jt}from"@lingui/core";import{Button as Qp,Divider as Vp,MessageBox as tg,Modal as og,Typography as ng}from"@rango-dev/ui";import Pt from"react";import{useNavigate as rg}from"react-router-dom";function jp(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=rg(),p=e??o;return Pt.createElement(og,{anchor:"bottom",open:n,prefix:Pt.createElement(Qp,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},Pt.createElement(ng,{variant:"label",size:"medium",color:"$neutral900"},jt.t("Change settings"))),container:O(),onClose:r},Pt.createElement(tg,{type:"warning",title:a.type===3?jt.t("High slippage"):jt.t("Low slippage"),description:a.type===3?jt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):jt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Pt.createElement(Vp,{size:18}),Pt.createElement(Vp,{size:32}),Pt.createElement(Qp,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},jt.t("Confirm anyway"))))}i(jp,"SlippageWarningModal");import{Button as ig,Divider as sg,MessageBox as ag,Modal as lg,WarningIcon as pg}from"@rango-dev/ui";import Co from"react";function Xp(t){let{open:e,onClose:o,onConfirm:n}=t;return Co.createElement(lg,{open:e,onClose:o,container:O()},Co.createElement(ag,{type:"warning",title:V().unknownPriceError.impactTitle,description:V().unknownPriceError.description}),Co.createElement(sg,{size:32}),Co.createElement(ig,{type:"primary",size:"large",prefix:Co.createElement(pg,null),fullWidth:!0,onClick:n},V().unknownPriceError.confirmMessage))}i(Xp,"UnknownPriceWarningModal");function vi(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=Hp(e,o?.type===3||o?.type===4?o:null);return Be.createElement(Be.Fragment,null,m&&Be.createElement(ki,{error:o,fetch:n}),!!c&&Be.createElement(Dp,null,Be.createElement(cg,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Be.createElement(Op,{onClick:s},Be.createElement(dg,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Be.createElement(mg,{size:"xxsmall",type:c.alertType,onClick:p},ug.t("Change"))}})),e&&Be.createElement(Be.Fragment,null,e.type===0&&Be.createElement(Gp,{...u,warning:e}),(e.type===3||e.type===2)&&Be.createElement(jp,{...u,warning:e}),e.type===1&&Be.createElement(Xp,{...u,warning:e})))}i(vi,"QuoteWarningsAndErrors");function ko(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:h=!1,alertPosition:f="bottom"}=t,{inputAmount:x,inputUsdValue:w,outputUsdValue:g,outputAmount:v}=U(),T=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,A=(s||r)&&De.createElement(vi,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return De.createElement(De.Fragment,null,n&&De.createElement(ai,null,De.createElement(Gl,{paddingTop:f==="top"},De.createElement(Si,{type:o,expanded:h}))),f==="top"&&De.createElement(zl,null,A),T?De.createElement(ai,null,De.createElement(gi,{quote:e,error:r,warning:s,type:o,expanded:h,recommended:!0,input:{value:x,usdValue:w?.toString()??""},output:{value:v?.toString()??"",usdValue:g?.toString()??""}})):null,f==="bottom"&&De.createElement(De.Fragment,null,!s&&!r&&De.createElement(fg,{size:16}),A))}i(ko,"QuoteInfo");import{calculatePendingSwap as yg}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Sg}from"react";import{useRef as gg,useState as hg}from"react";function _n(){let[t,e]=hg(!1),o=gg(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Ft().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(_n,"useFetchQuote");function Dn(t){if(!t.result)throw new Error(V().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(Wr(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=Br(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=Nr(t);if(o){let n=on(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(Dn,"throwErrorIfResponseIsNotValid");function Kp(t,e,o){let n=!1;t&&(n=Ba(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=rn(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(ka(t,e)?r.quoteUpdate={type:3,newOutputAmount:I(qt(e)),percentageChange:I(Me(qt(t)??"",qt(e)??""),null,2)}:Mr(t,e)?r.quoteUpdate={type:0}:$r(t,e)?r.quoteUpdate={type:1}:_r(t,e)&&(r.quoteUpdate={type:2}));let a=Ta(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Kp,"generateWarnings");function Fn(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Fn,"handleQuoteErrors");function Ai(){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:h}=d(),{connectedWallets:f}=H(),x=d().blockchains(),w=d().tokens(),{features:g}=d().config,{enableNewLiquiditySources:v}=d().config,k=p||l,{fetch:T,cancelFetch:A,loading:y}=_n();return Sg(()=>A,[]),{loading:y,fetch:i(async b=>{let S=b.selectedWallets,B=b?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let M=nn({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:S,excludeLiquiditySources:v,disabledLiquiditySources:h,slippage:k,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:B});Yo("experimentalRoute",g)&&(M.experimental=!0);let L;try{L=await T(M).then(q=>Dn(q)),n(L)}catch(q){return Fn(q)}let C={slippage:k.toString(),disabledSwappersGroups:h},$=yg(o.toString(),L,Sa(S),C,!1,{blockchains:x,tokens:w}),N=Kp(r??void 0,L,{fromToken:t,toToken:e,meta:{blockchains:x,tokens:w},selectedWallets:S,userSlippage:k});return N.quoteUpdate&&a(!1),{quote:L,swap:$,error:null,warnings:N}},"fetch"),cancelFetch:A}}i(Ai,"useConfirmSwap");var Bg=Zp("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),Lg=Zp("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Jp}`]:{width:"$48",height:"$48"}}),Ng=bi({flexGrow:1,paddingRight:"$10"}),Pg=bi({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Mg=bi({display:"flex",justifyContent:"space-between",alignItems:"center"});function Rp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=U(),l=Wg(),[p,u]=Un(""),{connectedWallets:m}=H(),c=!n,[h,f]=Un(!1),x=Ae.use.setSelectedSwap(),w=d().disabledLiquiditySources,g=Eg(w),{manager:v}=Cg(),{fetch:k,loading:T,cancelFetch:A}=Ai(),[y,E]=Un({swap:null,error:null,warnings:null}),[b,S]=Un(!1),B=i(async({selectedWallets:N,customDestination:q})=>{let J=await k?.({selectedWallets:N,customDestination:q});return E(J),J},"onConfirmSwap"),M=i(async()=>{if(y.swap&&n)try{await v?.create("swap",{swapDetails:y.swap},{id:y.swap.requestId}),x(y.swap.requestId);let N=`../${_.swaps}/${y.swap.requestId}`;l(N,{replace:!0}),setTimeout(()=>{e("")},0)}catch(N){u("Error: "+N?.message)}},"addNewSwap"),L=i(async()=>{await M()},"onConfirm"),C=i(async()=>{y?.warnings?.quote&&!a?S(!0):await L()},"onStartConfirmSwap"),$=i(async()=>{E({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:s}).then(N=>{E(N)}).catch(N=>console.error(N))},"onRefresh");return To(()=>{!!g.current.length&&!w.length&&$(),g.current=w},[w.length]),To(()=>{c&&A()},[c]),To(()=>{c&&f(c)},[c]),To(()=>{c||k({selectedWallets:o,customDestination:s}).then(N=>E(N)).catch(N=>console.error(N))},[]),To(()=>{let N=y.warnings?.quote?.type&&Object.values(ft).includes(y.warnings?.quote?.type),q=o.length<1||!o.every(Z=>m.find(Q=>Z.address===Q.address&&Z.walletType===Q.walletType&&Z.chain===Q.chain)),J=!1;if(N){let Z=Jo(t),Q=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(Se=>Se.from.blockchain===Q)||(Z=Z.slice(-Z.length,Z.length-1)),Z.every(Se=>o.find(Ce=>Ce.chain===Se))||(J=!0)}t&&(q||J)&&(queueMicrotask(()=>Ig(f.bind(null,!0))),r(!1))},[y.warnings?.quote,o.length,m.length]),bg(()=>{t||l("../")},[]),ne.createElement(K,{header:{title:On.t("Confirm Swap"),onWallet:()=>{let N=`../${_.wallets}`;l(N)},suffix:ne.createElement(xg,{container:O(),side:"bottom",content:On.t("Settings")},ne.createElement($e,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},ne.createElement(wg,{size:18,color:"black"})))},footer:ne.createElement(Lg,null,ne.createElement("div",{className:Ng()},ne.createElement(kg,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T,disabled:!!y.error,onClick:C},On.t("Start Swap"))),ne.createElement(Jp,{variant:"contained",type:"primary",size:"large",loading:T,onClick:f.bind(null,!0)},ne.createElement(Ag,{size:24})))},h&&ne.createElement(ql,{open:h,onClose:()=>f(!1),onCancel:A,loading:T,onCheckBalance:B}),ne.createElement(Bg,null,ne.createElement("div",{className:Mg()},ne.createElement(vg,{variant:"title",size:"small"},On.t("You get")),ne.createElement("div",{className:Pg()},ne.createElement(xn,{onClick:!T&&!h&&!b?$:void 0}))),p&&ne.createElement(ne.Fragment,null,ne.createElement(Yp,{type:"error",variant:"alarm",title:p}),ne.createElement(Tg,{size:12})),y.warnings?.quoteUpdate&&ne.createElement("div",{className:"quote-update__alert"},ne.createElement(Yp,{variant:"alarm",type:"warning",title:y.warnings.quoteUpdate&&fn(y.warnings.quoteUpdate)})),ne.createElement(ko,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:y.error,loading:T,warning:y.warnings?.quote??null,refetchQuote:$,showWarningModal:b,onOpenWarningModal:()=>S(!0),onCloseWarningModal:()=>S(!1),onConfirmWarningModal:async()=>{S(!1),await M()},onChangeSettings:()=>l("../"+_.settings)})))}i(Rp,"ConfirmSwapPage");import{i18n as Hn}from"@lingui/core";import{useManager as zg}from"@rango-dev/queue-manager-react";import{Divider as Gg,NotFound as Hg,styled as au}from"@rango-dev/ui";import Tt,{useState as Qg}from"react";import{useNavigate as Vg}from"react-router-dom";import{CloseIcon as _g,IconButton as Dg,SearchIcon as Fg,TextField as Og}from"@rango-dev/ui";import wo from"react";import{styled as $g}from"@rango-dev/ui";var eu=$g("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return wo.createElement(Og,{prefix:wo.createElement(eu,null,wo.createElement(Fg,{color:"black"})),suffix:!!a.length&&wo.createElement(Dg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},wo.createElement(_g,{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 Bi}from"@lingui/core";import{Divider as ou,SwapListItem as nu,Typography as ru}from"@rango-dev/ui";import R from"react";import{css as Ug,darkTheme as qg,styled as qn}from"@rango-dev/ui";var zn=Ug(),Ei=qn("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${zn}`]:{$$color:"$colors$neutral600",[`.${qg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ii=qn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Wi=qn("div",{gap:"$10",display:"flex",flexDirection:"column"}),tu=qn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function Li(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}],l=[{title:Bi.t("Today"),swaps:a},{title:Bi.t("This month"),swaps:a}];return R.createElement(R.Fragment,null,l.map(p=>R.createElement(R.Fragment,{key:p.title},R.createElement(Ei,null,R.createElement(Ii,null,R.createElement(ru,{variant:"label",size:"medium",className:zn()},p.title)),R.createElement(ou,{size:4}),R.createElement(Wi,null,p.swaps.map((u,m)=>{let c=m+p.title;return R.createElement(R.Fragment,{key:c},R.createElement(nu,{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(Ei,null,R.createElement(Ii,null,R.createElement(ru,{variant:"label",size:"medium",className:zn()},a.title)),R.createElement(ou,{size:4}),R.createElement(Wi,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(nu,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,tooltipContainer:O(),onlyShowTime:a.title===Bi.t("Today"),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:I(u.outputAmount||u.expectedOutputAmountHumanReadable||""),realAmount:se(u.outputAmount||u.expectedOutputAmountHumanReadable)}}}))}))))))}i(Li,"SwapsGroup");import{i18n as Gn}from"@lingui/core";import iu from"dayjs";var su=i(t=>{let e=new Map([["today",{title:Gn.t("Today"),swaps:[]}],["week",{title:Gn.t("This week"),swaps:[]}],["month",{title:Gn.t("This month"),swaps:[]}],["year",{title:Gn.t("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=iu();return t.forEach(r=>{let s=Number(r.creationTime),a=iu(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 Xt=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 jg=au("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Xg=au("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Kg=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 lu(){let t=Ae.use.setSelectedSwap(),e=Vg(),{manager:o,state:n}=zg(),r=Xt(o).map(({swap:c})=>c),[s,a]=Qg(""),l=!n.loadedFromPersistor,p=i(c=>{let h=c.target.value;a(h)},"searchHandler"),u=r;s&&(u=r.filter(c=>Xe(c.inputAmount,s)||Xe(c.status,s)||Kg(c.steps,s)||Xe(c.requestId,s)));let m=!u?.length&&!l;return Tt.createElement(K,{header:{title:Hn.t("History")}},Tt.createElement(jg,null,Tt.createElement(lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Hn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),Tt.createElement(Xg,null,m&&Tt.createElement(tu,null,Tt.createElement(Gg,{size:32}),Tt.createElement(Hg,{title:Hn.t("No results found"),description:s?Hn.t("Try using different keywords"):""})),!m&&Tt.createElement(Li,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:su,isLoading:l}))))}i(lu,"HistoryPage");import{i18n as Mi}from"@lingui/core";import{Button as oh,styled as $i,SwapInput as mu,WarningIcon as nh}from"@rango-dev/ui";import Fe,{useEffect as rh,useRef as ih,useState as sh}from"react";import{useNavigate as ah}from"react-router-dom";import{ReverseIcon as Yg,styled as pu}from"@rango-dev/ui";import Ni from"react";var Jg=pu("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Zg=pu("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 uu(){let t=U.use.switchFromAndTo();return Ni.createElement(Jg,null,Ni.createElement(Zg,{onClick:()=>{t()}},Ni.createElement(Yg,{size:12})))}i(uu,"SwitchFromAndToButton");import{useCallback as Rg,useEffect as eh,useState as Pi}from"react";var th=600;function cu(){let{fetch:t,cancelFetch:e}=_n(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,quote:m,resetQuote:c,setQuote:h}=U(),{slippage:f,customSlippage:x,affiliatePercent:w,affiliateRef:g,affiliateWallets:v,disabledLiquiditySources:k}=d(),[T,A]=Pi(!1),[y,E]=Pi(null),[b,S]=Pi(null),B=x??f,L=!a||!l||Ne(a,l)||!no(p),C=i(q=>{A(q),E(null),S(null)},"resetState"),$=i(q=>{let{fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:_t,affiliatePercent:oo,affiliateWallets:dt}=q;if(T||C(!0),!L&&J&&Z){c();let At=nn({fromToken:J,toToken:Z,inputAmount:Q,liquiditySources:re,excludeLiquiditySources:ye,disabledLiquiditySources:Se,slippage:Ce,affiliateRef:_t,affiliatePercent:oo,affiliateWallets:dt});Yo("experimentalRoute",r)&&(At.experimental=!0),t(At).then(F=>{A(!1),h(F),Dn(F);let z=rn(F,{fromToken:J,toToken:Z,userSlippage:B,tokens:s});S(z)}).catch(F=>{let{error:z}=Fn(F);(z?.type===0||z?.type===1)&&c(),z?.type!==2&&(E(z),A(!1))})}},"fetch"),N=Rg(Zs(q=>{L||$(q)},th),[L]);return eh(()=>{if(!no(p)||u?.eq(0)){C(!1),e();return}if(L){m&&c();return}return c(),C(!0),N({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:k,slippage:B,affiliateRef:g,affiliatePercent:w,affiliateWallets:v}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,L,o?.length,n,k.length,B,g,w,JSON.stringify(v)]),{fetch:()=>$({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:k,slippage:B,affiliateRef:g,affiliatePercent:w,affiliateWallets:v}),loading:T,error:y,warning:b}}i(cu,"useSwapInput");var lh=$i("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),ph=$i("div",{position:"relative"}),uh=$i("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function du(){let t=ah(),{fetch:e,loading:o,error:n,warning:r}=cu(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:h,outputUsdValue:f,quote:x,resetQuoteWallets:w,setQuoteWarningsConfirmed:g}=U(),v=d().fetchStatus,{connectedWallets:k,getBalanceFor:T}=H(),A=Ae.use.setCurrentPage(),[y,E]=sh(!1),b=ih(null),S=!!a&&js(k,a.name),B=!1,M=!Lr(x,m,c),L=!Lr(x,m,f),C=ga({fetchMetaStatus:v,fetchingQuote:o,inputAmount:m,quote:x,anyWalletConnected:k.length>0,error:n,warning:r,needsToWarnEthOnPath:B}),$=s?T(s):null,N=Qo($)?.amount??"0",q=a&&s?I($?.amount,$?.decimals):"0";rh(()=>(A(_.home),w(),A.bind(null,"")),[]);let J=!c||!f||!f.gt(0)?null:Me(c.toString(),f.toString());return Fe.createElement(K,{ref:b,fixedHeight:!1,hasLogo:!0,footer:Fe.createElement(oh,{type:"primary",size:"large",disabled:C.disabled,prefix:C.action==="confirm-warning"&&Fe.createElement(nh,null),fullWidth:!0,onClick:()=>{C.action==="connect-wallet"?t(_.wallets):C.action==="confirm-warning"?E(!0):t(_.confirmSwap)}},C.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:Mi.t("Swap"),suffix:Fe.createElement(Zr,{layoutRef:b.current,onClickRefresh:(x||n)&&!y?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},Fe.createElement(lh,null,Fe.createElement(uh,null,Fe.createElement(ph,null,Fe.createElement(mu,{label:Mi.t("From"),mode:"From",onInputChange:u,balance:N,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:M?void 0:I(c,4,4),realUsdValue:M?void 0:se(c),error:M?V().unknownPriceError.impactTitle:void 0},disabled:v==="failed",loading:v==="loading",loadingBalance:S,tooltipContainer:O(),onSelectMaxBalance:()=>{N!=="0"&&u(q.split(",").join(""))}}),Fe.createElement(uu,null)),Fe.createElement(mu,{sharpBottomStyle:!!x?.result||o,label:Mi.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:I(Me(c,f),2,2),warningLevel:st(J??0),price:{value:I(h,6,6),usdValue:L?void 0:I(f,4,4),realValue:se(h),realUsdValue:L?void 0:se(f),error:L?V().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:v==="failed",loading:v==="loading",tooltipContainer:O()})),Fe.createElement("div",{className:"quote__container"},Fe.createElement(ko,{quote:x,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:y,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:()=>{E(!1),g(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(du,"Home");import{i18n as fu}from"@lingui/core";import{List as ch,ListItemButton as mh,Radio as dh,RadioRoot as fh,Typography as gh}from"@rango-dev/ui";import wt from"react";import{styled as Qn}from"@rango-dev/ui";var pt=Qn("div",{height:"100%",overflow:"hidden"}),xo=Qn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),_i=Qn("div",{width:80,display:"flex",justifyContent:"flex-end"}),Di=Qn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Vn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:ta,defaultLanguage:Ut,changeLanguage:r=>t(r||Ut)}}i(Vn,"useLanguage");function gu(){let{activeLanguage:t,changeLanguage:e,languages:o}=Vn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:wt.createElement(gh,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:wt.createElement(dh,{value:s}),start:wt.createElement(l,null)}});return wt.createElement(K,{header:{title:fu.t("Language")}},wt.createElement(pt,null,wt.createElement(fh,{value:t},wt.createElement(ch,{type:wt.createElement(mh,{title:fu.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(gu,"LanguagePage");import{i18n as ut}from"@lingui/core";import{Button as kh,Checkbox as Th,Image as wh,ListItemButton as xh,NotFound as vh,Typography as Ah}from"@rango-dev/ui";import ke,{useState as bh}from"react";import{Checkbox as Sh,Skeleton as yu}from"@rango-dev/ui";import vo from"react";import{ListItem as hh,styled as yh}from"@rango-dev/ui";var hu=yh(hh,{height:61});var Ch=30;function Fi(){return vo.createElement(xo,null,Array.from(Array(Ch),t=>vo.createElement(hu,{hasDivider:!0,key:t,start:vo.createElement(yu,{variant:"circular",width:35,height:35}),title:vo.createElement(yu,{variant:"text",size:"large",width:90}),end:vo.createElement(Sh,{checked:!1})})))}i(Fi,"LoadingLiquiditySourceList");function Oi({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=bh(""),a=d().toggleLiquiditySource,l=Ko(o,n),p={Exchanges:ut.t("Exchanges"),Bridges:ut.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&(u.push("BRIDGE"),u.push("AGGREGATOR"));let m=l.filter(g=>u.includes(g.type)),c=m.length===m.filter(g=>g.selected).length,h=i(()=>{m.forEach(g=>{c?a(g.groupTitle):g.selected||a(g.groupTitle)})},"toggleAllSources"),f=m.map(g=>{let{selected:v,groupTitle:k,logo:T}=g;return{start:ke.createElement(wh,{src:T,size:22,type:"circular"}),onClick:()=>a(k),end:ke.createElement(Th,{checked:v}),title:ke.createElement(Ah,{variant:"title",size:"xmedium"},ut.t(k)),...g}}),x=i(g=>{let v=g.target.value;s(v)},"searchHandler"),w=f;return r&&(w=f.filter(g=>Xe(g.groupTitle,r))),ke.createElement(K,{header:{title:ut.t(t),suffix:ke.createElement(_i,null,ke.createElement(kh,{variant:"ghost",size:"xsmall",onClick:h},c?ut.t("Deselect all"):ut.t("Select all")))}},ke.createElement(pt,null,ke.createElement(lt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:ut.t("Search {sourceType}",{sourceType:p[t]}),onChange:x}),e==="loading"&&ke.createElement(Fi,null),!w.length&&r?ke.createElement(Di,null,ke.createElement(vh,{title:ut.t("No results found"),description:ut.t("Try using different keywords")})):e==="success"&&ke.createElement(xo,null,w.map(g=>ke.createElement(ke.Fragment,{key:g.id},ke.createElement(xh,{style:{height:"61px"},...g,selected:!1,hasDivider:!0}))))))}i(Oi,"LiquiditySourcePage");import{i18n as Au}from"@lingui/core";import{Divider as Gi,getCountCategories as _h,SelectableCategoryList as Dh}from"@rango-dev/ui";import ct,{useState as bu}from"react";import{i18n as qi}from"@lingui/core";import{Divider as xu,Image as Lh,ListItemButton as Nh,NotFound as Ph,Typography as vu}from"@rango-dev/ui";import Oe,{useEffect as Mh,useState as $h}from"react";import{BlockchainCategories as Ui}from"@rango-dev/ui";import{TransactionType as jn}from"rango-sdk";var Eh=i((t,e)=>{switch(e){case Ui.ALL:return!0;case Ui.UTXO:return t.type===jn.TRANSFER;case Ui.OTHER:return t.type!==jn.TRANSFER&&t.type!==jn.COSMOS&&t.type!==jn.EVM;default:return t.type===e}},"filterByType"),Su=i((t,e,o)=>t.filter(n=>Eh(n,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as Ih,styled as Cu}from"@rango-dev/ui";var ku=Cu("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xn=Cu("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${Ih}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Wh,Skeleton as Tu}from"@rango-dev/ui";import Kn from"react";var Bh=20;function wu(){return Kn.createElement(Xn,null,Array.from(Array(Bh),t=>Kn.createElement(Wh,{key:t,hasDivider:!0,start:Kn.createElement(Tu,{variant:"circular",width:35,height:35}),title:Kn.createElement(Tu,{variant:"text",size:"large",width:90})})))}i(wu,"LoadingBlockchainList");function zi(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=$h(e),{fetchStatus:l}=d();Mh(()=>{a([...Su(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Oe.createElement(Oe.Fragment,null,Oe.createElement(xu,{size:32}),Oe.createElement(Ph,{title:qi.t("No results found"),description:qi.t("Try using different keywords")})):Oe.createElement(Xn,{key:`${r}-${o}`},s.map(u=>Oe.createElement(Nh,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Oe.createElement(Lh,{src:u.logo,size:30}),title:Oe.createElement(vu,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Oe.createElement(ku,null,Oe.createElement(vu,{variant:"label",size:"large"},qi.t("Select Blockchain")),Oe.createElement(xu,{size:4}),l==="loading"&&Oe.createElement(wu,null),l==="success"&&p())}i(zi,"BlockchainList");function Hi(t){let{type:e}=t,o=St(),[n,r]=bu(""),[s,a]=bu("ALL"),l=U.use.setToBlockchain(),p=U.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),h=_h(m)!==1;return ct.createElement(K,{header:{title:Au.t("Select Blockchain")}},ct.createElement(Gi,{size:12}),h&&ct.createElement(ct.Fragment,null,ct.createElement(Dh,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),ct.createElement(Gi,{size:24})),ct.createElement(lt,{value:n,autoFocus:!0,placeholder:Au.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),ct.createElement(Gi,{size:16}),ct.createElement(zi,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Hi,"SelectBlockchainPage");import{i18n as er}from"@lingui/core";import{Divider as Vu}from"@rango-dev/ui";import Jt,{useState as ty}from"react";import{useNavigate as oy}from"react-router-dom";import{i18n as ji}from"@lingui/core";import{BlockchainsChip as Yn,Divider as Bu,Image as Lu,Skeleton as zh,Tooltip as Gh,Typography as Xi}from"@rango-dev/ui";import le from"react";import{useEffect as Uh}from"react";var Eu=["ETH","COSMOS","OSMOSIS"];function Qi(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Fh),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(Oh(a)),r=n.splice(s)}return{list:n,more:r}}i(Qi,"prepare");function Fh(t,e){let o=Eu,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(Fh,"sortByMostUsedBlockchains");function Oh(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(Oh,"generateSortByPreferredBlockchainsFor");function Iu(t,e){return!!e.list.find(o=>o.name===t)}i(Iu,"isInVisibleList");function Vi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();Uh(()=>{if(e?.selected){let s=Qi(t,o,e);Iu(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Qi(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Vi,"usePrepareBlockchainList");import{styled as qh}from"@rango-dev/ui";var Wu=qh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Hh=12;function Ki(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=Vi(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,h=!c&&m;return le.createElement(le.Fragment,null,le.createElement(Bu,{size:12}),le.createElement(Xi,{variant:"label",size:"large"},ji.t("Select Blockchain")),le.createElement(Bu,{size:12}),le.createElement(Wu,null,l==="loading"&&Array.from(Array(Hh),f=>le.createElement(zh,{key:f,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(Yn,{selected:!n,onClick:()=>{o==="from"?u():p()}},le.createElement(Xi,{variant:"body",size:"xsmall",color:"secondary500"},ji.t("All"))),a.list.map(f=>le.createElement(Gh,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:O()},le.createElement(Yn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},le.createElement(Lu,{src:f.logo,size:30})))),c?le.createElement(Yn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},le.createElement(Lu,{src:a.more[0].logo,size:30})):null,h?le.createElement(Yn,{onClick:s,key:"more-blockchains"},le.createElement(Xi,{variant:"body",size:"xsmall",color:"secondary500"},ji._("More +{count}",{count:a.more.length}))):null)))}i(Ki,"BlockchainsSection");import{i18n as is}from"@lingui/core";import{darkTheme as qu,Divider as Yt,ExternalLinkIcon as jh,Image as Xh,ListItemButton as Kh,NotFound as Yh,PinIcon as Jh,Skeleton as zu,Typography as Rn,VirtualizedList as Zh}from"@rango-dev/ui";import D,{forwardRef as Rh,useEffect as Gu,useState as Hu}from"react";import{Divider as Ou,ListItem as Vh,Skeleton as Ao}from"@rango-dev/ui";import Ve from"react";import{css as Kt,darkTheme as Nu,ImageContainer as Qh,styled as Qe,Typography as Pu}from"@rango-dev/ui";var Yi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ji=Kt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Zi=Kt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ri=Kt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Nu} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),es=Kt({}),ts=Kt(),Mu=Qe("div",{display:"flex",flexDirection:"column",flexGrow:1}),os=Qe("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Jn=Qe("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ji}`]:{[`& .${Ri}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${es}`]:{bottom:"-15px"},[`& .${Yi}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Zi}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),ns=Qe("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),rs=Qe(Pu,{}),$u=Qe("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ts}`]:{$$color:"$colors$neutral600",[`.${Nu} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zn=Qe("div",{display:"flex",alignItems:"end",flexDirection:"column"}),DL=Qe("div",{display:"flex",alignItems:"center"}),_u=Qe("div",{position:"relative",[`& ${Qh}`]:{borderRadius:"$xm",overflow:"hidden"}}),Du=Qe("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Fu=Qe(Pu,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Uu(t){return Ve.createElement(Jn,null,Array.from(Array(t.size),e=>Ve.createElement(Vh,{key:e,hasDivider:!0,start:Ve.createElement(Ao,{variant:"circular",width:35,height:35}),end:Ve.createElement(Zn,null,Ve.createElement(Ao,{variant:"text",size:"large",width:70}),Ve.createElement(Ou,{size:4}),Ve.createElement(Ao,{variant:"text",size:"medium",width:50})),title:Ve.createElement("div",null,Ve.createElement(Ao,{variant:"text",size:"large",width:90}),Ve.createElement(Ou,{size:4}),Ve.createElement(Ao,{variant:"text",size:"medium",width:90}))})))}i(Uu,"LoadingTokenList");var ss=20,ey=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return D.createElement("div",{className:Ji()},o?D.createElement("div",{className:Yi()},o):D.createElement(os,{className:Zi()},D.createElement(Rn,{variant:"title",size:"xmedium"},r.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(ns,{css:s},D.createElement(rs,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&D.createElement("div",{className:`${Ri()} ${!o&&es()}`},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(jh,{color:"gray",size:12}))))},"renderDesc");function Qu(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=Hu(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=Hu(!0),{getBalanceFor:c,loading:h}=H(),{isTokenPinned:f}=d(),x=Rh((v,k)=>D.createElement("div",{...v,ref:k,style:{...v.style,height:`${parseFloat(v.style?.height)+8*2}px`}})),w=i(()=>{a(e.slice(0,s.length+ss))},"loadNextPage");Gu(()=>{m(e.length>s.length)},[s.length]),Gu(()=>{a(e.slice(0,ss))},[e]);let g=i(()=>!s.length&&o?D.createElement(D.Fragment,null,D.createElement(Yt,{size:32}),D.createElement(Yh,{title:is.t("No results found"),description:is.t("Try using different keywords")})):D.createElement(Zh,{Item:({index:v,style:k})=>{let T=s[v],A=Qo(c(T)),y=T.address||"",E=p.find(M=>M.name===T.blockchain),b=Sn(T.symbol,E?.color||""),S={$$color:b[`${T.symbol}100`],[`.${qu} &`]:{$$color:b[`${T.symbol}900`]},backgroundColor:"$$color"},B={$$color:b[`${T.symbol}700`],[`.${qu} &`]:{$$color:b[`${T.symbol}100`]},color:"$$color"};return D.createElement("div",{style:{...k,paddingRight:5}},D.createElement(Kh,{style:{height:k?.height,width:"100%",overflow:"hidden"},"tab-index":v,key:`${T.symbol}${T.address}`,id:`${T.symbol}${T.address}`,hasDivider:!0,onClick:()=>n(s[v]),start:D.createElement(_u,null,D.createElement(Xh,{src:T.image,size:30}),f(T,t.type)&&D.createElement(Du,null,D.createElement(Jh,{size:12,color:"gray"}))),title:E?.type==="COSMOS"||T.name||!T.name&&!y?D.createElement(os,null,D.createElement(Rn,{variant:"title",size:"xmedium"},T.symbol),D.createElement(Yt,{direction:"horizontal",size:4}),D.createElement(ns,{css:S},D.createElement(rs,{variant:"body",size:"xsmall",css:B},T.blockchain))):void 0,description:E?.info&&y&&E.type!=="COSMOS"?ey({address:y,token:s[v],customCssForTag:S,customCssForTagTitle:B,name:T.name,url:E.info.addressUrl.split("{wallet}").join(y)}):T.name||void 0,end:h?D.createElement(Zn,null,D.createElement(zu,{variant:"text",size:"large",width:70}),D.createElement(Yt,{size:4}),D.createElement(zu,{variant:"text",size:"medium",width:50})):A&&D.createElement($u,null,D.createElement(Fu,{variant:"title",size:"small"},A.amount),D.createElement("div",null),A.usdValue&&D.createElement(Rn,{variant:"body",className:ts(),size:"xsmall"},`$${A.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:w,innerElementType:x,size:60,key:`${r}-${o}`}),"renderList");return D.createElement(Mu,null,D.createElement(Rn,{variant:"label",size:"large"},is.t("Select Token")),D.createElement(Yt,{size:4}),l==="loading"&&D.createElement(Uu,{size:ss}),l==="success"&&D.createElement(Jn,null,g()))}i(Qu,"TokenList");function as(t){let{type:e}=t,o=oy(),n=St(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=U(),m=H.use.getBalanceFor(),[c,h]=ty(""),{isTokenPinned:f}=d(),w=(e==="source"?r:s)?.name??"",g=d().blockchains({type:e}),v=d().tokens({type:e,blockchain:w,searchFor:c}),T=Hs(v,m,i(b=>f(b,e),"checkIsTokenPinned")),A=i(b=>{e==="source"?p(b):u(b)},"updateBlockchain"),y=i(b=>{e==="source"?a({token:b,meta:{blockchains:g,tokens:v}}):l({token:b,meta:{blockchains:g,tokens:v}})},"updateToken"),E={source:er.t("Source"),destination:er.t("Destination")};return Jt.createElement(K,{header:{title:er.t("Swap {type}",{type:E[e]})}},Jt.createElement(Ki,{blockchains:g,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:b=>{A(b)}}),Jt.createElement(Vu,{size:24}),Jt.createElement(lt,{value:c,autoFocus:!0,placeholder:er.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:b=>h(b.target.value)}),Jt.createElement(Vu,{size:16}),Jt.createElement(Qu,{list:T,selectedBlockchain:w,searchedFor:c,type:e,onChange:b=>{y(b);let S=g.find(B=>b.blockchain===B.name);S&&A(S),n()}}))}i(as,"SelectSwapItemsPage");import{i18n as Mt}from"@lingui/core";import{ChevronRightIcon as us,Divider as cs,InfoIcon as uy,List as cy,ListItemButton as my,Skeleton as dy,Switch as fy,Tooltip as gy,Typography as $t}from"@rango-dev/ui";import j from"react";import{useNavigate as hy}from"react-router-dom";import{i18n as Zu}from"@lingui/core";import{Divider as sy,InfoIcon as ay,TextField as ly,Tooltip as py,Typography as Ru}from"@rango-dev/ui";import Le from"react";import{Chip as ny,styled as bo,TextField as ry}from"@rango-dev/ui";var ju=bo("div",{paddingTop:"$5",padding:"$10 $5"}),Xu=bo("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${ry}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ku=bo("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),tr=bo("div",{maxWidth:"280px",padding:"$10"}),Yu=bo(ny,{width:"61px",flexShrink:0});import{i18n as ls}from"@lingui/core";import{Typography as iy}from"@rango-dev/ui";import Eo from"react";function Ju(){return Eo.createElement(tr,null,Eo.createElement(iy,{variant:"label",size:"medium",color:"neutral700"},ls.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),Eo.createElement("br",null),Eo.createElement("br",null),Eo.createElement("b",null,ls.t("Warning")),":",ls.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Ju,"SlippageTooltipContent");function ps(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Le.createElement(ju,null,Le.createElement(Ku,null,Le.createElement(Ru,{variant:"title",size:"xmedium"},Zu.t("Slippage tolerance per swap")),Le.createElement(sy,{direction:"horizontal",size:4}),Le.createElement(py,{container:O(),side:"top",sideOffset:4,content:Le.createElement(Ju,null)},Le.createElement(ay,{color:"gray"}))),Le.createElement(Xu,null,oa.map((r,s)=>{let a=`slippage-${s}`;return Le.createElement(Le.Fragment,null,Le.createElement(Yu,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Le.createElement(ly,{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>=sa&&s<=ia)&&n(s)},suffix:o&&Le.createElement(Ru,{variant:"body",size:"small"},"%"),placeholder:Zu.t("Custom")})))}i(ps,"Slippage");function ec(){let t=hy(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Pe("theme",s),l=Pe("liquiditySource",s),p=Pe("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Ko(n,r),h=c.filter(S=>S.type==="BRIDGE"||S.type==="AGGREGATOR"),f=h.length,x=h.filter(S=>S.selected).length,w=c.filter(S=>S.type==="DEX"),g=w.length,v=w.filter(S=>S.selected).length,k=i((S,B)=>{switch(o){case"loading":return j.createElement(dy,{variant:"text",size:"medium",width:50});case"failed":return j.createElement($t,{variant:"body",size:"medium",color:"$error500"},Mt.t("Loading failed"));default:return j.createElement($t,{variant:"body",size:"medium"},`${S} / ${B}`)}},"handleEndItem"),T={id:"bridge-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Mt.t("Enabled bridges")),end:j.createElement(j.Fragment,null,k(x,f),j.createElement(cs,{direction:"horizontal",size:8}),j.createElement(us,{color:"black"})),onClick:()=>t(_.bridges)},A={id:"exchange-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Mt.t("Enabled exchanges")),end:j.createElement(j.Fragment,null,k(v,g),j.createElement(cs,{direction:"horizontal",size:8}),j.createElement(us,{color:"gray"})),onClick:()=>t(_.exchanges)},y={id:"theme-item",title:j.createElement($t,{variant:"title",size:"xmedium"},Mt.t("Theme")),end:j.createElement(us,{color:"gray"}),onClick:()=>t(_.themes)},E={id:"infinite-approval-item",title:j.createElement(j.Fragment,null,j.createElement($t,{variant:"title",size:"xmedium"},Mt.t("Infinite approval")),j.createElement(cs,{direction:"horizontal",size:4}),j.createElement(gy,{side:"top",sideOffset:4,container:O(),content:j.createElement(tr,null,j.createElement($t,{variant:"label",size:"medium",color:"neutral700"},Mt.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(uy,{color:"gray"}))),end:j.createElement(fy,{checked:u}),onClick:m},b=l?[]:[T,A];return!e?.singleTheme&&!a&&b.push(y),b.push(E),j.createElement(K,{header:{title:Mt.t("Settings")}},j.createElement(pt,null,j.createElement(ps,null),j.createElement(cy,{type:j.createElement(my,{title:"_",id:"_",onClick:()=>console.log()}),items:b})))}i(ec,"SettingsPage");import{cancelSwap as iS}from"@rango-dev/queue-manager-rango-preset";import{useManager as sS}from"@rango-dev/queue-manager-react";import Pc from"react";import{i18n as mt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Uy,getCurrentStep as qy,getRelatedWalletOrNull as zy}from"@rango-dev/queue-manager-rango-preset";import{Button as Ac,CopyIcon as Gy,Divider as Hy,IconButton as Qy,QuoteCost as Vy,StepDetails as jy,Typography as eo,useCopyToClipboard as Xy}from"@rango-dev/ui";import{useWallets as Ky}from"@rango-dev/wallets-react";import bc from"bignumber.js";import{PendingSwapNetworkStatus as dr}from"rango-types";import Y,{useEffect as Ec,useRef as Yy,useState as Ic}from"react";import{useNavigate as Jy}from"react-router-dom";import{i18n as xt}from"@lingui/core";var yy=[xt.t("Sunday"),xt.t("Monday"),xt.t("Tuesday"),xt.t("Wednesday"),xt.t("Thursday"),xt.t("Friday"),xt.t("Saturday")];function tc(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"):`${yy[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(tc,"timeSince");function oc(t){return t.finishTime?tc(parseInt(t.finishTime)):tc(parseInt(t.creationTime))}i(oc,"getSwapDate");import{Modal as vy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rr}from"rango-types";import ir from"react";import{i18n as or}from"@lingui/core";import{Button as nc,Divider as ms,MessageBox as Sy,Typography as rc}from"@rango-dev/ui";import nt from"react";var ic=i(({onCancel:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(ms,{size:20}),nt.createElement(Sy,{type:"error",title:or.t("Cancel Swap"),description:or.t("Are you sure you want to cancel this swap?")}),nt.createElement(ms,{size:32}),nt.createElement(nc,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(rc,{variant:"title",size:"medium",color:"neutral100"},or.t("Yes, Cancel it"))),nt.createElement(ms,{size:12}),nt.createElement(nc,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(rc,{variant:"title",size:"medium",color:"primary"},or.t("No, Continue")))),"CancelContent");import{i18n as nr}from"@lingui/core";import{Button as sc,Divider as ds,MessageBox as Cy,Typography as ac}from"@rango-dev/ui";import rt from"react";var lc=i(({onDelete:t,onClose:e})=>rt.createElement(rt.Fragment,null,rt.createElement(ds,{size:20}),rt.createElement(Cy,{type:"error",title:nr.t("Delete Transaction"),description:nr.t("Are you sure you want to delete this swap?")}),rt.createElement(ds,{size:32}),rt.createElement(sc,{variant:"contained",type:"primary",size:"large",onClick:t},rt.createElement(ac,{variant:"title",size:"medium",color:"neutral100"},nr.t("Yes, Delete it"))),rt.createElement(ds,{size:12}),rt.createElement(sc,{variant:"outlined",type:"primary",size:"large",onClick:e},rt.createElement(ac,{variant:"title",size:"medium",color:"primary"},nr.t("No, Cancel")))),"DeleteContent");import{i18n as fs}from"@lingui/core";import{PendingSwapNetworkStatus as gs}from"rango-types";var hs={[gs.WaitingForNetworkChange]:{type:"loading",title:fs.t("Change Network")},[gs.WaitingForConnectingWallet]:{type:"warning",title:fs.t("Connect Wallet")},[gs.NetworkChanged]:{type:"success",title:fs.t("Network Changed")}};import{MessageBox as Ty,Wallet as wy}from"@rango-dev/ui";import{useWallets as xy}from"@rango-dev/wallets-react";import Io from"react";import{styled as ky}from"@rango-dev/ui";var pc=ky("div",{display:"flex",justifyContent:"center"});var uc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=xy(),u=n?.walletType,m=u?kr(p(u)):null,c=u?l(u):null;return Io.createElement(Io.Fragment,null,Io.createElement(Ty,{type:e,title:o,description:r}),s&&!!u&&!!m&&!!c&&Io.createElement(pc,null,Io.createElement(wy,{container:O(),title:c.name,image:c.img,type:u,state:m,link:c.installLink,onClick:async()=>a(u)})))},"WalletStateContent");function ys(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===rr.WaitingForNetworkChange||e===rr.WaitingForConnectingWallet||e===rr.NetworkChanged;return ir.createElement(vy,{open:!!e,onClose:o,container:document.getElementById(Te)||document.body},l&&ir.createElement(uc,{type:hs[e].type,title:hs[e].title,currentStepWallet:s,message:a,showWalletButton:e!==rr.WaitingForNetworkChange}),e==="delete"&&ir.createElement(lc,{onClose:o,onDelete:n}),e==="cancel"&&ir.createElement(ic,{onClose:o,onCancel:r}))}i(ys,"SwapDetailsModal");import{i18n as Wo}from"@lingui/core";import{Button as Ss,Divider as sr,MessageBox as cc,Modal as Ay,TokenAmount as by,Typography as ar}from"@rango-dev/ui";import me from"react";import{useNavigate as Ey}from"react-router-dom";function Cs(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:h}=t,f=Ey();return me.createElement(Ay,{open:e,onClose:o,container:document.getElementById(Te)||document.body},n==="success"?me.createElement(cc,{type:"success",title:Wo.t("Swap Successful")},me.createElement(by,{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(sr,{size:12}),me.createElement(ar,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):me.createElement(cc,{type:"error",title:Wo.t("Transaction Failed"),description:c}),me.createElement(sr,{size:32}),n==="success"&&me.createElement(Ss,{variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},me.createElement(ar,{variant:"title",size:"medium",color:"neutral100"},Wo.t("Done"))),me.createElement(sr,{size:12}),h&&me.createElement(me.Fragment,null,me.createElement(Ss,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},me.createElement(ar,{variant:"title",size:"medium",color:"primary"},Wo.t("Diagnosis"))),me.createElement(sr,{size:12})),me.createElement(Ss,{variant:"outlined",type:"primary",size:"large",onClick:o},me.createElement(ar,{variant:"title",size:"medium",color:"primary"},Wo.t("See Details"))))}i(Cs,"SwapDetailsCompleteModal");import Fy from"react";import{i18n as My}from"@lingui/core";import{Alert as yc,IconButton as $y,LinkIcon as _y}from"@rango-dev/ui";import vt,{Fragment as Dy}from"react";import{Alert as Iy,ChevronDownIcon as Wy,ChevronUpIcon as By,IconButton as Ly}from"@rango-dev/ui";import lr,{useState as Ny}from"react";function mc(t){let{message:e}=t,[o,n]=Ny(!1);return lr.createElement(Iy,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&lr.createElement(Ly,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?lr.createElement(By,{size:12,color:"gray"}):lr.createElement(Wy,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(mc,"FailedAlert");import{styled as Py}from"@rango-dev/ui";var dc=Py("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as fc}from"@lingui/core";import{Alert as ks,Button as gc}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ts}from"rango-types";import Bo from"react";function hc(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Bo.createElement(ks,{type:"warning",title:n.shortMessage,action:Bo.createElement(gc,{size:"xxsmall",type:"warning",onClick:()=>{o(Ts.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},fc.t("Change"))}):r===Ts.WaitingForConnectingWallet?Bo.createElement(ks,{type:"warning",title:n.shortMessage,action:Bo.createElement(gc,{size:"xxsmall",type:"warning",onClick:()=>{o(Ts.WaitingForConnectingWallet)}},fc.t("Connect"))}):Bo.createElement(ks,{type:"warning",title:n.shortMessage})}i(hc,"WarningAlert");function ws(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(dc,null,s.explorerUrl?.map((m,c,h)=>{let f=c+m.url,x=c===h.length-1,w=x&&u||p,g=x&&s.status==="failed";return vt.createElement(Dy,{key:f},vt.createElement(yc,{type:w&&"loading"||g&&"error"||"success",title:m.description?`${m.description} Tx`:My.t("View transaction"),action:m.url&&vt.createElement($y,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},vt.createElement(_y,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&vt.createElement(yc,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&vt.createElement(hc,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&vt.createElement(mc,{message:r}))}i(ws,"SwapDetailsAlerts");var Sc=2e3;var Cc=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:I(a,6,6),realValue:a}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Ye(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:I(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6),realValue:r.outputAmount||r.expectedOutputAmountHumanReadable}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Fy.createElement(ws,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function kc(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(kc,"getStepState");import{css as pr,darkTheme as Oy,styled as Zt}from"@rango-dev/ui";var ur=Zt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),cr=Zt("div",{width:"100%"}),Tc=Zt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),wM=Zt("div",{display:"flex",flexDirection:"column",gap:"$10"}),wc=Zt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),xM=Zt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Rt=pr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Oy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),mr=pr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),xc=pr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),vc=pr({width:"100%",padding:"0 $20 $10"});function xs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Ky(),p=d().blockchains(),u=d().tokens(),m=U.use.retry(),c=Jy(),[h,f]=Xy(Sc),x=Yy(null),[w,g]=Ic(null),[v,k]=Ic(null),T=i(()=>{r(),g(null)},"onCancel"),A=_e.use.getUnreadNotifications(),y=_e.use.setAsRead(),E=A(),b=qy(e),S=b?.networkStatus;Ec(()=>{E.find(de=>de.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(k(e.status),y(e.requestId))},[e.status]),Ec(()=>{q?g(dr.WaitingForNetworkChange):S===dr.WaitingForConnectingWallet||S===dr.NetworkChanged?g(S):g(null)},[S]);let B=va(e),M=b?Uy(e,b):null,L=b?zy(e,b):null,C=oc(e),$=Aa(e),N=i(ue=>!!l(ue)?.mobileWallet,"isMobileWallet"),q=S===dr.WaitingForNetworkChange&&!!M&&!!L?.walletType&&(N(L.walletType)||s(L.walletType,M)),J=q?a.bind(null,L.walletType,M):void 0,Z=xa(e,b),Q=Cc({swap:e,switchNetwork:J,showNetworkModal:S,setNetworkModal:g,message:Z,blockchains:p}),re=Q.length,[ye,Se]=[e.steps[0],e.steps[re-1]],Ce=Se.outputAmount||Se.expectedOutputAmountHumanReadable,_t=e.steps.reduce((ue,de)=>ue+parseFloat(de.feeInUsd||""),0),oo=e.steps.find(ue=>ue.diagnosisUrl)?.diagnosisUrl,dt=I(parseFloat(I(Ce,6,6))*(Se.toUsdPrice||0),4,4),At=I(parseFloat(e.inputAmount)*(ye.fromUsdPrice||0),4,4),F=Ce?se(new bc(Ce).multipliedBy(Se.toUsdPrice||0)):"",z=se(new bc(e.inputAmount).multipliedBy(ye.fromUsdPrice||0)),X=Me(At,dt),Ie=e.status==="success"?mt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:I(Ce,6,6),token:Q[re-1].to.token.displayName,conciseAddress:Vo(e.wallets[Q[re-1].to.chain.displayName]?.address||""),chain:Q[re-1].to.chain.displayName}}):`${mt.t("Transaction was not sent.")} ${B?mt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}}):""}`;return Y.createElement(K,{noPadding:!0,header:{title:mt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>g("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(Ht,null,Y.createElement(Ac,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>g("delete")},Y.createElement(eo,{size:"medium",variant:"label",color:"error"},mt.t("Delete"))))},footer:$&&!v&&Y.createElement(Ac,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},mt.t("Try again"))},Y.createElement(ur,null,Y.createElement(cr,null,Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${mt.t("Request ID")}:`),Y.createElement("div",{className:mr()},Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(Qy,{variant:"ghost",onClick:f.bind(null,o||"")},Y.createElement(Gy,{size:16,color:"gray"})))),Y.createElement("div",{className:Rt()},Y.createElement(eo,{variant:"label",size:"large",color:"neutral700"},`${mt.t(e.finishTime?"Finished at":"Created at")}:`),Y.createElement(eo,{variant:"label",size:"small",color:"neutral700"},C))),Y.createElement("div",{className:xc()},Y.createElement(Vy,{fee:I(String(_t),2,2),time:Fo(Oo(e.steps)),steps:re}),Y.createElement(co,{from:{price:{value:I(e.inputAmount,6,6),usdValue:At,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:I(Ce,6,6),usdValue:dt,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:I(X,2,2),warningLevel:st(X??0)})),Y.createElement("div",{className:vc()},Y.createElement(eo,{variant:"title",size:"small"},mt.t("Swaps steps"))),Y.createElement(Hy,{size:8}),Y.createElement(Tc,{ref:x},Q.map((ue,de)=>{let _o=de,it=kc(e.steps[de]),Yc=it==="error"||it==="in-progress"||it==="warning"||it==="completed"&&de===Q.length-1;return Y.createElement(jy,{key:_o,step:ue,type:"swap-progress",ref:x,state:it,hasSeparator:de!==0,tabIndex:_o,isFocused:Yc,tooltipContainer:O()})}))),Y.createElement(ys,{state:w,onClose:()=>g(null),onCancel:T,onDelete:n,message:Z.detailedMessage.content,currentStepWallet:L}),Y.createElement(Cs,{open:!!v,diagnosisUrl:oo,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:I(Ce,6,6),usdValue:dt,realUsdValue:F,realValue:se(Ce),percentageChange:I(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:Ie}))}i(xs,"SwapDetails");import{i18n as No}from"@lingui/core";import{CopyIcon as oS,IconButton as nS,NotFound as rS,Skeleton as Lc,Typography as gr}from"@rango-dev/ui";import pe from"react";import{i18n as Zy}from"@lingui/core";import{Divider as Ry,Skeleton as eS,Typography as tS}from"@rango-dev/ui";import ie from"react";import{css as je,styled as vs}from"@rango-dev/ui";var Wc=vs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Lo=vs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),fr=vs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),e$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),t$=je({display:"flex",justifyContent:"space-between",alignItems:"center"}),o$=je({paddingTop:"$15",display:"flex"}),n$=je({padding:"$15 $0"}),r$=je({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),i$=je({paddingBottom:"$10"}),s$=je({display:"flex",justifyContent:"start",alignItems:"center"}),a$=je({paddingTop:"$5",display:"flex",alignItems:"center"}),l$=je({display:"flex",alignItems:"center"}),p$=je({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Bc=je({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function As(){return ie.createElement(Wc,null,ie.createElement(ho,{type:"swap-preview"}),ie.createElement("div",{className:"swaps-steps"},ie.createElement(tS,{variant:"title",size:"small"},Zy.t("Swaps steps"))),ie.createElement(ie.Fragment,null,ie.createElement(Lo,null,ie.createElement(tt,{separator:!1}),ie.createElement("div",{className:Bc()},ie.createElement(Ry,{direction:"horizontal",size:20}),ie.createElement(eS,{height:22,variant:"rectangular"}))),ie.createElement(fr,null),ie.createElement(Lo,null,ie.createElement(tt,{separator:!1})),ie.createElement(fr,null),ie.createElement(Lo,null,ie.createElement(tt,{separator:!1})),ie.createElement(fr,null),ie.createElement(Lo,null,ie.createElement(tt,{separator:!1}))))}i(As,"LoadingSwapDetails");function Nc(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(K,{noPadding:!0,header:{title:No.t("Swap and Bridge"),suffix:pe.createElement(Ht,null)}},o&&pe.createElement(ur,null,pe.createElement(cr,null,pe.createElement("div",{className:Rt()},pe.createElement(gr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Request ID")}:`),pe.createElement("div",{className:mr()},pe.createElement(gr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Lc,{width:60,height:10,variant:"rounded"})),pe.createElement(nS,{variant:"ghost"},pe.createElement(oS,{size:16,color:"gray"})))),pe.createElement("div",{className:Rt()},pe.createElement(gr,{variant:"label",size:"large",color:"neutral700"},`${No.t("Created at")}:`),pe.createElement(gr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Lc,{width:60,height:10,variant:"rounded"})))),pe.createElement(As,null)),!o&&pe.createElement(wc,null,pe.createElement(rS,{title:No.t("Not found"),description:No.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Nc,"SwapDetailsPlaceholder");function Mc(){let{manager:t,state:e}=sS(),o=!e.loadedFromPersistor,n=Xt(t),r=Ae.use.selectedSwapRequestId(),s=St(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:h})=>h.requestId===r),u=i(()=>{if(p?.id){let h=t?.get(p.id);h&&iS(h)}},"onCancel"),m=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(h){console.log(h)}},"onDelete"),c=p?.swap;return!c||l?Pc.createElement(Nc,{requestId:r||"",showSkeleton:l}):Pc.createElement(xs,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Mc,"SwapDetailsPage");import{i18n as Po}from"@lingui/core";import{AutoThemeIcon as aS,DarkModeIcon as lS,LightModeIcon as pS,List as uS,ListItemButton as cS,Radio as bs,RadioRoot as mS,Typography as Es}from"@rango-dev/ui";import be from"react";function $c(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(Es,{variant:"title",size:"xmedium"},Po.t("Light")),onClick:()=>t("light"),start:be.createElement(pS,{color:"gray"}),end:be.createElement(bs,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(Es,{variant:"title",size:"xmedium"},Po.t("Dark")),onClick:()=>t("dark"),start:be.createElement(lS,{color:"gray"}),end:be.createElement(bs,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(Es,{variant:"title",size:"xmedium"},Po.t("Auto")),onClick:()=>t("auto"),start:be.createElement(aS,{color:"gray"}),end:be.createElement(bs,{value:"auto"})}];return be.createElement(K,{header:{title:Po.t("Theme")}},be.createElement(pt,null,be.createElement(mS,{onValueChange:n=>t(n),value:e},be.createElement(uS,{type:be.createElement(cS,{title:Po.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i($c,"ThemePage");function _c(){return dS([{path:_.home,element:Ee.createElement(du,null)},{path:_.fromSwap,children:[{index:!0,element:Ee.createElement(as,{type:"source"})},{path:_.blockchains,element:Ee.createElement(Hi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ee.createElement(as,{type:"destination"})},{path:_.blockchains,element:Ee.createElement(Hi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ee.createElement(ec,null)},{path:_.themes,element:Ee.createElement($c,null)},{path:_.languages,element:Ee.createElement(gu,null)},{path:_.exchanges,element:Ee.createElement(Oi,{sourceType:"Exchanges"})},{path:_.bridges,element:Ee.createElement(Oi,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ee.createElement(lu,null)},{path:_.swapDetails,element:Ee.createElement(Mc,null)}]},{path:_.wallets,element:Ee.createElement(Bl,null)},{path:_.confirmSwap,element:Ee.createElement(Rp,null)}])}i(_c,"AppRoutes");import{isApprovalTX as fS,MainEvents as Fc,RouteEventType as Oc,StepEventType as to,StepExecutionEventStatus as gS,useEvents as hS}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Uc}from"react";import{StepExecutionBlockedEventStatus as Is}from"@rango-dev/queue-manager-rango-preset";var Dc=[Is.WAITING_FOR_CHANGE_WALLET_ACCOUNT,Is.WAITING_FOR_NETWORK_CHANGE,Is.WAITING_FOR_WALLET_CONNECT];function qc(){let t=d().tokens(),e=H.use.connectedWallets(),o=H.use.getWalletsDetails(),n=_e.use.setNotification(),r=_e.use.setAsRead(),s=hS();return Uc(()=>(s.on(Fc.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===to.TX_EXECUTION&&l.status===gS.TX_SENT&&!fS(p)||l.type===to.SUCCEEDED){let c=e.find(f=>f.chain===p?.fromBlockchain),h=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);c&&o([c],t),h&&o([h],t)}l.type===to.TX_EXECUTION_BLOCKED&&Dc.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]),Uc(()=>(s.on(Fc.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Oc.FAILED||l.type===Oc.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(qc,"WidgetEvents");import{globalCss as yS}from"@rango-dev/ui";var zc=i(()=>yS({"@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 SS}from"@rango-dev/ui";var Gc=SS("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 hr(){zc();let{config:t}=d(),{activeTheme:e}=Cn(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Vn(),[r,s]=Qc(""),[a,l]=Qc(),p=kS(un);return Hc(()=>{_e.persist.rehydrate(),p.onConnectWallet(s)},[]),Hc(()=>{n(t?.language)},[t?.language]),Mo.createElement(CS,{language:o},Mo.createElement(Gc,{id:"swap-container",className:e()},Mo.createElement(qc,null),Mo.createElement(Fa,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Mo.createElement(_c,null))))}i(hr,"Main");import Bs,{useMemo as FS}from"react";import{checkWaitingForNetworkChange as TS,makeQueueDefinition as wS}from"@rango-dev/queue-manager-rango-preset";import{Provider as xS}from"@rango-dev/queue-manager-react";import{useWallets as vS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as AS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bS}from"rango-types";import ES,{useMemo as IS}from"react";function WS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=vS(),l=IS(()=>wS({API_KEY:t.apiKey||Dt("API_KEY"),BASE_URL:Dt("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:H.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},c=i(async(k,T)=>{if(s(k,T))return r(k,T)},"switchNetwork"),h=i(k=>!!a(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,T)=>(k[T.name]=T,k),{}),x=p.filter(bS),w=i(k=>{let{supportedChains:T}=a(k);return zo(T)},"getSupportedChainNames"),g=e(),v={meta:{blockchains:f,evmBasedChains:x,evmNetworkChainInfo:AS(x),getSupportedChainNames:w},getSigners:o,wallets:m,providers:g,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:h};return ES.createElement(xS,{queuesDefs:[l],context:v,onPersistedDataLoaded:k=>{TS(k)},isPaused:!1},t.children)}i(WS,"QueueManager");var Vc=WS;import{useManager as MS}from"@rango-dev/queue-manager-react";import $S,{createContext as _S,useContext as DS}from"react";import{cancelSwap as BS,getCurrentBlockchainOfOrNull as LS,getCurrentStep as NS,getRelatedWalletOrNull as PS}from"@rango-dev/queue-manager-rango-preset";var $o=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Xt(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&&BS(o)}getCurrentStepInfo(e){let o=NS(e);return{step:o,wallet:o?PS(e,o):null,network:o?LS(e,o):null}}};i($o,"WidgetHistory");var jc=_S(void 0);function Ws(t){let{manager:e}=MS(),o=U.use.retry(),n=new $o(e,{retrySwap:o}),r=H.use.connectedWallets(),s=H.use.loading(),a=Gs(r),l=H.use.getWalletsDetails(),p=d().blockchains(),u=d().tokens(),m=d().swappers(),c=d().fetchStatus,h={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:u,swappers:m,loadingStatus:c}};return $S.createElement(jc.Provider,{value:h},t.children)}i(Ws,"WidgetInfo");function Xc(){let t=DS(jc);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Xc,"useWidget");function yr(t){let{onUpdateState:e,config:o}=t;return FS(()=>{Xs({API_KEY:o?.apiKey||Do,BASE_URL:o?.apiUrl||Ps})},[o]),Bs.createElement(cn,{config:o,onUpdateState:e},Bs.createElement(Vc,{apiKey:o.apiKey},Bs.createElement(Ws,null,t.children)))}i(yr,"WidgetProvider");function Kc(t){return t.config?.externalWallets?Ls.createElement(hr,null):Ls.createElement(yr,{config:t.config??Sr},Ls.createElement(hr,null))}i(Kc,"Widget");export{PD as MainEvents,GD as Networks,VD as PendingSwapNetworkStatus,MD as RouteEventType,$D as StepEventType,_D as StepExecutionBlockedEventStatus,DD as StepExecutionEventStatus,qD as WalletEvents,HD as WalletTypes,Kc as Widget,yr as WidgetProvider,cn as WidgetWallets,Hr as customizedThemeTokens,UD as readAccountAddress,Fl as useWallets,Xc as useWidget,FD as useWidgetEvents};
2
2
  //# sourceMappingURL=index.js.map